gpt4 book ai didi

android - AndEngine,使用加速度计和 PhysicsWorld 平滑地移动 Sprite

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:06 33 4
gpt4 key购买 nike

我正在使用 AndEngine 尝试使用加速度计移动 Sprite (球),该加速度计应该会在墙壁上反弹并撞到其他障碍物。

到目前为止,我发现了以下两种方法。

 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

最佳答案

您可以(如您所试)乘以 pAccelerometerData,并向球添加阻尼项。因此球会更加灵敏,停止得更快,并保持合理的速度。

阻尼是物体的一个属性。所以它会像

body.setLinearDamping(1.5f);

关于android - AndEngine,使用加速度计和 PhysicsWorld 平滑地移动 Sprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8999343/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com