【问题标题】:LibGdx Issue of coordinatesLibGdx 坐标问题
【发布时间】:2019-03-13 13:10:29
【问题描述】:

我的 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) 时,它不起作用,因为两个矩形都有不同的点,但可见两个矩形相互重叠。

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

【问题讨论】:

    标签: libgdx


    【解决方案1】:

    行:

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

    什么都不做。
    尝试:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2014-08-08
      • 1970-01-01
      • 2014-06-12
      • 2019-07-09
      相关资源
      最近更新 更多