De nos jours, les écrans tactiles sont omniprésents. Il n’est pas surprenant que les développeurs de jeux utilisent de plus en plus les entrées tactiles dans leurs jeux, et les frameworks rendent cela de plus en plus facile.


PyGame facilite la création de jeux et d’applications qui peuvent tirer parti des entrées tactiles.


Le support tactile de PyGame

PyGame dispose d’un support intégré pour travailler avec des entrées tactiles. Cela inclut la prise en charge de la souris et des entrées tactiles au doigt.

Pour détecter une souris, vous pouvez utiliser la fonction pygame.MOUSEBUTTONDOWN et pygame.MOUSEBUTTONUP événements. Par exemple :

 for event in pygame.event.get():
    if event.type == pygame.MOUSEBUTTONDOWN:
        print("Mouse button pressed")

Pour détecter les entrées par contact avec le doigt, vous pouvez utiliser la fonction pygame.FINGERDOWN et pygame.FINGERUP événements. Par exemple :

 for event in pygame.event.get():
    if event.type == pygame.FINGERDOWN:
        print("Finger touched the screen")

Création d’un jeu simple

Vous pouvez trouver tout le code dans ce Repo GitHub.

Commencez par créer un jeu simple. Ce jeu consistera en un personnage que vous pourrez déplacer sur l’écran à l’aide d’entrées tactiles. Pour ce faire, vous devez créer une boucle de jeu et un personnage.

Avant de commencer, assurez-vous que pip est installé sur votre appareil, puis utilisez la commande suivante pour installer le fichier PyGame module :

 pip install pygame 

Maintenant, importez le module PyGame dans votre code de jeu :

 import pygame
pygame.init()

Ensuite, créez la fenêtre de jeu et un objet de jeu :

 # Set up the display
size = (400, 400)
screen = pygame.display.set_mode(size)

# Create a player object
player = pygame.Surface((50, 50))
player.fill((255, 0, 0))

# Set the initial position of the player
player_pos = [175, 175]

Enfin, créez la boucle du jeu :

 # The game loop
running = True

while running:
    # Check for events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Update the player position
    player_pos[0] += 5
    player_pos[1] += 5

    # Draw the player
    screen.blit(player, player_pos)

    # Update the display
    pygame.display.update()

Notez que le code ci-dessus ne crée qu’un jeu simple dans lequel le personnage se déplace sur l’écran. Pour rendre le jeu plus intéressant, vous pouvez ajouter de la physique et des collisions afin de créer des obstacles que le joueur devra surmonter.

Entrées tactiles de la souris pour le mouvement du joueur

Maintenant que vous avez un jeu avec un personnage, vous pouvez commencer à ajouter des entrées tactiles. Pour ce faire, vous devez ajouter un gestionnaire d’événements pour les entrées de la souris. Ajoutez le gestionnaire d’événements pygame.MOUSEBUTTONDOWN et pygame.MOUSEBUTTONUP événements de la boucle du jeu.

Créer un gestionnaire d’événement pour les entrées de la souris. Lorsqu’un joueur appuie sur le bouton de la souris, il met à jour la position du personnage en fonction de la position actuelle de la souris. Le programme ignorera le relâchement du bouton de la souris, puisqu’il n’a pas besoin d’agir dans ce cas.

 # The game loop
running = True

while running:
    # Check for events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        # Check for mouse inputs
        elif event.type == pygame.MOUSEBUTTONDOWN:
            mouse_x, mouse_y = event.pos
            player_pos[0] = mouse_x
            player_pos[1] = mouse_y
        elif event.type == pygame.MOUSEBUTTONUP:
            pass
    
    screen.fill((0, 0, 0))

    # Draw the player
    screen.blit(player, player_pos)

    # Update the display
    pygame.display.update()

Vous pouvez également ajouter une logique supplémentaire au gestionnaire d’événements pour faire bouger le joueur en réponse à l’entrée de la souris.

Entrées tactiles pour le mouvement du joueur

En plus des entrées par la souris, vous pouvez également ajouter des entrées par le toucher du doigt. Pour ce faire, vous devez ajouter un gestionnaire d’événements pour les entrées tactiles.

