def __init__(self, stateMachine, db): # Calls 'State' constructor State.__init__(self) self.stateMachine = stateMachine # Create 'TitleMenu' for this state and add to the 'MenuManager' MenuManager.addMenu("TitleMenu", TitleMenu(db))
def draw(self, screen): # Draw the menu MenuManager.createMenu(self.menuArgs, self.options, self.rectContainer, self.rectOptions, screen) # Draw the text inside the menu for i in range(self.menuArgs['numberOfOptions']): MenuManager.drawText(screen, self.options[i], GameConfig.WHITE, self.rectOptions[i], self.font, center=True)
def run(self): for event in pygame.event.get(): self.stateMachine.curState.update(event) MenuManager.update(event) if event.type == QUIT: exit()
def run(self): # Clear the screen before drawing self.screen.fill(GameConfig.SCREEN_CLEAR_COLOR) # Draw the current state self.stateMachine.curState.draw(self.screen) MenuManager.draw(self.screen) # Update the display pygame.display.update()
def __init__(self, db): # Initialize PyGame pygame.init() self.stateMachine = StateMachine() # States self.stateMachine.addState("TitleScreen", TitleScreen(self.stateMachine, db)) self.stateMachine.addState("Settings", Settings(self.stateMachine)) self.stateMachine.addState("InGame", InGame(self.stateMachine)) # Transitions self.stateMachine.addTransition("toTitleScreen", Transition("TitleScreen")) self.stateMachine.addTransition("toSettings", Transition("Settings")) self.stateMachine.addTransition("toInGame", Transition("InGame")) # Set the initial state self.stateMachine.setState("TitleScreen") # Initialize Managers self.eventManager = EventManager(self.stateMachine) self.displayManager = DisplayManager(self.stateMachine) self.menuManager = MenuManager(self.stateMachine)