我已經使用Cocos2d 2.0和UIAccelleration控制器實施了太空射擊遊戲項目。 的UIAccelleration作爲一些缺點:適用於iOS的Cocos2d:陀螺儀與UIAccelleration
- 它需要校準
- 這取決於實際accelleration並且因此可能導致鬆散靈敏度,因爲它是很難找到關於如何的最優配置
I have found some tutorial使用陀螺儀代替(我知道這只是在最新的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)];
}
}
陀螺儀不是加速度計的替代品,閱讀這些http://stackoverflow.com/questions/3089917/gyroscope-vs-accelerometer和http://stackoverflow.com/questions/5492479/do-i-get - 更精確 - 或更快的加速度計-讀數與 - 核 - 運動 – LearnCocos2D