2013-09-22 158 views
1

我有這個場景,我想要當地球與黑洞碰撞一個爆炸精靈時。event.x似乎不起作用

enter image description here

所以我寫了這一點:

local function onCollision(event) 
    if (event.phase == "began") then 
     if(event.object1.name =="blackholeSprite" or event.object2.name =="blackholeSprite") then 
      explosionSprite.x=event.x 
      explosionSprite.y=event.y 
     explosionSprite:play() 
     timer.performWithDelay(1500, gameOver)   
     end 
    end 

end 

的問題是,在球和黑洞碰撞event.xevent.y爆炸不會發生。從屏幕截圖中可以看到爆炸發生在左上角。任何想法爲什麼發生這種情況

回答

1

也許是因爲docs報道碰撞事件的「疑難雜症」。

陷阱

的x和y位置可以通過physics.getAverageCollisionPositions()physics.setReportCollisionsInContentCoordinates()的影響。

事件位置

在「端」階段(見碰撞檢測指南),X和Y位置始終是零。這是一個Box2D限制。另外,當一個碰撞涉及一個圓,並且碰撞結果返回到本地空間時(參見physics.setReportCollisionsInContentCoordinates(),那麼碰撞的局部空間位置總是0,0。這是Box2D的限制。)

爲了解決您的問題,你可以嘗試從(之一)獲取座標對象本身,而不是從事件讓他們。