Come legare uno sprite di pyglet a un corpo di cimice in modo che se il corpo sta ruotando, anche lo sprite ruota?Come legare uno sprite di Pyglet con una forma Pymunk in modo che ruotino insieme?
risposta
Non c'è una sincronizzazione integrata, quindi è necessario farlo da soli per ciascun fotogramma. Ma non preoccuparti, è molto facile.
Se il tuo corpo è posizionato al centro della forma/delle forme e l'immagine ha le stesse dimensioni ci sono due cose che ti servono. Innanzitutto, imposta l'ancoraggio dell'immagine a metà della sua dimensione. Poi nel tuo metodo di aggiornamento fai un loop dei corpi che vuoi sincronizzare e imposta la posizione dello sprite sulla posizione del corpo e la rotazione dello sprite alla rotazione del corpo convertita in gradi. Potrebbe anche essere necessario ruotarlo di 180 gradi (nel caso in cui il modello sia ruotato) e/o invertire la rotazione.
Nel codice
img = pyglet.image.load('img.png')
img.anchor_x = img.width/2
img.anchor_y = img.height/2
sprite = pyglet.sprite.Sprite(img)
sprite.body = body
def update(dt):
sprite.rotation = math.degrees(-sprite.body.angle)
sprite.set_position(sprite.body.position.x, sprite.body.position.y)
Per un esempio completo dare un'occhiata a questo esempio ho creato: https://github.com/viblo/pymunk/blob/master/examples/using_sprites_pyglet.py
(Im l'autore di pymunk)
- 1. Tubi color rubino: come legare insieme l'output di due sottoprocessi?
- 2. ASP.Net Web Api + KnockoutJs + MVC4 - Legare insieme
- 3. Rilevamento dei raggi che intersecano uno sprite
- 4. Sprite Kit SKShapeNode che crea due nodi invece di uno
- 5. delimitando uno sprite in cocos2d
- 6. Capovolgere uno sprite su tela
- 7. Unione di rettangoli insieme in modo ottimale
- 8. In Perl, c'è un modo per legare una scorta?
- 9. Come posso ridimensionare/allungare/inclinare uno sprite da un foglio sprite con javascript?
- 10. In che modo gli sprite CSS velocizzano un sito web?
- 11. In JavaFX come si sposta uno sprite sullo schermo?
- 12. Ripples su una forma con uno sfondo trasparente
- 13. Come si può animare uno sprite in SFML
- 14. Modifica delle immagini sprite in Sprite-Kit
- 15. Come legare e aggiungere staticamente MenuItems in modo dinamico?
- 16. Come utilizzare uno sprite CSS per un'immagine di sfondo ripetuta?
- 17. Kit sprite iOS7 come disabilitare i tocchi su uno sprite per renderlo "tap through"?
- 18. Combina array di oggetti Sprite in One Sprite - Unity
- 19. Three.js: è possibile capovolgere uno sprite?
- 20. disegno pixelwise in pyglet (python)
- 21. In che modo pigrizia ed eccezioni funzionano insieme in Haskell?
- 22. Legare/rilegare in modo pulito a un servizio in un'applicazione
- 23. Quando uno Sprite CSS è troppo grande?
- 24. In che modo PHP, Symlink e __FILE__ funzionano bene insieme?
- 25. Xna aggiunge gravità a uno sprite 2d
- 26. Come generare uno sprite da molte cartelle usando Compass?
- 27. In che modo Apache httpd e Tomcat funzionano insieme?
- 28. In che modo la cache "Priorità" e "AbsoluteExpiration" funzionano insieme?
- 29. Android Forma all'interno di una forma
- 30. In che modo Inheritance e JAXB funzionano insieme?
caso in cui la '180' + davvero essere lì ? Ottengo un risultato migliore senza di esso. – Flimm
Solo se il modello è capovolto. Nell'esempio lo sprite è capovolto in relazione al triangolo, quindi ha bisogno di essere ruotato. Ma normalmente non ne hai bisogno. Mi rendo conto ora che sarebbe stato più chiaro senza di esso. – viblo