在我的游戏中,我的主要角色是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);
答案 0 :(得分:2)
闪烁精灵表示其他地方存在错误。除非你的意思是精灵有一些“紧张”的动作。如果您还没有,则应添加accelerometer filtering以平滑加速度计输入值。
顺便说一下,Kobold2D已经内置了最常用的accelerometer filtering(高通和低通)。
答案 1 :(得分:1)
您应该更新更新方法中的精灵位置,而不是加速度计方法。 (如果你还没有)