如何在SpriteKit中将磁贴更改为另一个(或空白)?

时间:2017-07-26 03:17:28

标签: swift sprite-kit sktilemapnode

所以我试图使用一个瓦片地图节点在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(在代码中加星标)参数是占位符。我不知道怎么在那里填一个白色的主教。 谢谢!

1 个答案:

答案 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)

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