Foros del Web » Creando para Internet » Flash y Actionscript »

Eliminar objetos del escenario

Estas en el tema de Eliminar objetos del escenario en el foro de Flash y Actionscript en Foros del Web. Buenas, Estoy haciendo un juego en el cual aparecen personajes en el escenario y uno tiene que arrastrarlos a un cajón. El problema que tengo ...
  #1 (permalink)  
Antiguo 29/07/2012, 07:57
DmD
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires, Argentina
Mensajes: 73
Antigüedad: 16 años, 2 meses
Puntos: 1
Eliminar objetos del escenario

Buenas,
Estoy haciendo un juego en el cual aparecen personajes en el escenario y uno tiene que arrastrarlos a un cajón. El problema que tengo es que cuando quiero que pase al nivel 2, no puedo borrar los personajes que ya estan en el escenario. Había pensado que haciendo un gotoAndStop a otro frame iban a desaparecer pero no, siguen estando igual.

Tengo un timer, y cada vez que hace pasada ejecuta el siguiente código. Intenté borrarlos con removeChild(pj[k]);pero no funciona, borra 1 nomás y no se cómo ver los que están.

Código HTML:
pj[k] = new cato();
		pj[k].x = Math.random()*(stage.stageWidth-pj[k].width);
		pj[k].y = Math.random()*(stage.stageHeight-pj[k].height);
		mov = Math.random()*8+1;
		pj[k].gotoAndPlay(mov);
		addChild(pj[k]);
Alguna idea?.

Gracias.
Daniela.

Última edición por DmD; 29/07/2012 a las 08:57
  #2 (permalink)  
Antiguo 02/08/2012, 01:46
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Eliminar objetos del escenario

Daniela, veo que tienes un poco de descontrol en tu juego. Te aconsejo estructurarlo todo bien para que la cosa sea más sencilla.

En tu caso, veo que todos tus personajes son de la misma clase, y lo que los diferencia es el frame en el que se encuentran.

Bien, la idea principal es que debes meter todos tus personajes en un sprite. Los sprites no sé si los conoces pero son como contenedores invisibles donde tu puedes ir poniendo un tipo de objeto; de esa manera luego te será mucho más fácil manejarlos al encontrarse todos "juntos" y no "sueltos de cualquier manera"

Para meter los personajes en el sprite, lo único que tienes que hacer es crearlo al principio de tu código.

Código as3:
Ver original
  1. var personajesSprite:Sprite = new Sprite();
  2. addChild(personajesSprite);

Ya está, solo tienes que acordarte de que tienes que añadirlo al escenario con addChild.
Ahora lo único que tienes que hacer es cambiar tu código un poquito.
Cuando añadas un personaje nuevo, en vez de:

addChild(pj);

deberías poner:

personajesSprite.addChild(pj);

De esa manera en vez de añadirlo al escenario lo añade directamente al sprite.
Ahora, cuando quieras pasar de nivel, puedes directamente borrar ese sprite:

removeChild(personajesSprite);

y se borrará todo lo que tenga dentro. Para el siguiente nivel puedes crear uno nuevo y volver a empezar todo el proceso.

Lo de mandarlos a un frame invisible es un parche, jeje, pero no es algo bueno.

Espero que te sirva esta idea, si no te quedó algo claro preguntame o busca info sobre sprites en google.

Gonzalo.

Etiquetas: as3, juego, objeto-array
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:16.