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