使用NSTimer在屏幕上移动对象

时间:2017-01-15 20:50:18

标签: ios objective-c grand-central-dispatch

我正在构建一个简单的ios游戏应用程序,我必须在屏幕上移动一些对象,这些移动的对象会对滑动手势作出反应,并根据它改变方向。我没有使用spritekit或任何其他游戏框架,我移动对象的方式是触发每秒触发60次的NSTimer。我没有明确使用任何线程所以我猜计时器是由主线程执行的?定时器触发的代码块根据对象的速度更新对象的位置(定义为x / y方向上每个时间单位的像素)。它工作正常,我几乎在我的项目结束时,但在测试应用程序时,我已经意识到尽管物体的运动在大多数时候看起来都很好,但有时候运动有点粗糙/斑驳。 我的问题是,这是做这样的事情的正确方法,我该如何改善表现呢?使用像GCD这样的东西可以帮助解决紧张运动的问题吗? (我没有详细研究GCD,但如果我知道这会有所帮助,我愿意花时间去研究它)

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

  

我移动物体的方式是触发每秒发射60次的NSTimer

我建议不要这样做。内置了各种形式的动画(查看动画,图层动画,CADisplayLink,UIKit动力学),当然还有Sprite Kit。使用您为此目的提供的工具。当你已经拥有杜卡迪时,不要重新发明独轮车。

相关问题