Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function coronasdk中的Spawn函数_Function_Lua_Coronasdk - Fatal编程技术网

Function coronasdk中的Spawn函数

Function coronasdk中的Spawn函数,function,lua,coronasdk,Function,Lua,Coronasdk,好的,我差不多到了,但需要一点推动: 我的垃圾箱大量繁殖,但一开始有一些我想要的,然后在垃圾箱数量增加30秒后,有1000个垃圾箱聚集在一起。。我可以做些什么来改变我的功能,使其一次只能有几个: function spawnDustbin() dustbin = {} for i = 1,800 do dustbin[i] = display.newImage("dustbin.png") dustbin[i].xScale = 0.55 dustbin[i].yScal

好的,我差不多到了,但需要一点推动:

我的垃圾箱大量繁殖,但一开始有一些我想要的,然后在垃圾箱数量增加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 
功能移动垃圾箱(自身、事件)
如果self.x<-2560,则
self.x=2560
其他的
self.x=self.x-val
结束
结束
前20秒:

20秒后:

多谢各位 James

上面的“生成垃圾箱”功能每帧生成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个垃圾箱

你是否发表评论,自己回答,并对两个账户进行投票。。。?你在开玩笑吗?而且,这并不是说每帧产卵800个黄昏箱。它在游戏开始时以(希望如此)伪随机的距离分布产生它们。