aboutsummaryrefslogtreecommitdiff
path: root/src/splitscreen_duo/games/pong.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/splitscreen_duo/games/pong.py')
-rw-r--r--src/splitscreen_duo/games/pong.py99
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)