使用加速计的2D游戏动作

时间:2016-01-29 17:35:38

标签: java libgdx game-physics

我试图为我的游戏(LIBGDX项目)做一个平稳的动作,我的计划包括加速度计和基本的物理运动,但我仍然只是一个新手并且不知道/想要试试box2d。

private Vector2 velocity,acceleration,current;

    velocity=new Vector2(0,0);
    current=new Vector2(0,0);
    acceleration=new Vector2(0,0);

基本上我在Vector2中存储速度,加速度和倾斜度;

    current.x=initialX - Gdx.input.getAccelerometerX();
    current.y=initialY - Gdx.input.getAccelerometerY();
    float dt=Gdx.graphics.getDeltaTime();

这里我根据加速度计给出的初始值计算当前的旋转

if (current.x<1 && ship.shipbounds.getX() >= 0) acceleration.add(0.2f,0);
if (current.x>1 && ship.shipbounds.getX()<=1080-ship.shipbounds.getWidth()) acceleration.add(-0.2f,0);
if (current.y<1) acceleration.add(0, 0.2f);
if (current.y>1) acceleration.add(0,-0.2f);
       velocity.add(acceleration.x*dt,0);
        ship.shipbounds.setPosition(ship.shipbounds.x + velocity.x * dt, ship.shipbounds.y + velocity.y * dt);

这是代码中不起作用的部分(我猜):当船应该保持静止时,它会向右上方移动,如果我试图让它按下左按钮,它会稍微移动一下但是之后它的右上角速度增加使其无法控制

0 个答案:

没有答案