Hopefully fixed level time and total time so they are reported correctly.
This commit is contained in:
		| @@ -12,6 +12,7 @@ class WickedQuest: | |||||||
|         """Initialize game and load sounds.""" |         """Initialize game and load sounds.""" | ||||||
|         self.sounds = initialize_gui("Wicked Quest") |         self.sounds = initialize_gui("Wicked Quest") | ||||||
|         self.currentLevel = None |         self.currentLevel = None | ||||||
|  |         self.gameStartTime = None | ||||||
|         self.lastThrowTime = 0 |         self.lastThrowTime = 0 | ||||||
|         self.throwDelay = 250 |         self.throwDelay = 250 | ||||||
|         self.player = None  # Will be initialized when first level loads |         self.player = None  # Will be initialized when first level loads | ||||||
| @@ -148,7 +149,7 @@ class WickedQuest: | |||||||
|     def game_loop(self): |     def game_loop(self): | ||||||
|         """Main game loop handling updates and state changes.""" |         """Main game loop handling updates and state changes.""" | ||||||
|         clock = pygame.time.Clock() |         clock = pygame.time.Clock() | ||||||
|         startTime = pygame.time.get_ticks() |         levelStartTime = pygame.time.get_ticks() | ||||||
|         currentLevelNum = 1 |         currentLevelNum = 1 | ||||||
|  |  | ||||||
|         while True: |         while True: | ||||||
| @@ -184,31 +185,33 @@ class WickedQuest: | |||||||
|             # Check for death first |             # Check for death first | ||||||
|             if self.currentLevel.player.get_health() <= 0: |             if self.currentLevel.player.get_health() <= 0: | ||||||
|                 if self.currentLevel.player.get_lives() <= 0: |                 if self.currentLevel.player.get_lives() <= 0: | ||||||
|                     # Game over |                     # Game over - use gameStartTime for total time | ||||||
|                     pygame.mixer.stop() |                     pygame.mixer.stop() | ||||||
|                     self.display_game_over(pygame.time.get_ticks() - startTime) |                     totalTime = pygame.time.get_ticks() - self.gameStartTime | ||||||
|  |                     self.display_game_over(totalTime) | ||||||
|                     return |                     return | ||||||
|                 else: |                 else: | ||||||
|                     pygame.mixer.stop() |                     pygame.mixer.stop() | ||||||
|  |                     self.currentLevel.player._health = self.currentLevel.player._maxHealth | ||||||
|                     self.load_level(currentLevelNum) |                     self.load_level(currentLevelNum) | ||||||
|                     self.currentLevel.player._health = self.currentLevel.player._maxHealth  # Restore health |                     levelStartTime = pygame.time.get_ticks()  # Reset level timer | ||||||
|                     continue |                     continue | ||||||
|  |  | ||||||
|             # Handle collisions and check level completion |             # Handle collisions and check level completion | ||||||
|             if self.currentLevel.handle_collisions(): |             if self.currentLevel.handle_collisions(): | ||||||
|                 # Level completed |                 # Level time is from levelStartTime | ||||||
|                 self.display_level_stats(pygame.time.get_ticks() - startTime) |                 levelTime = pygame.time.get_ticks() - levelStartTime | ||||||
|  |                 self.display_level_stats(levelTime) | ||||||
|  |  | ||||||
|                 # Try to load next level |  | ||||||
|                 currentLevelNum += 1 |                 currentLevelNum += 1 | ||||||
|                 if self.load_level(currentLevelNum): |                 if self.load_level(currentLevelNum): | ||||||
|                     # Reset timer for new level |                     levelStartTime = pygame.time.get_ticks()  # Reset level timer for new level | ||||||
|                     startTime = pygame.time.get_ticks() |  | ||||||
|                     continue |                     continue | ||||||
|                 else: |                 else: | ||||||
|                     # No more levels - game complete! |                     # Game complete - use gameStartTime for total | ||||||
|  |                     totalTime = pygame.time.get_ticks() - self.gameStartTime | ||||||
|                     messagebox("Congratulations! You've completed all available levels!") |                     messagebox("Congratulations! You've completed all available levels!") | ||||||
|                     self.display_game_over(pygame.time.get_ticks() - startTime) |                     self.display_game_over(totalTime) | ||||||
|                     return |                     return | ||||||
|      |      | ||||||
|             clock.tick(60)  # 60 FPS |             clock.tick(60)  # 60 FPS | ||||||
| @@ -222,6 +225,7 @@ class WickedQuest: | |||||||
|                 exit_game() |                 exit_game() | ||||||
|             elif choice == "play": |             elif choice == "play": | ||||||
|                 self.player = None  # Reset player for new game |                 self.player = None  # Reset player for new game | ||||||
|  |                 self.gameStartTime = pygame.time.get_ticks()  # Set game start time here | ||||||
|                 if self.load_level(1): |                 if self.load_level(1): | ||||||
|                     self.game_loop() |                     self.game_loop() | ||||||
|             elif choice == "learn_sounds": |             elif choice == "learn_sounds": | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user