Code: Select all
for a = 0 to columns-1
for b = 0 to rows-1
if spritemode(map(a,b)) = 1 then
cmin = (a*16)-15: cmax = (a*16)+15
rmin = (b*16)-15: rmax = (b*16)+15
if r >= rmin and r <rmax>= cmin and c <= cmax then
if MULTIKEY(&h48) then r = r + 1
if MULTIKEY(&h4D) then c = c - 1
if MULTIKEY(&h50) then r = r - 1
if MULTIKEY(&h4B) then c = c + 1
columns and rows are the number of columns and rows in the current map.
spritemode is the status of each tile (whether or not you can go through them)
map(a,b) is the map, of course.
the cmin, cmax, rmin, and rmax es specify the boundaries the character has to cross before any collision action is taken.
If there is a collision, the game will move the character in the opposite direction 1 pixel, according to what button was pushed.
Any suggestions? Thanks and God Bless!