Difference between revisions of "TileMap"
From GiderosMobile
(added example) |
m (Text replacement - "</source>" to "</syntaxhighlight>") |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
<!-- GIDEROSOBJ:TileMap --> | <!-- GIDEROSOBJ:TileMap --> | ||
− | ''' | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/> |
− | ''' | + | '''Available since:''' Gideros 2011.6<br/> |
− | ''' | + | '''Inherits from:''' [[Sprite]]<br/> |
=== Description === | === Description === | ||
− | The | + | The '''TileMap''' class is used to work with tile maps easily and efficiently. |
Check ''Desert'' and ''Sewers'' examples provided with Gideros for usage of TileMap with export from editor. | Check ''Desert'' and ''Sewers'' examples provided with Gideros for usage of TileMap with export from editor. | ||
=== Example === | === Example === | ||
− | < | + | <syntaxhighlight lang="lua"> |
-- set the tilemap texture | -- set the tilemap texture | ||
local texture = Texture.new("gfx/finalts16.png") | local texture = Texture.new("gfx/finalts16.png") | ||
Line 18: | Line 18: | ||
-- calculate the tiles width and height | -- calculate the tiles width and height | ||
local tilew, tileh = texture:getWidth() / tilesetcols, texture:getHeight() / tilesetrows | local tilew, tileh = texture:getWidth() / tilesetcols, texture:getHeight() / tilesetrows | ||
− | -- create the | + | -- create the tilemap |
local tm = TileMap.new( | local tm = TileMap.new( | ||
2*16, 2*8, -- map size in tiles | 2*16, 2*8, -- map size in tiles | ||
Line 27: | Line 27: | ||
tilew, tileh -- display width and height | tilew, tileh -- display width and height | ||
) | ) | ||
− | -- | + | -- build the map |
for i=1,4 do | for i=1,4 do | ||
for j=1,4 do | for j=1,4 do | ||
Line 33: | Line 33: | ||
end | end | ||
end | end | ||
− | -- some other tiles in the | + | -- some other tiles in the map |
tm:setTile(6,3,5,1) -- col position, row position, tile col index in tilemap, tile row index in tilemap | tm:setTile(6,3,5,1) -- col position, row position, tile col index in tilemap, tile row index in tilemap | ||
tm:setTile(7,3,5,1) -- col position, row position, tile col index in tilemap, tile row index in tilemap | tm:setTile(7,3,5,1) -- col position, row position, tile col index in tilemap, tile row index in tilemap | ||
tm:setTile(6,4,5,2) -- col position, row position, tile col index in tilemap, tile row index in tilemap | tm:setTile(6,4,5,2) -- col position, row position, tile col index in tilemap, tile row index in tilemap | ||
tm:setTile(7,4,5,3) -- col position, row position, tile col index in tilemap, tile row index in tilemap | tm:setTile(7,4,5,3) -- col position, row position, tile col index in tilemap, tile row index in tilemap | ||
− | -- position the | + | -- position the map and add to stage |
tm:setPosition(0, 0) | tm:setPosition(0, 0) | ||
stage:addChild(tm) | stage:addChild(tm) | ||
− | </ | + | </syntaxhighlight> |
{|- | {|- | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Methods === |
− | [[ | + | [[TileMap.new]] ''creates a new TileMap instance''<br/><!--GIDEROSMTD:TileMap.new(width,height,texture,tilewidth,tileheight,spacingx,spacingy,marginx,marginy,displaywidth,displayheight) creates a new TileMap instance--> |
− | [[ | + | [[TileMap:clearTile]] ''sets an empty tile at given indices''<br/><!--GIDEROSMTD:TileMap:clearTile(x,y) sets an empty tile at given indices--> |
− | [[ | + | [[TileMap:getTile]] ''returns the index of the tile''<br/><!--GIDEROSMTD:TileMap:getTile(x,y) returns the index of the tile--> |
− | [[ | + | [[TileMap:setRepeat]] ''indicates if the tilemap should repeat itself''<br/><!--GIDEROSMTD:TileMap:setRepeat(x,y) indicates if the tilemap should repeat itself--> |
− | [[ | + | [[TileMap:setTexture]] ''changes the tile texture/atlas used by the tilemap''<br/><!--GIDEROSMTD:TileMap:setTexture(texture,tilewidth,tileheight,spacingx,spacingy,marginx,marginy) changes the tile texture/atlas used by the tilemap--> |
− | [[ | + | [[TileMap:setTile]] ''sets the index of the tile''<br/><!--GIDEROSMTD:TileMap:setTile(x,y,tx,ty,flip,color,alpha) sets the index of the tile--> |
− | [[ | + | [[TileMap:shift]] ''shifts the tile map''<br/><!--GIDEROSMTD:TileMap:shift(dx,dy) shifts the tile map--> |
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | === Events === |
− | === | + | === Constants === |
− | [[ | + | [[TileMap.FLIP_DIAGONAL]] '''1'''<br/><!--GIDEROSCST:TileMap.FLIP_DIAGONAL 1--> |
− | [[ | + | [[TileMap.FLIP_HORIZONTAL]] '''4'''<br/><!--GIDEROSCST:TileMap.FLIP_HORIZONTAL 4--> |
− | [[ | + | [[TileMap.FLIP_VERTICAL]] '''2'''<br/><!--GIDEROSCST:TileMap.FLIP_VERTICAL 2--> |
|} | |} | ||
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} |
Latest revision as of 14:33, 13 July 2023
Supported platforms:
Available since: Gideros 2011.6
Inherits from: Sprite
Description
The TileMap class is used to work with tile maps easily and efficiently.
Check Desert and Sewers examples provided with Gideros for usage of TileMap with export from editor.
Example
-- set the tilemap texture
local texture = Texture.new("gfx/finalts16.png")
-- number of columns and rows in the tileset
local tilesetcols, tilesetrows = 11, 5
-- calculate the tiles width and height
local tilew, tileh = texture:getWidth() / tilesetcols, texture:getHeight() / tilesetrows
-- create the tilemap
local tm = TileMap.new(
2*16, 2*8, -- map size in tiles
texture, -- tileset texture
tilew, tileh, -- tile size in pixel
0, 0, -- spacing
0, 0, -- margin
tilew, tileh -- display width and height
)
-- build the map
for i=1,4 do
for j=1,4 do
tm:setTile(i, j, i, j)
end
end
-- some other tiles in the map
tm:setTile(6,3,5,1) -- col position, row position, tile col index in tilemap, tile row index in tilemap
tm:setTile(7,3,5,1) -- col position, row position, tile col index in tilemap, tile row index in tilemap
tm:setTile(6,4,5,2) -- col position, row position, tile col index in tilemap, tile row index in tilemap
tm:setTile(7,4,5,3) -- col position, row position, tile col index in tilemap, tile row index in tilemap
-- position the map and add to stage
tm:setPosition(0, 0)
stage:addChild(tm)
MethodsTileMap.new creates a new TileMap instance |
EventsConstantsTileMap.FLIP_DIAGONAL 1 |