SKTileMapNode
などのタイル定義にアクセスできます。 SKTileMapNode
をマップエディタに追加すると、関連付けられたSKTileSet
が表示されます。したがって、CountTiles.sks
にこのような構造がある場合は、
- BackgroundTiles(タイルセット)
- タイル(タイルグループ)
- タイル(タイルグループルール)
- Tile1(タイル定義)
- Tile2(タイル定義)
- タイル3(タイル定義)
たとえば、特定のタイル定義にアクセスすることができます。このようなbackground
という名前のSKTileMapNode
を呼び出す関数を持つTile1;
func backgroundTileDefinition(key: String) -> SKTileDefinition {
guard let backgroundLayer = childNode(withName: "background") as? SKTileMapNode else {
fatalError("Background node not loaded")
}
guard let backgroundTile = backgroundLayer.tileSet.tileGroups.first(where: {$0.name == "Tiles"}) else {
fatalError("TileSet not found")
}
guard let backgroundTileSetRule = backgroundTile.rules.first(where: {$0.name == "Tile"}) else {
fatalError("Tileset rule not found")
}
guard let backgroundTileDefinition = backgroundTileSetRule.tileDefinitions.first(where: {$0.name == key}) else {
fatalError("Tile definition not found")
}
return backgroundTileDefinition
}
このような関数を呼び出します。
let backgroundTileDefinition = backgroundTileDefinition(key: "Tile1")