2011-08-03 11 views
0

私は自分のゲーム(cocos2d)を終了しましたが、xcodeの製品 - >アーカイブからアーカイブを作成してからshare.jpgをクリックしてiTunesに入れ、iPhoneに同期しますそれが動作しなかったように見える加速度計私は5つのデバイスでゲームをテストし、それは動作しませんでした、船は常に修正された場所で、それは移動しませんでしたが、私はビルドをクリックし、cocos2d +加速度計の問題

:INIT

- (id)init 
{ 
    if ((self = [super init])) 
    { 
    self.isAccelerometerEnabled = YES; 
    [self scheduleUpdate]; 
} 

加速度計handeler内

:私は以下のコードを使用するすべての開発者のデバイス上

- (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]; 
...} 

答えて

1

溶液を交換することである。

UIAccelerationValue rollingX。

UIAccelerationValue rollingX = 0、rollingY = 0、rollingZ = 0により、

関連する問題