たとえば、関連付けられている をマップ エディタにSKTileMapNode
追加すると、 を介してタイル定義にアクセスできます。あなたがこのような構造を持っている場合;SKTileMapNode
SKTileSet
CountTiles.sks
- BackgroundTiles (タイル セット)
- タイル (タイル グループ)
- タイル (タイル グループ ルール)
- Tile1 (タイル定義)
- Tile2 (タイル定義)
- Tile3 (タイル定義)
SKTileMapNode
次のような名前を呼び出す関数を使用して、Tile1 などの特定のタイル定義にアクセスできますbackground
。
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")