私は最初の Cocos2D ゲームで加速度計を使用していますが、問題なく動作します。以下のコードを使用してスプライトを移動できますが、方向を LandscapeLeft から LandscapeRight に変更すると、スプライトが Y 座標に反応しなくなり、スプライトが画面の上部に移動し、適切に応答しません...デバイスの向きを変更したためだと思いますが、アプリ開発にかなり慣れていないため、わかりません。助けていただければ幸いです。
これが私が使用しているサンプルコードです...
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
//this determines how sensitive the accelerometer reacts (higher = more sensitive)
NSUserDefaults *defaulObj = [NSUserDefaults standardUserDefaults];
float sensitivity = [defaulObj floatForKey:@"Sensitivity"]; //10.0f
if (!sensitivity) {
sensitivity = 6;
}
// this controls how quickly the velocity decelerates (lower = quicker to change direction)
float deceleration = 0.4f;
static float xVal = 0;
if (!self.isFlag) {
xVal = -acceleration.x;
self.isFlag = TRUE;
}
playerVelocity.x = playerVelocity.x * deceleration + (xVal + acceleration.x) * sensitivity;
playerVelocity.y = playerVelocity.y * deceleration + acceleration.y * sensitivity;
playerVelocity.y = playerVelocity.y*-1;
}