voxel_engine/player.py

47 lines
1.1 KiB
Python
Raw Permalink Normal View History

2023-10-19 12:59:58 +02:00
#!/usr/bin/python3
import pygame as pg
from camera import Camera
from settings import *
class Player(Camera):
def __init__(self, app, position=PLAYER_POS, yaw=-90, pitch=0):
self.app = app
super().__init__(position, yaw, pitch)
def update(self):
self.keyboard_control()
self.mouse_control()
super().update()
def mouse_control(self):
mouse_dx, mouse_dy = pg.mouse.get_rel()
if mouse_dx:
self.rotate_yaw(delta_x=mouse_dx * MOUSE_SENSITIVITY)
if mouse_dy:
self.rotate_pitch(delta_y=mouse_dy * MOUSE_SENSITIVITY)
def keyboard_control(self):
key_state = pg.key.get_pressed()
vel = PLAYER_SPEED * self.app.delta_time
if key_state[pg.K_w]:
self.move_forward(vel)
if key_state[pg.K_s]:
self.move_back(vel)
if key_state[pg.K_d]:
self.move_right(vel)
if key_state[pg.K_a]:
self.move_left(vel)
if key_state[pg.K_q]:
self.move_up(vel)
if key_state[pg.K_e]:
self.move_down(vel)