Höhenanordnung von Sprites bei 2D tilebasierten Spielen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

Sunny hat geschrieben:Doch, der Unterschied von Objekt zu Tile ist, dass man bei mir Objekte ähnlich wie Grafikobjekte in einem Bildbearbeitungsprogramm frei auf der Karte platzieren kann, die Größe verziehen, eine Animation hinzufügen, usw. So sehen bei mir Objekte aus. Tiles sind fest im 32 x 32 Pixel Raster gelegt und werden aus einem Tileset "gerippt". Sie lassen sich auf die Layer legen und werden durch die Objekte ergänzt.

Ich schätze, ich bin gerade dabei, meinen Editor komplett umzubasteln und daraus einen 2D-Editor zu basteln, der nichts mehr mit Tiles zu tun hat. Alles wird über Objekte geregelt, für Flächen kann man sich selbst Vertexe zeichnen und mit Textur bespannen. (Dank OpenGL sollte das ganz gut machbar sein). Das gibt mehr Freiheit in der Mapgestaltung aber erfordert leider eine komplette Überarbeitung meines schönen editors. :(

Hier sind übrigens mal ein paar Bildchen meines Editors:
http://derfeind2k.de/daten/mapedit%204.0.png

http://derfeind2k.de/daten/mapedit%205.0.png

http://derfeind2k.de/daten/mapedit%206.0.png

dein editor sieht aus wie der rpgmaker
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

sry,
war mir zu lang um alles zu lesen.


Dann weiß ich auch nicht.

Dan danke Dragon für die Info das 3d schneller ist,
ich habe immer gedacht das des normale schneller ist.
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Es geht ja nicht wirklich um die Geschwindigkeit sondern nur um die Anordnung der Tiles vor und hinter den Objekten. Die Geschwindigkeit macht bisher wenig Probleme, da kann ich ca. 6000 Tiles anzeigen und habe noch 30 FPs. Das sind ca. 8 komplett volle Layer von 32 x 24 Tiles, was ein Bildschirm ausmacht. Und das sollte dicke ausreichen, in Anbetracht daran, dass nie 8 Layer vollkommen ausgenutzt werden sondern teils nur 20 % eines Layers mit tiles besetzt ist.

Aber ich werde das Ganze jetzt komplett ohne tiles machen, man wird Poligone setzen können, mit Texturen überziehen und frei Pixelgenau platzieren können. Das bietet etliche vorteile im Mapping vor Allem aber, dass man Bäume nun größer und kleiner ziehen kann was mehr Unterschiede in der Natur bringt, mehr Freiheit in der Anordnung der Objekte und das Problem der Höhen und Tiefen ist geklärt, da praktisch alles aus texturierten Objekten besteht welche nach Standort sortiert werden.
dein editor sieht aus wie der rpgmaker
Vielleicht habe ich mich davon etwas inspirieren lassen, das mag schon sein. Da ich jetzt aber nicht mehr auf Tiles setze wird sich die GUI fast zu 100 % ändern, der geschriebene Code wird größtenteils verworden. (Ca. 6000 Zeilen fliegen damit über den Bach). Nur kleine Teile werden ich übernehmen können, im Endeffekt wird der Editor nichts mehr mit dem Maker oder sonstigen tilebasierten Editoren zu Tun haben.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Sunny hat geschrieben:Es geht ja nicht wirklich um die Geschwindigkeit sondern nur um die Anordnung der Tiles vor und hinter den Objekten.
Das weiß ich, ich hab nur unix berichtigen wollen.
Hast du es mal mit einer Kollision probiert? :roll: Mach das ganze doch einfach so: Sobald der Spieler die unterste grenze des Baums erreicht hat(von oben nach unten gehend), kommt er nach vorne. Sortier einfach alle objekte nach y wert und zeichne sie danach, aber immer in 1. Priorität mit dem Layer(Z-Wert). Der Baum muss allerdings nun auf dem selben Layer sein wie der Spieler.

[EDIT]
Achja: Das DepthTest problem ist damit ja eigentlich geklärt -> selbst machen ist angesagt.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten