SHOW:
|
|
- or go back to the newest paste.
| 1 | local function move(map, startX, startY, dX, dY) | |
| 2 | local targetX, targetY = startX + dX, startY + dY | |
| 3 | if not map[targetX][targetY] then return startX, startY; end | |
| 4 | if map[targetX][targetY].isBox then | |
| 5 | local slideX, slideY = targetX + dX, targetY + dY | |
| 6 | if not (map[slideX] and map[slideX][slideY] and map[slideX][slideY].isWalkable) then return startX, startY; end | |
| 7 | - | tileBlox[gameMap[targetX][targetY].id].x = gameMap[slideX][slideY].x |
| 7 | + | local empty, box = map[slideX][slideY], map[targetX][targetY] |
| 8 | local sprite = tileBlox[box.id] | |
| 9 | sprite.x, sprite.y = empty.x, empty.y | |
| 10 | empty.id = box.id | |
| 11 | empty.isBox = true | |
| 12 | empty.isWalkable = false | |
| 13 | box.id = 0 | |
| 14 | box.isWalkable = true | |
| 15 | box.isBox = false | |
| 16 | end | |
| 17 | end |