0

我在类似太空射击游戏的游戏中有 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)
4

1 回答 1

0

是你要找的..?

创建背景(bg),左右控件(左右分别)。然后:

local function moveLeft()
  if(car01.x>40)then
    car01.x = car01.x - 40
  end
end
left:addEventListener("tap",moveLeft)

local function moveRight()
  if(car01.x<280)then
    car01.x = car01.x + 40
  end
end
right:addEventListener("tap",moveRight)

Keeo 编码....... :)

于 2013-05-22T09:10:58.150 回答