Scrolling einer 2D Map

mavinatic

Bekanntes Mitglied
Hallo Community,

vor langer Zeit hatte ich mal einen ähnlichen Thread, worum ich mich über das Scrolling einer Map informieren wollte. Da der SourceCode sich grundlegend geändert hat, möchte ich an dieser Stelle einen neuen Thread eröffnen, da ich das Prinzip noch nicht ganz verstanden habe.

Gegeben ist eine Map mit x * y Tiles z.B. x = 25; y = 20. Ich habe nun eine Spielfigur, welche immer in der Bildschirmmitte gemalt wird (Frame.WIDTH / 2, FRAME.HEIGHT/2). Die Map wird nun mit einem gewissen "offset" gemalt. Der "offset" ist in Pixeln gemessen und entspricht beim Starten des Spiels und somit der Spielerposition (x = 0; y = 0) Frame.WIDTH / 2, Frame.HEIGHT /2.

Wie handhabe ich das nun mit anderen Spielfiguren, welche nicht von mir gespielt und bewegt werden? Irgendwie erscheinen diese nicht an der gewünschten Position? Muss dort auch der Offset einberechnet werden?
 

Gucky

Top Contributor
Wie genau zeichnest du denn? Hat jede Figur eine relative Koordinate, die erst beim Zeichnen umgerechnet wird? Spontan würde ich sagen, dass das die beste Methode ist.

Das wäre dann so: absoluteXPosFigur = relativeXPosFigur + absoluteXPosMap
Und du bräuchtest keinen Offset mit einberechnen. Nur müsste die Map beim Scrollen immer die richtigen Koordinaten bekommen.

Du hast eine Klasse Map und der werden Koordinaten, eine Breite und eine Höhe übergeben und diese Klasse gibt dir die dazugehörigen Figuren und Formen inklusive absoluter Koordinaten zurück.




Oder wie machst du das?
 

lord239123

Bekanntes Mitglied
Wenn du willst, kann ich dir mal ein Projekt von mir schicken, in dem ich auch am Anfang vor diesem Problem stand.
Es ist eine Art Pokemon-Spiel und bestimmt wirst du im Sourcecode Hilfe bei deinem Problem finden.
 
Zuletzt bearbeitet:

mavinatic

Bekanntes Mitglied
Das Problem besteht darin, dass ich eine Klasse "Sprite" habe, von denen alle Figuren abgeleitet werden und eine Klasse Map welche die Methoden drawLowerLayer(Graphics g, int xOffSet, int yOffSet); & drawUpperLayer(Graphics g, int xOffset, int yOffset); Dort kann ich nun den OFFSET meiner kontrollierten Figur angeben, dass sieht soweit schonmal gut uas, wenni hc das mache. Aber die Position der einzelnen Spielfiguren (nicht von mir gesteuert) haben eine Falsche position
 

Gucky

Top Contributor
Ich habe keine Ahnung, wie du zeichnest.

Wo ist bei dir Koordinate (0,0)? Oben links im Frame, oben links im angezeigten Bereich oder oben Links in der Map?
 

mavinatic

Bekanntes Mitglied
Ich habe nun eine neue Methodik und zwar ich versetze mit Graphics.translate(int xOffset, int yOffset) den Koordinatenursprung. Nun wird aber mein UI auch versetzt und das zurückversetzen des Ursprungs ist leider nicht möglich :-( Habt ihr da zufälligerweise eine Lösung vllt parat? Aus oben gennante problem
 

Gucky

Top Contributor
Und ob das möglich ist. ;)
Du translatest einfach zurück.

Aber Lord und ich haben beide mehrere Lösungsmöglichkeiten ersonnen und du baust dir eine Weitere und wunderst dich, wenn es nicht funktioniert.
 

Sogomn

