Arcade est une bibliothèque Python populaire que vous pouvez utiliser pour créer des jeux d’arcade en 2D. Il s’agit d’une bibliothèque facile à utiliser qui fournit un cadre simple pour créer des jeux avec Python.


L’une des composantes essentielles de tout jeu est le mouvement des joueurs.


Création d’un jeu simple dans Arcade

Vous pouvez trouver le code complet dans ce repo GitHub.

Avant de commencer, assurez-vous que pip est installé sur votre appareil. Utilisez cette commande pour installer la bibliothèque arcade :

 pip install library 

Ensuite, créez une classe Player en tant que sous-classe de la classe arcade.Sprite et une classe MyGame en tant que sous-classe de arcade.Window. Les MyGame comportera des méthodes permettant de configurer les objets du jeu, de les afficher à l’écran, de mettre à jour l’état du jeu et de gérer les entrées de l’utilisateur. Le code de création de l’écran de jeu et de l’objet joueur est le suivant :

 import arcade

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

class Player(arcade.Sprite):
    def __init__(self):
        super().__init__("player.png", 0.5)
        self.center_x = SCREEN_WIDTH // 2
        self.center_y = SCREEN_HEIGHT // 2

class MyGame(arcade.Window):
    def __init__(self):
        super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "My Game")
        self.player = None
        arcade.set_background_color(arcade.color.BLACK)

    def setup(self):
        self.player = Player()

    def on_draw(self):
        arcade.start_render()
        self.player.draw()

    def update(self, delta_time):
        pass

MyGame().run()

Ajouter le mouvement du joueur avec l’entrée du clavier

Maintenant que vous avez créé l’écran de jeu et l’objet joueur, vous pouvez déplacer le joueur en réponse à une saisie au clavier. Définissez l’objet on_key_press() et on_key_release() que vous appellerez lorsque le joueur appuiera ou relâchera une touche.

 def on_key_press(self, key, modifiers):
    if key == arcade.key.LEFT:
        self.player.change_x = -5
    elif key == arcade.key.RIGHT:
        self.player.change_x = 5
    elif key == arcade.key.UP:
        self.player.change_y = 5
    elif key == arcade.key.DOWN:
        self.player.change_y = -5

def on_key_release(self, key, modifiers):
    if key == arcade.key.LEFT or key == arcade.key.RIGHT:
        self.player.change_x = 0
    elif key == arcade.key.UP or key == arcade.key.DOWN:
        self.player.change_y = 0

Lorsque vous ajoutez un mouvement de joueur avec des entrées clavier, vous pouvez personnaliser la vitesse de mouvement en changeant la valeur attribuée à self.player.change_x et self.player.change_y. Vous pouvez également ajouter des conditions pour restreindre les mouvements du joueur dans l’écran de jeu.

Ajouter un mouvement de joueur avec l’entrée de la souris

En plus des entrées clavier, vous pouvez également ajouter le mouvement du joueur à l’aide de la souris. Définissez le on_mouse_motion() qui s’exécutera lorsque le joueur bougera la souris. À l’intérieur de la méthode, définissez la propriété center_x et center_y propriétés de l’objet joueur par rapport à la position actuelle de la souris.

 def on_mouse_motion(self, x, y, dx, dy):
    self.player.center_x = x
    self.player.center_y = y

Lorsque vous ajoutez le mouvement du lecteur avec l’entrée de la souris, vous pouvez personnaliser le comportement de l’objet du lecteur lorsque l’utilisateur clique ou maintient la souris enfoncée en définissant des méthodes telles que on_mouse_press() ou on_mouse_drag(). Vous pouvez utiliser ces méthodes pour déclencher des actions du joueur telles que tirer ou sauter, en fonction de la mécanique du jeu.

Présentation de fonctionnalités supplémentaires

Vous pouvez encore améliorer les mouvements des joueurs en prenant en compte l’accélération et la décélération. Modifiez les on_key_press() pour soustraire ou ajouter au change_x et change_y de l’objet joueur, en fonction de la direction du mouvement. Les propriétés change_x et change_y à 0 dans les propriétés on_key_release() comme précédemment.

 def on_key_press(self, key, modifiers):
    if key == arcade.key.LEFT:
        self.player.change_x -= 5
    elif key == arcade.key.RIGHT:
        self.player.change_x += 5
    elif key == arcade.key.UP:
        self.player.change_y += 5
    elif key == arcade.key.DOWN:
        self.player.change_y -= 5

def on_key_release(self, key, modifiers):
    if key == arcade.key.LEFT or key == arcade.key.RIGHT:
        self.player.change_x = 0
    elif key == arcade.key.UP or key == arcade.key.DOWN:
        self.player.change_y = 0

Tout comme PyGame, vous pouvez également ajouter la détection de collision entre l’objet joueur et les autres objets du jeu, tels que les ennemis ou les obstacles dans l’arcade. Vous pouvez y parvenir en ajoutant le code suivant à la méthode update() de la méthode MyGame classe :

 def update(self, delta_time):
    self.player.update()

    # Check for collisions between player and other game objects
    collisions = arcade.check_for_collision_with_list(self.player, self.enemy_list)

    for collision in collisions:
        collision.kill()

Créer des jeux engageants avec le mouvement interactif du joueur

Le mouvement interactif des joueurs est un aspect crucial de tout jeu intéressant. L’utilisation de différents types de mécanismes de mouvement tels que le saut, la course, le vol et le glissement peut ajouter de la variété et de l’excitation au jeu.

Le fait de donner aux joueurs le contrôle de leurs mouvements ajoute un sentiment d’autonomie et d’immersion, ce qui peut conduire à une expérience de jeu plus satisfaisante.