Haz que tu personaje principal se mueva en respuesta a la entrada del jugador con los eventos de teclado y mouse de la biblioteca Arcade.

Arcade es una biblioteca popular de Python que puedes usar para crear juegos de arcade en 2D. Es una biblioteca fácil de usar que proporciona un marco simple para crear juegos con Python.

Uno de los componentes esenciales de cualquier juego es el movimiento del jugador.

Crear un juego simple en Arcade

Puedes encontrar el completo código en este repositorio de GitHub.

Antes de comenzar, asegúrese de tener pip instalado en su dispositivo. Use este comando para instalar la biblioteca arcade:

biblioteca de instalación pip

Después de eso, cree una clase Player como una subclase de la arcada. Duende clase, y un Mi juego clase como una subclase de arcada. Ventana. El Mi juego La clase tendrá métodos para configurar los objetos del juego, mostrarlos en la pantalla, actualizar el estado del juego y manejar las entradas del usuario. El código para crear la pantalla del juego y el objeto del jugador es el siguiente:

instagram viewer
importar arcada

ANCHO_PANTALLA = 800
PANTALLA_ALTURA = 600

claseJugador(arcada. Duende):
definitivamente__en eso__(ser):
super().__init__("jugador.png", 0.5)
self.center_x = ANCHO_PANTALLA // 2
self.center_y = SCREEN_HEIGHT // 2

claseMi juego(arcada. Ventana):
definitivamente__en eso__(ser):
super().__init__(PANTALLA_ANCHO, PANTALLA_ALTO, "Mi juego")
self.jugador = Ninguno
arcade.set_background_color (arcade.color. NEGRO)

definitivamenteconfiguración(ser):
self.jugador = Jugador()

definitivamenteen_dibujar(ser):
arcade.start_render()
self.player.draw()

definitivamenteactualizar(uno mismo, delta_time):
aprobar

MiJuego().run()

Agregar movimiento del jugador con entrada de teclado

Ahora que ha creado la pantalla del juego y el objeto del jugador, puede mover el jugador en respuesta a la entrada del teclado. Definir el on_key_press() y on_key_release() métodos, a los que llamará cuando el jugador presione o suelte una tecla.

definitivamenteon_key_press(auto, clave, modificadores):
si clave == arcade.clave. IZQUIERDA:
self.jugador.cambiar_x = -5
elif clave == arcade.clave. BIEN:
self.jugador.cambiar_x = 5
elif clave == arcade.clave. ARRIBA:
self.jugador.cambiar_y = 5
elif clave == arcade.clave. ABAJO:
self.jugador.cambiar_y = -5

definitivamenteon_key_release(auto, clave, modificadores):
si clave == arcade.clave. IZQUIERDA o clave == arcade.clave. BIEN:
self.jugador.cambiar_x = 0
elif clave == arcade.clave. ARRIBA o clave == arcade.clave. ABAJO:
self.jugador.cambiar_y = 0

Al agregar el movimiento del jugador con entradas de teclado, puede personalizar la velocidad de movimiento cambiando el valor asignado a self.player.change_x y self.player.change_y. También puede agregar condiciones para restringir el movimiento del jugador dentro de la pantalla del juego.

Agregar movimiento del jugador con la entrada del mouse

Además de las entradas del teclado, también puede agregar el movimiento del jugador usando la entrada del mouse. Definir el en_mouse_motion() método, que se ejecutará cuando el jugador mueva el ratón. Dentro del método, configure el centro_x y centro_y propiedades del objeto jugador a la posición actual del ratón.

definitivamenteen_mouse_motion(yo, x, y, dx, dy):
self.jugador.center_x = x
self.player.center_y = y

Al agregar el movimiento del jugador con la entrada del mouse, puede personalizar el comportamiento del objeto del jugador cuando el usuario hace clic o mantiene presionado el mouse definiendo métodos como on_mouse_press() o on_mouse_drag(). Puede usar estos métodos para desencadenar acciones del jugador, como disparar o saltar, según la mecánica del juego.

Introducción de funciones adicionales

Puede mejorar aún más el movimiento del jugador teniendo en cuenta la aceleración y la desaceleración. Modificar el on_key_press() método para restar o sumar a la cambio_x y cambiar_y propiedades del objeto jugador, dependiendo de la dirección del movimiento. También establezca el cambio_x y cambiar_y propiedades a 0 en el on_key_release() método, como antes.

definitivamenteon_key_press(auto, clave, modificadores):
si clave == arcade.clave. IZQUIERDA:
self.player.change_x -= 5
elif clave == arcade.clave. BIEN:
self.jugador.cambiar_x += 5
elif clave == arcade.clave. ARRIBA:
self.player.change_y += 5
elif clave == arcade.clave. ABAJO:
self.player.change_y -= 5

definitivamenteon_key_release(auto, clave, modificadores):
si clave == arcade.clave. IZQUIERDA o clave == arcade.clave. BIEN:
self.jugador.cambiar_x = 0
elif clave == arcade.clave. ARRIBA o clave == arcade.clave. ABAJO:
self.jugador.cambiar_y = 0

Al igual que PyGame, también puede agregar detección de colisión entre el objeto del jugador y otros objetos del juego, como enemigos u obstáculos en la sala de juegos. Puede lograr esto agregando el siguiente código al actualizar() metodo de la Mi juego clase:

definitivamenteactualizar(uno mismo, delta_time):
self.player.update()

# Comprueba si hay colisiones entre el jugador y otros objetos del juego
colisiones = arcade.check_for_colision_with_list (self.player, self.enemy_list)

para colisión en colisiones:
colisión.matar()

Cree juegos atractivos con el movimiento interactivo del jugador

El movimiento interactivo del jugador es un aspecto crucial de cualquier juego atractivo. El uso de diferentes tipos de mecánicas de movimiento, como saltar, correr, volar y deslizarse, puede agregar variedad y emoción al juego.

Dar a los jugadores control sobre su movimiento agrega una sensación de agencia e inmersión, lo que puede conducir a una experiencia de juego más satisfactoria.