--- /home/docs/checkouts/readthedocs.org/user_builds/arcade-library/checkouts/2.5.7/arcade/examples/platform_tutorial/03_user_control.py
+++ /home/docs/checkouts/readthedocs.org/user_builds/arcade-library/checkouts/2.5.7/arcade/examples/platform_tutorial/04_add_gravity.py
@@ -15,6 +15,8 @@
# Movement speed of player, in pixels per frame
PLAYER_MOVEMENT_SPEED = 5
+GRAVITY = 1
+PLAYER_JUMP_SPEED = 20
class MyGame(arcade.Window):
@@ -76,7 +78,9 @@
self.wall_list.append(wall)
# Create the 'physics engine'
- self.physics_engine = arcade.PhysicsEngineSimple(self.player_sprite, self.wall_list)
+ self.physics_engine = arcade.PhysicsEnginePlatformer(self.player_sprite,
+ self.wall_list,
+ GRAVITY)
def on_draw(self):
""" Render the screen. """
@@ -93,9 +97,8 @@
"""Called whenever a key is pressed. """
if key == arcade.key.UP or key == arcade.key.W:
- self.player_sprite.change_y = PLAYER_MOVEMENT_SPEED
- elif key == arcade.key.DOWN or key == arcade.key.S:
- self.player_sprite.change_y = -PLAYER_MOVEMENT_SPEED
+ if self.physics_engine.can_jump():
+ self.player_sprite.change_y = PLAYER_JUMP_SPEED
elif key == arcade.key.LEFT or key == arcade.key.A:
self.player_sprite.change_x = -PLAYER_MOVEMENT_SPEED
elif key == arcade.key.RIGHT or key == arcade.key.D:
@@ -104,11 +107,7 @@
def on_key_release(self, key, modifiers):
"""Called when the user releases a key. """
- if key == arcade.key.UP or key == arcade.key.W:
- self.player_sprite.change_y = 0
- elif key == arcade.key.DOWN or key == arcade.key.S:
- self.player_sprite.change_y = 0
- elif key == arcade.key.LEFT or key == arcade.key.A:
+ if key == arcade.key.LEFT or key == arcade.key.A:
self.player_sprite.change_x = 0
elif key == arcade.key.RIGHT or key == arcade.key.D:
self.player_sprite.change_x = 0