Я анимирую шар на экране в портретном режиме, используя UIAccelerometer
.
Работает нормально, теперь я хочу, чтобы то же самое работало в ландшафтном режиме. Когда я пытался использовать ту же часть кода (для портрета) в ландшафтном режиме, это дает мне странный результат, кажется, совершенно неправильно.
Мой код ниже для портретного просмотра.
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
// apply acceleration to velocity
NSTimeInterval elapsedTime = acceleration.timestamp - lastAccelTimestamp;
ballVelocityX = ballVelocityX + (acceleration.x * MAX_ACCEL_PER_SEC * elapsedTime);
ballVelocityY = ballVelocityY - (acceleration.y * MAX_ACCEL_PER_SEC * elapsedTime);
if (lastAccelTimestamp > 0) {
// recalc ball position
ballX += (ballVelocityX * elapsedTime); // ballX is CGFloat
ballY += (ballVelocityY * elapsedTime); // ballY is CGFloat
// update view
[ballView setCenter:CGPointMake(ballX, ballY)];
}
lastAccelTimestamp = acceleration.timestamp;
}