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