2014-02-23 60 views
2

好讓我有種我幾乎有,但需要輕輕一推:菌種功能

我的垃圾桶內產卵,但也有開始與像我想了幾個,然後大約30秒的數字後,垃圾箱越來越有1000的全聚集在一起..我能做些什麼來改變我的功能,使得它永遠只能在同一時間幾個:

function spawnDustbin() 
dustbin = {} 
for i = 1,800 do 
    dustbin[i] = display.newImage("dustbin.png") 
    dustbin[i].xScale = 0.55 
    dustbin[i].yScale = 0.55 
    dustbin[i].y = 555 
    dustbin[i].x = (math.random(1000,1500) * i) 
    dustbin[i].speed = 4 
    physics.addBody(dustbin[i], "static", { friction=1.0, density=1.0, bounce=0, radius=30,}) 
    dustbin[i].enterFrame = moveDustbin 
    Runtime:addEventListener("enterFrame", dustbin[i]) 
    end 
end 

和movedustbin功能只是將垃圾箱負x方向:

function moveDustbin(self,event) 
    if self.x < -2560 then 
    self.x = 2560 
    else 
       self.x = self.x - val 
      end 
     end 

首先20ish秒: http://i.stack.imgur.com/7iEeP.png

20秒鐘後: http://i.stack.imgur.com/aae0D.png

非常感謝您 詹姆斯

回答

0

那 「spawnDustbin」 上述功能產卵800個垃圾箱每一幀。這會真的壓制你的表現,而且我非常確定你不想在每一幀都創建很多對象。

你可能想要做這樣的事情:

local dustbin = {} 
local i = 0 
local function spawnDustbin() 
    i = i+1 
    dustbin[i] = display.newImage("dustbin.png") 
    dustbin[i].xScale = 0.55 
    dustbin[i].yScale = 0.55 
    dustbin[i].y = 555 
    dustbin[i].x = (math.random(1000,1500) * i) 
    dustbin[i].speed = 4 
    physics.addBody(dustbin[i], "static", { friction=1.0, density=1.0, bounce=0, radius=30,}) 
    dustbin[i].enterFrame = moveDustbin 
    Runtime:addEventListener("enterFrame", dustbin[i]) 
end 

timer.performWithDelay(500, spawnDustbin, 10) 

情況因人而異,但將在5秒內產卵10個垃圾箱。

+0

您是否發表了評論,自己回答並且同時提出了兩個帳戶......?你在開玩笑嗎?此外,這不是產生800 Duskbins每一幀。它在遊戲開始時以(希望)僞隨機距離分佈產生它們。 –