【问题标题】:Godot TouchScreen swipe detectorGodot TouchScreen 滑动检测器
【发布时间】:2020-01-11 10:24:09
【问题描述】:

我正在用 Godot3.1 制作一个简单的安卓手机游戏。我需要制作一个滑动检测器来确定玩家是否滑动以及朝哪个方向(左或右)滑动。

我试过了:

var swipe_start = null
var minimum_drag = 100

func _unhandled_input(event):
if event.is_action_pressed("click"):
    swipe_start = event.get_position()
if event.is_action_released("click"):
    _calculate_swipe(event.get_position())

func _calculate_swipe(swipe_end):
  if swipe_start == null: 
    return
  var swipe = swipe_end - swipe_start
  if abs(swipe.x) > minimum_drag:
    if swipe.x > 0:
        _right()
    else:
        _left()

当您用鼠标单击并滑动时,此功能有效,但在您的 Android 手机上播放时无效。

有什么想法吗?

【问题讨论】:

    标签: touch touch-event godot


    【解决方案1】:

    该代码仅考虑点击而不考虑屏幕触摸,以纠正您有两种选择:

    • 转到 项目 > 项目设置 > 输入设备 > 指向,然后打开 Emulate Mouse From Touch 选项。

    • 或者使用如下代码:

    func _unhandled_input(event):
      if event is InputEventScreenTouch:
        if event.pressed:
          swipe_start = event.get_position()
        else:
          _calculate_swipe(event.get_position())
    

    代替:

    func _unhandled_input(event):
      if event.is_action_pressed("click"):
        swipe_start = event.get_position()
      if event.is_action_released("click"):
        _calculate_swipe(event.get_position())
    

    使用最后一个解决方案,代码仅考虑屏幕触摸,因此您无法在 PC 上测试它,除非您转到 项目 > 项目设置 > 输入设备 > 指向并打开 模拟鼠标触摸

    【讨论】:

      猜你喜欢
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 2021-07-01
      • 2012-08-28
      相关资源
      最近更新 更多