Acortar código de Corona/lua.

Hola a todos, soy casi nuevo en este mundo de la programación y me ha interesado programar con Corona que es bastante sencillo para aprender; el problema es que no sé mucho sobre lua, por lo tanto los códigos me quedan largos como este:

function scene:createScene(event) local screenGroup = self.view fondo = display.newImageRect("fondo.png", 480, 320) fondo.x = 240 fondo.y = 160 estrella = display.newImageRect("star.png", 50, 50) estrella.isVisible = false moneda\_1 = display.newImageRect("Moneda.png", 50, 50) moneda\_1.x = math.random(20,460) moneda\_1.y = math.random(-300,0) moneda\_1.speed = 7 moneda\_1.valor = 1 moneda\_2 = display.newImageRect("Moneda2.png", 50, 50) moneda\_2.x = math.random(20,460) moneda\_2.y = math.random(-300,0) moneda\_2.speed = 7 moneda\_2.valor = 2 moneda\_3 = display.newImageRect("Moneda3.png", 50, 50) moneda\_3.x = math.random(20,460) moneda\_3.y = math.random(-300,0) moneda\_3.speed = 7 moneda\_3.valor = 3 moneda\_4 = display.newImageRect("Moneda.png", 50, 50) moneda\_4.x = math.random(20,460) moneda\_4.y = math.random(-300,0) moneda\_4.speed = 7 moneda\_4.valor = 1 moneda\_5 = display.newImageRect("Moneda2.png", 50, 50) moneda\_5.x = math.random(20,460) moneda\_5.y = math.random(-300,0) moneda\_5.speed = 7 moneda\_5.valor = 2 moneda\_6 = display.newImageRect("Moneda3.png", 50, 50) moneda\_6.x = math.random(20,460) moneda\_6.y = math.random(-300,0) moneda\_6.speed = 7 moneda\_6.valor = 3 moneda\_7 = display.newImageRect("Moneda3.png", 50, 50) moneda\_7.x = math.random(20,460) moneda\_7.y = math.random(-300,0) moneda\_7.speed = 7 moneda\_7.valor = 3 fuego\_1 = display.newImageRect("Quitapuntos.png", 80, 80) fuego\_1.x = math.random(20,460) fuego\_1.y = math.random(-300,0) fuego\_1.speed = 7 fuego\_2 = display.newImageRect("Quitapuntos.png", 80, 80) fuego\_2.x = math.random(20,460) fuego\_2.y = math.random(-300,0) fuego\_2.speed = 7 Puntuacion\_texto = display.newText( score.."/"..scoreMax, 70, 50 ) end

Como ven solo es la función de crear escenas, que en el simulador me está corriendo muy a gusto, pero quería saber: ¿Hay alguna forma de acortar un código como este?, es que en sí son varios objetos que en función cumplen lo mismo, solo que uso varios para llenar la pantalla de “monedas”. Solo quería saber eso, no sé si es algo imposible, pero no creo. 

Hola, si que puedes acortar en principio si trabajas con vectores, te pongo el código para la parte de monedas espero que sea suficientemente claro.

Saludos

local moneda={}

for i=1,5 do

local sprite = {“Moneda”,“Moneda1”,“Moneda2”}

local num_sprite = math.random( 1,3 )

moneda[i] = display.newImageRect(sprite[num_sprite]…".png", 50, 50)

moneda[i].x = math.random(20,460)

moneda[i].y = math.random(-300,0)

moneda[i].speed = 7

moneda[i].valor = i

end

Sí amigo, en una de las app de muestra pude ver como usar el for, muchas gracias :smiley:

Hola, si que puedes acortar en principio si trabajas con vectores, te pongo el código para la parte de monedas espero que sea suficientemente claro.

Saludos

local moneda={}

for i=1,5 do

local sprite = {“Moneda”,“Moneda1”,“Moneda2”}

local num_sprite = math.random( 1,3 )

moneda[i] = display.newImageRect(sprite[num_sprite]…".png", 50, 50)

moneda[i].x = math.random(20,460)

moneda[i].y = math.random(-300,0)

moneda[i].speed = 7

moneda[i].valor = i

end

Sí amigo, en una de las app de muestra pude ver como usar el for, muchas gracias :smiley: