2013-08-06 50 views
0

我想动画随机对象在屏幕上随机位置创建个别, 对象将创建在随机位置并向右移动,当他们越过屏幕宽度,然后它们会从左边产生(超出屏幕)。我无法理解如何在屏幕上对随机创建的对象进行动画制作。以下是我使用的代码。请帮忙。感谢....如何动画在电晕sdk屏幕上创建的随机对象

--objects that are created randomly 
local randoms=math.random 
local randomx,randomy 
local randomobjname1,randomobjname2 

for i=1, 2 do 
    randomx=randoms(200,400) 
    randomy=randoms(600,800) 
    local xlocation=randomx 
    local ylocation=randomy 

    local RandomObject[i]=display.newImage("object.png") 
    RandomObject[i].x=xlocation 
    RandomObject[i].y=ylocation 

    if i==1 then 
     randomobjname1=RandomObject[i] 
    elseif i==2 then 
     randomobjname2=RandomObject[i] 
    end 

    local function animateobj() 
    --in this line i have confusion how to pass random x position that i got previously from the above function 
    randomobjname1.x=randomx 
    randomobjname2.x=randomx 
    transition.to(randomobjname1,{time=1500,x=700, onComplete=animateobj}) 
    transition.to(randomobjname2,{time=1500,x=700, onComplete=animateobj}) 
    end 
end 

回答

2

您正在寻找这样的:

local RandomObject = {} 
local xPos = {} 
local transitionTime = 1500 

local listener2 = function(obj) 
    transitionTime = 2000 -- U can select as ur need 
    RandomObject[obj.tag].x = xPos[obj.tag]-400 -- U can even choose a difft. val than '400' 
    animateobj(obj.tag) 
end 

function animateobj(i_) 
    transition.to(RandomObject[i_],{time=transitionTime,x=400+xPos[i_], onComplete=listener2}) 
end 

for i=1, 2 do 
    RandomObject[i]=display.newImage("object.png") 
    RandomObject[i].x = math.random(100,300) 
    RandomObject[i].y = math.random(100,400) 
    RandomObject[i].tag = i 
    xPos[i] = RandomObject[i].x 
    animateobj(i) 
end 

保持编码............ :)

+0

在上面的代码中的对象生成在随机位置,然后向右移动,它工作的很完美,但是在将对象第一次移动到屏幕右侧之后,对象必须从左边产生,例如。像x = -30这样的东西,而不是从屏幕上的相同随机位置产生,这种改变可以如何改变这个代码,谢谢你的帮助...... – user2588337

+0

哦......好的。为了您的方便,我编辑了这篇文章...... :) –