nj0/gui/app.py

53 lines
1.3 KiB
Python

from . import map
import pygame as pg
import numpy as np
class App:
def __init__(self, world):
pg.init()
self.screen = pg.display.set_mode((800, 600))
self.clock = pg.time.Clock()
self.running = True
self.world = world
self.map = map.Map(self.world)
def start(self):
dt = 0.0
while self.running:
start = pg.time.get_ticks()
for event in pg.event.get():
if event.type == pg.QUIT:
self.running = False
# EVENTS
# ======
keys = pg.key.get_pressed()
delta = np.array([0.0, 0.0])
if keys[pg.K_UP]:
delta[1] -= 1.0
if keys[pg.K_DOWN]:
delta[1] += 1.0
if keys[pg.K_LEFT]:
delta[0] -= 1.0
if keys[pg.K_RIGHT]:
delta[0] += 1.0
player = self.world.get_player()
norm = np.linalg.norm(delta)
if norm > 0:
delta /= norm
delta *= player.speed
player.pos += delta * dt
self.screen.fill('black')
self.map.draw(self.screen)
pg.display.flip()
self.clock.tick(60)
dt = (pg.time.get_ticks() - start)/1000.0
pg.quit()