获取加速度计输入 - Defold Engine

时间:2017-08-03 02:56:32

标签: accelerometer defold

我正在尝试使用加速计来移动角色。

但是在on_input()内使用action.acc_x / action.acc_y / action.acc_z时,我只能在执行其他一些操作时获取信息(“click”,“left”, “右”)

我想将脚本更改为仅通过设备的移动来移动角色

function on_input(self, action_id, action)

    label.set_text("info#action", "action: ".. action_id)
    label.set_text("info#info", "info: ".. tostring(action.acc_x) ..", ".. tostring(action.acc_y) ..", "..tostring(action.acc_z))
    if action.acc_x > 0 then
        self.player_direction.x = 1
    elseif action.acc_x < 0 then
        self.player_direction.x = -1
    else
        self.player_direction.x = 0
    end
end

github:game.script

1 个答案:

答案 0 :(得分:4)

据我所知,当action_idnil时,Defold只有一种情况 - 就是从加速度计收到数据的时候。 这意味着你可以写:

function on_input(self, action_id, action)
  if not action_id then
    label.set_text("info#action", "action: ".. tostring(action_id))
   label.set_text("info#info", "info: ".. tostring(action.acc_x) ..", ".. tostring(action.acc_y) ..", "..tostring(action.acc_z))
    if action.acc_x > 0 then
      self.player_direction.x = 1
    elseif action.acc_x < 0 then
      self.player_direction.x = -1
    else
      self.player_direction.x = 0
    end
  end
end

别忘了替换

  

label.set_text(&#34; info#action&#34;,&#34; action:&#34; .. action_id)

  

label.set_text(&#34; info#action&#34;,&#34; action:&#34; .. tostring(action_id))