如何在 SpriteKit 中将磁贴更改为另一个(或空白)?
Posted
技术标签:
【中文标题】如何在 SpriteKit 中将磁贴更改为另一个(或空白)?【英文标题】:How do I change a tile to another (or a blank) in SpriteKit? 【发布时间】:2017-07-26 03:17:27 【问题描述】:所以我正在尝试使用 tile map 节点在 Xcode 8.3.3 中编写一个国际象棋应用程序,其中一个 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(在代码中加星标)参数是一个占位符。我不知道如何填写那里的白人主教。 谢谢!
【问题讨论】:
【参考方案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)
原点位于左下角,标准笛卡尔平面的第一象限也是如此。
【讨论】:
以上是关于如何在 SpriteKit 中将磁贴更改为另一个(或空白)?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Vue Js 中将数据值从一个组件更改为另一个组件?