使用 NSTimer 在屏幕上移动对象

using NSTimer to move objects on screen

我正在构建一个简单的 ios 游戏应用程序,我必须在屏幕上移动一些对象,这些移动的对象会对滑动手势做出反应并据此改变它们的方向。我没有为此使用 spritekit 或任何其他游戏框架,我移动对象的方式是触发每秒触发 60 次的 NSTimer。我没有明确使用任何线程,所以我猜计时器是由主线程执行的?计时器触发的代码块根据对象的速度更新对象的位置(定义为 x/y 方向上每个时间单位的像素)。它工作正常,我的项目快要结束了,但是在测试应用程序时我意识到,虽然对象的移动在大多数时候看起来都很好,但有时移动有点小 rough/patchy . 我的问题是这样做是正确的方法吗,我怎样才能提高性能?使用 GCD 之类的东西可以帮助解决抖动问题吗? (我没有详细研究 GCD,但如果我知道这会有所帮助,我愿意花时间在上面)

感谢您的帮助!

and the way I am moving the objects is by triggering an NSTimer that fires 60 times a second

我建议不要那样做。内置了各种形式的动画(View animation、Layer animation、CADisplayLink、UIKit Dynamics),当然还有 Sprite Kit。使用为此目的提供的工具。当你已经拥有杜卡迪时,不要重新发明独轮车。