使用UIAccelerometer不能快速重绘CCSprite?

时间:2011-12-03 00:22:37

标签: ios performance cocos2d-iphone accelerometer

在我的游戏中,我的主要角色是CCSprite。那个CCSprite是UIAccelerometer的控制器,我通过self.isAccelerometerEnabled = YES;然后将updateInterval设置为:1/30来启用加速度计方法。

问题不是我的加速度值不是实际的好值,而是与我的CCSprite没有得到足够快的重绘。因此,如果我的CCSprite每0.1秒移动许多像素,精灵就会开始闪烁,然后它越快就越闪烁。

我在.h中声明了加速度值并将它们设置在Accelerometer委托方法中然后我在游戏循环中设置了CCSprite的位置。

为什么会发生这种情况的任何想法?

谢谢!

修改:加速度计代码:

float accelX = (acceleration.x - [[NSUserDefaults standardUserDefaults] floatForKey:@"X-Calibrate"]);
rollingX = (accelX * kFilteringFactor) + (rollingX * (1.0 - kFilteringFactor));
AccelPoint.x += (rollingX*50);

2 个答案:

答案 0 :(得分:2)

闪烁精灵表示其他地方存在错误。除非你的意思是精灵有一些“紧张”的动作。如果您还没有,则应添加accelerometer filtering以平滑加速度计输入值。

顺便说一下,Kobold2D已经内置了最常用的accelerometer filtering(高通和低通)。

答案 1 :(得分:1)

您应该更新更新方法中的精灵位置,而不是加速度计方法。 (如果你还没有)