【问题标题】:libgdx double tap or other gesturelibgdx 双击或其他手势
【发布时间】:2014-09-03 18:08:51
【问题描述】:

我正在开发一款游戏,我希望玩家能够通过双击屏幕来提高速度,我的问题是:由于玩家通过按下屏幕一次来移动(你按下向左移动左,右向右移动)程序是否会延迟查看屏幕是否被按下一次或两次,或者播放器是否会首先以正常速度开始,然后在检测到另一个点击时加速?这就是我的动作看起来的样子:

            touchPos.set(Gdx.input.getX() - 42, Gdx.input.getY() + 19, 0);
            camera.unproject(touchPos);

if (Gdx.input.isTouched()) {
            if (player.getX() > touchPos.x + 16) {
                player.setPosition(player.getX() - (speed * Gdx.graphics.getDeltaTime()), player.getY() + (130 * Gdx.graphics.getDeltaTime()));


            } else if (player.getX() < touchPos.x - 16) {
                player.setPosition(player.getX() + (speed * Gdx.graphics.getDeltaTime()), player.getY() + (130 * Gdx.graphics.getDeltaTime()));
}

这很好用,但我应该如何实现让玩家可以通过一个简单的手势加速?想法? (如果我需要详细说明或发布更多代码,请告诉我)

【问题讨论】:

  • 您可以使用向上滑动来提高速度,向下滑动来降低速度。 see this post 获取有关手势的帮助。如果您可以向上滑动和向下滑动,我可以发布一些代码吗?
  • 嗯,这可能行得通,但我只希望速度的提高能持续一秒钟(摆脱棘手的情况),所以如果你可以双击快速前进,那就太好了,然后轻按一次即可恢复正常。可以横向滑动吗?那会很酷
  • 是的,您可以向各个方向滑动。this post 谈论从右到左和从左到右滑动。
  • 非常感谢老兄!如果您对如何编写代码有任何提示,那将是一个很大的帮助,因为在使用 libgdx 时,它与普通的 android 应用程序不同,是吗?我在课堂上实现“屏幕”,而不是 Activity 或 OnClickListener.. 但我相信我最终会弄明白的,只是,它会有所帮助:)

标签: java android libgdx


【解决方案1】:

Libgdx 已经有一个用于检测手势的 GestureDetector 类。您可以在 LibGdx wiki 上找到有关它的更多信息。

https://github.com/libgdx/libgdx/wiki/Gesture-detection

注意:GestureDetector 需要注册为 InputProcessor 才能检测手势。如果您想保留以前的 inout 处理器并使用 GestureDetector,则必须使用 InputMultiplexer 将两者注册为 InputProcessors。更多信息可以在这个 wiki 页面上找到。

https://github.com/libgdx/libgdx/wiki/Event-handling

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多