gpt4 book ai didi

Android GDX 游戏检测到正确的形状?

转载 作者:行者123 更新时间:2023-11-29 23:16:48 27 4
gpt4 key购买 nike

我正在开发一款 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;

关于Android GDX 游戏检测到正确的形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55205183/

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