Difference between revisions of "TileMap"

From GiderosMobile
(added example)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
<languages />
 
 
<!-- GIDEROSOBJ:TileMap -->
 
<!-- GIDEROSOBJ:TileMap -->
 
'''<translate>Supported platforms</translate>:''' [[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/>
 
'''<translate>Supported platforms</translate>:''' [[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/>
Line 6: Line 5:
 
'''<translate>Inherits from</translate>:''' [[Special:MyLanguage/Sprite|Sprite]]<br/>
 
'''<translate>Inherits from</translate>:''' [[Special:MyLanguage/Sprite|Sprite]]<br/>
  
=== <translate>Description</translate> ===
+
=== Description ===
 
The [[Special:MyLanguage/TileMap|TileMap]] class is used to work with tile maps easily and efficiently.
 
The [[Special:MyLanguage/TileMap|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 ===
 +
<source lang="lua">
 +
-- 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 tileset
 +
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
 +
)
 +
-- make the tilemap
 +
for i=1,4 do
 +
for j=1,4 do
 +
tm:setTile(i, j, i, j)
 +
end
 +
end
 +
-- some other tiles in the 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(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 tilemap and add to stage
 +
tm:setPosition(0, 0)
 +
stage:addChild(tm)
 +
</source>
  
 
{|-
 
{|-

Revision as of 01:04, 8 March 2020

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
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 tileset
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
)
-- make the tilemap
for i=1,4 do
	for j=1,4 do
		tm:setTile(i, j, i, j)
	end
end
-- some other tiles in the 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(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 tilemap and add to stage
tm:setPosition(0, 0)
stage:addChild(tm)

Methods

TileMap.new creates a new TileMap instance
TileMap:clearTile set an empty tile at given indices
TileMap:getTile returns the index of the tile
TileMap:setRepeat Indicate if the tilemap should repeat itself
TileMap:setTexture Change the tile texture/atlas used by the tilemap
TileMap:setTile sets the index of the tile
TileMap:shift shifts the tile map

Events

Constants

TileMap.FLIP_DIAGONAL
TileMap.FLIP_HORIZONTAL
TileMap.FLIP_VERTICAL