Fix flying bug

This commit is contained in:
2026-10-17 16:49:29 +02:00
parent 5a78bb3b9d
commit d7e1711103
+14 -1
View File
@@ -38,6 +38,7 @@ class Game:
def start_game(self):
self.gameState.set_stop_game(False)
falling_steps = 0
# Spawn the player at the spawn point
spawn_point_position = self.map.get_first_block_type_position('spawn_point')
@@ -48,11 +49,23 @@ class Game:
while not self.gameState.stopGame:
if self.gameState.playerVelocity == -1 and self.waitingForInputCallback:
falling_steps = 0
self.gameState.set_player_velocity(self.waitingForInputCallback())
self.gameState.add_move_count()
elif self.gameState.playerVelocity != -1:
falling_steps += 1
if falling_steps > self.map.height:
self.gameState.set_game_won(False)
self.gameState.set_stop_game(True)
self._position_update()
continue
# Try to move the player according to his velocity
velocity_position = self.get_position_at_velocity()
if velocity_position is not None and not self.map.is_position_in_bounds(velocity_position):
self.gameState.set_stop_game(True)
self._position_update()
continue
block_at_velocity = None
if velocity_position is not None:
block_at_velocity = self.map.get_block_at(velocity_position[0], velocity_position[1])
@@ -85,7 +98,7 @@ class Game:
self.gameState.set_player_velocity(-1)
return
if current_velocity is "up": # Going up → Going down
if current_velocity == "up": # Going up → Going down
self.gameState.set_player_velocity("down")
return