Setup for basic Editor for map, started gameplay screen
This commit is contained in:
+62
-30
@@ -1,40 +1,72 @@
|
||||
import pygame as pg
|
||||
import pygame
|
||||
import pygame_gui
|
||||
from constants import Config
|
||||
|
||||
class Game():
|
||||
def __init__(self, screen, clock, manager):
|
||||
self.screen = screen
|
||||
self.clock = clock
|
||||
self.manager = manager
|
||||
self.fps_label = pygame_gui.elements.UILabel(
|
||||
relative_rect=pg.Rect((10, 10), (120, 40)),
|
||||
text="FPS: 0",
|
||||
manager=self.manager
|
||||
from game.util import *
|
||||
from game.tilemap import Tilemap
|
||||
from game.screens.main_menu import MainMenu
|
||||
from game.screens.game_play import GamePlay
|
||||
|
||||
FPS=60
|
||||
WINDOW_SIZE=(960,540)
|
||||
TILE=16
|
||||
|
||||
class Game:
|
||||
|
||||
def __init__(self):
|
||||
|
||||
pygame.init()
|
||||
|
||||
self.window = pygame.display.set_mode(WINDOW_SIZE)
|
||||
self.clock = pygame.time.Clock()
|
||||
self.ui_manager = pygame_gui.UIManager(
|
||||
WINDOW_SIZE,
|
||||
"theme.json"
|
||||
)
|
||||
self.tilemap = Tilemap(self)
|
||||
|
||||
self.assets={
|
||||
"base": load_images('/tiles/test')
|
||||
}
|
||||
|
||||
self.screens = {
|
||||
"menu": MainMenu(self),
|
||||
"game": GamePlay(self)
|
||||
}
|
||||
self.current_screen = self.screens["menu"]
|
||||
|
||||
def change_screen(self, name):
|
||||
|
||||
self.current_screen.hide()
|
||||
|
||||
self.current_screen = self.screens[name]
|
||||
|
||||
self.current_screen.show()
|
||||
|
||||
def run(self):
|
||||
self.running = True
|
||||
while self.running:
|
||||
self.clock.tick(Config.FPS)
|
||||
self.update()
|
||||
self.draw()
|
||||
return self.running
|
||||
|
||||
def update(self):
|
||||
fps = str(int(self.clock.get_fps()))
|
||||
self.fps_label.set_text('fps: ' + fps)
|
||||
running = True
|
||||
|
||||
for event in pg.event.get():
|
||||
if event.type == pg.QUIT:
|
||||
self.running = False
|
||||
while running:
|
||||
|
||||
self.manager.process_events(event)
|
||||
dt = self.clock.tick(FPS) / 1000.0
|
||||
|
||||
time_delta = self.clock.tick(Config.FPS)/1000.0
|
||||
self.manager.update(time_delta)
|
||||
for event in pygame.event.get():
|
||||
|
||||
def draw(self):
|
||||
self.screen.fill(self.manager.get_theme().get_colour('normal_bg'))
|
||||
self.manager.draw_ui(self.screen)
|
||||
pg.display.update()
|
||||
if event.type == pygame.QUIT:
|
||||
running = False
|
||||
|
||||
self.ui_manager.process_events(event)
|
||||
|
||||
self.current_screen.process_event(event)
|
||||
|
||||
self.ui_manager.update(dt)
|
||||
|
||||
self.window.fill((20, 20, 20))
|
||||
|
||||
self.current_screen.draw(self.window)
|
||||
|
||||
self.ui_manager.draw_ui(self.window)
|
||||
|
||||
pygame.display.update()
|
||||
|
||||
pygame.quit()
|
||||
Reference in New Issue
Block a user