LibGDX多点触控实现,游戏开发

时间:2014-08-20 07:49:20

标签: java android libgdx multi-touch

我目前正在使用LibGdx开发一款Android游戏。我试图让多点触控功能正常工作,因为游戏要求玩家有一个拇指控制角色而另一个点击按钮。

代码:

for (int i = 0; i < 2; i++) { 
            if (Gdx.input.isTouched(i)) {
                final int iX = Gdx.input.getX(i);
                if (iX > screenwidth - screenwidth / 14) {
                    buttontouch = true;
                } else {
                    buttontouch = false;
                }

                if (iX <= screenwidth - screenwidth / 14) {
                    playertouch = true;
                }else{
                    playertouch = false;
                }

            }
        }


if (playertouch){
etc...
}
if(buttontouch){
etc...
}

for (int i = 0; i < 2; i++) { if (Gdx.input.isTouched(i)) { final int iX = Gdx.input.getX(i); if (iX > screenwidth - screenwidth / 14) { buttontouch = true; } else { buttontouch = false; } if (iX <= screenwidth - screenwidth / 14) { playertouch = true; }else{ playertouch = false; } } } if (playertouch){ etc... } if(buttontouch){ etc... }

可以移动播放器并按下按钮,但不能同时按下:( ...这就是我需要的。

任何帮助将不胜感激!提前谢谢。

2 个答案:

答案 0 :(得分:2)

应该在for圈内调用移动角色的逻辑。你应该每圈迭代移动你的角色(如果点击了按钮)就像这样:

for (int i = 0; i < 2; i++) { 
        if (Gdx.input.isTouched(i)) {
            final int iX = Gdx.input.getX(i);
            if (iX > screenwidth - screenwidth / 14) {
                buttontouch = true;
            } else {
                buttontouch = false;
            }

            if (iX <= screenwidth - screenwidth / 14) {
                playertouch = true;
            }else{
                playertouch = false;
            }
        }
//Logic here!
if (playertouch){
etc...
}
if(buttontouch){
etc...
}
    }

答案 1 :(得分:1)

好的,我好像找到了答案。 加入

if (Gdx.input.isTouched(i)) {
如果

,则在每个布尔值下面

for (int i = 0; i < 2; i++) { 
        if (Gdx.input.isTouched(i)){
            final int iX = Gdx.input.getX(i);
            if (iX > screenwidth - screenwidth / 14) {
                buttontouch = true;
            } else {
                buttontouch = false;
            }

            if (iX <= screenwidth - screenwidth / 14) {
                playertouch = true;
            }else{
                playertouch = false;
            }
        }
  }
//Logic here!
if (playertouch){
if (Gdx.input.isTouched(i)) {
etc...
}
}
if(buttontouch){
if (Gdx.input.isTouched(i)) {
etc...
}
}
    }