繁体   English   中英

Libgdx角色运动

[英]Libgdx Character Movement

我最近跳入Libgdx。 我的触摸效果只有一半。 我知道在运行以下命令时会检测到触摸:

    @Override
    public boolean touchDown(int screenX, int screenY, int pointer, int button) {
player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true);

        return true;
    }

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

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

@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;
}

但是用我的代码我的角色不会移动,我想我正在错误地检查玩家的位置。 谁能告诉我我在做错什么/如何做?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM