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

Libgdx获取缩放触摸位置

齐威
2023-03-14

我正在使用LIBGDX开发一款android游戏。

@Override
public boolean touchDown(int x, int y, int pointer, int button) {
    // TODO Auto-generated method stub

    return false;
}

这里,x和y返回设备屏幕的触摸位置,值在0和设备屏幕宽度和高度之间。

有办法吗?我想获得与视口相关的触摸位置。。我用它来保持纵横比http://www.java-gaming.org/index.php?topic=25685.0

共有3个答案

潘琪
2023-03-14

经过1-2个小时的油漆,我终于找到了解决方案...

if (Gdx.input.isTouched()) {
        float x = Gdx.input.getX();
        float y = Gdx.input.getY();
        float yR = viewport.height / (y - viewport.y); // the y ratio
        y = 480 / yR;

        float xR = viewport.width / (x - viewport.x); // the x ratio
        x = 800 / xR;

        bubbles.add(new Bubble(x, 480 - y));

    }

编辑:这是一种老方法,所以不要。

何浩荡
2023-03-14

在新版本的LibGDX中,您可以使用内置视口来实现它。首先选择您喜欢的视口,您想要的是FitViewport。您可以在这里阅读它们:https://github.com/libgdx/libgdx/wiki/Viewports
接下来,您声明并初始化视口并传递您的分辨率和相机:

viewport = new FitViewport(800, 480, cam);

然后编辑screen类的“resize”方法,如下所示:

@Override
public void resize(int width, int height) {
    viewport.update(width, height);

}

现在,无论你想在哪里获得接触点,你都需要根据新的分辨率将它们转移到新的点。幸运的是,viewport类自动完成了这项工作。

只需写下以下内容:

Vector2 newPoints = new Vector2(x,y);
newPoints = game.mmScreen.viewport.unproject(newPoints);

其中x和y是屏幕上的触摸点,第二行中的“newPoints”获得转换后的坐标<现在你可以在任何地方传递它们。

燕志学
2023-03-14

取消你的触摸。

为用户触摸制作Vector3对象:

Vector3 touch = new Vector3();

并使用摄像机将屏幕触摸坐标转换为摄像机坐标:

@Override
public boolean touchDown(int x, int y, int pointer, int button){

    camera.unproject(touch.set(x, y, 0)); //<---

    //use touch.x and touch.y as your new touch point

    return false;
}
 类似资料:
  • 问题内容: 我尝试从点击触摸屏的位置获取坐标,以在此时放置特定的UIImage。 我怎样才能做到这一点? 问题答案: 在子类中,例如: 这将返回一个视图坐标。 使用Swift 3语法更新 使用Swift 4语法更新

  • 问题内容: 我试图在触摸gridview时选择该项目,但我无法使用onClick,因为它会启动另一个活动。我要实现的目标是能够在gridview中移动项目,并且由于我找不到解决方法,因此我想尝试一种方法。 所以,是的。有没有一种方法可以使“触摸”的项得到解决,我尝试使用Rect并无法正常工作。 (我能否详细说明一下。我不能为此使用onItemClick。) 任何帮助将是巨大的,谢谢!:) 问题答案

  • 我试图在一个libgdx游戏中实现触摸滚动。我有一个很宽的图像,是一个房间的全景。我希望能够滚动图像,让用户可以看到房间的四周。我有它,所以我可以滚动一定的距离,但当一个新的触摸拖动事件被注册的图像被移回到原来的位置。 这就是我实现它的方式 } 在InputProcessor中 在这个问题LibGdx如何使用OrthographicCamera?滚动的帮助下,我做到了这一步?。然而,这并没有真正解

  • 我正在写一个基于Object的小2D机器人游戏,所以我把整个游戏绘制在 注册一个< code>OnTouchListener,但是我如何检测球的接触呢? 另一个问题是球是一个简单的物体。如果我有一些不规则的物体,不能用半径或其他东西来描述呢?我是否使用了png的正确“技术”来构建画布控件,或者有没有更好/更简单的方法? 这是我在所有平台(JS,Android,iOS)上遇到的典型问题,我不知道解决

  • 问题内容: 我有几个对象在不同状态下具有不同的纹理,因此我使用了TexturePacker制造的对象,并在需要的地方调整了大小。我必须调整大小,因为我不仅要同时支持720p和1080p,而且我的一些对象是根据板子的宽度和高度来调整大小的图块或光标,因为在我的游戏中这可能会改变,而板子总是占据屏幕的相同百分比。 使用,我可以这样做: 但是,当我使用时,没有设置过滤器的选项。这导致这些大小调整为尖锐,

  • 本文向大家介绍Android手势滑动实现两点触摸缩放图片,包括了Android手势滑动实现两点触摸缩放图片的使用技巧和注意事项,需要的朋友参考一下 学习安卓手势滑动,多点触摸放大缩小图片,分享给大家供大家参考,具体代码如下 1.布局文件如下main.xml 2.自定义缩放图片控件ZoomImageView.java代码: 3.工程主文件MainActivity.java代码: 以上就是Androi