Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import msvcrt
- import time
- import engine.engine as engine
- FPS = 60
- class Game:
- def __init__(self):
- self.renderer = engine.Renderer(79, 25)
- self.camera = engine.Camera(23, 4)
- self.launched = True
- self.all_sprites = []
- self.map = engine.Sprite(self.camera, 0, 1, 0, 0, " ")
- self.map.set_from_file("saves/map.sav")
- self.all_sprites.append(self.map)
- self.main_player = engine.Player(self.camera, self.renderer.width // 2 - self.camera.x, self.renderer.height // 2 - self.camera.y)
- self.all_sprites.append(self.main_player)
- self.hud = engine.Hud(self.camera, self.main_player, self.renderer.width, self.renderer.height)
- def update(self):
- for i in range(0, len(self.all_sprites)):
- self.all_sprites[i].update(self.camera)
- self.hud.update(self.main_player)
- def render(self):
- self.renderer.clear()
- os.system("cls")
- for i in range(0, len(self.all_sprites)):
- self.renderer.draw_sprite(self.all_sprites[i])
- self.renderer.draw_sprite(self.hud.hp_hud)
- self.renderer.present()
- def input(self):
- input = msvcrt.getch()
- if input == b'z' and self.renderer.area[self.main_player.rel_y - 1][self.main_player.rel_x] == " ":
- self.main_player.move(0, -1)
- self.camera.move(0, 1)
- elif input == b'q' and self.renderer.area[self.main_player.rel_y][self.main_player.rel_x - 1] == " ":
- self.main_player.move(-1, 0)
- self.camera.move(1, 0)
- elif input == b's' and self.renderer.area[self.main_player.rel_y + 1][self.main_player.rel_x] == " ":
- self.main_player.move(0, 1)
- self.camera.move(0, -1)
- elif input == b'd' and self.renderer.area[self.main_player.rel_y][self.main_player.rel_x + 1] == " ":
- self.main_player.move(1, 0)
- self.camera.move(-1, 0)
- if input == b'\x1b':
- self.launched = False
- def main_loop(self):
- while(self.launched):
- frame_start = time.time()
- self.update()
- self.render()
- frame_time = time.time() - frame_start
- if frame_time > 1000 / FPS:
- time.sleep(frame_time - 1000 / FPS)
- self.input()
- def run(self):
- self.main_loop()
- game = Game()
- game.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement