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