TiledMap "langsam" verschieben

Xym13

Mitglied
Hallo zusammen,

ich würde gerne wissen, ob es möglich ist den Ausschnitt einer TiledMap langsamer zuverschieben.

Im Moment wird diese so gezeichnet:
Java:
map.render(0, 0, Main.dx, Main.dy, 400, 300);
dx, und dy sind die Variablen, um wieviel die Karte verschoben wird. Also wenn man z.B. "w" drückt wird dy um 1 verringert.
Der Spieler wird dabei genau in die Mitte der Karte gezeichnet.

Wenn ich die jetzt aber verschieben, passiert das halt sehr unschön. Kann man den Vorgang des Verschiebens langsamer darstellen?
 
F

Firephoenix

Gast
ist das Awt, Slick2d, ...?
Wie sind allgemein deine Bildraten, wie oft wird neu gezeichnet?

Ein paar mehr Infos wären gut,
nur an dem Aufruf sieht man nicht wirklich viel und Ruckeln selbst kann ziemlich viele Ursachen haben.

Gruß
 

Bile Demon

Bekanntes Mitglied
Ich denke, er fragt sich, ob man den Bildausschnitt auch langsamer als 1 Pixel pro Frame bewegen kann, weil Bildschirminhalte ja immer in ganzen Pixelzahlen gezeichnet werden.

Ja.

Du könntest dir eine x und y double-Variable anlegen, diese z.B. um 0.2 pro Frame in die entsprechende Richtung anpassen und dann zum Zeichnen nach int casten.
 

Xym13

Mitglied
Also,

ich nutze Slick AE. FramRate liegt bei ca. 60 Frames.

Das Problem ist, dass die Methode render nur Integers erlaubt. Die Verschiebung wird über die 3. und 4. Variable gesteuert.

Wenn Main.dx = 1 ist, dann wird die Map um 16 Pixel verschoben, da die Kachelgröße bei der Map 16x16 groß ist. Daher sind Dezimalzahlen keine Lösung...
 
F

Firephoenix

Gast
Also verschiebst du Kachelweise, hast du nicht die Möglichkeit pixelweise zu verschieben?
So das dx=1 -> 1 Pixel unterschied?

Gruß
 

BRoll

Bekanntes Mitglied
Na du hast dass doch programmiert?

Wenn du es mit Tileweise hinbekommst, dann schaffst dass ja auch Pixelweise.
Du musst eben einfach wie gesagt aus den int für die Verschiebung floats machen.
Dann bei der Stelle eben wo du die einzelnen Tiles (Bilder) zeichnest,
den float zurückcasten. Eben (int)verschiebung.

Im Prinzip ist es ja dasselbe, es wird immer pixelweise gezeichnet,
bloß kann man die Verschiebung entsprechend berechnen.
Und wenn du sie tileweise berechnest ist sie eben = Verschiebung in Tiles * Tilegröße in Pixel
Jetzt rate mal wie man dann Pixelweise berechnet :D


Aber so wie sich das anhört gibt es deine render Methode
schon vorgegeben, oder jemand anderes hat sie gemacht?
Such doch einfach bei der map und änder die Methode entsprechend ab.


Sonst wüsstest du ja wie du sie ändern kannst, wenn du
sie ja schon erstellt hättest.
 

Marco13

Top Contributor
Was habt ihr alle mit floats? ???:L Solange man nicht mehr code hat, und nicht mal weiß, was die gepostete Methode macht, kann man lange rumraten...
 
F

Firephoenix

Gast
Was habt ihr alle mit floats? ???:L Solange man nicht mehr code hat, und nicht mal weiß, was die gepostete Methode macht, kann man lange rumraten...

Ich kenne mich mit Slick AE speziell nicht aus, aber das "normale" Slick kann auf alle Fälle mit float-genauigkeit rendern (intern dann wohl doch nicht so genau wie ich letztens erfahren durfte :p).
Auf alle Fälle sollte es mit Slick möglich sein Verschiebungen Pixelweise zu realisieren anstatt in 16er Schritten, die map die er verwendet scheint auch keine Implementierung aus Slick zu sein sondern ein Eigenbau (was nicht unbedingt schlechter sein muss).

Gruß
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Verschieben von Objekten langsam Spiele- und Multimedia-Programmierung 0
W Spiel ist langsam/laggt Spiele- und Multimedia-Programmierung 18
B LWJGL Display.update() ist langsam Spiele- und Multimedia-Programmierung 5
O A* funktioniert, aber zu langsam Spiele- und Multimedia-Programmierung 10
1 Ping Pong langsam Spiele- und Multimedia-Programmierung 13
M Robot zu langsam Spiele- und Multimedia-Programmierung 4
T Java zu langsam Spiele- und Multimedia-Programmierung 22
T BufferedImage#setRGB #getRGB zu langsam Spiele- und Multimedia-Programmierung 4
B Buttontexte langsam nacheinander erscheinen lassen Spiele- und Multimedia-Programmierung 3
T Mein Vektor-Zeichenprogramm ist zu langsam Spiele- und Multimedia-Programmierung 4
P bildskalierung zu langsam Spiele- und Multimedia-Programmierung 4
J soundlösung zu langsam für spiele Spiele- und Multimedia-Programmierung 16
R Java3d ViewingPlatform erst Verschieben und dann RotationsInterpolator Spiele- und Multimedia-Programmierung 0
A AffineTransform: Nach Drehen verschieben Spiele- und Multimedia-Programmierung 2
M J3D gepicktes Primitive verschieben(fix mit Mauszeiger) Spiele- und Multimedia-Programmierung 2
A .jpg-Bild auf andere Position verschieben Spiele- und Multimedia-Programmierung 4
Z Kugeln aufgrund von Daten aus einem Array verschieben Spiele- und Multimedia-Programmierung 2
E Verschieben von Elementen Spiele- und Multimedia-Programmierung 2
R Polygon um double x/y - Werte verschieben Spiele- und Multimedia-Programmierung 2
G JOGL: per Mausbewegung Objekt verschieben Spiele- und Multimedia-Programmierung 2
G Auf Tastendruck bild verschieben Spiele- und Multimedia-Programmierung 5
G Objekt verschieben Spiele- und Multimedia-Programmierung 6
T Koordinatensystem verschieben? Spiele- und Multimedia-Programmierung 6
R Objekt mit cos/sin verschieben Spiele- und Multimedia-Programmierung 27
B Kugeln verschieben (Vektoren) und Schnitt prüfen Spiele- und Multimedia-Programmierung 12
C Betrachterstandpunkt verschieben Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen


Oben