對此question進行跟蹤,使用陶瓷磚引擎的故事板和碰撞檢測仍然是一個謎。下面是代碼:使用陶瓷磚引擎和箱子進行碰撞檢測2D
-- hide status bar
display.setStatusBar(display.HiddenStatusBar)
local storyboard = require("storyboard")
--Set up the physics world
local physics = require("physics")
physics.start()
physics.setGravity(0, 0)
physics.setDrawMode('hybrid')
local scene = storyboard.newScene()
local widget = require("widget")
-- Add Hero to Physics
local hero = display.newImage("images/man.png")
hero.x = 40
hero.y = 80
local heroCollisionFilter = { categoryBits = 4, maskBits = 2 }
local heroBody = { filter=heroCollisionFilter, isSensor=true }
physics.addBody(hero, "dynamic", heroBody)
function scene:createScene(event)
local group = self.view
local ceramic = require("Ceramic")
ceramic.showPrints = false
local map = ceramic.buildMap("maps/map.lua")
-- collisionLayer = map.layer['Collision']
-- collisionLayer.ccName = "map"
-- physics.addBody(collisionLayer, "static", { friction=0.5, bounce=0.3 })
map.y = 0
map.setCameraDamping(10)
map.layer['World']:insert(hero)
end
function onGlobalCollision(event)
if(event.phase == "began") then
print("Global report: " .. event.object1.ccName .. " & " .. event.object2.ccName .. " collision began")
elseif(event.phase == "ended") then
print("Global report: " .. event.object1.ccName .. " & " .. event.object2.ccName .. " collision ended")
end
print("**** " .. event.element1 .. " -- " .. event.element2)
end
Runtime:addEventListener("collision", onGlobalCollision)
scene:addEventListener("createScene", scene)
return scene
,然後將截圖的樣子:
然而,碰撞從來沒有觸發,因爲print
消息沒有在終端出現在所有。
我使用:
- 科羅娜SDK
- 瓷磚引擎
- 電暈模塊:故事板,物理
如何啓用衝突檢測?參數是否正確?
編輯2013年10月27日
的瓷磚地圖設置如下:
當在Mac OS X上運行,碰撞不會發生(僅混合層改變顏色)。
當在Windows 7上運行的代碼崩潰在這條線:
ceramic.buildMap("maps/map.lua")
錯誤:
attempt to call global 'reversePolygon' (a nil value) in Ceramic.lua: 617
我註釋掉以下行後,錯誤消失:
collisionLayer = map.layer['Collision']
collisionLayer.ccName = "map"
physics.addBody(collisionLayer, "static", { friction=0.5, bounce=0.3 })
但碰撞函數沒有被調用。
我已經添加了這些,但碰撞事件根本不會被觸發。我錯過了什麼?但我注意到物理混合層正在改變顏色 – Raptor
而'physics:enabled'是真的嗎? –
是的,請參閱我的更新。 – Raptor