gpt4 book ai didi

java - 检测手指何时离开屏幕并更新指针

转载 作者:行者123 更新时间:2023-12-01 11:58:02 25 4
gpt4 key购买 nike

我正在制作一个游戏,我在屏幕上加速握住两根手指,一根手指在显示屏的左半部分,一根手指在显示屏的右半部分。如果你松开一根手指并放下另一根手指,无论是什么,我都必须根据手指的位置弯曲车辆。如果您位于右半部分(Gdx.grapchis.getWidth/2),那么我会向右弯曲......然后向左弯曲。

输入处理器的一部分:

        @Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
if(pointer < 2)
{
CoordinateTouch tmp = new CoordinateTouch();
tmp.x = screenX;
tmp.y = screenY;
coordinates.add(tmp);
}
return false;
}

@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
coordinates.clear();
return false;
}

我的坐标数组:

public class CoordinateTouch{
float x;
float y;
}

List<CoordinateTouch> coordinates;

渲染方法中的控制指针(组是我的纹理):

if(coordinates.size() > 1)
{
group.addAction(parallel(moveTo(realDest.x, realDest.y, (float) 15)));
}
else
{
group.addAction(delay((float)1.5));
group.clearActions();
if(Gdx.input.isButtonPressed(0)) {
if (Gdx.input.getX() < Gdx.graphics.getWidth() / 2) {
group.addAction(parallel(rotateBy(velocityRotazionShip, (float) 0.03)));
} else {
group.addAction(parallel(rotateBy(-velocityRotazionShip, (float) 0.03)));
}
}
}

我的问题是,如果我离开一根手指检测到它,到目前为止一切都很好,但如果我只是向后靠,将手指拉开,我不会更新指针,也不会产生 group.addAction 代码段。

我也尝试过 isButtonPressed 和 isKeypressed, isTouched(index) ,但结果是一样的。

抱歉,我的英语不太好,希望我已经说清楚了。

最佳答案

如果我正确理解你的意思,你有 3 种情况:

  1. 按下显示两侧 -> 移动
  2. 按下左侧显示侧 -> 向左倾斜
  3. 按下显示屏右侧 -> 向右倾斜

如果该假设正确,您只需 boolean :

boolean touchLeft, touchRight

touchDown 中你可以做类似的事情:

 public boolean touchDown(int screenX, int screenY, int pointer, int button) {
if (screenX < Gdx.graphics.getWidth()/2)
touchLeft = true;
else
touchRight = true;
}

touchUp中:

public boolean touchUp(int screenX, int screenY, int pointer, int button) {
if (screenX < Gdx.graphics.getWidth()/2)
touchLeft = false;
else
touchRight = false;
}

现在在 render 中你可以说:

if (touchLeft && touchRight)
// move
else if (touchLeft)
// lean left
else if (touchRight)
// leanRight
else
// do nothing or something else

如果您想支持多个手指/面,可以将 boolean 更改为 int,给出手指/面的数量。在 touchDown 中增加它,在 touchUp 中减少它,并在渲染中询问它是否 > 0。

关于java - 检测手指何时离开屏幕并更新指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28210036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com