gpt4 book ai didi

swift - 更改图 block 的 zPosition

转载 作者:行者123 更新时间:2023-11-28 15:18:10 24 4
gpt4 key购买 nike

我想更改我的瓦片 map 中某些瓦片的 zPosition。我使用以下函数来实现这一点:

 static func setZPosition(to tileMap: SKTileMapNode, and tileInfo: String){

let tileSize = tileMap.tileSize
let halfWidth = CGFloat(tileMap.numberOfColumns) / 2 * tileSize.width
let halfHeight = CGFloat(tileMap.numberOfRows) / 2 * tileSize.height

for column in 0..<tileMap.numberOfColumns{
for row in 0..<tileMap.numberOfRows{
let tileDefinition = tileMap.tileDefinition(atColumn: column, row: row)
let isCorrectTile = tileDefinition?.userData?[tileInfo] as? Bool
if isCorrectTile ?? false{
let x = CGFloat(column) * tileSize.width - halfWidth
let y = CGFloat(row) * tileSize.height - halfHeight
let rect = CGRect(x: 0, y: 0, width: tileSize.width, height: tileSize.height)
let tileNode = SKShapeNode(rect: rect)
tileNode.position = CGPoint(x: x, y: y)
tileNode.zPosition = 100
tileMap.addChild(tileNode)
print(tileNode.zPosition)
}
}
}
}

当我使用这个函数时,打印语句显示了 5 次“100”。这是正确的,因为我想更改用户数据名称为“Z”的 5 个图 block 的 zPosition,我将其用作 tileInfo 参数。玩家 Sprite 的 ZPosition 为 10。但是如果我现在与玩家一起走过 zPosition 为 100 的瓦片,则玩家仍位于瓦片上方。我想让他在瓷砖后面。我在这里做错了什么?

最佳答案

定义中没有任何内容允许更改 zPosition(这是有道理的,因为我们的想法是尽可能快地绘制图 block )

我会建议让另一个图 block 集覆盖它,或者让单独的 Sprite 弹出。

关于swift - 更改图 block 的 zPosition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46495903/

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