Bild mit pygame drehen

Ich bin neu zu pygame und möchte einen Code schreiben, der einfach ein Bild um 90 Grad alle 10 Sekunden dreht. Mein Code sieht so aus:

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() 

Dieser Code funktioniert nicht, dh das Bild dreht sich nicht, obwohl das "Drehen" alle 10 Sekunden im Terminal gedruckt wird. Kann mir jemand sagen was ich falsch mache?

One Solution collect form web for “Bild mit pygame drehen”

pygame.transform.rotate wird die Surface an Ort und Stelle drehen, sondern eine neue, gedrehte Surface . Auch wenn es die bestehende Surface verändern würde, müssten sie es wieder auf die Anzeigefläche bringen.

Was du tun solltest, ist, den Winkel in einer Variablen zu verfolgen, sie um 90 alle 10 Sekunden zu erhöhen und die neue Surface auf den Bildschirm zu schlagen, zB

 angle = 0 ... while True: ... elif end - new > 10: ... # increase angle angle += 90 # ensure angle does not increase indefinitely angle %= 360 # create a new, rotated Surface surf = pygame.transform.rotate(image_surf, angle) # and blit it to the screen display_surf.blit(surf, (640, 480)) ... 
  • Python: list ändert sich, wenn global bearbeitet
  • Python: Zusammenführungsliste mit Bereichsliste
  • Konzert jedes Element der Liste mit jedem Element der zweiten Liste
  • Versuchen, von Project Euler # 10 zu lösen, aber Code nimmt * viel Zeit, um die Ausgabe anzuzeigen
  • So erstellen Sie HTTP-Anforderungsdaten mit {single key: multi values} [duplicate]
  • Liste aus der Liste in Python entfernen [duplizieren]
  • Bash alias -> Python 2.7 bis Python 3.3
  • Lesen von 4 Byte Integer aus Binärdatei in Python
  • Drucken auf der gleichen Zeile mit time.sleep ()
  • M2crypto: python 2.7 kompatibilität und welche version von OpenSSL zu verwenden?
  • Fehler bei der Verwendung der Druckfunktion in einer Lambda-Funktion in Python 2.7
  • Python ist die beste Programmiersprache der Welt.