def setUp(self): pygame.init() screen = pygame.display.set_mode((800, 600)) self.screen = GameScreen(NEW_GAME_DIR) State.screen = self.screen self.player = PlayerSprite((5, 5), (60, 60), Direction.down) self.creature_collide = PlayerSprite((5, 5), (60, 60), Direction.up) self.creature_miss = PlayerSprite((5, 4), (60, 60), Direction.up)
class TestGameScreen(unittest.TestCase): screen = None player = None creature_collide = None creature_miss = None State.screen = None State.health = 0 def setUp(self): pygame.init() screen = pygame.display.set_mode((800, 600)) self.screen = GameScreen(NEW_GAME_DIR) State.screen = self.screen self.player = PlayerSprite((5, 5), (60, 60), Direction.down) self.creature_collide = PlayerSprite((5, 5), (60, 60), Direction.up) self.creature_miss = PlayerSprite((5, 4), (60, 60), Direction.up) def test_player_collide(self): collide = self.screen.player_enemy_collide(self.player, self.creature_collide) self.assertEqual(True, collide) def test_player_miss(self): collide = self.screen.player_enemy_collide(self.player, self.creature_miss) self.assertEqual(False, collide) def test_opposite_direction_up(self): direction = Direction.up correctDir = Direction.down direction = self.screen.oppositeDirection(direction) self.assertEqual(direction, correctDir) def test_opposite_direction_down(self): direction = Direction.down correctDir = Direction.up direction = self.screen.oppositeDirection(direction) self.assertEqual(direction, correctDir) def test_opposite_direction_left(self): direction = Direction.left correctDir = Direction.right direction = self.screen.oppositeDirection(direction) self.assertEqual(direction, correctDir) def test_opposite_direction_right(self): direction = Direction.right correctDir = Direction.left direction = self.screen.oppositeDirection(direction) self.assertEqual(direction, correctDir)
drawResult = 0 gameIsOn = True clock = pygame.time.Clock() screenSurface = pygame.display.set_mode((MAIN_WINDOW_WIDTH, MAIN_WINDOW_HEIGHT)) currentScreen = MainScreen(pygame, screenSurface) while gameIsOn == True: systemEvents = pygame.event.get() for event in systemEvents: if event.type == pygame.QUIT: gameIsOn = False screenSurface.fill(BACKGROUND_COLOR) drawResult = currentScreen.draw(systemEvents) if drawResult == Сonstants.MAIN_SCREEN: currentScreen = MainScreen(pygame, screenSurface) elif drawResult == Сonstants.GAME_SCREEN_ID: currentScreen = GameScreen(pygame, screenSurface) elif drawResult == Сonstants.END_SCREEN: currentScreen = EndScreen(pygame, screenSurface) elif drawResult == Сonstants.EXIT_GAME: gameIsOn = False pygame.display.flip() clock.tick(60) pygame.quit()