HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 为什么update()首选游戏逻辑而不是didFinishUpdate?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在SpriteKit的编程指南中,update()函数被称为实现自己的游戏逻辑的最佳位置.
但是当我意识到一个节点上居中相机在didFinishupdate()中工作得更好(避免延迟)时,我一直在使用该选项.

camera.position.y = node.position.y

害怕其他延迟问题我也实现了其余的游戏逻辑.有用.
因此,他们为什么推荐update()
使用这两种方法是否有性能优势?

谢谢.

解决方法

没有性能优势,这确实是确定游戏逻辑的前提条件的问题.您是否希望运行逻辑,假设物理和操作WERE(didupdatE)已计算或将进行(更新)计算.例如,在处理任何物理和动作之前调用update.因此,如果你有像自定义物理计算这样的逻辑,产生一个阻挡物理体的墙,或者甚至只是执行你想要立即运行的动作那么应该在更新方法中完成,因为所有这些情况都希望物理和行动将是在当前帧中计算.然而,在相机中居中节点在didupdate中会很好,因为您想在物理计算之后使相机居中.

同样重要的是要注意更新方法传递当前游戏时间,因此您需要使用更新方法来计算帧之间的时间(AKA增量时间).这通常需要做一些事情,比如在N秒后计数执行逻辑或者用可变时间步骤处理自定义物理.但是,这不会限制您使用更新方法,因为您应该将当前增量时间保存在变量中,以便可以从didupdate方法和其他回调中访问它.

根据个人经验,我发现自己使用的更新方法比didupdate更多,因为我经常有很多自定义物理和逻辑,通常假设我所做的更改将在当前帧中进行处理.但正如我上面所说,这取决于你的前提条件.在某些情况下,选择什么并不重要,因为逻辑可能与渲染周期无关.

我认为Sprite Kit文档中的这个图像可以更容易显示rending周期.分析您的游戏逻辑并确定您的游戏逻辑在哪个周期中有意义.

ios – 为什么update()首选游戏逻辑而不是didFinishUpdate?

大佬总结

以上是大佬教程为你收集整理的ios – 为什么update()首选游戏逻辑而不是didFinishUpdate?全部内容,希望文章能够帮你解决ios – 为什么update()首选游戏逻辑而不是didFinishUpdate?所遇到的程序开发问题。

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

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