我正在制作一个游戏而且我遇到了问题,当角色跳上一个物体时,会发生一系列事件。但是,因为它多次与对象碰撞,事件会多次发生,这是我不想要的。我想要的是在角色跳过对象并停留在对象顶部之后事件发生一次。那么,当角色跳到另一个物体上时,让事件再次发生......等等。
以下是我的相关代码的一部分:
function playerCollision( self, event )
--if hit bottom column, u get points
if event.target.type == "player" and event.other.type == "startColumn2" then
if event.phase == "began" then
print ("collided")
addColumns()
timer.performWithDelay(5000, addBody)
startColumn2: translate(-4, 0)
startcolumn2hit = true
end
end
if event.target.type == "player" and event.other.type == "bottomColumn" then
print ("hit column")
onPlatform = true
end
end
如何制作它以防止多次碰撞?
答案 0 :(得分:0)
在第一次碰撞时,您可以在玩家与之碰撞的对象上设置布尔标志。我在这里添加alreadyCollided
并检查我们是否已经与它发生冲突:
function playerCollision( self, event )
--if hit bottom column, u get points
if event.target.type == "player" and event.other.type == "startColumn2" then
if event.phase == "began" then
addColumns()
timer.performWithDelay(5000, addBody)
startColumn2: translate(-4, 0)
startcolumn2hit = true
end
end
if event.target.type == "player" and event.other.type == "bottomColumn" and not event.other.alreadyCollided then
event.other.alreadyCollided = true
-- Increase score etc...
end
端