KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: [LUA] frage zu Tile maps
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
wie ihr im bild sieht ist das häuschen nicht direkt am Rand. Deshalb meine Frage, was ich in meinem Code ändern muss.



Code:
Spoiler: (anzeigen)
screen:blit(d*16,c*16,map[c][d],false)

Ich glaube, dass du da etwas ändern musst.

Nome :
screen:blit(d*16,c*16,map[c][d],false)

Ich glaube, dass du da etwas ändern musst.


wahrscheinlich, da in den anderen Zeilen nicht soviel info ist Wink
aber ich wüste gerne genau was, da ich es nicht finde Tongue

for c = 1,7 do
for d = 1,12 do
screen:blit(d*16,c*16,map[c][d],false)
end
end

For-Schleifen fängt man eigentlich immer mit 0 an. Also:
for c = 0,7 do
for d = 0,12 do
screen:blit(d*16,c*16,map[c][d],false)
end
end

SIM sk :
wie ihr im bild sieht ist das häuschen nicht direkt am Rand. Deshalb meine Frage, was ich in meinem Code ändern muss.



Code:
Spoiler: (anzeigen)


Wie werden denn die Koordinaten z.B. der Textur z1 berechnet?

Für z1 gilt c = 1, d = 1
Wenn wir das jetzt in unseren blit-Befehl eingeben kommt folgendes raus:
screen:blit(1*16,1*16,map[1][1],false) raus
-> screen:blit(16,16,map[1][1],false)

Somit wird die Textur z1 an der Stelle X = 16 und Y = 16 angezeigt.
Damit diese Textur jetzt die linke obere Ecke ganz ausfüllt müssen wir den Code so ändern, dass unser blit-Befehl die Koordinaten 0,0 bekommt.
Also muss aus:

Code:
for c = 1,7 do
for d = 1,12 do


das hier werden:

Code:
for c = 0,6 do
for d = 0,11 do


Hoffe mal das ist richtig was ich gelabert habe xD
Viel Glück noch bei deinem Projekt Smile

für diese zeile:
screen:blit(d*16,c*16,map[c][d],false)

bekomme ich trotzdem eine fehlermeldung: attempt to index field '?' (a nil value)
Hast du nachdem du die Schleifen vond c und d geändert hast auch die zuweisung der Werte für map geändert?

Wenn nein, liegts wohl daran, dass map für den Wert 0 nichts hat...

Wenn ja, dann egal ^^
Oh mann ><
so schwer ist des doch auch net Big Grin

statt dem code:

Code:
screen:blit(d*16,c*16,map[c][d],false)


musst du

Code:
screen:blit(d*16-16,c*16-16,map[c][d],false)


schreiben.

Ich werd jetzt nicht sagen warum, das sollte ja eigentlich demjenigen, der mir schon in sovielen Lua code fragen geholfen hat, selbst einfallen Big Grin

Nunja, nun werd ich mal auch ne frage posten wie mann ne Tilemap-collision macht ;D

Referenz-URLs