【发布时间】:2014-01-06 14:59:00
【问题描述】:
我遇到了一个从上面掉下来的方块和地板上一个移动的立方体之间的碰撞。问题是,每当我执行 cube:addEventListener("collision", onCollision) 时,立方体会撞到地板上,电晕会认为那是碰撞。 block:addEventListener 也是如此。由于立方体在移动,方块并不总是撞到立方体,而是撞到地板上,电晕检测到碰撞。
我还有一个循环来生成块。有没有办法在碰撞发生时禁用此循环,因为它会不断产生块。
这是我的代码:
function blockremove()
display.remove( block )
timer.performWithDelay( 1000, blockspawn)
end
function collision(event)
if(event.phase == "began") then
display.remove( cube )
display.remove( block )
gameover = display.newText( "Game Over", display.contentCenterX, display.contentCenterY, native.systemFontBold, 36 )
gameover:setFillColor( 1,0,0 )
end
end
function blockspawn()
block = display.newRect( 0, 0, 50, 50 )
block:setFillColor( 1,0,0 )
block.x = math.random(50, display.contentWidth -50 )
block.y = -50
physics.addBody( block, {density=50, friction=0, bounce=0.3} )
timer.performWithDelay( 3000, blockremove )
block:addEventListener( "collision", collision )
end
【问题讨论】:
-
你说你可能有多个碰撞(块地板、立方体地板、块立方体)并且找不到区分它们的方法?不清楚问题是什么。另外我建议您将问题分开,在我看来,“禁用循环”问题与第一个问题完全不同。
-
是的,那是另一个问题,我会尽量不在同一个帖子中再问两个问题,是的,我有 3 个对象:一个地板、一个在地板上移动的立方体和一个掉落的块从空中看,我希望积木掉到立方体上时游戏结束,但我希望它掉到地板上时继续游戏。
标签: android lua coronasdk collision