2013-12-17 69 views
0

所以我有這個立方體,如果玩家點擊一個按鈕就會移動。我也有這個塊,如果立方體碰撞,立方體將被送回到開始位置。我盡了最大的努力,但我似乎無法讓他們兩人在一起正常工作。用我的代碼,立方體會出現毛刺,並在塊和起始位置之間的整個屏幕上移動。這是如果按鈕仍然按下。如果它在相同的碰撞時間發佈,它確實有效,但顯然球員們不會注意到這一點。我如何在有人按下按鈕時進行碰撞

function touchHandler(event) 
if event.phase == "began" then 
    display.getCurrentStage():setFocus(event.target) 
    event.target.isFocus = true 
    Runtime:addEventListener("enterFrame", enterFrameListener) 
    holding = true 
elseif event.target.isFocus then 
    if event.phase == "moved" then 
    elseif event.phase == "ended" then 
     holding = false 
     Runtime:removeEventListener("enterFrame", enterFrameListener) 
     display.getCurrentStage():setFocus(nil) 
     event.target.isFocus = false 
    end 
end 
return true 
end 
leftbutton:addEventListener("touch", touchHandler) 

這是衝突的代碼:

function onCollision(event) 

if (event.phase == "began") then 
    transition.cancel() 
    transition.moveTo(cube, {time = 0, x = 35, y = 35}) 

end 
return true 
end 
redblock:addEventListener("collision", onCollision) 

另外:每當立方體落在redblock的邊緣,並開始旋轉和被送回開始。它保持旋轉,並開始自行移動。

我希望有人能幫助! 謝謝。

回答

0

在碰撞過程中,您仍處於「移動」階段,因此該塊試圖重置,但之後又被拖動。一旦檢測到碰撞,您需要從「左鍵」中刪除事件處理程序,以便觸摸事件不再進行。

相關問題