Я думаю, что ключевая вещь, которую вы здесь запутываете, это разница между ускорением и скоростью.Вы хотите, чтобы «количество наклона» работало как ускорение.В каждом кадре скорость мяча должна меняться в зависимости от ускорения, затем позиция шарика должна меняться в зависимости от скорости мяча.
Так что в X это должно быть что-то вроде:
float accelX = acceleration.x;
mVel.x += accelX; \\mVel is a member variable you have to store
ball.center.x += mVel.x;
---Более сложная версия
Теперь, чем больше я об этом думаю, тем не менее, это не то «количество наклона», которое вы хотите использовать для ускорения.Возможно, вы захотите, чтобы величина наклона была «Целевой скоростью».Но вы все равно хотите использовать ускорение, чтобы добраться туда.
mTargetVel.x = acceleration.x;
//Now apply an acceleration to the velocity to move towards the Target Velocity
if(mVel.x < mTargetVel.x) {
mVel.x += ACCEL_X; //ACCEL_X is just a constant value that works well for you
}
else if(mVel.x > mTargetVel.x) {
mVel.x -= ACCEL_X;
}
//Now update the position based on the new velocity
ball.center.x += mVel.x;