所以我试图使用一个瓦片地图节点在Xcode 8.3.3中编写一个国际象棋应用程序,一个8x8瓦片地图包含每个瓦片的一块或一个空格(在GameScene.sks中制作,而不是代码) 。我想要做的是更换瓷砖。例如,如果某人移动了一个棋子,我想将一个棋子的起始空间更改为一个空格,然后将结束的方块从一个空格更改为一个pawn。 tile组位于一个名为pieces.sks的文件中,我在File-> New-> File-> SpriteKit Tile Set中创建。 这是我到目前为止在GameScene.swift中所拥有的内容(我拿出了与问题无关的内容),目标是在代码运行时将单个方块更改为白色主教:
class GameScene: SKScene {
var pieces : SKTileMapNode?
override func didMove(to view: SKView) {
self.pieces = self.childNode(withName: "//pieces") as? SKTileMapNode
if let pieces = self.pieces {
pieces.setTileGroup(backgroundGroup*, forColumn: 4, row: 4) //arbitrary square I'm using for testing
}
}
}
因此,pieces.setTileGroup会因为一些原因而混淆我,例如“forColumn”而不是简单的“列”。我把它从Apple开发者文档中删除了,我不确定做我想做的事是正确的。 backgroundGroup(在代码中加星标)参数是占位符。我不知道怎么在那里填一个白色的主教。 谢谢!
答案 0 :(得分:0)
我在https://www.raywenderlich.com/137216/whats-new-spritekit-ios-10-look-tile-maps找到了答案,这对于一般的瓷砖地图非常有用。
我补充说:
let tileSet = SKTileSet(named: "Pieces")
pieces.setTileGroup(tileSet?.tileGroups[0], forColumn: 4, row: 4)
原点位于左下角,标准笛卡尔平面的第一象限也是如此。