# 2D Tileengine



## Axion (18. Dez 2006)

Hallo zusammen,

ich würde gern ein Programm (UO Architect, muss man nicht kennen) nach Java protieren. Ich hab mich auch schon in den letzten paar Tagen versucht über die Möglichkeiten die mir Java bietet zu informieren. Dabei sind aber eher mehr Fragen entstanden als gelöst wurden. Im Moment besteht auf meiner Seite ein Begriffsdurcheinander den ich gern klären möchte um danach an die Portierung des Programms zu gehen.

Hier sieht man einen Screenshot von der Oberfläche des Programms.







Ich würde sagen das es eine Isometrischedarstellung in der Militärperspektive ist. Um Kacheln (Tiles) aus der Vorlage zu laden, eventuell zu drehen, würden mir ja die Java (Java2D?) eigenen Funktionen genügen. An verschiedenen stellen hab ich aber schon gelesen das man das ganze auch mit OpenGL beschleunigen kann bzw. es auch dafür verwenden soll.

In der Portierung soll später auch gescrollt werden und animierte Tiles zu sehen sein.

Würdet ihr mir jetzt dazu raten das ganze den Java Bordmitteln zu lösen oder mit der OpenGL Unterstützung?

Axion


----------



## hupfdule (18. Dez 2006)

Wüsste nicht, was OpenGL da helfen sollte. Dafür brauchst du doch kein 3D. Die Tiles können alle 2D sein. 

Und _wenn_ du OpenGL bräuchtest, dann wärst du gut beraten eine 3D Engine zu benutzen, sonst wirst du ja nie fertig.


----------



## Axion (18. Dez 2006)

Du meinst mit 3D Engine etwas in die Richtung wie JMonkey oder jPCT und der gleichen aber nicht JOGL bzw. LWJGL?

Soweit ich das jetzt versteh versucht ja Java von hausaus Hardwarunterstützung zu benutzen (Direct irgendwas oder halt OpenGL) und als Notfall halt Softwarerendering?

Da ich die Anwendung primär unter Linux betreiben möchte ist es wohl nicht so falsch direkt mit OpenGL zu arbeiten.


----------



## hupfdule (18. Dez 2006)

Mein Punkt ist: Wozu OpenGL? Benutzt du 3D-Daten? Sonst bringt dir OpenGL doch gar nichts.


----------



## EgonOlsen (20. Dez 2006)

Naja, man kann's zum Blitten der Tiles schon nehmen. Aber ich würde es auch erstmal mit den in Java vorhandenen 2D-Möglichkeiten probieren. Wenn du mit den entsprechenden Imageformaten arbeitest, sind die auch hardwarebeschleunigt.


----------



## Axion (22. Dez 2006)

Java2D reicht dicke bis jetzt. Ich hab mich wohl mit OpenGL in eine komplett falsche Richtung bewegt. Die ersten kleinen Erfolge kann ich auch schon vorzeigen. Im Moment kann man über das Menü einen neuen Plot, mit frei wählbarer Größe erstellen, der dann dargestellt wird.










Bis jetzt war das Forum und die Suchfunktion sehr hilfreich und ich konnte mir 90% aller Fragen beantworten. Die Application besteht auch zu einem guten Teil aus Codesnipseln die ich im Forum gefunden habe.

In der oben gezeigten Version werden die einzelnen Tiles noch sehr statisch gezeichnet. Das bedeutet sobald ich ein anderes Tile, mit einer anderen Größe, zeichen möchte muss ich den Offset im Sourcecode manuell anpassen muß damit die Tiles wieder zueinander passen.

Im Moment arbeite ich daran das ich alle Bilder die sich in einem Verzeichnis befinden komplett lade, eine definierte Farbe vollständig transparent mache und das ganze irgendiwe organisiere damit ich leicht darauf zugreifen kann.

Als Zeites brauche noch eine Datenstruktur für den Plot die abbildet wo und auf welcher Höhe sich welches Tile befindet.

Als drittes soll meine Zeichenroutine mit der mit der größe eine Tiles und der Position umgeben können und selbständig daraus den Offset zum zeichnen berechnen. Im moment Zeichne ich auch noch zu viel, das bedeutet das ich Pixel 2 oder sogar noch öfter zeichne wenn diese verdeckt werden.

Es ist noch eine gutes Stück arbeit aber in kleinen Schritten geht es voran.


----------

