Python Arcade – Movimiento del jugador

En este artículo, discutiremos cómo mover a los jugadores usando arcade en Python.

Movimientos Automáticos

Podemos mover fácilmente a nuestros jugadores en cualquier dirección en particular en la sala de juegos. Para esto, vamos a dibujar un rectángulo usando el método draw_rectangle_filled() y luego cambiaremos la coordenada x de este rectángulo.

Sintaxis: arcade.draw_rectangle_filled(x, y, ancho, alto, color, ángulo)

Parámetros:

  • x : coordenada x del centro del rectángulo
  • y : coordenada y del centro del rectángulo
  • ancho : ancho del rectángulo
  • altura : altura del rectángulo
  • color : color del rectángulo
  • ángulo : rotación del rectángulo.

A continuación se muestra la implementación:

Python3

# Importing arcade module
import arcade
  
# Creating MainGame class       
class MainGame(arcade.Window):
    def __init__(self):
        super().__init__(600, 600, title="Player Movement")
  
        # Initializing the initial x and y coordinated
        self.x = 250 
        self.y = 250
  
        # Initializing a variable to store
        # the velocity of the player
        self.vel = 300
  
    # Creating on_draw() function to draw on the screen
    def on_draw(self):
        arcade.start_render()
  
        # Drawing the rectangle using
        # draw_rectangle_filled function
        arcade.draw_rectangle_filled(self.x, self.y,50, 50,
                                     arcade.color.GREEN )
    # Creating on_update function to
    # update the x coordinate
    def on_update(self,delta_time):
        self.x += self.vel * delta_time
  
        # Changing the direction of
        # movement if player crosses the screen
        if self.x>=550 or self.x<=50:
            self.vel *= -1
          
# Calling MainGame class       
MainGame()
arcade.run()

Producción:

Movimiento del jugador usando entradas de teclado

En arcade, podemos tomar entradas de los usuarios para mover a nuestros jugadores. Para ello, utilizaremos la función on_key_press() y on_key_release().

Sintaxis:

  • on_key_press(símbolo,modificadores)
  • on_key_release) símbolo, modificadores)

Parámetros:

  • símbolo: Tecla que fue golpeada
  • modificadores: ‘y’ bit a bit de todos los modificadores (shift, ctrl, bloq num) presionados durante este evento

A continuación se muestra la implementación:

Python3

# Importing arcade module
import arcade
  
# Creating MainGame class       
class MainGame(arcade.Window):
    def __init__(self):
        super().__init__(600, 600, title="Player Movement")
  
        # Initializing the initial x and y coordinated
        self.x = 250 
        self.y = 250
  
        # Initializing a variable to store
        # the velocity of the player
        self.vel_x = 0
        self.vel_y = 0
  
    # Creating on_draw() function to draw on the screen
    def on_draw(self):
        arcade.start_render()
  
        # Drawing the rectangle using
        # draw_rectangle_filled function
        arcade.draw_rectangle_filled(self.x, self.y,50, 50,
                                     arcade.color.GREEN )
    # Creating on_update function to
    # update the x coordinate
    def on_update(self,delta_time):
        self.x += self.vel_x * delta_time
        self.y += self.vel_y * delta_time
  
          
    # Creating function to change the velocity
    # when button is pressed
    def on_key_press(self, symbol,modifier):
  
        # Checking the button pressed
        # and changing the value of velocity
        if symbol == arcade.key.UP:
            self.vel_y = 300
        elif symbol == arcade.key.DOWN:
            self.vel_y = -300
        elif symbol == arcade.key.LEFT:
            self.vel_x = -300
        elif symbol == arcade.key.RIGHT:
            self.vel_x = 300
  
    # Creating function to change the velocity
    # when button is released
    def on_key_release(self, symbol, modifier):
  
        # Checking the button released
        # and changing the value of velocity
        if symbol == arcade.key.UP:
            self.vel_y = 0
        elif symbol == arcade.key.DOWN:
            self.vel_y = 0
        elif symbol == arcade.key.LEFT:
            self.vel_x = 0
        elif symbol == arcade.key.RIGHT:
            self.vel_x = 0
          
          
# Calling MainGame class       
MainGame()
arcade.run()

Producción:

Publicación traducida automáticamente

Artículo escrito por imranalam21510 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 *