gpt4 book ai didi

ios - 节点移动后SKSpriteNode的X、Y坐标不变

转载 作者:行者123 更新时间:2023-11-29 11:38:22 26 4
gpt4 key购买 nike

我有以下代码将 SKSpriteNode 从屏幕外的位置移动到屏幕上的位置。 spawnNode 创建起始位置在屏幕外的节点。 nodePositions 是一个结构数组,包含屏幕上的 x、y 和 Zposition 点。代码确实将节点移动到我想要的位置。但是,我想使用当前节点位置稍后定位更多节点。打印语句显示相同的结果。前置和后置是一样的。这对我来说毫无意义。谁能给我解释一下?看起来可能必须创建连续节点的子节点。我不想这样做。

    spawnNode()
allNodes[0].texture = SKTexture(imageNamed: imageName)

print("Pre: x: \(String(describing: allNodes[0].position.x))")
print("Pre: y: \(String(describing: allNodes[0].position.y))")

let duration: CGFloat = 0.5
moveNodePos = SKAction.moveBy(x: nodePositions[0].posX, y: nodePositions[0].posY, duration: TimeInterval(duration))
moveNodePos.timingMode = .easeIn
allNodes[0].zPosition = nodePositions[0].zPosition
allNodes[0].run(moveNodePos)
print("Post: x: \(String(describing: allNodes[0].position.x))")
print("Post: y: \(String(describing: allNodes[0].position.y))")

预:x:0.0预:y:500.0职位:x:0.0邮寄:y:500.0

最佳答案

SKAction 在 0.5 秒的持续时间内移动节点。 allNodes[0].run(moveNodePos) 行被执行,moveBy 操作开始,紧随其后的代码(即 print 语句)被立即执行。这意味着当您执行打印语句时,操作仍未完成并且节点尚未移动。尝试在操作完成后打印节点的位置,例如使用

allNodes[0].run(moveNodePos, completion: { insert the print statements here } )

希望这对您有所帮助!

关于ios - 节点移动后SKSpriteNode的X、Y坐标不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47945511/

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