KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: [LUA] Tilemap collision
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallöö ;D
Diesmal geht es um eine Tilemap, bei der collision erkannt werden soll.

so sieht mein Code bisher aus:

Code:
for c=1,16 do
for d=1,30 do
screen:blit(d*16-16,c*16-16,map[c][d],false)
end
end


das dient nur dazu wo die kolliison seien SOLLTE
______________
nun mein kollisioncode:

Code:
oldx = charx
oldy = chary

    a=Image.createEmpty(16,16)
    a:clear(red)
    b=Image.createEmpty(16,16)
    b:clear(green)

--sonstigercode...

map={
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,b,b,b,b,b,b,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a },
{a,a,a,a,a,a,b,a,a,a,a,a,a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a }
}

--nochmal sonstiger code...

for c=1,16 do
for d=1,30 do

if map[c][d] == b then
if (charx+24 > d*16-16) and (charx+24 < d*16) and (chary+22 > c*16+16) and (chary+22 <c*16) then
charx = oldx
chary = oldy
end
end

end
end


das wars dann, hoffe ich hab nichts vergessen, und schon mal vielen dank an alle die sich über diese frage den Kopf zerbrechen ^^

~luaprogrammer, ReapeR, Manu, oder wie ihr mich auch immer nennen wolt


Edit:
hab auch nocvh ein paar andere fragen:
1: Wie kann man in einer Datei die 2/3/4... zeile beschreiben?
2: Und auch wieder NUR eine zeile lesen?

Big Grin thx

und hat sich nach ein bisschen überlegung erledigt, für diejenigen die is interriesiert:

if (charx+24 > d*16-16) and (charx+24 < d*16) and (chary+22 > c*16+16) and (chary+22 <c*16) then

genauer bei

(chary+22 > c*16+16)

muss kein plus sondern ein minus hin >< so klein aber fein.
Referenz-URLs