local function move(map, startX, startY, dX, dY)
local targetX, targetY = startX + dX, startY + dY
if not map[targetX][targetY] then return startX, startY; end
if map[targetX][targetY].isBox then
local slideX, slideY = targetX + dX, targetY + dY
if not (map[slideX] and map[slideX][slideY] and map[slideX][slideY].isWalkable) then return startX, startY; end
local empty, box = map[slideX][slideY], map[targetX][targetY]
local sprite = tileBlox[box.id]
sprite.x, sprite.y = empty.x, empty.y
empty.id = box.id
empty.isBox = true
empty.isWalkable = false
box.id = 0
box.isWalkable = true
box.isBox = false
end
end
Comments