Rotation de l'image à l'aide de pygame
Je suis nouveau sur pygame et que vous voulez écrire un peu de code que le simple fait pivoter une image de 90 degrés toutes les 10 secondes. Mon code ressemble à ceci:
import pygame
import time
from pygame.locals import *
pygame.init()
display_surf = pygame.display.set_mode((1200, 1200))
image_surf = pygame.image.load("/home/tempuser/Pictures/desktop.png").convert()
imagerect = image_surf.get_rect()
display_surf.blit(image_surf,(640, 480))
pygame.display.flip()
start = time.time()
new = time.time()
while True:
end = time.time()
if end - start > 30:
break
elif end - new > 10:
print "rotating"
new = time.time()
pygame.transform.rotate(image_surf,90)
pygame.display.flip()
Ce code ne fonctionne pas c'est à dire l'image n'est pas en rotation, bien que le "tournant" est en cours d'impression dans le terminal toutes les 10 secondes. Quelqu'un peut-il me dire ce que je fais de mal?
OriginalL'auteur Pratik Singhal | 2013-10-11
Vous devez vous connecter pour publier un commentaire.
pygame.transform.rotate
ne tournera pas leSurface
en place, mais plutôt de retour d'un nouveau, tournéSurface
. Même si il serait de modifier l'existantSurface
, vous auriez blit sur la surface de l'écran de nouveau.Ce que vous devez faire est de garder une trace de l'angle dans une variable, l'augmenter par
90
toutes les 10 secondes, et blit la nouvelleSurface
à l'écran, par exempleOriginalL'auteur sloth