Bekanntes Mitglied
Java:
g.translate(xOffset, yOffset);
{
   drawGame(g);
   //...
}
g.translate(-xOffset, -yOffset);
drawUI(g);
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
I 2D-Side-Scrolling-Game in Chunks splitten Spiele- und Multimedia-Programmierung 9
Kenan89 Parallax Scrolling Spiele- und Multimedia-Programmierung 12
M Scrolling Repaint Problem Spiele- und Multimedia-Programmierung 2
I Timebased tile scrolling wirkt unsauber. Spiele- und Multimedia-Programmierung 7
P Frage zum Scrolling Spiele- und Multimedia-Programmierung 23
M Scrolling Spiele- und Multimedia-Programmierung 20
YangLee Ausgabe von einer Bewegung bei mehrzeiligen Strings Spiele- und Multimedia-Programmierung 1
E relevanter bereich einer isometrischen karte zeichnen (AffineTransform) Spiele- und Multimedia-Programmierung 0
M Audio Track einer Musik CD abspielen mittels vlcj-Bibliothek Spiele- und Multimedia-Programmierung 0
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
D Programmierung einer Tor-Anzeige Spiele- und Multimedia-Programmierung 8
C Optimale Wegberechnung einer KI Spiele- und Multimedia-Programmierung 6
T Pong Hilfe bei einer Website Spiele- und Multimedia-Programmierung 4
R Einfärben von Gemeinden auf einer Karte Spiele- und Multimedia-Programmierung 14
S ECS: "deep copy" einer Entity-Vorlage Spiele- und Multimedia-Programmierung 9
R Aufruf einer render-Methode Spiele- und Multimedia-Programmierung 12
E A-Stern Algorithmus Problem und Implementierung einer Map Spiele- und Multimedia-Programmierung 6
J Frage zum Einlesen einer .wav in ein byte Array Spiele- und Multimedia-Programmierung 3
J Spielfiguren laufen lassen auf einer html Tabelle mit Hilfe von Servlets Spiele- und Multimedia-Programmierung 2
T Alle Referenzen zu einer Klasse aus Java Bytecode ersetzt, JVM sucht trotzdem diese Klasse Spiele- und Multimedia-Programmierung 1
M Kamera "am Rande einer Kugel bewegen" Spiele- und Multimedia-Programmierung 4
B Den KeyListener in einer JavaFXML Application benutzen Spiele- und Multimedia-Programmierung 2
gamebreiti Index eines Elements einer ArrayList abfragen Spiele- und Multimedia-Programmierung 1
F Das sag mir einer Java ist plattform unabhänig ! Spiele- und Multimedia-Programmierung 10
J In einer While-Schleife auf Event warten Spiele- und Multimedia-Programmierung 3
TheSorm Collision an einer bestimmten Seite eine Rectangles abfragen Spiele- und Multimedia-Programmierung 3
windl Frage zu Airplay und zur Mitarbeit bei einer Mediaanlage Spiele- und Multimedia-Programmierung 0
A Aufbau einer JOGL Anwendung Spiele- und Multimedia-Programmierung 12
L Werte aus einer .yml Datei lesen Spiele- und Multimedia-Programmierung 9
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
F Download und Update einer Java-Anwendung Spiele- und Multimedia-Programmierung 10
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
B Video von einer IP kamera Spiele- und Multimedia-Programmierung 5
W Java3D: Eckkoordinaten einer Box herausfinden Spiele- und Multimedia-Programmierung 18
W Rotation aller Objekte einer 3D-Szene Spiele- und Multimedia-Programmierung 8
2 Ein Zufallsweg bzw. Weg in einer 2dim Matrix finden. Spiele- und Multimedia-Programmierung 21
aze Schnittmenge zwischen Linie und einer Area wegschneiden Spiele- und Multimedia-Programmierung 3
A Bild einer Webcam auffangen Spiele- und Multimedia-Programmierung 20
G Ballerkennung aus einer Bilddatei Spiele- und Multimedia-Programmierung 24
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
D Problem beim Öffnen einer PHP für eine Highscore Spiele- und Multimedia-Programmierung 5
M Realisierung einer Sichtweise in Java2D Spiele- und Multimedia-Programmierung 3
B String zu Objekt einer eigenen Klasse casten Spiele- und Multimedia-Programmierung 13
H Screenshot einer Graphics2D Anwendung erstellen Spiele- und Multimedia-Programmierung 6
F Simulation einer Magnetischen Flasche Spiele- und Multimedia-Programmierung 17
F Meine Aufgabe: Client-Server am Beispiel einer Implementation eines Tic-Tac-Toe Netzwerkspieles Spiele- und Multimedia-Programmierung 7
J Fehlverhalten einer Spielfigur Spiele- und Multimedia-Programmierung 7
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
M Das Frequenzspektrum einer WAV/MP3-Datei anzeigen Spiele- und Multimedia-Programmierung 6
M Rechteck erkennung innerhalb einer Matix Spiele- und Multimedia-Programmierung 4
S Problem beim laden eines Bildes in einer Methode Spiele- und Multimedia-Programmierung 14
E Pinball Abprall an einer schrägen Bande Spiele- und Multimedia-Programmierung 19
0x7F800000 weiß einer wozu ANTLR beim build von JOGL verwendet wird? Spiele- und Multimedia-Programmierung 3
E Hilfe bei einer GUI Programmierung mit Graph Spiele- und Multimedia-Programmierung 30
A Tutorial für die Entwicklung einer Fussball-KI gesucht Spiele- und Multimedia-Programmierung 7
S Rotation relativ zur Rotation einer anderen Transform Group Spiele- und Multimedia-Programmierung 3
A Screenshots von einer Scene erstellen Spiele- und Multimedia-Programmierung 5
G Land aus einer Weltkarte selektieren Spiele- und Multimedia-Programmierung 10
D Kräftesimulation auf einer 2D-Oberfläche Spiele- und Multimedia-Programmierung 5
T Geschwindigkeit einer Animation aendern Spiele- und Multimedia-Programmierung 6
G Ermitteln eines Punktes in einer anderen TransformGroup Spiele- und Multimedia-Programmierung 2
N Background in Java3D ähnlich einer Skybox erzeugen Spiele- und Multimedia-Programmierung 5
H zB Punkte darstellen und mit einer Linier verbinden Spiele- und Multimedia-Programmierung 5
F Darstellung einer tierischen Zelle Spiele- und Multimedia-Programmierung 3
S Text an einer Seite eines Cubes Spiele- und Multimedia-Programmierung 7
F Das SPiel ruckelt nach einer Zeit Spiele- und Multimedia-Programmierung 19
D wieder einer von anfang an. Spiele- und Multimedia-Programmierung 4
M Darstellung einer schwingenden Membran? Spiele- und Multimedia-Programmierung 23
raptorrs Teile einer CAD-Assembly Gruppe in JAVA animieren? Spiele- und Multimedia-Programmierung 3
K Beschriftung von Punkten in einer "Punktwolke" Spiele- und Multimedia-Programmierung 2
S Zur Laufzeit auf die Methode einer anderen Klasse zugreifen Spiele- und Multimedia-Programmierung 5
K Klick in der nähe einer Strecke Spiele- und Multimedia-Programmierung 14

Ähnliche Java Themen

Neue Themen


Oben