Hacer que un objeto salte con la gravedad usando el módulo arcade en Python3

La biblioteca Arcade es un módulo de Python moderno que se usa ampliamente para desarrollar videojuegos en 2D con gráficos y sonido atractivos. Arcade es una biblioteca orientada a objetos. Se puede instalar como cualquier otro paquete de Python. Ahora, depende de la necesidad del desarrollador, qué tipo de juego, gráficos y sonido quiere usar con este conjunto de herramientas. Entonces, en este artículo, aprenderemos cómo hacer que un objeto salte con la gravedad usando la biblioteca Arcade en Python. Y para entender ese concepto, tomemos un ejemplo de una pelota robusta.

Los siguientes son los pasos:

Paso 1: Importar módulo arcade.

import arcade

Paso 2: Defina los parámetros de la pantalla de salida.

# Size of the screen
WIDTH = 600
HEIGHT = 600
TITLE = "Robust Ball "

Paso 3: Define el radio de la bola.

# Size of the ball.
BALL_RADIUS = 50

Paso 4: Defina el valor de la constante gravitatoria.

#  gravity 
GRAVITATIONAL_CONSTANT = 0.3

Paso 5: Defina una velocidad de rebote para la pelota.

# Percent of velocity maintained on a bounce.
BOUNCE = 0.9

Paso 6: define una función para dibujar una pelota usando arcade.draw_circle_filled() .

Python3

def draw(_delta_time):
  
    # Start the render.
    arcade.start_render()
  
    # Draw ball
    arcade.draw_circle_filled(draw.x, draw.y, BALL_RADIUS,
                              arcade.color.RED)
  
    draw.x += draw.delta_x
    draw.y += draw.delta_y
    draw.delta_y -= GRAVITATIONAL_CONSTANT

Paso 7: Defina la función para averiguar si golpeamos el borde izquierdo o derecho para que podamos retroceder.

Python3

# Figure out if we hit the left or 
# right edge and need to reverse.
if draw.x < BALL_RADIUS and draw.delta_x < 0:
     draw.delta_x *= -BOUNCE
  elif draw.x > WIDTH - BALL_RADIUS and draw.delta_x > 0:
    draw.delta_x *= -BOUNCE

Paso 8: Además, defina la función para averiguar si tocamos el fondo para que podamos retroceder.

Python3

# See if we hit the bottom
if draw.y < BALL_RADIUS and draw.delta_y < 0:
  
        if draw.delta_y * -1 > GRAVITATIONAL_CONSTANT * 15:
            draw.delta_y *= -BOUNCE
        else:
            draw.delta_y *= -BOUNCE / 2

Paso 9: use la función definida anteriormente y proporcione información para ellos.

Python3

draw.x = BALL_RADIUS
draw.y = HEIGHT
draw.delta_x = 3
draw.delta_y = 3

Paso 10: El último y más importante paso es definir la función principal que contiene la función arcade para asignar a la ventana de salida un ancho, alto y título adecuados.

Python3

def main():
    
    # Open up our window
    arcade.open_window(WIDTH, HEIGHT, TITLE)
    arcade.set_background_color(arcade.color.GREEN)
  
    # Tell the computer to call the draw 
    # command at the specified interval.
    arcade.schedule(draw, 1 / 80)
  
    # Run the program
    arcade.run()
  
    # When done running the program, close the window.
    arcade.close_window()
  
main()

Código completo para una mejor comprensión:

Python3

import arcade
  
  
# Size of the screen
WIDTH = 600
HEIGHT = 600
TITLE = "Robust Ball "
  
# Size of the circle.
BALL_RADIUS = 50
  
# How strong the gravity is.
GRAVITATIONAL_CONSTANT = 0.3
  
# Percent of velocity maintained on a bounce.
BOUNCE = 0.9
  
  
def draw(_delta_time):
  
    # Start the render.
    arcade.start_render()
  
    # Draw ball
    arcade.draw_circle_filled(draw.x, draw.y, BALL_RADIUS,
                              arcade.color.RED)
    draw.x += draw.delta_x
    draw.y += draw.delta_y
  
    draw.delta_y -= GRAVITATIONAL_CONSTANT
  
    # Figure out if we hit the left or 
    # right edge and need to reverse.
    if draw.x < BALL_RADIUS and draw.delta_x < 0:
        draw.delta_x *= -BOUNCE
    elif draw.x > WIDTH - BALL_RADIUS and draw.delta_x > 0:
        draw.delta_x *= -BOUNCE
  
    # See if we hit the bottom
    if draw.y < BALL_RADIUS and draw.delta_y < 0:
  
        if draw.delta_y * -1 > GRAVITATIONAL_CONSTANT * 15:
            draw.delta_y *= -BOUNCE
        else:
            draw.delta_y *= -BOUNCE / 2
  
  
draw.x = BALL_RADIUS
draw.y = HEIGHT
draw.delta_x = 3
draw.delta_y = 3
  
  
def main():
    # Open up our window
    arcade.open_window(WIDTH, HEIGHT, TITLE)
    arcade.set_background_color(arcade.color.GREEN)
  
    # Tell the computer to call the draw command 
    # at the specified interval.
    arcade.schedule(draw, 1 / 80)
  
    # Run the program
    arcade.run()
  
    # When done running the program, close the window.
    arcade.close_window()
  
  
main()

Producción:-

Publicación traducida automáticamente

Artículo escrito por anshitaagarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *