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 :

Les couleurs en CSS3

CSS3 ajoute quelques nouvelles notations fonctionnelles pour définir des valeurs de couleur pour les éléments qui sont : rgba(), hsl(), hsla() et opecity.

fonction quoted_printable_decode, quoted_printable_decode

Convertit une chaîne quoted-printable en chaîne 8 bits

fonction strpos, strpos

Trouve la position d'un caractère dans une chaîne