SHOW:
|
|
- or go back to the newest paste.
1 | - | local function tileWithBox(i,j) |
1 | + | local function move(map, startX, startY, dX, dY) |
2 | - | |
2 | + | local targetX, targetY = startX + dX, startY + dY |
3 | - | local tile = gameTile(i,j) |
3 | + | if not map[targetX][targetY] then return startX, startY; end |
4 | - | tile.isBox = true |
4 | + | if map[targetX][targetY].isBox then |
5 | - | tile.isWalkable = false |
5 | + | local slideX, slideY = targetX + dX, targetY + dY |
6 | - | |
6 | + | if not (map[slideX] and map[slideX][slideY] and map[slideX][slideY].isWalkable) then return startX, startY; end |
7 | - | local tileWithBox |
7 | + | local empty, boxTile = map[slideX][slideY], map[targetX][targetY] |
8 | - | |
8 | + | local sprite = boxTile.box |
9 | - | trackID = trackID + 1 |
9 | + | sprite.x, sprite.y = empty.x, empty.y |
10 | - | tile.box = display.newImage("crate.png") |
10 | + | empty.box = boxTile.box |
11 | - | tile.box.i = i |
11 | + | empty.isBox = true |
12 | - | tile.box.j = j |
12 | + | empty.isWalkable = false |
13 | - | tile.box.x = 240-((8 * 17) +17) +(i*34) |
13 | + | boxTile.box = nil |
14 | - | tile.box.y = (j * 34) |
14 | + | boxTile.isWalkable = true |
15 | - | tile.box.myID = trackID |
15 | + | boxTile.isBox = false |
16 | - | |
16 | + | end |
17 | - | return tile |
17 | + | if map[targetX][targetY].isWalkable then |
18 | local target, origin = map[targetX][targetY], map[startX][startY] | |
19 | hero.x, hero.y = target.x, target.y | |
20 | target.isHero = true | |
21 | target.isWalkable = false | |
22 | origin.isHero = false | |
23 | origin.isWalkable = true | |
24 | return targetX, targetY | |
25 | end | |
26 | return startX, startY | |
27 | end |