LibGdx坐标发布

时间:2019-03-13 13:10:30

标签: libgdx

我的LibGdx程序有问题。我为相机设置了800高度和480宽度。我在坐标下绘制目标:

randomTargetX = new Random().nextInt((350 - 100) + 1) + 100;
randomTargetY = new Random().nextInt((600 - 300) + 1) + 300;

但是在点击目标后,我的炮弹不会与目标矩形重叠。

我正在使用Touch进行此操作:

if (Gdx.input.justTouched()) {

            touchX = Gdx.input.getX();
            touchY = Gdx.input.getY();
            camera.unproject(touch.set(touchX, touchY, 0));

            if (touch.y>200) {
                isTouched = true;
                rectangleCannonBall.x = (width / 2) - 50 / 2;
                rectangleCannonBall.y = 0;

                double angle = 180.0 / Math.PI * Math.atan2(rectangleCannonBall.x - touch.x, touch.y - rectangleCannonBall.y);
                spriteCannon.setRotation((float) angle);
            }
        }

不起作用。

这是炮弹游戏:

首先我要设置相机。

在坐标范围内随机显示目标。

具有Vector3新位置的触摸式非投影相机。

在触摸时使用大炮位置计算目标位置并获取旋转大炮的角度。

旋转大炮后,我向目标射击。

现在,当我执行Rectanglar1.overlaps(rec2)时,它不起作用,因为两个矩形具有不同的点,但是通过可见它们彼此重叠。

当我检查目标矩形的坐标并触摸其不同时。

1 个答案:

答案 0 :(得分:0)

该行:

camera.unproject(touch.set(touchX, touchY, 0));

什么都不做。
尝试:

touch = camera.unproject(touch.set(touchX, touchY, 0));