Events 使用电晕/lua处理多点触摸

Events 使用电晕/lua处理多点触摸,events,lua,coronasdk,multi-touch,Events,Lua,Coronasdk,Multi Touch,我正在使用多点触摸进行一个简单的游戏。我有三个按钮,如果按下一个按钮,相应的对象将被移除,如果正确的两个按钮是“多点触控”的,则相应的对象将被移除。我的问题是,多点触控处理程序触发两个事件,因此在只应删除一个对象时删除两个对象。下面是我的代码的一个解释版本: function buttonHandler(event) -- Store the users input if (event.phase == "began") then mt[event.target.id]

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

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”对象,则两个对象都将通过一个“猜测”删除

我曾考虑将比较代码移到函数之外,但我也会遇到同样的情况。一次猜测仍将触发两个事件


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

您是否尝试过保存事件+当事件发生时,然后在主循环/函数中勾选事件?处理它们,然后您知道有多少事件,你能确认你已经激活了multi-touch并且你观察到的是物理设备而不是电晕模拟器吗?还要记住,我们看不到您的界面,所以您必须使用清晰的简单示例。无法从您的描述中理解1 2和3所指的与触摸有关的内容。