gpt4 book ai didi

sprite-kit - 在 Swift 中以编程方式创建 SKTileMapNode

转载 作者:行者123 更新时间:2023-12-04 17:44:42 24 4
gpt4 key购买 nike

有谁知道如何使用 Swift 以编程方式创建 SKTileMapNode 吗? (注意:我不想使用编辑器执行此操作,我只想以编程方式实现此目的)

我已经尝试了以下但没有呈现我的瓷砖 map

let bgTexture = SKTexture(imageNamed: "background")
let bgDefinition = SKTileDefinition(texture: bgTexture, size: bgTexture.size())
let bgGroup = SKTileGroup(tileDefinition: bgDefinition)
let tileSet = SKTileSet(tileGroups: [bgGroup])
let bgNode = SKTileMapNode(tileSet: tileSet, columns: 5, rows: 5, tileSize: bgTexture.size())
bgNode.position = CGPoint(x: self.frame.size.width / 2, y: self.frame.size.height / 2)
bgNode.setScale(1)
self.addChild(bgNode)

非常感谢任何帮助

最佳答案

要使用单个背景图块布局整个 map ,您需要遍历每一列和每一行。您需要先检索背景图块。

let tile = bgNode.tileSet.tileGroups.first(
where: {$0.name == "background"})

for column in 0..4 {
for row in 0..4 {
bgNode.setTileGroup(tile, forColumn: column, row: row)
}
}

还有一个方便的功能来实现洪水填充;
bgNode.fill(with: tile)
SKTilemapNode 还有一个初始化器接受 SKTileGroup
let bgNode = SKTileMapNode(tileSet: tileSet, columns: 5, rows: 5, tileSize: bgTexture.size(), fillWithTileGroup: tile)

我强烈建议利用 Xcode 内置的功能来创建 TileSet 和 TileMap。您仍然可以以编程方式填充 map 。

关于sprite-kit - 在 Swift 中以编程方式创建 SKTileMapNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39533705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com