Pygame redimensionner un sprite

Résolu/Fermé
Enz0lanterne828 Messages postés 50 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 21 mars 2020 - Modifié le 14 janv. 2020 à 19:03
 trifou - 17 janv. 2020 à 08:55
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.
2