我正在尝试以编程方式为 RPG 风格游戏中的对话框文本创建一个灵活的对话框。我设计了一个简单的方框图形,将其划分为所有正确的部分,并将其作为 8 路邻接组添加到我的图块集中。
我可以成功地将它添加到我的相机节点,但自动映射不起作用。我得到的只是一个由中心瓷砖组成的纯黑盒子。根据Apple的文档,enableAutomapping“指定瓦片地图是否使用像场景编辑器一样的自动映射行为”,所以我相信这个设置应该对我有所帮助。
它只选择中心瓷砖,忽略所有边缘/角落,我得到一个纯黑盒子。我正在寻找的行为是让 SpriteKit 根据我正在创建的形状选择合适的边缘和内部瓷砖。
这是我的代码(Swift 4.2)目前的样子:
func createDialogBox() {
let dialogTileSet = SKTileSet(named: "Dialog")!
for tileGroup in dialogTileSet.tileGroups {
for tileRule in tileGroup.rules {
for tileDefinition in tileRule.tileDefinitions {
for texture in tileDefinition.textures {
texture.filteringMode = .nearest
}
}
}
}
let tileSize = CGSize(width: 32, height: 32)
let rows = 3, cols = 12
let dialogBox = SKTileMapNode(tileSet: dialogTileSet,
columns: cols,
rows: rows,
tileSize: tileSize)
dialogBox.enableAutomapping = true
for col in 0..<cols {
for row in 0..<rows {
dialogBox.setTileGroup(dialogTileSet.tileGroups.first, forColumn: col, row: row)
}
}
dialogBox.zPosition = 2
dialogBox.position = CGPoint(x: 48, y: -128)
self.camera?.addChild(dialogBox)
}