gpt4 book ai didi

transactions - 如何让 SCNNode 位置动画以统一的速度移动?

转载 作者:行者123 更新时间:2023-12-01 23:48:46 27 4
gpt4 key购买 nike

我有一个游戏,我正在使用 scenekit 和提供的动画框架、核心动画在 swift 中制作动画。

我遇到的问题是我的动画不流畅。将节点从 A 点移动到 B 点会导致移动速度小幅上升,并在接近所需位置时小幅下降。我希望速度始终保持一致。这是一个问题,因为我的动画不会移动很远而且它们经常发生(每秒 2 个 + 计算延迟)导致它看起来非常不稳定。

那么我的问题是,有什么办法可以让动画速度统一吗?

编辑:为清楚起见,我使用的是 SCNTransaction。我的代码看起来像这样:半伪代码

func simulate(){
SCNTransaction.begin()
SCNTransaction.setAnimationDuration(0.5)
SCNTransaction.setCompletionBlock{
//If no victory this simulate func is run again
checkVictory()
}

for all gameObjects{
object.position = calculateNewPos()
}
SCNTransaction.commit()

}

最佳答案

默认的计时函数是kCAMediaTimingFunctionDefault

SCNTransactionanimationTimingFunction 设置为 [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear] 可能会解决您的问题。

关于transactions - 如何让 SCNNode 位置动画以统一的速度移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27690859/

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