Untitled
unknown
plain_text
2 years ago
2.3 kB
11
Indexable
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)Editor is loading...