Se ruoto un'immagine con pygame.transform.rotate() l'immagine si sposta.
Per fare che il centro non si sposti quando ruota ho trovato questo modo:
[codice]
image = pygame.image.load("image.png")
newimg = pygame.transform.rotate(image, angle)
newrect = newimg.get_rect()
newrect.left = (width / 2) - (newrect.w / 2)
newrect.top = (height / 2) - (newrect.h / 2)
screen.blit(newimg, (newrect.left, newrect.top))
[/codice]
width e height sono le dimensioni di tutta la finestra che uso con pygame.display.set_mode()
in questo modo l'immagine rimane al centro della finestra anche quando la ruoto.
si poteva fare la stessa cosa anche usando la trigonometria e senza usare get_react(), ma così con get_rect() mi sembra meno pesante come lavoro
Però io ho un'immagine che voglio ruoti mantenendo un punto fisso che non è il centro dell'immagine.
L'unica soluzione che ho trovato è ridisegnare l'immagine in modo che il punto su cui deve ruotare sia il centro e il resto intorno che non mi serve sia trasparente (in pratica con gimp facendo aggiungi canale alfa) e poi usando il modo che ho scritto quà sopra
È una buona idea o c'è già qualche funzione di pygame che fà quello che mi serve?