Android GDX 游戏检测到正确的形状?
Android GDX game detect the right shape?
我正在开发一个 Gdx 游戏,但我遇到了一些问题,我将简要解释一下:
我有 9 个球,按 3*3 排列,我需要检测我正在触摸的球,如下图所示:
enter image description here
我输入了这段代码:
for (int i : listBalls) {
touchPoint = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
rectangle = new Rectangle(sprite[i].getX(), sprite[i].getY(), spriteSize, spriteSize);
if (rectangle.contains(touchPoint.x, touchPoint.y)) {
Gdx.app.log("Test", "Touched dragged " + String.valueOf(i));
pointer = i;
}
}
如果接触到上一行中的任何球,它会检测到底行中的相反球。例如在上图中,如果我触摸顶部的 2 号球,它将指向 8 号球,如果触摸底部的任何一个球也是如此。
如果碰到中间球中的任何一个球,则为右上角。
我希望我能解释清楚我的问题。请帮忙。
如此处解释:LibGDX input y-axis flipped输入的坐标系在 y 轴上反转,请尝试减去设备或相机的屏幕高度
int y = screenHeight - Gdx.input.getY();
请记住,使用 Camera 并取消投影输入坐标是在 LibGDX 中检测输入的最推荐方法。示例:
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
Vector3 unprojected = camera.unproject(new Vector3(screenX, screenY,0));
}
您甚至不必反转 y 坐标,unproject()
会自动为您完成。要使用正确的 x 和 y 坐标,您可以使用:
float x = unprojected.x;
float y = unprojected.y;
我正在开发一个 Gdx 游戏,但我遇到了一些问题,我将简要解释一下:
我有 9 个球,按 3*3 排列,我需要检测我正在触摸的球,如下图所示:
enter image description here
我输入了这段代码:
for (int i : listBalls) {
touchPoint = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
rectangle = new Rectangle(sprite[i].getX(), sprite[i].getY(), spriteSize, spriteSize);
if (rectangle.contains(touchPoint.x, touchPoint.y)) {
Gdx.app.log("Test", "Touched dragged " + String.valueOf(i));
pointer = i;
}
}
如果接触到上一行中的任何球,它会检测到底行中的相反球。例如在上图中,如果我触摸顶部的 2 号球,它将指向 8 号球,如果触摸底部的任何一个球也是如此。
如果碰到中间球中的任何一个球,则为右上角。
我希望我能解释清楚我的问题。请帮忙。
如此处解释:LibGDX input y-axis flipped输入的坐标系在 y 轴上反转,请尝试减去设备或相机的屏幕高度
int y = screenHeight - Gdx.input.getY();
请记住,使用 Camera 并取消投影输入坐标是在 LibGDX 中检测输入的最推荐方法。示例:
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
Vector3 unprojected = camera.unproject(new Vector3(screenX, screenY,0));
}
您甚至不必反转 y 坐标,unproject()
会自动为您完成。要使用正确的 x 和 y 坐标,您可以使用:
float x = unprojected.x;
float y = unprojected.y;