View difference between Paste ID: FMg98wU0 and 6FLRBhcq
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