Just for fun, here is a more advanced version of your code utilizing several Lua Corona features you may find fun:
local W = display.contentWidth local H = display.contentHeight local CX = display.contentCenterX local CY = display.contentCenterY local mRand = math.random local physics = require( "physics") --physics.setDrawMode( "hybrid" ) physics.start() local layer = display.newGroup() local function newPBody( group, x, y, w, h, color, bodyType ) local bodyType = bodyType or "dynamic" local tmp = display.newRect( group, 0, 0, w, h ) tmp:setFillColor(unpack(color)) tmp.x = x tmp.y = y physics.addBody( tmp, bodyType, { bounce = 0.8 } ) return tmp end newPBody( layer, CX, H - 40, W, 40, { 0, 1, 0 }, "static" ) for i = 1, 24 do timer.performWithDelay( 100 \* i, function() newPBody( layer, i \* 20, 0, 10, 10, { mRand(0,1), mRand(0,1), mRand(0,1) } ) end ) end