编译时显示
错误:在解决冲突之前无法转换对象
当我为Android构建应用程序时,它向我显示错误#5(null)。
这是我的代码:
function onLocalCollision(meteor, event)
if event.phase == "began" then
if event.object1.myName == "meteor" and
event.object2.myName == "rocket" then
score = score - 1
scoreNumber.text = score
restart.isVisible = true
meteor.x = 500
meteor.y = 300
meteor2.x = 500
meteor2.y = 200
meteor3.x = 500
meteor3.y = 100
event.object2.alpha = 0.2
rocket:applyForce(-150,0,rocket.x,rocket.y)
lives = lives -1
livesNumber.text = lives
if lives < 1 then
lives = 3
score = 0
scoreNumber.isVisible = false
livesText.isVisible = false
livesNumber.isVisible=false
hearticon.isVisible = false
scoreText.isVisible = false
gameover.isVisible = true
restart.x = 100000
end
end
end
end
meteor.collision = onLocalCollision
Runtime:addEventListener("collision", meteor)
答案 0 :(得分:0)
你的代码的问题在于你无法在碰撞(函数)中进行翻译,所以如果你只说:timer.performWithDelay(100, function() rocket:applyForce(-150,0,rocket.x,rocket.y) end, 1)
它应该解决你的问题和/或只是创建一个回调函数。
“修改对象 在碰撞事件期间,不应移除碰撞中涉及的对象或改变其中的任何属性。如果要修改碰撞事件中的对象位置值或其他属性,则应使用timer.performWithDelay()。
删除对象或修改碰撞事件中的属性可能会导致模拟器崩溃。“