Ayuda con una tabla y la detection de ella

Primero el codigo

local platano = {}

for i = 1, 25 do
platano[i] = display.newImage(“platano.png”);
physics.addBody (platano[i], {bounce = 0, density = 1.0});
end

function platano:collision(event)
print(“Jony”);
end

Runtime:addEventListener( “collision”, platano)
–Esto me funciona bien, cada vez que un platano es tocado me imprime Jony, lo que kiero conseguir es que cada vez que ese platano se toque se borre, como puedo hacer la llamada a ese platano en concreto??

local platano = {}

for i = 1, 25 do
platano[i] = display.newImage(“platano.png”);
physics.addBody (platano[i], {bounce = 0, density = 1.0});
end

function platano:collision(event)
platano[i].alpha = 0 end

Runtime:addEventListener( “collision”, platano)

–Si lo hago por variables separadas si que se pero asi no lo he conseguido, he mirado por la web y eso y nada haber si me lo podeis decir.

–Seria algo asi lo que yo kiero… [import]uid: 153101 topic_id: 32177 reply_id: 332177[/import]

for i=1,#platano do
table.remove( platano[i] )
end

Prueba por estos caminos, ahora no ando muy seguro que sea así. Cuando llegue a casa te lo puedo mirar.

Aunque creo que la manera que tienes de plantearlo esta mal. Podrías decir exactamente que quieres que hagan los platanos y como se tienen que formar? Por que que salgan 25 platanos así a lo bestia me parece un poco bruto.
[import]uid: 69841 topic_id: 32177 reply_id: 128166[/import]

Haber mi idea es que creo por ejemplo 25 platanos. si los creo en variables independientes no tengo problema y se hacerlo pero es muchisimo codigo porque por si alguna vez fuesen mas necesito saber hacerlo mediante un for e ingresarlos dentro de una tabla.

Entonces mi idea es crear una tabla vacia y mediante un for voy ingresando las variables con sus imagenes y demas atributos en las posiciones de la tabla.

local platanos = {}

for i = 1 , 25 do
platanos[i] = display.newImage(“platano.png”);
end

Ahora mediante un timer les voy dando fisica para que vallan callendo del cielo y que cuando toquen un sitio en concreto como podia ser una cesta se valla borrando el platano que la toque.

i = 1
function darfisica()
physics.addBody( platanos[i], { density = 3.0, friction = 0.5, bounce = 0.3 });
platanos[i]:addEventListener(“touch”, borrarPlatano)
i = i + 1
end
timer.performWithDelay(1000, darfisica, 25)

Necesito saber como borrar justo el platano que sea tocado, al ir llamando el timer cada segundo el i se va sumando y no me borra ese.

function borrarPlatano()
platanos[i].alpha = 0;
end
Haber si me puedes hechar una mano que llevo varios dias dandole vueltas y no consiguo hacerlo… gracias!!!
Un saludo

[import]uid: 153101 topic_id: 32177 reply_id: 128222[/import]

Para lo que primero planteabas te sobra con esto.

local physics = require ("physics")  
physics.start()  
  
local platano = {}  
  
for i=1,25 do  
 platano[i] = display.newImage( "platano.png")  
 physics.addBody (platano[i], {bounce = 0, density = 1.0})  
  
end  
  
local function onTouch( event )  
  
 local t = event.target  
  
 t:removeSelf()  
  
end  
  
for i=1,25 do  
platano[i]:addEventListener("touch",onTouch)  
end  

Para lo de las colisiones, tendrás que mirarte

http://developer.coronalabs.com/content/game-edition-collision-detection [import]uid: 69841 topic_id: 32177 reply_id: 128245[/import]

for i=1,#platano do
table.remove( platano[i] )
end

Prueba por estos caminos, ahora no ando muy seguro que sea así. Cuando llegue a casa te lo puedo mirar.

Aunque creo que la manera que tienes de plantearlo esta mal. Podrías decir exactamente que quieres que hagan los platanos y como se tienen que formar? Por que que salgan 25 platanos así a lo bestia me parece un poco bruto.
[import]uid: 69841 topic_id: 32177 reply_id: 128166[/import]

Haber mi idea es que creo por ejemplo 25 platanos. si los creo en variables independientes no tengo problema y se hacerlo pero es muchisimo codigo porque por si alguna vez fuesen mas necesito saber hacerlo mediante un for e ingresarlos dentro de una tabla.

Entonces mi idea es crear una tabla vacia y mediante un for voy ingresando las variables con sus imagenes y demas atributos en las posiciones de la tabla.

local platanos = {}

for i = 1 , 25 do
platanos[i] = display.newImage(“platano.png”);
end

Ahora mediante un timer les voy dando fisica para que vallan callendo del cielo y que cuando toquen un sitio en concreto como podia ser una cesta se valla borrando el platano que la toque.

i = 1
function darfisica()
physics.addBody( platanos[i], { density = 3.0, friction = 0.5, bounce = 0.3 });
platanos[i]:addEventListener(“touch”, borrarPlatano)
i = i + 1
end
timer.performWithDelay(1000, darfisica, 25)

Necesito saber como borrar justo el platano que sea tocado, al ir llamando el timer cada segundo el i se va sumando y no me borra ese.

function borrarPlatano()
platanos[i].alpha = 0;
end
Haber si me puedes hechar una mano que llevo varios dias dandole vueltas y no consiguo hacerlo… gracias!!!
Un saludo

[import]uid: 153101 topic_id: 32177 reply_id: 128222[/import]

Para lo que primero planteabas te sobra con esto.

local physics = require ("physics")  
physics.start()  
  
local platano = {}  
  
for i=1,25 do  
 platano[i] = display.newImage( "platano.png")  
 physics.addBody (platano[i], {bounce = 0, density = 1.0})  
  
end  
  
local function onTouch( event )  
  
 local t = event.target  
  
 t:removeSelf()  
  
end  
  
for i=1,25 do  
platano[i]:addEventListener("touch",onTouch)  
end  

Para lo de las colisiones, tendrás que mirarte

http://developer.coronalabs.com/content/game-edition-collision-detection [import]uid: 69841 topic_id: 32177 reply_id: 128245[/import]

Muchas gracias, me ha ayudado mucho en tu cosigo era cambiar el listener por collision, y dentro de la funcion poner el event.phase == “began” y event.phase == “ended” y ya funciono.

Como haceis para por el codigo asi de esa manera que tu lo has puesto?

Es que soy novato… jajajaja.

Un saludo!!! [import]uid: 153101 topic_id: 32177 reply_id: 128390[/import]

De nada, un placer, estamos para ayudarnos. Para lo del código útiliza las etiquetas en html como te dicen más abajo.
[import]uid: 69841 topic_id: 32177 reply_id: 128394[/import]

Muchas gracias, me ha ayudado mucho en tu cosigo era cambiar el listener por collision, y dentro de la funcion poner el event.phase == “began” y event.phase == “ended” y ya funciono.

Como haceis para por el codigo asi de esa manera que tu lo has puesto?

Es que soy novato… jajajaja.

Un saludo!!! [import]uid: 153101 topic_id: 32177 reply_id: 128390[/import]

De nada, un placer, estamos para ayudarnos. Para lo del código útiliza las etiquetas en html como te dicen más abajo.
[import]uid: 69841 topic_id: 32177 reply_id: 128394[/import]