oujood.com

Comment mettre à l'échelle et faire pivoter une image dans PyGame avec la souris

Tutoriel Comment utiliser la souris pour mettre à l'échelle et faire pivoter une image dans PyGame ? Apprenez à mettre à l'échelle et faire pivoter une image dans PyGame avec la souris. Ce tutoriel vous guidera tout au long du processus, étape par étape.

Comment utiliser la souris pour mettre à l'échelle et faire pivoter une image dans PyGame ?

Rotation d'une image en utilisant la souri

Pour effectuer la rotation de l'image en fonction du mouvement horizontal de la souris. Assurez-vous d'avoir une image valide à l'emplacement spécifié dans votre code. et executer le code suivant :

Exemple :     📋 Copier le code

import pygame
import sys
from pygame.locals import *

pygame.init()

# Initialisez la fenêtre
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('Pygame - Rotate Image')

# Chargez l'image
image = pygame.image.load('exemple_image.png')
original_image = image  # Conservez une copie de l'image originale

# Position initiale de l'image
image_rect = image.get_rect(center=(width // 2, height // 2))

# Paramètre initial de rotation
rotation_angle = 0.0

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

        elif event.type == MOUSEMOTION:
            if pygame.mouse.get_pressed()[0]:  # Bouton gauche enfoncé
                x, _ = event.rel
                rotation_angle += x  # Faites pivoter l'image en fonction du mouvement horizontal

    # Rotation de l'image
    rotated_image = pygame.transform.rotate(original_image, rotation_angle)

    # Mettez à jour la position de l'image rectangulaire
    image_rect = rotated_image.get_rect(center=image_rect.center)

    # Effacez l'écran
    screen.fill((255, 255, 255))

    # Dessinez l'image sur l'écran
    screen.blit(rotated_image, image_rect)

    # Mettez à jour l'affichage
    pygame.display.flip()

Voici un rappel des fonctionnalités de ce code :

  • Il initialise Pygame et la fenêtre avec les dimensions spécifiées.
  • Charge l'image et conserve une copie originale.
  • Définit la position initiale de l'image au centre de la fenêtre.
  • Utilise l'événement MOUSEMOTION pour détecter le mouvement horizontal de la souris lorsque le bouton gauche est enfoncé.
  • Fait pivoter l'image en fonction du mouvement horizontal.
  • Met à jour la position de l'image rectangulaire.
  • Efface l'écran, dessine l'image rotative, et met à jour l'affichage.

Vous pouvez également ajouter une pause ou une limite de rafraîchissement pour rendre l'animation plus lente et plus facile à contrôler. Par exemple, ajouter pygame.time.delay(10) à la fin de la boucle principale pour une pause de 10 millisecondes entre les trames.

effectuer un scale (mise à l'échelle) en utilisant la souri

Pour effectuer la mise à l'échelle de l'image en fonction du mouvement de la molette de la souris. Assurez-vous d'avoir une image valide à l'emplacement spécifié.

Voici le code

Exemple :     📋 Copier le code

import pygame
import sys
from pygame.locals import *

pygame.init()

# Initialisez la fenêtre
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('Pygame - Scale Image')

# Chargez l'image
image = pygame.image.load('exemple_image.png')
original_image = image  # Conservez une copie de l'image originale

# Position initiale de l'image
image_rect = image.get_rect(center=(width // 2, height // 2))

# Paramètre initial de mise à l'échelle
scale_factor = 1.0

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

        elif event.type == MOUSEBUTTONDOWN:
            if event.button == 4:  # Molette vers le haut
                scale_factor += 0.1
            elif event.button == 5:  # Molette vers le bas
                scale_factor -= 0.1

    # Mise à l'échelle de l'image
    scaled_image = pygame.transform.scale(original_image, (int(image.get_width() * scale_factor), int(image.get_height() * scale_factor)))

    # Mettez à jour la position de l'image rectangulaire
    image_rect = scaled_image.get_rect(center=image_rect.center)

    # Effacez l'écran
    screen.fill((255, 255, 255))

    # Dessinez l'image sur l'écran
    screen.blit(scaled_image, image_rect)

    # Mettez à jour l'affichage
    pygame.display.flip()

Voici les fonctionnalités de votre code :

  • Il initialise Pygame et la fenêtre avec les dimensions spécifiées.
  • Charge l'image et conserve une copie originale.
  • Définit la position initiale de l'image au centre de la fenêtre.
  • Utilise l'événement MOUSEBUTTONDOWN pour détecter les mouvements de la molette de la souris.
  • Met à jour le facteur d'échelle en fonction de la direction de la molette (haut ou bas).
  • Mise à l'échelle de l'image en fonction du facteur d'échelle.
  • Met à jour la position de l'image rectangulaire.
  • Efface l'écran, dessine l'image mise à l'échelle, et met à jour l'affichage.

Assurez-vous que Pygame est correctement installé et que l'image spécifiée existe à l'emplacement spécifié. Vous pouvez également ajuster le facteur d'échelle pour répondre à vos besoins spécifiques.


Voir aussi nos tutoriel :

L'Attribut contextmenu

Spécifie un menu contextuel pour un élément. Le menu contextuel s'affiche lorsqu'un utilisateur clique sur l'élément

jQuery manipulation css

jQuery manipulation css

fonction strtolower, strtolower

Renvoie une chaîne en minuscules