如何使用Corona SDK使图像像流星一样随机下落?

我想要的是图片从屏幕的顶部掉落并开始加速下落,它们只会按照屏幕宽度交替位置直线掉落,意味着一张在右边,接着一张在中间,然后一张在左边,以此类推在不同位置,直到它们在屏幕底部消失。

我尝试了这个:

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

但是,有时候图片会彼此重叠出现,我不希望出现这种情况,我的意思是每个图片应该独自一行从屏幕顶部到底部掉落。我希望我已经解释清楚了。

点赞
用户2260604
用户2260604

你应该研究一下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)
2014-07-30 16:10:42