Endlos Scrollen

takidoso

Erfahrenes Mitglied
Hallo und Halli,
Ich habe da eine Art von Problem bzw Idee, die ich in meinem aktuellen privaten Projekt vielleicht lösen möchte bzw verwenden möchte.
Es geht hierbei um das Scrollen eines Spielfeldes/Spielweltkarte, (janz normales 2D Graphik in Swing).
Nun wäre es doch genial, wenn man da in der Lage wäre endlos zu scrollen d.H die Welt wäre entweder eine Kugel oder, was vermutlich viel einfacher wäre, ein Tubus.
Klassenmäßig könnte ich mir das so vorstellen, dass man eine Art Umrechnungsklasse hat, die dann zwischen dem Spielplan Model und dem Fenster zum Anzeigen käme(Viewport ).
Hat jemand so etwas schon mal gemacht oder hat jemand dazu eine Idee wie man das machen könnte?
Die Scollbalken würden vermutlich dann verschwinden müssen, da es für Endlos scollen vielelicht weniger Sinn macht das der Baleken von einem zum anderen Ende verschiebt, nur weil man dann wieder am anderen "Anfang" der Welt (beobarchtend) angelangt ist.

Mit neugiriegen Grüßen

Takidoso
 
Zuletzt bearbeitet:
Hallo,

beschreib doch mal etwas genauer was du Scrollen möchtest und wie es genau aussehen soll. Scrollst du das Spielfeld (mit Sicht von oben oder pseudo 3D isometrisch?) oder soll wie bei einem 2D Sidescroller der Hintergrund mitlaufen?
Wie ist dein Spielfeld / Hintergrund beschaffen? Ein einzelnes zusammenhängendes Bild oder eher kleine losgelöste Einzelbildchen (Tiles) ?

Gruß Tom
 
Das ist im Grunde eine Draufsicht auf eine Landkarte, also erst mal simple 2 dimensionales Scrollen.
Die Landkarte besteht im Wesentlichen aus Vielecken (mehr oder weniger aneinandergrenzenden Ländern und Inseln) Soll aber später noch Linien bekommen, die Seewege darstellen zwischen Ländern die nicht direkt verbunden sind.
Weiterhin ist es möglich ein Bild im Hintergrund zu haben, welches dann sinnvollerweise auch mit den Polygonen und Linien identisch zu scrollen ist.

Nebenbei kann das ganze auch skaliert werden, d.h. Es gibt nur dann ein Scrollen wenn die "Weltkarte" nicht ins Fenster passt.

Also das normale Scrollen geht hervorragend mit sammt der Skalierung inklusive Hintergrundbild, so man eines hat. Ich male halt den Kram in ein Graphic-Objekt innerhalb der paintComponent() Routiene.

Normalerweise würde ich bei Endlosscrollen eine Modulo-Funktion einsetzen, so dass in der Vertikalen und auch Horizontalen die anderen Enden der Welt sich quasi berühren (ich nenne das mal Tubus-Ring-Efekt)
Also logische Karte hat Breite 0 bis X-max Höhe 0 - Y-Max
logischer Beobachtungsraum würde bleibig in der Kooridnate steigen oder sinken (auch über maximale und unter minimale Koordinatenwerte, der logischen Karte).
Das ganze durch Modulo gejagt mit den Max-Werten, dann den Betrag davon genommen und schon habe ich die Koordinaten des logischen Beobachtungsraumes auf die meiner logischen Karte passend gemacht.

Aber wie sag ich es meinem Scrollfenster
Oder muss ich da ganz anders vorgehen?
 
Zuletzt bearbeitet:
Hallo,
Wie ist dein Spielfeld / Hintergrund beschaffen? Ein einzelnes zusammenhängendes Bild oder eher kleine losgelöste Einzelbildchen (Tiles) ?
Gruß Tom
Ich denke es wird vermutlich eher Einzelbildchen sein wenn man die Polygone und Linien so nennen mag...
hast Du da zufällig Hinweise auf weiterführende Links? Ich habe mich schon totgesucht, aber unter java scrollen endless oder inifinite finde ich nicht wirklich was in dieser Richtung :-(
Bisher nehme ich an, dass es irgendwie mit dem JViewport in irgendeiner Form zu tun hat.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück