alestane icon

Sokoban movement (player check)

alestane | PRO | 01/02/14 02:00:34 PM UTC | 0 ⭐ | 334 👁️ | Never ⏰ | []
Lua |

710 B

|

None

|

0 👍

/

0 👎

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
    if map[targetX][targetY].isWalkable then
    end
    return startX, startY
end

Comments