Simple plateformer game playing
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
from .userPlayerGameHandler import UserPlayerGameHandler
|
||||
|
||||
GAME_HANDLERS= {
|
||||
"user player": UserPlayerGameHandler,
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
from abc import abstractmethod
|
||||
|
||||
from game.game import Game
|
||||
|
||||
class GameHandler:
|
||||
def __init__(self, game: Game):
|
||||
self.game = game
|
||||
self.game.set_waiting_for_input_callback(self.on_input_request)
|
||||
self.game.set_position_update_callback(self.on_position_update)
|
||||
|
||||
@abstractmethod
|
||||
def on_position_update(self) -> None:
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def on_input_request(self) -> str:
|
||||
pass
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from time import sleep
|
||||
from game.game import Game
|
||||
from game.handlers.gameHandler import GameHandler
|
||||
|
||||
|
||||
class UserPlayerGameHandler(GameHandler):
|
||||
KEYBOARD_INPUTS = ["w", "q", "a", "z", "e", "d", "c"]
|
||||
|
||||
def __init__(self, game: Game):
|
||||
super().__init__(game)
|
||||
|
||||
def on_position_update(self) -> None:
|
||||
"""
|
||||
Refresh the screen
|
||||
"""
|
||||
print("\033[2J\033[H" + self.game.to_string())
|
||||
sleep(0.1)
|
||||
|
||||
def on_input_request(self) -> str:
|
||||
"""
|
||||
Listen for keyboard input, and map it to a gameState PLAYER_MOVEMENTS
|
||||
"""
|
||||
return self.game.gameState.PLAYER_MOVEMENTS[self.KEYBOARD_INPUTS.index(input(f"Enter a movement ({', '.join(self.KEYBOARD_INPUTS)}): "))]
|
||||
Reference in New Issue
Block a user