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é !")
Ça fait un moment que je n'ai pas utilisé pygame, mais, dans ton cas, tu as deux options.
La pourrie, celle que tu souhaites si j'ai compris, qui consiste à diminuer à l'échelle (scale en anglais) ta grosse image. Cette option est pourrie parce que tu vas intégrer une grosse quantité d'octets pour rendre une petite image.
La meilleure, ne pas utiliser pygame pour cela, qui consiste à redimensionner l'image à la bonne taille et suffisamment compressée avec The GIMP par exemple, puis, d'utiliser la nouvelle image à la bonne taille dans pygame.
Maintenant, imaginons que tu as un personnage qui peut grossir comme Mario et donc avoir des échelles de taille différentes, c'est-à-dire que le physique du personnage ne change pas, tu peux dimensionner en amont la taille la plus élevée, et tu gères l'échelle de dimensionnement selon la taille voulue dans le jeu en fonction des coups reçus par un ennemi par exemple (rapetissement).
Je ne l'ai pas vérifié, mais, comme il est utile d'économiser de l'espace de stockage, je pense qu'une image 100 KB mise dans la partie "setup" puis une mise à l'échelle en 1/4 soit 25 KB dans la partie "loop" du jeu est plus appropriée que mettre une image 25 KB dans le "setup", et d'augmenter à l'échelle à 100 KB. D'ailleurs, pour éviter la pixélisation, mieux vaut que l'image de base soit la plus grosse possible.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Pygame redimensionner un sprite
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)