使用AndEngine,我試圖用加速度計移動一個精靈(球),該加速度計應該會彈出牆壁並撞上其他障礙物。AndEngine,使用Accelerometer和PhysicsWorld平滑移動雪碧
到目前爲止我找到了以下兩種方法。
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);
}
我也試着與某些值,如2和5相乘pAccelerometerData,是的,它似乎更敏感,但也使得球移動速度快了很多,難以發揮。
爲了明確我的問題,我希望我的遊戲能夠像迷宮或反彈遊戲中的球一樣順暢。其中的球對加速度計更敏感。例如,如果你想在迷宮中突然停止一個移動的球,你可以使用和引擎例子中的以下代碼,它會繼續移動一段時間,就好像它正在一個無摩擦的世界中移動一樣。
無論如何,我可以讓它更像迷宮遊戲更敏感和更順暢嗎? https://market.android.com/details?id=se.illusionlabs.labyrinth.lite&hl=en
我試了一下,是的,精靈更敏感,並提供更好的控制。謝謝Zoleas –
我也有同樣的問題。我應該在哪裏使用body.setLinearDamping(1.5f);這應該在非物理世界或物理世界中。 –
它是一個物體,所以它在物理世界。將阻尼應用於移動物體的身體(球,角色...)。 – Zoleas