Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

21.12.2010, 07:25

Isometrische Tile Darstellung mit SFML und C++

Hallo Leute.

Ich bin gerade dabei mir gedanken zu machen was Sinnvoller ist für meine Isometrische Tile Engine.

Wie im Titel schon steht arbeite ich mit SFML und C++. Mich beschäftigt die Frage ob ich einfach alle Iso-Tile Rendern soll oder ob ich eine Überprüfung durchführen soll ob gewisse Tile verdeckt sind. Die Frage die sich mir dabei stellt ist was geht schneller.

also a) einfach Stupide alles Rendern lassen

oder b) nur sichtbare Tile Rendern lassen.

Und die 2te Frage die ich mir stelle die Richtige größe für ein Tile.

Also der Zeit hat ein Iso Tile die größe 32x32, wobei z.b. bei einem Boden Tile nur 32x16 Pixel dargestellt werden, Mauern und so sind dann 32x32 Pixel groß . Da ich finde das die Map später mit nur einem Mauerstück blöd aussieht hatte ich überlegt mehrere Mauertile überein ander zu "Stapeln". Dies erhöht aber dann auch wieder die Anzahl der gesammten Tile. Mein 2ter Gedanke dazu war ich mach die "gestapelten" Mauertile bereits als ein Sprite und habe dann zb. die Tile größe von 32x96 .

Was wäre denn hier der richtige(re) Weg ?

Ich hoffe ich habe mein Problem einigermaße verständlich rüber gebracht wenn nicht fragt noch mal nach was ihr daran nicht versteht.

Gruß Koschi
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

2

21.12.2010, 08:21


Wie im Titel schon steht arbeite ich mit SFML und C++. Mich beschäftigt die Frage ob ich einfach alle Iso-Tile Rendern soll oder ob ich eine Überprüfung durchführen soll ob gewisse Tile verdeckt sind. Die Frage die sich mir dabei stellt ist was geht schneller.

also a) einfach Stupide alles Rendern lassen

oder b) nur sichtbare Tile Rendern lassen.

Schieb die Frage doch auf, bis es wirklich relevant ist. Gerade der 2D Bereich ist nicht so Performancelastig, dass du große Probleme bekommst. Du solltest ne Überprüfung machen, ob die Tiles innerhalb des Bildes liegen. Aber dabei würde ich es dann erstmal belassen.
Zumal: Wie möchtest du das überprüfen? Wenn du Pixelweise vergleichst ob alle Ebenen darüber das Tile verdecken, kannst du genauso gut stupide zeichnen. Und wie oft wird es vorkommen, dass ein Tile durch ein anderes verdeckt ist?


Und die 2te Frage die ich mir stelle die Richtige größe für ein Tile.

Also der Zeit hat ein Iso Tile die größe 32x32, wobei z.b. bei einem Boden Tile nur 32x16 index.php?page=Attachment&attachmentID=243 Pixel dargestellt werden, Mauern und so sind dann 32x32 Pixel groß index.php?page=Attachment&attachmentID=245 . Da ich finde das die Map später mit nur einem Mauerstück blöd aussieht hatte ich überlegt mehrere Mauertile überein ander zu "Stapeln". Dies erhöht aber dann auch wieder die Anzahl der gesammten Tile. Mein 2ter Gedanke dazu war ich mach die "gestapelten" Mauertile bereits als ein Sprite und habe dann zb. die Tile größe von 32x96 index.php?page=Attachment&attachmentID=246 .

Was wäre denn hier der richtige(re) Weg ?

Der richtigere Weg ist der Funktionierende. Und das tun beide, ist nur eine Frage der Umsetzung. Ich persönlich würde höhere Mauern in 3 Tiles aufteilen. Bodenstück, Mittelstück, Oberkante. Dann kannst du die Höhe beliebig setzen und es verhält sich genauso wie jedes andere Tile und bildet keine Ausnahme.

3

21.12.2010, 08:53

Hui danke für die schnelle Antwort.

Zumal: Wie möchtest du das überprüfen? Wenn du Pixelweise vergleichst ob alle Ebenen darüber das Tile verdecken, kannst du genauso gut stupide zeichnen. Und wie oft wird es vorkommen, dass ein Tile durch ein anderes verdeckt ist?
Ganz Simpel:Jedes Tile bekommt ein Boolschen Wert ob es andere Verdeckt. Bedingt durch das Raster weiß ich ja welche Tile ich ansprechen muß um zu Erfahren ob die dahinter liegenden Sichtbar sind oder nicht.

Und wie oft wird es vorkommen, dass ein Tile durch ein anderes verdeckt is
In der Isometrischen Darstellung wird es sehr oft vorkommen siehe z.B. Diablo da wird dann die Wand durchlässig wenn sich der Spieler dahinter befindet.

Ich persönlich würde höhere Mauern in 3 Tiles aufteilen. Bodenstück, Mittelstück, Oberkante.
Ich habe sogar an 4 Tile gedacht. 1x Boden und 3x Mauer + jede Ebene ein Dekorations Layer.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

4

21.12.2010, 09:33


Ganz Simpel:Jedes Tile bekommt ein Boolschen Wert ob es andere Verdeckt. Bedingt durch das Raster weiß ich ja welche Tile ich ansprechen muß um zu Erfahren ob die dahinter liegenden Sichtbar sind oder nicht.
Die Sache mit den Häusern ist mir bei der fixen Antwort irgendwie entfallen. Aber trotzdem bleib ich bei: Performance wird erstmal nicht das Problem sein. Das kann man zu gegebener Zeit noch erweitern. ;)


Ich habe sogar an 4 Tile gedacht. 1x Boden und 3x Mauer + jede Ebene ein Dekorations Layer.

Moment... hier bin ich jetzt irgendwie verwirrt....

5

21.12.2010, 09:46

Moment... hier bin ich jetzt irgendwie verwirrt....
Im prinzip genau wie du es sagst nur. Ich glaub sogar genau so wie du es sagt mir ist beim schnellen lesen nicht aufgefallen das du dich nur auf ein Mauerstück beziehst :) .

du meinst ungefähr so:
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Koschi« (21.12.2010, 09:57)


Werbeanzeige