【问题标题】:Libgdx getting mouse position in androidLibgdx在android中获取鼠标位置
【发布时间】:2014-03-12 01:41:39
【问题描述】:

我有一个在 ouya 上运行的游戏。我想让一个游戏对象跟随光标,但是 mouseMoved() 只在 libgdx 的桌面版本中被调用。同样,Gdx.input.getX() 和 getY() 仅在单击鼠标(ouya 触摸板轻按)时更新。

出于各种原因,badlogic 建议在官方 ouya one 上使用他们的控制器 api,并且它可以与其他一切完美配合。 libgdx 有没有办法返回 android 中的光标位置?当 libgdx 控制器扩展在所有其他方面工作并支持多个控制器时,我真的想避免重写我的所有其他控件。 谢谢。

【问题讨论】:

  • 如果您对操纵杆控制的光标没问题,您可以通过控制器侦听器方法之一更新其位置,例如axisMoved()。你可以试试看欧亚是否调用了触摸屏设备使用的方法touchDragged(),但我不确定它是否会做任何事情。

标签: java android libgdx


【解决方案1】:

您可能想尝试非 OUYA 方法。我可以使用 USB 适配器将 USB 鼠标和键盘插入手机,也可以将蓝牙鼠标与手机配对。事实上,你必须用一根棍子上的很多 HDMI android 电脑来做到这一点。鼠标应该会导致您通常在 LibGDX 中检测到的所有触摸事件,但我认为 OUYA 触摸板具有鼠标功能,因此如果您想像普通鼠标一样跟踪它,您应该能够做到。

如果您查看Android backendPC backend 是如何实现的,您会看到getX 和类似的查询PC 上的鼠标,但返回最后存储在android 上的触摸位置。但是从 Honeycomb 开始,您可以使用 View.OnGenericMotionListener 获取光标位置(参见 Android: Tracking mouse pointer movement)。

因此您可以添加一些特定于 android(但不是特定于 OUYA)的代码来跟踪光标位置。 哦,Android 4 添加了更多与鼠标相关的支持 - https://developer.android.com/about/versions/android-4.0.html

【讨论】:

  • 感谢您的回答,这就是我认为我必须做的,但我不确定如何在我的核心 libgdx 项目中实现特定于 android 的 api 调用。但我相信我可以通过一些研究来解决这个问题。再次感谢。
【解决方案2】:

我知道这已经有一段时间了,您可能想出了如何做到这一点,但我只是想让您知道,我已经向 libGDX 提交了一个补丁,该补丁允许以与您在桌面。

现在已在本地完成,从 libGDX 1.4.1 开始

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-29
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多