-
Book Overview & Buying
-
Table Of Contents
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 FalseIt'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...