Für ein Peggle- ähnliches Spiel möchte ich Blöcke erstellen , die einer Kurve folgen:
Die Blöcke würden dann verschwinden, wenn der Ball sie trifft.
Ich habe es geschafft, einige horizontal zu zeichnen, aber ich habe Probleme damit, sie einem Pfad zu folgen:
Wie mache ich das? Muss ich Box2D- Objekte mit benutzerdefinierten Eckpunkten erstellen ?
collision-detection
box2d
geometry
curves
Moerin
quelle
quelle
Antworten:
Bei einer gegebenen "Wurzel" -Kurve können Sie wie folgt Blockscheitelpunkte generieren.
Die Wurzelkurve ist in der Mitte in Schwarz. Seine Kontrollpunkte werden mit einem roten
X
s angezeigt .Kurz gesagt : Ich habe ein Bézier gemacht und es abgetastet (mit einer konfigurierbaren Rate). Ich fand dann den senkrechten Vektor des Vektors von jedem Sample zum nächsten, normalisierte ihn und skalierte ihn auf eine (konfigurierbare) halbe Breite, zuerst nach links, dann umgekehrt nach rechts. Dann zeichnete es.
Dinge, die du hinzufügen könntest:
Hier ist mein Code. Es ist in Lua (für das LÖVE -Framework) geschrieben, aber ich denke, es ist für jeden lesbar.
Wenn Sie damit spielen möchten : Holen Sie sich LÖVE und speichern Sie den obigen Code in
main.lua
einem eigenen Verzeichnis. Setzen Sievector.lua
aus derHUMP
Bibliothek in dem gleichen Verzeichnis. Führen Sie eslove <that-directory>
von einer Befehlszeile aus.Bewege die Maus! Der mittlere Kontrollpunkt wird auf die Mausposition gesetzt:
quelle