当前位置: 首页 > 知识库问答 >
问题:

LibGdx坐标问题

高运诚
2023-03-14

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

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

共有1个答案

楚奇逸
2023-03-14

该行:

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

什么都不做。
尝试:

touch = camera.unproject(touch.set(touchX, touchY, 0));
 类似资料:
  • 所以我坐在这里,拿着一部800像素的手机..并且< code > gdx . graphics . getwidth()也应该返回800.. 但是当我从获得坐标时,当我一直向左触摸屏幕时,我得到的最高数字是780左右。和右侧约20。 所以我的坐标都错了,所以我所有的按钮和东西都不能正常工作,等等。 知道发生了什么吗?

  • 我目前正在做一个libgdx项目。这就是我要遵循的结构: 单个游戏-几个屏幕-每个屏幕有一个舞台-每个舞台有一些组-每个组有一些演员-每个演员有一个精灵。 我正在玩在组之间拖动演员,但是当我将演员添加到组中时,即使我指定了其他人,坐标也始终为0,0。 我读过一些关于局部坐标和舞台坐标的内容。 问题是...如何在组的中间添加一个Actor(及其精灵)?

  • 摄像机旋转后,坐标让我摸不着头脑。 我有一个照相机,一个角色和一张地图。这个玩家只能在以下方向行走:北(90°),南(270°),东(0°),西(180°)。 从玩家的camera.RotateRound(...,...,...)位置旋转摄像机后,玩家开始在旋转的结果中向新的方向移动。 null

  • 问题内容: LibGDX具有一个坐标系统,其中(0,0)在左下角。(就像这张图片: http //i.stack.imgur.com/jVrJ0.png) 这让我无法自拔,主要是因为我要移植使用常规坐标系(其中0,0位于左上角)制作的游戏。 我的问题: 有没有简单的方法可以更改此坐标系? 问题答案: 如果您使用相机(应使用),则更改坐标系非常简单: 如果您使用TextureRegions和/或Te

  • 我正在使用libgdx创建一个Android游戏,在这个游戏中,玩家可以触摸屏幕的特定部分,在道路上左右移动汽车。我最初制作的游戏高度和宽度分别为480 x 800,但当设备分辨率或多或少时,我制作的更多,触摸坐标不在同一个地方。如果一种根据正在玩游戏的设备来缩放我的坐标的方法。我用来计算触摸点的功能如下: 如果设备大于或小于480 x 800,如何相应地调整inbounds()比例中的坐标。

  • 我将碰撞矩形(libgdx,而不是awt)设置为球的坐标。我想做的是检查我是否点击了它。两个问题: a.)我不知道矩形坐标的原点在哪里。 b.)我找不到一种正确的方法来校正抽头位置 我能做什么? 根据请求进行编辑: