[pygame] rotation

Fermé
thyma2 Messages postés 20 Date d'inscription dimanche 26 mars 2017 Statut Membre Dernière intervention 7 janvier 2020 - Modifié le 21 avril 2018 à 13:15
 thyma - 24 avril 2018 à 14:25
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

3 réponses

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 dimanche 26 mars 2017 Statut Membre Dernière intervention 7 janvier 2020 2
22 avril 2018 à 12:28
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 dimanche 26 mars 2017 Statut Membre Dernière intervention 7 janvier 2020 2
23 avril 2018 à 12:54
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
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
bon j'ai fait tourner mon personnage sur lui même au lieu de faire tourner le décors :)
problème résolus :) :) :)
0