| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import pygame as pg
- import sys
- from settings import *
- from map import *
- from player import *
- from raycasting import *
- from object_renderer import *
- from sprite_object import *
- from object_handler import *
- from weapon import *
- from sound import *
- from pathfinding import *
- class Game:
- def __init__(self):
- pg.init()
- pg.mouse.set_visible(False)
- self.screen = pg.display.set_mode(RES)
- pg.event.set_grab(True)
- self.clock = pg.time.Clock()
- self.delta_time = 1
- self.global_trigger = False
- self.global_event = pg.USEREVENT + 0
- pg.time.set_timer(self.global_event, 40)
- self.new_game()
- def new_game(self):
- self.map = Map(self)
- self.player = Player(self)
- self.object_renderer = ObjectRenderer(self)
- self.raycasting = RayCasting(self)
- self.object_handler = ObjectHandler(self)
- self.weapon = Weapon(self)
- self.sound = Sound(self)
- self.pathfinding = PathFinding(self)
- pg.mixer.music.play(-1)
- def update(self):
- self.player.update()
- self.raycasting.update()
- self.object_handler.update()
- self.weapon.update()
- pg.display.flip()
- self.delta_time = self.clock.tick(FPS)
- pg.display.set_caption(f'{self.clock.get_fps() :.1f}')
- def draw(self):
- # self.screen.fill('black')
- self.object_renderer.draw()
- self.weapon.draw()
- # self.map.draw()
- # self.player.draw()
- def check_events(self):
- self.global_trigger = False
- for event in pg.event.get():
- if event.type == pg.QUIT or (event.type == pg.KEYDOWN and event.key == pg.K_ESCAPE):
- pg.quit()
- sys.exit()
- elif event.type == self.global_event:
- self.global_trigger = True
- self.player.single_fire_event(event)
- def run(self):
- while True:
- self.check_events()
- self.update()
- self.draw()
- if __name__ == '__main__':
- game = Game()
- game.run()
|