Ajouter le gestionnaire d’événements pygame.FINGERDOWN et pygame.FINGERUP Les événements de la boucle du jeu :

 # The game loop
running = True

while running:
    # Check for events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        # Check for mouse inputs
        elif event.type == pygame.MOUSEBUTTONDOWN:
            mouse_x, mouse_y = event.pos
            player_pos[0] = mouse_x
            player_pos[1] = mouse_y
        elif event.type == pygame.MOUSEBUTTONUP:
            pass
        # Check for finger inputs
        elif event.type == pygame.FINGERDOWN:
            finger_x, finger_y = event.pos
            player_pos[0] = finger_x
            player_pos[1] = finger_y
        elif event.type == pygame.FINGERUP:
            pass

    screen.fill((0, 0, 0))
    
    # Draw the player
    screen.blit(player, player_pos)

    # Update the display
    pygame.display.update()

Remarquez la similitude avec le gestionnaire d’événement d’entrée de la souris. Ce gestionnaire d’événement met à jour la position du personnage lorsque le joueur appuie avec son doigt sur l’écran. Lorsqu’il relâche son doigt, rien ne se passe. Cela vous permet de créer un jeu que vous pouvez contrôler à la fois à l’aide de la souris et du doigt. N’oubliez pas que vous pouvez également utiliser d’autres événements tels que pygame.FINGERMOTION pour répondre aux mouvements du doigt.

Fonctionnalités tactiles supplémentaires de Pygame

Avec les fonctionnalités tactiles de base en place, vous pouvez commencer à ajouter des fonctionnalités plus avancées. PyGame possède quelques fonctions intégrées qui peuvent vous aider à ajouter des fonctions tactiles à votre jeu.

La première fonctionnalité est le pygame.mouse.set_visible() fonction. Cette fonction permet de cacher le curseur de la souris. Cela peut s’avérer utile si vous souhaitez créer un jeu qui n’utilise que les entrées tactiles et non la souris.

Voici un exemple d’utilisation de la fonction set_visible() fonction :

 pygame.mouse.set_visible(False) 

Le pygame.mouse.set_pos() définit le curseur de la souris à une position spécifique sur l’écran. Ceci est utile si vous voulez déplacer la souris à un endroit spécifique sans utiliser les entrées de la souris.

Voici un exemple d’utilisation de la fonction set_pos() fonction :

 pygame.mouse.set_pos(200, 200) 

Vous pouvez utiliser la fonction pygame.mouse.get_rel() pour obtenir le mouvement relatif de la souris. Vous pouvez l’utiliser pour détecter la distance parcourue par la souris depuis le dernier événement souris.

Voici comment vous pouvez utiliser la fonction get_rel() fonction :

 dx, dy = pygame.mouse.get_rel() 

Enfin, vous pouvez utiliser la fonction pygame.mouse.get_pressed() pour vérifier si le joueur appuie sur un bouton de la souris. Cela peut être utile lors de la création de jeux avec des contrôles à la souris ou au toucher.

Voici un exemple d’utilisation de la fonction get_pressed() fonction :

 mouse_buttons = pygame.mouse.get_pressed() 

PyGame fournit également une fonction MOUSEWHEEL type d’événement que vous pouvez utiliser pour détecter les défilements de la molette de la souris. Il prend en charge les défilements verticaux et horizontaux.

Voici un exemple :

 for event in pygame.event.get():
    if event.type == pygame.MOUSEWHEEL:
        if event.y > 0:
            print("Mouse wheel scrolled up")
        elif event.y < 0:
            print("Mouse wheel scrolled down")

Créer des jeux interactifs avec des entrées tactiles

Les entrées tactiles étant en place, vous pouvez maintenant créer des jeux interactifs. Par exemple, vous pouvez créer un jeu dans lequel le joueur peut se déplacer sur l’écran à l’aide d’entrées tactiles. Vous pouvez également créer des jeux basés sur les gestes, où le joueur peut effectuer différents gestes pour déclencher des actions dans le jeu.

Les possibilités sont infinies lorsqu’il s’agit de créer des jeux avec des entrées tactiles. Avec l’aide de PyGame, vous pouvez créer des jeux à la fois amusants et interactifs. Alors, lancez-vous et commencez à créer !