Java : Gemalte Figur ansprechen bzw. als Objekt hinzufügen?
Hallo, vielleicht ist die Frage ein wenig schwer zu verstehen.
Also ich möchte, dass diese Figur :
die sich den Obststand gerade anguckt, als Objekt gesehen wird. Also soll Java sich quasi alle Koordinaten merken, wo die Figur gerade auf dem Bild ist, also nur einmal. Und dann kann ich es ja auch machen, dass die Figur sich bewegen soll und so weiter... Aber wie definiere ich jetzt alle Punkte für Java, dass der Charakter als Objekt angesehen wird?
Die Figur soll sich Beispielsweise nicht über den Weg, also über die Koordinaten vom Weg, bewegen können.
1 Antwort
Für die Entwicklung von 2D-Spielen eignen sich Bibliotheken wie slick2D, FXGL oder Processing Core. Die einzelnen Komponenten (Hintergrundbild, Figur) werden separat bspw. als Sprites eingefügt.
Den Ablauf kannst du mit einem Daumenkino vergleichen. Die Szene wird immer wieder neu gezeichnet. Wenn du die Zeichenposition der Figur an Variablen bindest, kann sie bei jedem draw call leicht verrückt werden.
Ansatz:
int x = 0;
int y = 0;
void gameLoop() {
// draw background image ...
drawPlayer(x, y);
x += 10;
}
Die Figur würde bei jedem Zeichenvorgang um 10px nach rechts verschoben werden.
Die oben genannten Bibliotheken verfügen allesamt über entsprechende Methoden, um Bilder zu rendern und im Falle von FXGL sowie slick2D gibt es auch bereits Implementationen für die Kollisionsprüfung.
Die Szene teilt sich in Layer auf, die von der Rendering Engine in entsprechender Reihenfolge gezeichnet werden (erst Hintergrund, dann Vordergrund). Es ist so, als würdest du eine (oder mehrere) Folie(n) über ein Bild kleben und darauf eigene Kritzeleien ergänzen.
Im Prinzip muss zu Objekt 1 ein Mesh bekannt sein. Im einfachsten Fall kann das ein Rechteck sein, in welches das Objekt hineinpasst. Komplizierter, doch genauer wäre ein an die Form der Figur angepasstes Mesh (bei einem Kreis wäre dies z.B. ein Kreis). Objekt 2 (das sich bewegende Objekt) müsste nun bei jedem Schritt mit Hilfe seiner Koordinaten / anhand seines Mesh prüfen, ob es mit Objekt 1 kollidiert.
Das steht in deren jeweiligen Online-Dokumentationen, die leicht via Google auffindbar sind.
Ich weiß ja nicht mal wie man Phase 1 macht :
https://entwickler.de/java/fxgl-tutorial-einfache-spiele-mit-javafx-erstellen/
In so etwa so, oder ? :
https://www.youtube.com/watch?v=LARZ1DeIpVk&t=255s
Ist das Tutorial gut zum Start, also für Phase 1?
Das ist ein Swing-Tutorial (bei dem ich schon auf den ersten Blick Fehler sehe).
Über verschiedene Quellen. Größtenteils Bücher und Online-Dokumentationen (vor allem da, wo gute Literatur rar war). Und natürlich Praxiserfahrung.
Die Insel war auch dabei. Die anderen dürften dich weniger interessieren, da entweder nicht anfängerfreundlich, themenbezogen oder englisch.
Ich würde auf die Schrödinger programmiert ... Java-Reihe verweisen. Sie beinhaltet ungefähr dieselben Themen wie die Insel, ist aber lockerer und mehr jugendorientiert.
Danke, muss ich das alles von Java zeichnen lassen ? Ich habe das Bild für Java so zur Verfügung gestellt :
Wie soll ich das denn alles von Java zeichnen lassen? Und wird die Figur jetzt echt gezeichnet oder nur Virtuell, damit Java sich vorstellen kann, wo die Sachen positioniert sind? Muss ich die ganze Umrandung der Figur als Koordinaten angeben, damit Java weiß, dass die Figur Beispielsweise nicht in den Obststand läuft?