2013-08-06 51 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

哦......好的。爲了您的方便,我編輯了這篇文章...... :) –