Corona SDK - 在Lua中处理触摸事件

我正在使用Lua制作一个简单的应用程序,以便更好地了解Corona SDK:一个红球在屏幕上弹跳并在用户触摸它后改变方向。但是,每当我在Corona模拟器中单击球时,触摸事件被调用的次数不止一次。以下是我的代码:

每次我在模拟器中单击球时,“Switched!”会被打印出来,不止一次。有什么想法吗?

点赞
用户1376112
用户1376112

"touch" 事件会在触摸事件的开始和结束时被调用两次。尝试在 switch 函数中打印 event.phase。你应该使用:

circle:addEventListener("tap", switch);
2013-05-24 00:21:37
用户1682268
用户1682268

当使用触摸事件时,会触发三个事件阶段:

began(开始), moved(移动), ended(结束)

如果您想在触摸事件中触发一个阶段,请将以下代码添加到您的代码中:

local function switch(event)
    if (event.phase == "ended") then
    xdirection = xdirection * -1;
    ydirection = ydirection * -1;
    print "Switched!"
    end
end
2013-05-24 02:08:11