Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mobile 科罗纳图书馆_Mobile_Lua_Coronasdk - Fatal编程技术网

Mobile 科罗纳图书馆

Mobile 科罗纳图书馆,mobile,lua,coronasdk,Mobile,Lua,Coronasdk,我想添加按钮,直到我停止按下它们,它将继续做它的功能 例如,在马里奥游戏中,一旦我们开始按下“前进”按钮,它将继续移动马里奥,直到我们离开该按钮,我们不必一次又一次地按下移动 我假设您的问题是“如何制作一个按钮,使其在释放前持续工作?”首先为“触摸”事件添加一个侦听器 触摸事件在触摸开始和结束时有几个阶段。因此,在侦听器函数中,使用if/else来响应不同的阶段 if event.phase=="began" then Runtime.addEventListener("enterFrame

我想添加按钮,直到我停止按下它们,它将继续做它的功能

例如,在马里奥游戏中,一旦我们开始按下“前进”按钮,它将继续移动马里奥,直到我们离开该按钮,我们不必一次又一次地按下移动

我假设您的问题是“如何制作一个按钮,使其在释放前持续工作?”首先为“触摸”事件添加一个侦听器

触摸事件在触摸开始和结束时有几个阶段。因此,在侦听器函数中,使用if/else来响应不同的阶段

if event.phase=="began" then
  Runtime.addEventListener("enterFrame", doSomething)
elseif event.phase=="ended" then
  Runtime.removeEventListener("enterFrame", doSomething)

现在在doSomething函数中移动Mario。

由于enterFrame侦听器,上述操作将始终运行。您正在寻找的内容更像这样

    local function moveLeft(event)
    if event.phase=="began" then
    character.x=character.x+1
    elseif event.phase="ended" then
    --do Nothing it wont move anymore anyways
    end
    end

local leftbutton=display.newImage("bla bla bla.png")

leftButton:addEventListener("touch",moveLeft)

当你使用触摸事件时,你告诉它做的任何事情在你发布之前都不会停止,这与tap不同,因为在tap中,你必须以相当快的速度发布,而事件只在你发布时才会注册。

我想你忘了写问题。仅供参考,在Corona SDK网站的Corona代码交换部分,tehre是一些与输入相关的示例,包括一个创建屏幕模拟操纵杆的示例。