[GELÖST] Tilemaps - Tiles während der Laufzeit ändern?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] Tilemaps - Tiles während der Laufzeit ändern?

BeitragFr, Mai 18, 2012 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich habe ein Problem: Ich habe eine Tilemap geladen, soweit so gut. Sie wird auch korrekt angezeigt und so. Nur jetzt kommt das Problem: Wenn der Spieler z.b. über ein tile geht, soll das tile während der Laufzeit in eines mit Fußstapfen ersetzt werden. Wie kann man soetwas realisieren?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Fr, Mai 18, 2012 21:52, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragFr, Mai 18, 2012 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Man ändert das Tile bzw. den Dekorations-layer. Je nach dem, wie die Tilemap aufgebaut ist.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

PhillipK

BeitragFr, Mai 18, 2012 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Grundsätzlich:

Überleg mal, wieviele tiles gibt es wohl, die fußstapfen haben können?
4-5 Schnee versionen, 4-5 Sand versionen, Erde, in hundertfacher ausführung..

Nun, es ist doch schwachsinn, 100 Tiles zu haben und dann nochmal 200+ nur für fußspuren? (Spur von oben nach unten, von unten nach oben, links -> rechts, links nach unten, undsoweiter undsofort) - das wird ein einziger ramwaste.

Darum:

Wenn du keins hast, lege ein weiteres layer für dekorationen an.

Du zeichnest zb zuerst den boden (gras, erde, usw usw), dann ein Bodenoverlay (dh für jedes feld nochmal was drüber - grasbüschel, baumstämme).
Darüber könnten noch weitere layer kommen - welche mit mauernteilen, welche mit wolken.

Du musst nur entscheiden, auf welcher "ebene" der Spieler zu sehen sein wird.

Dann kannst du anfangen, fußspuren als tiles zu erstellen und sie in den bodenoverlay einfügen.

WOLKEN
MAUERN / DÄCHER
SPIELER
BODEN DEKO <- Grass, Dreckspritzer, Übergänge, fußspuren
BODEN

So in etwa Smile

Stell dir das ganze am besten als 3d Array vor.
Array[x,y,z].

X und Z spiegeln die position im raum wieder. Y ist die höhe - 0 ist der boden, 1 ist Boden Deko, etc etc.

Deine schleife sollte nun etwa so aussehen:
BlitzMax: [AUSKLAPPEN]
For Local y = 0 To MAX_LAYERS 
For Local x = 0 To MAX_X
For Local z = 0 To MAX_Z
DrawTile(map[x,y,z])
Next
Next
Next
 

Seven

BeitragFr, Mai 18, 2012 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Könnte man nicht einfach aus den Fußstapfen ein Tile machen, dass eben
nur diese enthält und ansonsten transparent ist?
Wäre zumindest meine vorgehensweiße.
 

CO2

ehemals "SirMO"

BeitragFr, Mai 18, 2012 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit dem dekorations-Layer ist eine gute idee, ich glaube so mache ich das Very Happy

@ Seven:
So hatte ich das eigentlich vor...
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
 

PhillipK

BeitragFr, Mai 18, 2012 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Entschuldige Co2 Smile

Es klang so, als wolltest du ein Gras tile gegen ein Gras-mit-fußspurenteil austauschen. Deshalb meine aufklärung *hust*

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group