SHOW:
|
|
- or go back to the newest paste.
1 | local sprite = require "sprite" | |
2 | ||
3 | local createMap(self, size, columns, rows) | |
4 | local map = display.newGroup() | |
5 | map.Tiles = {} | |
6 | for row=0,rows+1 do | |
7 | map.Tiles[row] = {} | |
8 | for column=0,columns+1 do | |
9 | local tile = sprite.newSprite(self) | |
10 | tile:setReferencePoint(display.BottomLeftReferencePoint) | |
11 | map:insert(tile) | |
12 | tile.xScale, tile.yScale = size / tile.width, size / tile.height | |
13 | tile.x, tile.y = column * size, row * size | |
14 | map.Tiles[row][column] = tile | |
15 | end | |
16 | end | |
17 | return map | |
18 | end | |
19 | ||
20 | - | return function(spritesheet, size, kinds) |
20 | + | return function(spritesheet, size, kinds, mapping) |
21 | if not mapping then | |
22 | for _, kind in ipairs(kinds) do | |
23 | mapping[kinds:sub(1, 1):upper()] = kinds | |
24 | end | |
25 | end | |
26 | local terrain = sprite.newSpriteSet(sprite.newSpriteSheet(spritesheet, size, size), 1, 1) | |
27 | for i, kind in ipairs(kinds) do | |
28 | sprite.add(terrain, kind, i + 1, 1, 1, 1) | |
29 | end | |
30 | terrain.Create = createMap | |
31 | terrain.Mapping = mapping | |
32 | return terrain | |
33 | end |