使用电晕/ lua处理多点触控

时间:2014-08-08 19:37:02

标签: events lua corona multi-touch

我正在使用多点触控进行简单的游戏。我有三个按钮,如果按下一个按钮,则删除相应的对象,如果正确的两个按钮是“多触摸”,则删除相应的对象。我的问题是多点触控处理程序触发两个事件,因此删除两个对象时应该只删除一个。这是我的代码的释义版本:

function buttonHandler(event)

  -- Store the users input
   if (event.phase == "began") then
      mt[event.target.id] == true 
   end

   -- When the buttons are released, give the users input a value.
   if (event.phase == "ended") then
      if mt.One == true and mt.Two == true then number = 3
      elseif mt.One == true and mt.Two == false then number = 1
      elseif mt.One == false and mt.Two == true then number = 2
      elseif mt.One == false and mt.Two == false then number = 0
   end

   -- Compare the user input with the object and remove it if there's a match.
   if object.number == number then
      object:removeSelf()
      object = nil
   end

   -- Reset the user input.
   mt.One = false
   mt.Two = false
   mt.Three = false

end

发生的情况是,如果用户通过同时按下1和2按钮来选择数字3,则比较代码将被触发两次,每次“结束”阶段一次。因此,如果屏幕上的两个对象是3和1,则三个将被删除,对于1,它就像用户猜错了一样。另一方面,如果屏幕上有两个“3”对象,则两个对象将被一个'猜测'删除。

我考虑过将比较代码移到函数之外,但我会处于同样的情况。一次猜测仍然会引发两个事件。

(如果需要我的实际代码,我会非常乐意提供它。这只会节省很多空间。另外,如果这是一个基本答案,我只是没有看到它,一个链接到阅读材料将不胜感激。我不介意工作,只是不知道从哪里开始。)

0 个答案:

没有答案