Frage von halloichbins098, 17

Java Bilderanzeigen?

Ich möchte in Java ein 2D Spiel programmieren. Da muss ich dann halt mehrere Bilder einfügen und sie über den Bildschirm bewegen aber wie geht das? Am besten die einzelnen Schritte auch erklären.

Antwort
von lillian92, 13

Für den Anfang dürfte entweder die Swing-Bibliothek oder JavaFX gut sein (beides solltes du als Bibliotheken zur Verfügung haben). Swing ist jedoch etwas veraltet und JavaFX sein offizieller Nachfolger. Auch wenn Swing nach wie vor in Benutzung ist, würde ich dir zu JavaFX raten, da es vor allem was Eventlistener betrifft, weit praktischer im Handling ist. Ein weiterer Pluspunkt von JavaFX ist meiner Meinung nach, dass es eine Form des CSS beherrscht, was bedeutet, dass du einen Großteil der Formatierungen auslagern kannst und dich damit nicht im Code herumschlagen bzw Sachen x Mal neu definieren musst.

Ich hoffe, du kennst dich mit Konzepten der Objektorientierung bereits aus, da das folgende sonst etwas schwierig wird zu verstehen.

JavaFX arbeitet mit Scenen auf denen Objekte, wie Bilder oder geometrische Formen, platziert werden. Die Bilder bekommst du entweder über die JavaFX Klasse Image hinein, oder du setzt sie als Hintergrundbild einer geometrischen Form (Rectangle, Circle, Polygon etc).

In diversen Methoden kannst du nun definieren, was bei zB bei einem Keyevent (Tasten müssen spezifiziert werden) passiert und was mit dem Objekt passiert, wenn du eine gewisse Taste drückst. ZB kannst du Bewegung über eine Re-Positionierung eines Objekts nach einer gewissen Anzahl an Frames einstellen. Die Richtung kannst du dann über Keyevents ändern. Oder dein Objekt bewegt sich nur bei einem Keyevent – all das ist jedoch deiner Programmierung überlassen.

Antwort
von androhecker, 7

Die Frage ist mit was du es machen willst, grundsätzlich stehen dir hier zwei große Möglichkeiten zur Verfügung:

1. Ein GUI Framework
Mit den  meisten GUI Frameworks kann man problemlos einfache 2d Animationen erstellen, durch zB Bilder deren Position verändert wird. Hier würde ich grundsätzlich JavaFX empfehlen, weil es im JDK mit dabei ist und Swing schlichtweg veraltet ist.
In JavaFX kannst du in einem Pane Conatainer Objekte wie zB Bilder an bestimmten X/Y Positionen anzeigen lassen und durch Timelines animieren. (Nur mal so am Rande, JavaFX beherrscht sogar 3d Animationen)

2. Eine richtige Renderer Bibliothek
Damit musst du aber etwas mehr arbeiten, denn du bekommst dort nur noch die Möglichkeit bei jedem Render Vorgang die Position selbst zu setzen, also musst du die Bewegungen durch zB Timelines selber machen.
Falls du dich dafür entscheidest ist wahrscheinlich libGDX die richtige Wahl, libGDX ist relativ einfach zu benutzen (jedenfalls einfacher als LWJGL oder direkt über OpenGL) und ist multiplatform, das heißt, du schreibst den Core einzeln und machst für die einzelnen Platformen nur einen Launcher. (Im Moment geht es mit Dekstop Java (also Mac, Windows und Linux), Android, IOS und eingebettet in HTML)

Keine passende Antwort gefunden?

Fragen Sie die Community