diff options
| author | Zoltan Szabatin <[email protected]> | 2025-05-14 22:08:14 -0700 |
|---|---|---|
| committer | Zoltan Szabatin <[email protected]> | 2025-05-14 22:08:14 -0700 |
| commit | b4d267c73293c6a46f4c85a07b415b6fe2b97251 (patch) | |
| tree | 4528f63bcdc0726ab10b26e072720f1e0ebb53d6 /src/splitscreen_duo/games/pong.py | |
| parent | feat: Split updates screen size (diff) | |
| download | splitscreen-duo-screen-orienting.tar.xz splitscreen-duo-screen-orienting.zip | |
feat: Screen rotation follows orientationscreen-orienting
Diffstat (limited to 'src/splitscreen_duo/games/pong.py')
| -rw-r--r-- | src/splitscreen_duo/games/pong.py | 99 |
1 files changed, 50 insertions, 49 deletions
diff --git a/src/splitscreen_duo/games/pong.py b/src/splitscreen_duo/games/pong.py index d82cdc7..c912197 100644 --- a/src/splitscreen_duo/games/pong.py +++ b/src/splitscreen_duo/games/pong.py @@ -127,6 +127,52 @@ class Pong(GameBase): return None + def draw_game(self, surface): + surface.fill(BLACK) + pygame.draw.rect( + surface, + WHITE, + [ + self.player_paddle[0], + self.player_paddle[1], + PADDLE_WIDTH, + PADDLE_HEIGHT, + ], + ) + pygame.draw.rect( + surface, + WHITE, + [self.ai_paddle[0], self.ai_paddle[1], PADDLE_WIDTH, PADDLE_HEIGHT], + ) + pygame.draw.circle( + surface, + WHITE, + [int(self.ball[0]), int(self.ball[1])], + BALL_SIZE, + ) + + if not self.is_joint_mode or self.instance != "primary": + player_score_text = self.font.render( + f"Player: {self.player_score}", True, WHITE + ) + ai_score_text = self.font.render( + f"AI: {self.ai_score}", True, WHITE + ) + + if self.is_vertical: + surface.blit( + player_score_text, + (self.screen_width // 2 - player_score_text.get_width() // 2, + self.screen_height - 40) + ) + surface.blit( + ai_score_text, + (self.screen_width // 2 - ai_score_text.get_width() // 2, 10) + ) + else: + surface.blit(player_score_text, (10, self.screen_height - 40)) + surface.blit(ai_score_text, (10, 10)) + def update(self): self.update_screen_dimensions() @@ -182,11 +228,10 @@ class Pong(GameBase): if not self.score_display_time: for event in pygame.event.get(): - result = self.handle_common_events(event) - action = self.input_handler.get_input(event) + action = self.handle_common_events(event) - if result is not None: - return result + if isinstance(action, dict) and action.get("command") is not None: + return action if action == "LEFT": self.move_player_paddle(-PADDLE_SPEED) @@ -213,51 +258,7 @@ class Pong(GameBase): continue - self.screen.fill(BLACK) - pygame.draw.rect( - self.screen, - WHITE, - [ - self.player_paddle[0], - self.player_paddle[1], - PADDLE_WIDTH, - PADDLE_HEIGHT, - ], - ) - pygame.draw.rect( - self.screen, - WHITE, - [self.ai_paddle[0], self.ai_paddle[1], PADDLE_WIDTH, PADDLE_HEIGHT], - ) - pygame.draw.circle( - self.screen, - WHITE, - [int(self.ball[0]), int(self.ball[1])], - BALL_SIZE, - ) - - if not self.is_joint_mode or self.instance != "primary": - player_score_text = self.font.render( - f"Player: {self.player_score}", True, WHITE - ) - ai_score_text = self.font.render( - f"AI: {self.ai_score}", True, WHITE - ) - - if self.is_vertical: - self.screen.blit( - player_score_text, - (self.screen_width // 2 - player_score_text.get_width() // 2, - self.screen_height - 40) - ) - self.screen.blit( - ai_score_text, - (self.screen_width // 2 - ai_score_text.get_width() // 2, 10) - ) - else: - self.screen.blit(player_score_text, (10, self.screen_height - 40)) - self.screen.blit(ai_score_text, (10, 10)) - + self.render_rotated(self.draw_game) pygame.display.flip() clock.tick(60) |