我在类似太空射击游戏的游戏中有 2 个控件,分别是左右。船确实左右移动,当船移动到 x=40 的左侧(最左边)时,它会恢复到 x=40 并暂时禁用“向左移动”功能,但我的问题是,每当我移动到屏幕的最左边或最右边,从屏幕中间,船移动超过 x=40(大约 x=35)然后向后移动并继续此操作,直到我松开按钮。我怎样才能做到,当我把船移到最左边时,它会完全停下来,只让我向右移动?
这是我的代码:
function left:touch()
if(car01.x>40 and car01.x<280) then
motionx=-speed;
return false
end
end
left:addEventListener("touch",left)
function left:touch2()
motionx=0;
end
local function movecar(event)
if(car01.x>40 and car01.x<280) then
car01.x=car01.x+motionx
return false
elseif(car01.x==40) then
car01.angularVelocity=0
left:addEventListener("touch2",left)
car01.x=car01.x+motionx
elseif(car01.x<40) then
car01.x=40
end
end
Runtime:addEventListener("enterFrame",movecar)
local function stop(event)
if (event.phase=="ended") then
motionx=0;
return true
end
end
Runtime:addEventListener("touch",stop)