必须在解决碰撞之前才能翻译对象。

当我进行编译时出现以下错误:

错误:无法在解决冲突之前翻译对象

当我为 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)
点赞
用户3131159
用户3131159

你的代码存在问题,就是你不能在碰撞(函数)期间进行翻译,所以如果只说这样:timer.performWithDelay(100, function() rocket:applyForce(-150,0,rocket.x,rocket.y) end, 1) 就可以解决你的问题,或者创建一个回调函数。

"修改对象 在碰撞事件中不应删除或更改涉及到的对象或其任何属性。如果想要在碰撞事件中修改对象位置值或其他属性,则应使用 timer.performWithDelay() 方法。

在碰撞事件中删除对象或修改属性可能会导致模拟器崩溃。"

http://docs.coronalabs.com/api/event/collision/index.html

2013-12-24 01:37:11