Используя AndEngine, я пытаюсь переместить спрайт (шар) с помощью акселерометра, который должен отскакивать от стен и сталкиваться с другими препятствиями.
На данный момент я нашел следующие два метода:
public void onAccelerometerChanged(final AccelerometerData myAccelerometerData) {
mySprite.setPosition(mySprite.getX() + myAccelerometerData.getX(), mySprite.getY() + myAccelerometerData.getY());
}
Это работает очень гладко, но только в мире, не связанном с физикой.(то есть не будет плавно отскакивать от стен и других препятствий).
И теперь, используя этот метод, который приведен в примерах, предоставленных AndEngine, мяч обладает хорошей физикой, но движется не так плавно, как хотелось бы.
@Override
public void onAccelerometerChanged(final AccelerometerData pAccelerometerData) {
final Vector2 gravity = Vector2Pool.obtain(pAccelerometerData.getX(), pAccelerometerData.getY());
this.mPhysicsWorld.setGravity(gravity);
Vector2Pool.recycle(gravity);
}
Я также пытался умножить pAccelerometerData на определенные значения, такие как 2 и 5, да, он выглядит более отзывчивым, но также заставляет мяч двигаться быстрее и труднее играть.
Чтобы прояснить мой вопрос, я бы хотел, чтобы моя игра была такой же гладкой, как шары в Лабиринте или отскок игры для Android.Шары в них более чувствительны к акселерометру.Например, если вы хотите внезапно остановить движущийся шар в Лабиринте, вы можете, но с помощью следующего кода в примере с двигателем, он некоторое время продолжает двигаться, как будто он движется в мире без трения.
Могу ли я сделать его более отзывчивым и плавным, как в игре Labyrinth?https://market.android.com/details?id=se.illusionlabs.labyrinth.lite&hl=en