Hey everyone! I just joined Corona a few weeks ago and I recently began development on my own game! I’ve been trying to make some code that will spawn a set screen’s worth of obstacles, scroll them downward, delete them when they go off screen, and repeat the process. I’ve tried loads of different functions and ways of doing this, but I always mess something up. Here’s my most recent attempt (Remember the obstacles that spawn are just for testing)
[lua]function scrollObstacle(specGen)
if specGen.y > 3000 then
specGen:removeSelf()
specGen = nil
else
specGen.y = specGen.y + 10
print(“gotemm”)
end
if specGen.y == nil then
return
end
end
function createNewObstacle()
local generateNum = math.random(1,2)
if generateNum == 1 then
– generate
generated2 = display.newGroup()
local barrel2 = display.newRect(50, 1950, 100, 100)
local barrel3 = display.newRect(50, 50, 100, 100)
local barrel4 = display.newRect(950, 1950, 100, 100)
generated2.y = -2000
generated2:insert(barrel3)
generated2:insert(barrel4)
generated2:insert(barrel2)
local myClosure = function() return scrollObstacle( generated2 ) end
timer.performWithDelay(33, myClosure, 500)
end
if generateNum == 2 then
– generate
generated3 = display.newGroup()
local barrel2 = display.newRect(50, 1950, 100, 100)
local barrel3 = display.newRect(50, 50, 100, 100)
local barrel4 = display.newRect(950, 1950, 100, 100)
barrel2:setFillColor(100,0,0)
barrel3:setFillColor(100,0,0)
barrel4:setFillColor(100,0,0)
generated3.y = -2000
generated3:insert(barrel3)
generated3:insert(barrel4)
generated3:insert(barrel2)
local myClosure = function() return scrollObstacle( generated3 ) end
timer.performWithDelay(33, myClosure, 500)
end
end
createNewObstacle()
timer.performWithDelay(20000/3, createNewObstacle, 0 )
[/lua]
I always come of with some error, whether it’s right away or when the program goes to delete the obstacle. In this code the obstacle’s scrolling speed is different each time and ends up being really weird.
Any suggestions/help/edits to this code would be greatly appreciated =)