gpt4 book ai didi

java - 输入未获取正确的坐标 libgdx java

转载 作者:行者123 更新时间:2023-12-01 18:10:44 25 4
gpt4 key购买 nike

我正在制作一个挖矿游戏,如果你点击某个地方,你就会删除那里的方 block 。现在所有的 block 都只是正方形,只有当我的二维 boolean 数组中的点为真时才会绘制。所以我试图占据这个位置并将其设置为 false 无论你点击这里都是我的 inputprocessor

的 touchdown 方法
    private Vector2 tmp = new Vector2();
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
tmp.x = screenX / MapGrid.CELL_SIZE;
tmp.y = screenY / MapGrid.CELL_SIZE;
cam.unproject(new Vector3(tmp.x, tmp.y, 0));
grid.manipulateGrid((int)(tmp.x), (int)(tmp.y), false);
System.out.println("Clicked at: (" + tmp.x + ", " + tmp.y +")");
return false;
}

我还将摄像机移动到我的球员位置。 grid.manipulateGrid 接受 x 和 y 并将其设置为 false。我的玩家位于网格坐标中的 (10, 126) 处,当我单击他旁边时,它说我正在单击 (35, 24) 我不确定我这样做是否正确,但我一直在到处搜索并且可以找不到解决办法。我发现类似的问题但没有结果。如果有人能告诉我如何将点击调整为玩家的坐标,我将非常感激。

最佳答案

取消投影后必须分割 map 网格

    @Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
tmp.x = screenX;
tmp.y = (Gdx.graphics.getHeight() - screenY);
tmp.z = 0;
cam.unproject(tmp);
grid.manipulateGrid((int)(tmp.x) / MapGrid.CELL_SIZE, (int)(tmp.y) / MapGrid.CELL_SIZE, false);
System.out.println("Clicked at: (" + tmp.x / MapGrid.CELL_SIZE + ", " + tmp.y / MapGrid.CELL_SIZE +")");
return false;
}

关于java - 输入未获取正确的坐标 libgdx java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33206415/

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