Untitled
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)