[英]change zPosition of tiles
我想更改我的地图中某些地图的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”。 这是正确的,因为我想更改userData名称为“ Z”的5个图块的zPosition,并将其用作tileInfo参数。 播放器精灵的ZPosition为10。但是,如果我现在与播放器一起走过具有zPosition 100的图块,则播放器仍在图块上方。 我希望他在瓷砖后面。 我在这里做错了什么?
定义中没有允许zPosition更改的内容(这是有道理的,因为其想法是尽可能快地绘制图块)
我建议您在其上放置另一个图块集,或者弹出一些单独的精灵。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.