
Kivy Blueprints
By :

The last thing that is absolutely vital for the gameplay is the collision detection, which ends the game when the bird collides with either the floor, the ceiling, or a pipe.
Checking whether we've met floor or ceiling is as simple as comparing bird.y
to a ground level or screen height (taking into account the height of the bird itself in the second comparison). In KivyBirdApp
, we have the following code
def test_game_over(self): if self.bird.y < 90 or \ self.bird.y > self.root.height - 50: return True return False
It's a bit more complex when looking for a collision with pipes, but not substantially so. We can subdivide this next check in two: first, we test for a horizontal collision using Kivy's built-in collide_widget()
method, and then check whether vertical coordinates are within limits imposed by the lower_len
and upper_len
attributes of a pipe we're flying into.
Hence, the revised version of the KivyBirdApp.test_game_over()
method...