main.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import pygame as pg
  2. import sys
  3. from settings import *
  4. from map import *
  5. from player import *
  6. from raycasting import *
  7. from object_renderer import *
  8. from sprite_object import *
  9. from object_handler import *
  10. from weapon import *
  11. from sound import *
  12. from pathfinding import *
  13. class Game:
  14. def __init__(self):
  15. pg.init()
  16. pg.mouse.set_visible(False)
  17. self.screen = pg.display.set_mode(RES)
  18. pg.event.set_grab(True)
  19. self.clock = pg.time.Clock()
  20. self.delta_time = 1
  21. self.global_trigger = False
  22. self.global_event = pg.USEREVENT + 0
  23. pg.time.set_timer(self.global_event, 40)
  24. self.new_game()
  25. def new_game(self):
  26. self.map = Map(self)
  27. self.player = Player(self)
  28. self.object_renderer = ObjectRenderer(self)
  29. self.raycasting = RayCasting(self)
  30. self.object_handler = ObjectHandler(self)
  31. self.weapon = Weapon(self)
  32. self.sound = Sound(self)
  33. self.pathfinding = PathFinding(self)
  34. pg.mixer.music.play(-1)
  35. def update(self):
  36. self.player.update()
  37. self.raycasting.update()
  38. self.object_handler.update()
  39. self.weapon.update()
  40. pg.display.flip()
  41. self.delta_time = self.clock.tick(FPS)
  42. pg.display.set_caption(f'{self.clock.get_fps() :.1f}')
  43. def draw(self):
  44. # self.screen.fill('black')
  45. self.object_renderer.draw()
  46. self.weapon.draw()
  47. # self.map.draw()
  48. # self.player.draw()
  49. def check_events(self):
  50. self.global_trigger = False
  51. for event in pg.event.get():
  52. if event.type == pg.QUIT or (event.type == pg.KEYDOWN and event.key == pg.K_ESCAPE):
  53. pg.quit()
  54. sys.exit()
  55. elif event.type == self.global_event:
  56. self.global_trigger = True
  57. self.player.single_fire_event(event)
  58. def run(self):
  59. while True:
  60. self.check_events()
  61. self.update()
  62. self.draw()
  63. if __name__ == '__main__':
  64. game = Game()
  65. game.run()