TL;DR die OrthographicCamera rechnet uns mit den project()
und unproject()
Methoden ganz von alleine die Welt-Koordinaten in Screen-Koordinaten um und zurück.
Um Animationen und Sprites an der korrekten Stelle zu zeichnen empfehle ich 2 SpriteBatches, von denen einer mit
worldBatch.setProjectionMatrix(camera.combined);
für die automatische Umrechnung von Welt auf Screen-Koordinaten genutzt wird.
Mit dem DebugRenderer von Box2D lassen sich schnell und leicht die Entities anzeigen, damit hat man zumindest einen guten Überblick.
...
Vorweg:
libGDX bezeichnet sich als “Java game development framework”, es ist also keine fertige Spiele-Engine und bietet für die einzelnen Aufgaben keine fixe Lösung, sondern lässt dem Entwickler viel Freiheit, bietet aber für jede Entscheidung die richtigen Werkzeuge. Daher sind alle beschriebenen Implementierungsdetails auch nur eine Lösung von Mehreren, und mehr als Vorschlag als DER einzig richtige Weg zu sehen.
Da wir es mit einer eher überschaubaren Anzahl an Objekten in der Welt zu tun haben, habe ich mich gegen ein fertiges Entity Framework wie zB
Artemis enschieden, unter Anderem auch, da wir Box2D einsetzen, und schon eine physikalische Welt mit unseren Objekten existiert.
...
Auch wenn in der Vergangenheit die Versuche ein fertiges Spiel zu produzieren immer wieder nicht zum Ende kommen wollten, lasse ich mich nicht davon abhalten es weiter zu versuchen :-)
Zur Unterstützung habe ich mir gleich kompetente Hilfe ins Boot geholt: der wunderbare Grafiker und Designer
Benjamin Weiler. Aufmerksame Beobachter konnten ihn schon bei Kunai auf einem der Screenshots entdecken.
Der Arbeitstitel, mit guten Chancen übernommen zu werden lautet “Up, Up and away” - UUAA.
...
Wie schon angekündigt, wird hier ausschließlich über unser neues Spieleprojekt “Up, up and away” geschrieben.
Die Idee: eine Mischung aus
Icy Tower, etwas NinJump und vielleicht ein ganz kleines bisschen Doodle Jump .
Für unsern Protagonisten wollen wir im Tierreich bleiben. In der engeren Auswahl standen:
- Pangolin
- Ameisenigel
- “Eigentlicher Greifstachler”
- Maulwurf
Am Ende konnte ich mich (und meine Frau) mit der Maulwurf-Idee durchsetzen. Erste Skizzen existieren auch bereits
Für die Umsetzung habe ich mich für libGDX entschieden, ein Cross-Plattform OpenGL Framework. Im Gegensatz zu vielen anderen Cross-Plattform Compilern, bietet libGDX die Möglichkeit, eine komplett native App um das Spiel zu bauen, also jeweils Plattform-spezifische Menüs, Highscores etc. Beim Starten des eigentlichn Spiels, wird eine View erzeugt in der das Spielt ausgeführt wird.
...