HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何获得更新(currentTime :)函数使用的相同时间? (在被召唤之前)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
问题:SKScene中的@R_673_9531@e(currentTime :)函数使用currentTime参数在每个帧中调用.我想知道如何从相同的源更新(currentTime :)使用而不使用更新功能.我只发现CFAbsoluteTimeGetCurrent()不同.

原因:要计算timeSinceLast@R_673_9531@e,您需要一个名为timeOfLast@R_673_9531@e的实例变量.要实现timeOfLast@R_673_9531@e,您需要在第一次更新之前将其设置为任意值,这使得第一次计算timeSinceLast@R_673_9531@e不正确.你可以有一个简单的if语句来检测这个或使用optionals但是这是一个不需要的分支,如果我只是在didMoveToView(view :)中设置timeOfLast@R_673_9531@e就可以避免.这就是我想要做的.

解决方法

@H_197_7@ 第一次,因为UpLast@R_673_9531@e将始终与其他人不同.通常,一个存储来自先前更新调用的绝对时间,并从当前调用的时间中减去它以获得timeSinceLast@R_673_9531@e.如果之前的时间不存在,因为你是第一次通过渲染循环 – 它被设置为零或无穷大或负值或者你初始化它的任何标记值,只需将你的timeSinceLast@R_673_9531@e设置为一些标称值即可开始.像你的帧间隔(16.67毫秒,如果你要60 fps)这样的东西是有道理的 – 你不希望游戏代码依赖于那个时间间隔做一些疯狂的事情,因为你传递零或一些巨大的价值.

事实上,如果你的用户暂停并恢复游戏,那么将你的timeSinceLast@R_673_9531@e标准化为理智的东西并不是一个坏主意.如果您有游戏实体(例如GameplayKit代理),其移动遵循某种位置= veLocity * timeSinceLast@R_673_9531@e模型,您希望它们在您从暂停中恢复时移动一帧的时间,而不是花费五分钟的暂停时间速度和跳跃到超空间.

如果将之前的时间初始化为零,减去并标准化为预期的帧间隔,则将使用相同的代码覆盖起始和未暂停的情况.

大佬总结

以上是大佬教程为你收集整理的ios – 如何获得更新(currentTime :)函数使用的相同时间? (在被召唤之前)全部内容,希望文章能够帮你解决ios – 如何获得更新(currentTime :)函数使用的相同时间? (在被召唤之前)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。