- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个 SKLabelNode,一个显示分数,另一个充当分数后面的阴影。每次我的球员通过一个目标时,我都会通过调用下面的 updateScoreLabels() 方法更新得分标签以增加 1 分。
但出于某种原因,无论我为这些 SKLabelNode 中的每一个设置什么 zPosition,这两个节点都是以随机顺序绘制的,并且每次我调用 updateScoreLabels() 方法时,它们的顺序都会随机翻转。如果我将一个 SKLabelNode 添加为另一个 SKLabelNode 的子节点,我将 .ignoresSiblingOrder 设置为什么似乎也无关紧要。节点完全忽略 zPosition。我究竟做错了什么?这是我的代码:
这个方法在didMoveToView()中被调用:
func createScoreLabel() {
//Configure score label
scoreLabel = SKLabelNode(fontNamed: "8BIT WONDER Nominal")
scoreLabel.text = "O"
scoreLabel.fontSize = 32
scoreLabel.position = CGPoint(x: -UIScreen.main.bounds.size.width/2 - scoreLabel.frame.size.width/2, y: UIScreen.main.bounds.size.height/2 - scoreLabel.frame.size.height/2 - 60)
scoreLabel.zPosition = 999
//Configure shadow
scoreLabelShadow.attributedText = NSAttributedString(string: "O", attributes: scoreLabelShadowAttributes)
scoreLabelShadow.position = CGPoint(x: -UIScreen.main.bounds.size.width/2 - scoreLabel.frame.size.width/2, y: UIScreen.main.bounds.size.height/2 - scoreLabel.frame.size.height/2 - 60)
scoreLabelShadow.zPosition = -9999999999
//Add labels
cam.addChild(scoreLabel)
cam.addChild(scoreLabelShadow)
//Animate labels
scoreLabel.run(SKAction.move(to: CGPoint(x: -UIScreen.main.bounds.size.width/2 + scoreLabel.frame.size.width/2 + 30, y: UIScreen.main.bounds.size.height/2 - scoreLabel.frame.size.height/2 - 60), duration: 0.1))
scoreLabelShadow.run(SKAction.move(to: CGPoint(x: -UIScreen.main.bounds.size.width/2 + scoreLabel.frame.size.width/2 + 30, y: UIScreen.main.bounds.size.height/2 - scoreLabel.frame.size.height/2 - 60), duration: 0.1))
}
然后当我递增分数标签时调用它。每当这被称为 zPositions 随机翻转时:
func updateScoreLabel() {
let formattedScore = String(score).replacingOccurrences(of: "0", with: "O")
scoreLabel.text = String(formattedScore)
scoreLabelShadow.attributedText = NSAttributedString(string: formattedScore, attributes: scoreLabelShadowAttributes)
}
最佳答案
正如我回答的here : 我通常创建枚举来建立 zPositions,所以我可以简单地管理不同的层:
enum ZPositions: Int {
case background
case foreground
case player
case otherNodes
}
因此,当您设置一个新项目时,您可以通过这种方式简单地为其指定 zPosition:
button.zPosition = CGFloat(ZPosition.otherNodes.rawValue)
(按钮现在具有最高的 zPosition)希望它能帮助...
关于ios - SKLabelNode 不尊重 zPosition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55551877/
假设我有节点 A、B 和 C。我如何将节点 A 设置为比节点 B 更高的 zPosition,将节点 B 设置为比 C 更高的 zPosition,但将节点 A 设置为比节点 C 更低的 zPosit
我不明白如何更改 View 的 zPosition,我尝试这样做,但没有任何反应: - (void)viewDidLoad { [super viewDidLoad]; UIView
我在控制节点的 zPosition 时遇到问题。如果在场景编辑器上创建,我没有问题,但稍后当我想用代码添加新节点时,zPosition 不受尊重。 //GameScene override func
我想在GameScene.sks中为场景制作背景。我在那里有Tile Map Node,但是当我在GameScene.swift中设置背景时,图片位于我的纹理上。我希望它出现在场景的后面。 这是Gam
我有两个 SKLabelNode,一个显示分数,另一个充当分数后面的阴影。每次我的球员通过一个目标时,我都会通过调用下面的 updateScoreLabels() 方法更新得分标签以增加 1 分。 但
三层被赋予相同的父级,但要添加的第一层上的 zPosition 值没有影响 - 它保留在后面。为什么是这样?我正在阅读的书说子层数组中的位置可以用 zPosition 值覆盖。 import UIKi
我一直认为 SKNode 的 zPosition 是相对于其父节点的,但现在我遇到了相反的效果。 我的场景中有两个父 SKNode,它们的 zPosition 分别为 1 (node1) 和 2 (n
addChild 和 zPosition 对场景有什么影响? 我的意思是:假设我这样做 sprite1.zPosition = 50; sprite2.zPosition = 10; sprite3.
我有一个相当复杂的 UIImageView 层次结构。最初,当一个 UIImageView 移动到另一个 UIImageView 前面时,我小心地交换了同级顺序。然后我发现了 myUIImageVie
我有以下问题:我想要常量,在 parentView.subviews 数组中定义 subview 的顺序。此常量不一定是 subview 数组的索引,但它们可以。 像这样: #define VIEW1
我想将图像放置在导航栏上,但部分放置在导航栏上,部分放置在内容 View 上。所以我将 UINavigationBar.layer.zPostion 设置为 -1,它工作得非常好,尤其是在 iPhon
我有一个 UISearchBar正在努力动态显示列表中的匹配结果,但在试图停止 searchResultsTableView 时遇到了噩梦从模糊结果UIView ,当结果被点击时,它从右边开始动画。
我正在尝试制作一个抽屉,当它被点击时,它会从该行下方滑出。除了无法设置 zposition 之外,我已经完成了所有工作。我尝试了几种不同的方法,但它对我不起作用。我可以将 View 与行的底部对齐,但
我想更改我的瓦片 map 中某些瓦片的 zPosition。我使用以下函数来实现这一点: static func setZPosition(to tileMap: SKTileMapNode, an
我正试图暂停我游戏中的许多 Sprite 。有没有一种方法可以暂停具有给定 zPosition 的 Sprite 或低于给定 zPosition 的所有 Sprite ?这些 Sprite 也可能在更
我在 SpriteKit 场景中遇到了节点 zPosition 的问题。 我正在构建一个管理器节点,它支持对节点 zPosition 进行“类似层”的管理,本质上使您能够摆脱 zPosition 属性
我遇到了一个问题,当值变大时,Core Animation 似乎忽略了我的 zPosition 值。 例子 这很容易复制。 CGFloat largeZPosition = 1000000000; C
我是 Swift 编程新手。我正在尝试创建一个游戏,其中有一堆在屏幕上随机移动的 Sprite 。假设我有一堆简单的 2D 图像 Sprite 。当 Sprite 向上移动时(如 y 位置增加),我希
我有一些 UIViews 位于不同的 zPositions。这个想法是在呈现观点的那一刻有一种深度的感觉。所有 View 的图层都是 MainView.layer 的子图层。我想做的是在我的 View
在 Swift 中,我将尝试在顶部设置引脚位置 (zPosition),我在 map 上添加 10 个引脚,当前引脚(任何一个引脚)显示在顶部并且这些当前引脚图像发生变化,但它没有显示在顶部,请帮助我
我是一名优秀的程序员,十分优秀!