Untitled

mail@pastecode.io avatar
unknown
plain_text
2 months ago
2.3 kB
1
Indexable
Never
key_switch_camera = 'c'  #камера привязвнв к герою или нет
key_switch_camera = 'z'  #камера привязвнв к герою или нет

key_forward = 'w'  #шаг вперед
key_back = 's'  #шаг назад
key_left = 'a'  #шаг влево
key_right = 'd'  #шаг вправо
key_up = 'e'  #шаг вверх
key_down = 'q'  #шаг вниз

key_turn_left = 'n'  #повернуть камеру влево
key_turn_right = 'm'  #повернуть камера вправо

class Hero:
    def __init__(self, pos, land):
        self.land = land
        self.mode = True  #режим прохждения сквозь стены
        self.hero = loader.LoadModel('smiley')
        self.hero.setColor(1, 0.5, 0)
        self.hero.setPos(pos)
        self.hero.reparentTo(render)
        self.cameraBind()
        self.accept_events()


    def camersBind(self):
        base.disableMouse()
        base.camera.setH(180)
        base.camera.reparentTo(self.hero)
        base.camera.setPos(0, 0, 1.5)
        self.cameraOn = True

    def cameraUp(self):
        pos = self.hero.getPos()
        base.mouseInterfaceNode.setPos(-os[0], -pos[1], -pos[2] -3)
        base.camera.reparentTo(renser)
        base.enableMouse()
        self.cameraOn = False


    def changeView(self):
        if self.cameraOn:
            self.cameraUp()
        else:
            self.cameraBind()

    def turn_left(self):
        self.hero.setH((set.hero.getH() + 5) % 360)

    def turn_right(self):
        self.hero.setH((set.hero.getH() - 5) % 360)

    def look_at(self, angle):
#возвращает координаты, в которые двигается персонаж, если он делает шаг
#в направлении angle
        x_from = round(self.hero.getX())
        y_from = round(self.hero.getY())
        z_from = round(self.hero.getZ())
        dx, dy = self.check_dir(angle)
        x_to = x_from + dx
        y_to = x_from + dy
        return x_to, y_to, z_from
    def just_move(self, angle):
        pos = self.look_at(angle)
        self.hero.setPos(pos)


    def move_yo(self, angle):
        if self.mode:
            self.just_move(angle)