0

Cocos2d 2.0 と UIAccelleration コントローラーを使用してスペース シューティング ゲーム プロジェクトを実装しました。いくつかの欠点としての UIAccellation:

  • キャリブレーションが必要です
  • 実際の加速度に依存するため、最適な構成を見つけるのが難しいため、感度が低下する可能性があります

代わりにジャイロスコープを使用する方法に関するいくつかのチュートリアルを見つけました (最新の iPhone/iPod にのみあることは承知していますが、既に Cocos2d 2.0 -> OpenGL 2.0 ES を使用しているため、問題にはなりません)。

ジャイロスコープを試すことができるテスト プロジェクトはありますか? それがどのように機能するのか、これが私のコードに実際の変更をもたらすのかどうかは、まだ 100% 明らかではありません。

それが私の UIAcceleration ベースのコントローラーです。

#define kHeroMovementAction 1
#define kPlayerSpeed 100
- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    if (calibrationLayer.visible){
        [self evaluateCalibration:acceleration];
        initialAccelleration=acceleration;
        return;
    }

    if([self evaluatePause]){
        return;
    }

    ShooterScene * shooterScene = (ShooterScene *) [self parent];
    ShipEntity *playerSprite = [shooterScene playerShip];

    float accellerationtSensitivity = 0.5f;

    / 
    UIAccelerationValue xAccelleration = acceleration.x - initialAccelleration.x;
    UIAccelerationValue yAccelleration = acceleration.y - initialAccelleration.y;


    if(xAccelleration > 0.05 || xAccelleration < -0.05) {
        [playerSprite setPosition:CGPointMake(playerSprite.position.x +  xAccelleration * 80, playerSprite.position.y + yAccelleration * 80)];
    }
    else if(yAccelleration > 0.05 || yAccelleration < -0.05)
    {
        [playerSprite setPosition:CGPointMake(playerSprite.position.x +  xAccelleration * 80, playerSprite.position.y + yAccelleration * 80)];
    }

   }
4

1 に答える 1