Wie würdest du einen Joint in box2d rendern? Zum Beispiel, wenn Sie einen Greifhaken machen würden, wie schaffen Sie es, dass ein Sprite oder etwas genau seinen Bewegungen folgt? Ich habe versucht, einen Körper zu schaffen, der auf der gleichen Position wie das Gelenk ist, aber ich kämpfe sehr viel, es zu allen Zeiten auf der Oberseite des Gelenks zu sein.Rendern einer Verbindung? [libGDX/Box2D]
Antwort
Alles, was Sie tun müssen, ist das Folgende:
Sie setzen den Ursprung Ihres gewünschten Sprites einmal auf den Rotationspunkt (z. B. untere Mitte).
sprite.setOrigin(sprite.width()/2, 0);
Sie bestimmen den Winkel des Vektors beween den beiden Anker Ihrer Abstand Joint in oyur Update-Methode. Beachten Sie, dass Sie möglicherweise lokale Anker in Worldpoints konvertieren müssen.
float angle = playerAnchorPoint.sub(ceilingAnchorPoint).angle();
und Sie setzen Position und Winkel:
sprite.setPosition(playerAnchor.x - sprite.width()/2, playerAnchor.y);
sprite.setRotation(angle);
Ich habe es versucht, aber ich schein etwas falsch mit der Rotation zu tun, weil das Psrite nur nicht rotiert. Was meinst du mit der Umwandlung in Weltpunkte? –
Nun, Sie setzen die Ankerpunkte Ihres Körpers in lokalen Koordinaten (relativ zum Körperzentrum). Um den Vektor von Spieler-Körper zu Decke-Körper zu bekommen, müssten Sie die lokalen Daten in Weltdaten umwandeln. So: Playerbody.getWorldPoint (Joint.getLocalAnchorA) und decke body.getWorldPoint (Joint.getLocalAnchorB) – Draz
Okay, ich habe es jetzt etwas funktioniert, es scheint sich um den richtigen Weg zu drehen, aber es geht super schnell, vielleicht etwas mit dem PPM zu tun Wert .. Ill es herausfinden. Danke für die Hilfe! –
- 1. Rendern einer geschlossenen Marionettenansicht
- 2. CakePHP3 Rendern einer Variablen
- 3. Rendern einer transparenten Hülle
- 4. Bedingtes Rendern einer Reaktionskomponente
- 5. Rendern einer dynamischen CubemapArray
- 6. Rendern einer Ansicht
- 7. RMarkdown wird nicht von Rscript mit SQLite-Verbindung rendern
- 8. Wie kann ich das Rendern einer 3D-Szene rendern?
- 9. Verhindern Hauptansicht Rendern nach dem Rendern einer Teilansicht
- 10. Rendern einer Seite in einer gerenderten Seite
- 11. Rendern einer Vorlage in einer HTML-Seite
- 12. Rendern anderer Komponenten über eine <a> Verbindung
- 13. Erneutes Rendern einer einzelnen Zeile einer Liste ohne erneutes Rendern der gesamten Liste
- 14. Wie zu rendern Rendern: JSON
- 15. Definieren einer bidirektionalen Verbindung
- 16. Sichern einer HTTPS-Verbindung
- 17. Pakete einer Verbindung ersetzen
- 18. Umleiten einer TCP-Verbindung
- 19. Optimieren einer inneren Verbindung
- 20. Rendern einer partiellen von Draper Decorator
- 21. Rendern einer Komponente in ein ExtJS-Raster
- 22. Wie rendern Text in einer Div korrekt?
- 23. Leistung einer Java-Anwendung Rendern von Videodateien
- 24. Rendern einer Zeichenfolge durch Laravel Template Engine
- 25. Smalltalk Meer #call: Rendern einer leeren Seite
- 26. Wie Rendern einer Sammlung in Jbuilder?
- 27. Rendern einer Ansicht mit mehreren Ansichtsverzeichnissen
- 28. Wie zwei Seitenumbruch in einer Ansicht rendern
- 29. Wie Rendern in einer bestimmten Bittiefe?
- 30. Rendern von HTML in einer DataList
Zeigen Sie, was Sie so weit gekommen, einige Code – Draz
Heres mein Seil Klasse, ATM Ich habe es so, dass ein Bündel von Körpern durch Fernverbindungen Form verbunden ein kettenartiges Ding, das soll das Seil sein, das den Spieler mit der Wolke verbindet. Dies funktioniert nicht, da die Gelenke in box2d saugen und anfangen, mit der geringsten Kraft zu spazzieren. http://pastebin.com/3qQMQ0Xw Ich wollte versuchen, es zu einem einzigen großen Segmenten zu machen verbindet beide Spieler und Decke, um zu sehen, ob es stabiler ist (und dann nur ein Sprite zu diesem Körper hinzufügen, um es zu rendern), Im Moment weg von zu Hause aus kann ich es nicht versuchen, aber hoffentlich siehst du, was mein Ziel ist. –
Möchten Sie Kollisionen am Seil ermöglichen? Wenn ja, dann benutze Drehgelenke an deinem Seilkörper. Wenn nicht, dann brauchst du keinen Körper, um ein Seil zu zeichnen. – Draz