[pygame] rotation

thyma2 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
 thyma -
Bonjour j’essaie avec pygame de faire un petit jeux et je bloque sur les mouvements du personnage

pour avancer je fais reculer le décors
pour reculer je fais avancer le décors
cette partie la est ok

maintenant je veut faire tourner le personnage mais toujours dans la même optique j'aimerai que ce soit le décors qui tourne autours du personnage (pas le personnage qui tourne sur lui même)
et le décors j'arrive à le faire tourner autours de son centre mais pas autours du personnage, je n'ai d’ailleurs pas trop d'idée la dessus
bref je sait pas si je me suis fait comprendre mais en fait j'aimerai faire tourner une image autours d'une autre et pas autours de son propre centre

j'utilise cette commande :

if event.key == K_d:
fondAngle = (fondAngle - 0.5) % 360
fondRotated = pygame.transform.rotate(fond, fondAngle)


et ça c'est mon personnage (oui je sait osef)


n'hésitez pas à demander des précisions
A voir également:

3 réponses

critou
 
Bonjour.

Je n'ai pas compris ce que tu entends par faire tourner une image autour d'une autre.

Tu souhaites que le centre de rotation de l'image soit le point central (ou autre point) du personnage ?
Je ne crois pas que ce soit possible de le faire avec pygame, en revanche avec Pillow (PIL), c'est possible, mais cela nécessitera de recharger l'image dans pygame, ce qui est une opération assez lourde à faire lors du déroulement d'un jeu...

Si c'est pas ça que tu voulais, désolé.
0
thyma2 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
oui voilà c'est exactement ça que je veut faire.
sinon j'ai penser à quelque chose mais c'est très tordue :
laisser le centre de l'image exactement la ou il y a mon personnage sur l'écran mais quand je déplace mon personnage au lieu de déplacer le décors je l'agrandis avec du blanc comme ça le centre serrait toujours au même endroit...
0
thyma2 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
j'ai trouver un lien ou des réponses sont expliques :
https://stackoverflow.com/questions/15098900/how-to-set-the-pivot-point-center-of-rotation-for-pygame-transform-rotate?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
mais je suis pas très bon en Anglais, débutant en python et c'est ma première utilisation de pygame
donc si qqn pourrait m’expliquer svp
0
critou
 
Bonjour.

Il suffit de tester les exemples de codes exposés, la dernière solution ne peut fonctionner dans ton cas, car cela engendrerait un décalage de ton décor, enfin si j'ai bien compris ton besoin initial.

L'idée de blit une surface invisible sur ton décor pour s'en servir de pivot, je ne sais pas ce que ça vaut et si c'est possible sur l'image de fond totale de ton jeu, donc, il faut tester et voir comment cela réagit.

C'est un décor de quoi au juste ? Intérieur d'un bâtiment ?
0
thyma
 
bon j'ai fait tourner mon personnage sur lui même au lieu de faire tourner le décors :)
problème résolus :) :) :)
0