【问题标题】:LibGDX dragging on latest android versionsLibGDX 拖动最新的 android 版本
【发布时间】:2014-09-20 00:34:54
【问题描述】:

我正在使用 LibGDX 创建游戏,游戏已经完成,但是当我开始在不同的 Android 智能手机上测试时,我发现该游戏在像 2 这样的旧 Android 版本上运行没有问题。但是当我测试时它在最新的 Android 版本(如 3 或 4)上,盒子有拖动问题,我真的不知道如何修复它,因为它在一些旧的 Android 版本上运行良好......

这是我用来拖动 InputHandler 文件上的框的代码:

 @Override
    public boolean touchDragged(int screenX, int screenY, int pointer) {

        miBox.onClick( screenX, screenY );
        return false;
    }

关于盒子处理程序文件:

public void onClick(int screenX, int screenY) { 
    if (position.y < (originalY-100)){
                position.x=screenX;
    }
}

我想知道这是否可能是清单文件或与之相关的问题......你怎么看?

如果您知道我做错了什么,我希望您发表评论!谢谢

【问题讨论】:

  • 请定义“拖拽问题”。箱子根本不动吗?它是否在移动,但不是您预期的方式?设备接触盒子后会自毁?
  • jajaa 我忘了提到问题中最重要的部分,这是在拖动问题上发生的情况:当你尝试拖动一个盒子时,你只是在游戏中输了,因为你把它拖到错误的地方,我的意思是:你把它拖到顶部,而游戏认为它被移到了左边,你就输了。现在清楚了吗?

标签: java android libgdx drag


【解决方案1】:

问题不在于android版本,是android屏幕尺寸,你需要将你的屏幕坐标转换为世界坐标。

Vector3 touchPos = new Vector3(screenX, screenY, 0);
camera.unproject(touchPos);
float x=touchPos.x, y=touchPost.y;

现在使用 x 和 y。

而且不要忘记每帧初始化对象不是一个好主意,我会在某处声明我的 vector3 并在每帧设置它的 x y 和 z(z 始终为 0)坐标。

【讨论】:

  • 感谢 Boldijar 的回复!我又回来了一些坏消息,我在新的 Galaxy Tab 3(10 英寸和最新的 android 版本)上测试了游戏,游戏运行良好,所以我认为问题不在 android 版本或屏幕上大小,也许我用不准确的代码拖动框,所以我需要一些帮助:我必须每 2 秒创建一个框,它移动到屏幕底部,并且使用的必须能够拖动它,你对高效的代码有什么想法吗?
  • 只是一个带有 x 和 y 的类。在更新方法中,每个球都在下降(y -= 一些速度),如果你触摸你的球,请将其位置设置为触摸位置。全部
猜你喜欢
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
  • 2019-10-18
  • 1970-01-01
相关资源
最近更新 更多