class SpriteListTests(TestCase): def setUp(self): self.factory = TEST_GAME_CONTEXT.tile_factory self.tile = self.factory.get('g') self.frame = Frame(TEST_GAME_CONTEXT.screen, Rect(40,50, 160,160)) self.sprite = Sprite(self.frame, self.tile, Vector(1,1), speed=2) @showdoc def test_sprite_list(self): """Two sprites are moving.""" sprites = SpriteList() s1 = Sprite(self.frame, self.factory.get('g'), pos=Vector(1,0), speed=2) s2 = Sprite(self.frame, self.factory.get('b'), pos=Vector(1,1), speed=4) sprites.append(s1) sprites.append(s2) s1.add_move(RIGHT) s1.add_move(DOWN) s2.add_move(DOWN) while sprites.is_moving(): sprites.update() self.frame.clear() sprites.draw() pygame.display.update() time.sleep(SHORT_DELAY)
def __init__(self, screen, egen, title_rect, image, menu, menu_rect, moves): self.screen = screen self.events = egen self.events.add_callback(self) frame = Frame(self.screen, title_rect) self.title = ImageBox(frame, image) frame = Frame(self.screen, menu_rect) self.menu = TextMenuBox(frame, menu, self.events, moves)
class FrameTests(TestCase): def setUp(self): self.screen = Screen(RESOLUTION, BACKGROUND_IMAGE) self.frame = Frame(self.screen, Rect(50, 50, 100, 100)) @graphictest def test_blit(self): """image drawn into frame, then cleared.""" bitmap = image.load(TILE).convert() dest = Rect(32, 16, 32, 32) source = Rect(0, 0, 32, 32) self.frame.blit(bitmap, dest, source) next_frame() self.frame.clear() @graphictest def test_text(self): """Text drawn into frame, then cleared.""" self.frame.print_text('Hello Frame', Vector(50,50), \ DEMIBOLD_BIG, CYAN ) next_frame() self.frame.clear() def test_get_dest_rect(self): """Adds rectangle values to frame position.""" rect = Rect(10, 20, 20, 31) dest = self.frame.get_dest_rect(rect) self.assertEqual(dest, Rect(60, 70, 20, 31))
def create_status_box(self): frame = Frame(self.game.screen, Rect(660, 20, 200, 200)) data = { 'score': 0, 'level': 1, } self.status_box = DictBox(frame, data)
def __init__(self): self.game = Game() floorframe = Frame(self.game.screen, Rect(0, 542, MAX_X + 36, 596)) self.floor = TiledMap(self.game, floorframe) self.floor.fill_map('#', (25, 2)) self.player = Player(self.game) self.aliens = Group() self.create_aliens() self.shots = Group() self.alien_shots = Group()
def test_game_paused(self, screen): """Display pause box.""" frame = Frame(screen, Rect(100, 100, 260, 160)) egen = EventGenerator() egen.add_scripted_keys(['a']) gp = GamePausedBox(frame, config.PAUSE_IMAGE, text='test game paused signal', egen=egen) gp.draw() pygame.display.update() gp.activate()
def show_highscores(new_score, screen, rect, filename, image, textpos): """ Display high score list and gets a name if the score is high enough. """ screen.clear() frame = Frame(screen, rect) events = EventGenerator() hs = HighscoreList(filename) hs = HighscoreBox(frame, events, hs, image, textpos) hs.enter_score(new_score) hs.activate() screen.clear() pygame.display.update()
class SpriteTests(TestCase): def setUp(self): self.factory = TEST_GAME_CONTEXT.tile_factory self.tile = self.factory.get('g') self.frame = Frame(TEST_GAME_CONTEXT.screen, Rect(40, 50, 160, 160)) self.sprite = Sprite(self.frame, self.tile, Vector(1, 1), speed=2) def test_sprite_pos(self): """Sprite has a position.""" sprite = Sprite(self.frame, self.factory.get('g'), pos=Vector(4, 3)) self.assertEqual(sprite.pos.x, 4) self.assertEqual(sprite.pos.y, 3) def move(self): """Moves sprite until movement terminates.""" while self.sprite.is_moving(): self.sprite.move() self.frame.clear() self.sprite.draw() pygame.display.update() time.sleep(SHORT_DELAY) @showdoc def test_move_sprite(self): """Sprite moves east, then southeast.""" self.sprite.add_move(RIGHT) self.sprite.add_move(DOWNRIGHT) self.move() self.assertEqual(self.sprite.pos.x, 3) self.assertEqual(self.sprite.pos.y, 2) @showdoc def test_priority_move_sprite(self): """Sprite moves southeast, then east.""" self.sprite.add_move(RIGHT) self.sprite.add_move(DOWNRIGHT, True) self.move()
def test_highscores(self, screen): """Enters something into the highscore list.""" os.system('cp %s %s' % (HIGHSCORE_BACKUP, config.HIGHSCORE_FILE)) hl = HighscoreList(config.HIGHSCORE_FILE) events = EventGenerator() events.add_scripted_keys(['B', 'C', chr(K_RETURN), chr(K_RETURN)]) events.add_scripted_event(QUIT_EVENT) screen.clear() frame = Frame(screen, config.HIGHSCORE_RECT) hs = HighscoreBox(frame, events, hl, config.HIGHSCORE_IMAGE, config.HIGHSCORE_TEXT_POS) hs.enter_score(33333) hs.activate() assert hl.scores[0] == (33333, 'BC')
def __init__(self): self.game = Game() self.level = None self.pac = None self.ghosts = [] self.status_box = None self.create_level() self.create_pac() self.create_ghosts() self.create_status_box() frame = Frame(self.game.screen, Rect(660, 220, 200, 200)) self.lives = BarDisplay(frame, self.game, 3, 'p') self.collided = False self.mode = None self.update_mode = self.update_ingame
self.steps -= 1 if self.steps <= 0: self.finished = True if self.callback: self.callback() def draw(self): self.tile.draw(self.frame, self.current_vector) def wait_for_move(move, screen=None, draw=None, delay=0.01): while not move.finished: if screen: screen.clear() move.move() if draw: draw() move.draw() pygame.display.update() time.sleep(delay) if __name__ == '__main__': screen = Screen(Vector(800, 520), '../lightsouls/data/background.png') frame = Frame(screen, Rect(64, 64, 320, 320)) tile_factory = TileFactory('../lightsouls/data/tiles.conf') pac = tile_factory.get('b.pac_right') move = Move(frame, pac, Vector(50, 50), RIGHT * 2, 200) wait_for_move(move, screen) time.sleep(1)
def test_game_over(self, screen): """Display box with Game Over message.""" frame = Frame(screen, Rect(100, 100, 260, 160)) go = GameOverBox(frame, config.GAME_OVER_IMAGE, font=config.DEMIBOLD_BIG, color=config.WHITE) go.activate()
self.map.draw() def increase(self): self.value += 1 self.redraw() def decrease(self): if self.value > 0: self.value -= 1 self.redraw() if __name__ == '__main__': screen = Screen() tile_factory = TileFactory() frame = Frame(screen, Rect(96, 64, 640, 32)) bananas = BarDisplay(frame, tile_factory, 0, 'b', False) frame = Frame(screen, Rect(64, 64, 32, 320)) cherries = BarDisplay(frame, tile_factory, 10, 'c', True) for i in range(15): pygame.display.update() time.sleep(0.1) # screen.clear() bananas.increase() cherries.decrease() pygame.display.update() for i in range(15): pygame.display.update() time.sleep(0.1) screen.clear() bananas.decrease()
def setUp(self): self.factory = TEST_GAME_CONTEXT.tile_factory self.tile = self.factory.get('g') self.frame = Frame(TEST_GAME_CONTEXT.screen, Rect(40,50, 160,160)) self.sprite = Sprite(self.frame, self.tile, Vector(1,1), speed=2)
def setUp(self): self.screen = Screen(RESOLUTION, BACKGROUND_IMAGE) self.frame = Frame(self.screen, Rect(50, 50, 100, 100))