Iphone cocos2d+;加速度计问题
我完成了我的游戏(cocos2d),但当我制作一个存档(从xcode产品->存档),然后点击共享(获取game.api),然后将它放在itunes中,并同步到我的iphone加速计上,它似乎不起作用。我在5台设备上测试了游戏,但它不起作用,飞船总是在固定的位置,它没有移动,但是,如果我单击build并从xcode开始,它将在所有开发人员设备上正常工作,我将使用以下代码: 在init内部Iphone cocos2d+;加速度计问题,iphone,ios,cocos2d-iphone,accelerometer,sensors,Iphone,Ios,Cocos2d Iphone,Accelerometer,Sensors,我完成了我的游戏(cocos2d),但当我制作一个存档(从xcode产品->存档),然后点击共享(获取game.api),然后将它放在itunes中,并同步到我的iphone加速计上,它似乎不起作用。我在5台设备上测试了游戏,但它不起作用,飞船总是在固定的位置,它没有移动,但是,如果我单击build并从xcode开始,它将在所有开发人员设备上正常工作,我将使用以下代码: 在init内部 - (id)init { if ((self = [super init])) { s
- (id)init
{
if ((self = [super init]))
{
self.isAccelerometerEnabled = YES;
[self scheduleUpdate];
}
加速计搬运器:
- (void)accelerometer:(UIAccelerometer *)accelerometer
didAccelerate:(UIAcceleration *)acceleration {
#define kFilteringFactor 0.1
UIAccelerationValue rollingX, rollingY, rollingZ;
rollingX = (acceleration.x * kFilteringFactor) +
(rollingX * (1.0 - kFilteringFactor));
rollingY = (acceleration.y * kFilteringFactor) +
(rollingY * (1.0 - kFilteringFactor));
rollingZ = (acceleration.z * kFilteringFactor) +
(rollingZ * (1.0 - kFilteringFactor));
float accelX = acceleration.x - rollingX;
CGSize winSize = [CCDirector sharedDirector].winSize;
#define kRestAccelX 0.6
#define kShipMaxPointsPerSec (winSize.height*0.5)
#define kMaxDiffX 0.2
float accelDiffX = kRestAccelX - ABS(accelX);
float accelFractionX = accelDiffX / kMaxDiffX;
float pointsPerSecX = kShipMaxPointsPerSec * accelFractionX;
_shipPointsPerSecY = pointsPerSecX;
}
船位:
- (void)updateShipPos:(ccTime)dt {
CGSize winSize = [CCDirector sharedDirector].winSize;
float maxY = winSize.height - _ship.contentSize.height/2;
float minY = _ship.contentSize.height/2;
float newY ;
(isYAxisInverted) ? newY = _ship.position.y + (-_shipPointsPerSecY * dt) : newY = _ship.position.y + (_shipPointsPerSecY * dt);
newY = MIN(MAX(newY, minY), maxY);
_ship.position = ccp(_ship.position.x, newY);
}
在更新中:
- (void)update:(ccTime)dt {
...
[self updateShipPos:dt];
...}
解决方案是替换: UIAccelerationValue rollingX 借 UIAccelerationValue rollingX=0,rollingY=0,rollingZ=0