Libgdx角色运动

时间:2016-05-21 20:27:44

标签: java android libgdx ontouchlistener ontouch

我最近跳进了Libgdx。我的ontouch只有一半工作;我知道当我运行以下内容时会检测到触摸:

@Override
public boolean touchDown(int X, int Y, int pointer, int button) {

 //   player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true);
    if(  player.getX()> X ){
        player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true);
    }

    else if(  player.getX()< X ){
        player.b2body.applyLinearImpulse(new Vector2(-5.1f, 0), player.b2body.getWorldCenter(), true);
    }
    return true;
}

我的角色确实向右跑,从而证明我的触摸设置正确且正在被检测到。

我遇到的问题是让角色向左或向右跑,具体取决于用户触摸屏幕的位置。如果用户向右按压,则角色需要向右移动,如果按下角色的左侧,则应向左移动,在x轴上。我写的内容如下:

{{1}}

但是凭我的代码,我的角色不动,我认为我正在检查球员的位置是不正确的。任何人都可以建议我做错了什么/怎么做错?

1 个答案:

答案 0 :(得分:0)

触摸位置以屏幕坐标给出。您的播放器存在于您创建的任何世界坐标中。您需要使用Camera.unproject使用相机将屏幕坐标转换为世界坐标。