Baisse de ips pygame

Résolu/Fermé
Alex - Modifié le 31 juil. 2021 à 19:31
 Alex - 31 juil. 2021 à 21:26
Bonjour, je ne comprend pas, quand j'affiche une image de 1920x1080, Le nombre d'images par seconde baisse énormément: il passe à moins de 10 ips. Je voudrais donc savoir pourquoi le fait d'afficher une simple image ferait baisser autant l'ips.
voici le code:
import pygame
pygame.init()

screen = pygame.display.set_mode((1920,1080), pygame.FULLSCREEN)

image = pygame.image.load('img.png')#la taille de l'image est 1920x1080

run = True
while run:
    pygame.display.flip()
    screen.blit(image, (0, 0))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
pygame.quit()

1 réponse

Bonjour,

Ce qu'il faut regarder, c'est le poids de cette image, car forcément, plus une image est conséquente, plus le temps d'affichage sera long, ce qui est donc ce qu'il t'arrive.

Généralement on s'arrange pour n'avoir que des images pas trop lourdes pour un jeu vidéo, on s'arrange aussi à ne pas recharger des images de fond/décor, les plus conséquentes, en totalité, on affiche au départ ces images et on met à jour uniquement les “zones” de ces images qui ont été changées.
1
je viens de vérifier et mon image pèse 11Ko, je peut par contre réduire sa taille puis ensuite faire un pygame.transform, mais je m'y connait mal. Je suis aussi obligé d'afficher constamment cette image car elle change de position
0
11ko c'est léger, très léger, je me demande ce que tu peux avoir sur une image png de cette dimension et faisant seulement 11ko.

Comment as-tu constaté que tu n'avais pas 10 images par seconde ? As-tu testé sans mettre en plein écran pour voir si différence ou non ?
0
Alex > vortex
31 juil. 2021 à 20:53
J'ai déjà essayé avec une fenêtre rétrécit et le nombre d'ips est plus élevé, mais il reste quand même faible, mais alors si 11ko c'est léger, alors pourquoi mon programme bug autant?
0
vortex > Alex
31 juil. 2021 à 21:04
Bah je ne sais pas ^^

Ah si tiens, il y a une optimisation à faire, c'est de convertir ton image pour justement optimiser l'affichage.

image = pygame.image.load('img.png').convert()


Ou si zones transparentes dans l'image:

image = pygame.image.load('img.png').convert_alpha()
0
Alex > vortex
31 juil. 2021 à 21:26
Cela à l'air de plutôt bien marcher, le jeu n'est pas optimisé entièrement, mais je pense que cela sera suffisant.
0