我在Corona SDK中構建了一個遊戲,涉及兩種不同類型的物體的碰撞。遊戲中共有3個物體,一個火箭飛船,一個小行星和一個黃色的球體。當小行星撞上火箭飛船時,你失去了一次生命。當一個黃色的球體擊中火箭飛船時,你會獲得一個點。由於某些原因,小行星和黃色球體都表示,他們只有一次碰撞時纔會與火箭飛船發生多次碰撞。我多次重新評估了我的代碼,但我無法弄清楚問題所在。請幫助,如果你需要示例代碼,我可以發佈一些。在Corona中多次報告碰撞
0
A
回答
0
碰撞有多個階段。你必須測試階段。碰撞開始和結束。應該有一個event.phase,告訴你你在哪個階段。也有預碰撞事件。
0
您的代碼必須與任何這兩個階段中,
local crate1 = display.newImage("crate.png")
physics.addBody(crate1, { density=3.0, friction=0.5, bounce=0.3 })
crate1.myName = "first crate"
local crate2 = display.newImage("crate.png")
physics.addBody(crate2, { density=3.0, friction=0.5, bounce=0.3 })
crate2.myName = "second crate"
local function onCollision(event)
if (event.phase == "began") then
print("began: " .. event.object1 .. " & " .. event.object2)
elseif (event.phase == "ended") then
print("ended: " .. event.object1 .. " & " .. event.object2)
end
end
crate1.collision = onLocalCollision
crate1:addEventListener("collision", crate1)
crate2.collision = onLocalCollision
crate2:addEventListener("collision", crate2)
這將幫助你避免多次碰撞。
https://docs.coronalabs.com/daily/guide/physics/collisionDetection/index.html
相關問題
- 1. 碰撞分離 - CORONA
- 2. 避免碰撞 - Corona
- 3. Corona中的碰撞事件
- 4. Corona SDK radius內部碰撞
- 5. jMonkeyEngine單次碰撞的多次碰撞事件
- 6. 碰撞檢測多次。
- 7. 與類中的圖像碰撞corona sdk
- 8. 對碰撞報告缺乏瞭解
- 9. 畫布中的多次碰撞
- 10. levelhelper-spritehelper-corona sdk-物體碰撞
- 11. Corona SDK:真正的拖動碰撞
- 12. Corona SDK Lua-與硬幣碰撞
- 13. Sprite Kit碰撞多重碰撞
- 14. 在單次接觸中多次碰撞身體[AndEngine]
- 15. 爲什麼碰撞發生很多次?
- 16. 碰撞時產生多個物體 - Corona SDK
- 17. Google廣告ID碰撞
- 18. 讓玩家在corona sdk中相互碰撞和褪色
- 19. Circle Corct碰撞檢測在Corona SDK中不起作用
- 20. XNA多級碰撞
- 21. 碰撞事件兩次as3
- 22. Sprite Kit中同時發生兩次或多次碰撞
- 23. 隨機數發生器碰撞測試中碰撞太多
- 24. 碰撞和團結碰撞
- 25. XNA - 球碰撞檢測錯誤的第一次碰撞
- 26. Crashlytics不給予適當的碰撞報告
- 27. 在碰撞
- 28. AndEngine Box2D。移除碰撞後的碰撞遊戲碰撞
- 29. andengine管理多個碰撞
- 30. LUA碰撞,多個物體