Pygame redimensionner un sprite [Résolu]

Signaler
Messages postés
44
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
20 février 2020
-
 trifou -
Bonjour,

En ce moment je code en python avec PyCharm et j'utilise le module Pygame.
J'ai créer un sprite qui représente et quand j'applique l'image du joueur sur la fenêtre il apparaît trop gros et il prend tout l'écran.
J'ai cherché sur internet comment redimensionner un sprite avec Pygame mais je n'ai rien trouvé.

Donc voilà ma question; comment redimensionner un sprite (rétrécir pour mon cas) avec le module Pygame.

Voilà le programme au cas où:
#Importer Pygame
import pygame
pygame.init()

#Créer la classe du joueur
class Player(pygame.sprite.Sprite):

    def __init__(self):
        super().__init__()
        self.vie = 100
        self.max_vie = 100
        self.faim = 75
        self.max_faim = 100
        self.chance = 2
        self.max_chance = 15
        self.image = pygame.image.load('project/player.png')
        self.rect = self.image.get_rect()

#Générer la fenêtre
pygame.display.set_caption("Survie de L'Extrème")
logo = pygame.image.load("project/logo.ico")
pygame.display.set_icon(logo)
screen = pygame.display.set_mode((1080, 720))

#Impoerter l'arrière plan du jeu
background = pygame.image.load('project/fond.jpg')

#Charger le joueur
player = Player()

running = True

#Boucle tant que running = vraie
while running:

    #Appliquer l'arrière plan du jeu
    screen.blit(background, (-150, -200))

    #Appliquer l'image du joueur
    screen.blit(player.image, (0, 0))

    #Mettre à jour l'écran
    pygame.display.flip()

    #Si le joueur ferme la fenêtre:
    for event in pygame.event.get():
        #Que la fenêtre est fermée
        if event.type == pygame.QUIT:
            running = False
            pygame.quit()
            print("Fermeture du jeu...")
            import time
            time.sleep(2.5)
            print ("Le jeu à bien été fermé !")




Merci d'avance

1 réponse

Bonjour,

Ce qui se redimensionne, ce sont les surfaces, cela peut se faire avec la fonction scale située dans le module transform de pygame.
Si tu dois à chaque lancement redimensionner ton image, autant le faire une bonne fois pour toute avec un logiciel de traitement d'images.

Pour réguler le fps avec pygame, il faut utiliser le module time de pygame (et non un sleep), et un objet Clock, les exemples pour faire ça ne manquent pas sur internet.