1

所以我试图在 Xcode 8.3.3 中使用一个 tile map 节点来编写一个国际象棋应用程序,一个 8x8 tile map 包含一个块或每个 tile 的空白空间(在 GameScene.sks 中制作,而不是使用代码)。我想要做的是改变瓷砖。例如,如果有人移动一个棋子,我想将起始空间从一个棋子更改为一个空格,然后将结束格从一个空格更改为一个棋子。瓦片组位于一个名为 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”而不是简单的“column”。我从 Apple Developer Documentation 中得到了它,并且不确定这是做我想做的正确的事情。backgroundGroup(在代码中加星标)参数是一个占位符。我不知道如何填写那里的白人主教。谢谢!

4

1 回答 1

1

我在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)

原点位于左下角,标准笛卡尔平面的第一象限也是如此。

于 2017-07-26T21:28:32.013 回答