如何使图像随机掉落,就好像Corona SDK中的流星一样?

时间:2014-07-30 07:37:26

标签: lua corona

我想要的是图像从屏幕顶部落下并开始下降加速,它们只会垂直向下,在屏幕宽度周围交替位置,意味着一个在右边,然后是另一个在中间,然后另一个在左侧,依此类推,在不同的位置,直到它们消失在屏幕的底部。

我试过这个

function moveMeteors()
  for i = 1, math.random(1, 2) do 
    meteors = display.newImage("meteor.png")
    screenGroup:insert(meteors)
    meteors.x = (math.random(display.contentWidth))
    meteors.y = centerY - 340

    transition.to(meteors, {time = math.random(3500 - speedMeteor, 4500 - speedMeteor),
                            y = 1000 + speedMeteor, onComplete = clear })

    speedMeteor = speedMeteor + 10

  end
end

但是,有时候图像会出现在另一个上面,我不希望这样,我的意思是,每个图像都出现在屏幕的顶部到底部。我希望我能很好地解释这一点。

1 个答案:

答案 0 :(得分:1)

你应该考虑利用Coronasdk的内置物理学。 CoronaDocs:Physics.

作为示例,此代码应该可以轻松模拟您尝试获得的效果,您必须添加函数以在离开屏幕时删除对象等。

local physics = require("physics")
physics.start()

function SpawnMeteor()
    local meteor = display.newImage( "meteor.png", math.random(display.contentWidth), centerY - 340)
    physics.addBody( meteor)
end

timer.performWithDelay( 2000, SpawnMeteor)