【发布时间】:2012-01-25 07:50:22
【问题描述】:
使用 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 中突然停止一个移动的球,你可以但是使用 andEngine 示例中的以下代码,它会继续移动一段时间,就好像它在一个无摩擦的世界中移动一样。
有没有办法让它像迷宫游戏一样响应更快、更流畅? https://market.android.com/details?id=se.illusionlabs.labyrinth.lite&hl=en
【问题讨论】: