Python Arcade – Adding Moving Platforms
In this article, we will discuss how to add moving platforms to our arcade games in Python.
Adding Moving Platform
We can easily add moving platforms in our arcade game by following the below steps:
- Create 2 new variables for sprite and velocity of moving platform.
self.moving_vel = 3 self.moving_platform = None
- Load the sprite and add the initial coordinates.
self.moving_platform = arcade.Sprite("Moving.png",1) self.moving_platform.center_x = 500 self.moving_platform.center_y = 500
- Update the y-coordinate of the platform.
self.moving_platform.center_y -= self.moving_vel
- Change the direction of the platform if the platform crosses the boundary.
if self.moving_platform.center_y < 100 or self.moving_platform.center_y>600: self.moving_vel *= -1
For this, we are going to create a MainGame() class. Inside this class first, we are going to initialize some variables for player’s velocity, platform velocity, camera, player sprite, physics engine, and our scene. After that, we will create 6 functions inside this class.
- on_draw(): Inside this function, we will use our camera, and then we will draw our scene.
- setup(): In this function, we will initialize our camera and scene object then we will load our player and platform’s sprites. After that, we will call the PhysicsEnginePlatformer() function.
- on_update(): In this function, we will update the x coordinate of the player’s sprite by adding the value of the velocity variable and we also update the y coordinate of our moving platform. After that, we will call our camera_move() function.
- on_key_press(): In this function, we will change the value of the vel_x variable according to the keyboard key that is pressed.
- on_key_release(): In this function, we will change the value of the vel_x variable according to the keyboard key that is released.
- camera_move(): In this function, we will change the position of the camera according to the current position of the player.
Below is the implementation:
My Personal Notes arrow_drop_up
Please Login to comment...