Comunidad de diseño web y desarrollo en internet online

problema con duplicatemovieclip

Citar            
MensajeEscrito el 25 Sep 2008 10:13 pm
Hola... estoy haciendo un juego, similar al frogger... en el cual hay autos que están avanzando constantemente... he estado todo el día buscando en foros para tener sólo 1 mc del auto y que se vaya duplicando con duplicatemovieclip... pero se me ha complicado bastante... el código del auto es el siguiente:

Código :

onClipEvent (load) {
   //posiciona el auto
   this._x = -34.6;
   this._y = 525;
   //randomiza el auto
   this.gotoAndStop(random(5)+1);

}
onClipEvent (enterFrame) {
   trace(_global.conteo);
   _global.conteo-=1;
   if (this.hitTest(_root.frogger)) {
      //si te choca sucede...
      _global.vidas-=1;
      _root.gotoAndStop(3);
   }

   if (this._x>=520) {
      //si llega al final de la pantalla que vuelva al principio y con otra imagen
      this._x = -34.6;
      this.gotoAndStop(random(5)+1);
      
   } else {
      this._x += 7;
   }
}


Hay muchos tutoriales de cómo ocupar el duplicatemovieclip... pero se me borra el auto a medida que se van creando otros... y al ocupar 'getNextHighestDepth()' se duplica hasta el infinito haciendo que se me cuelgue flash...

alguna ayuda?

Por vito

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2008 11:06 am
Entonces el problema está en el loop que usas, no en el duplicateMovieClip (por cierto, considera usar attachMovie)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Sep 2008 01:57 pm

solisarg escribió:

Entonces el problema está en el loop que usas, no en el duplicateMovieClip (por cierto, considera usar attachMovie)

Jorge


qué loop? disculpa, pero estoy medio mareado con estos autos...

Por vito

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2008 02:03 pm
y al ocupar 'getNextHighestDepth()' se duplica hasta el infinito haciendo que se me cuelgue flash...


Si se duplica al infinito, quiere decir que un comando se repite infinitas veces, lo que se suele denominar loop (sin fin)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Sep 2008 03:32 pm
he estado haciendo unas pruebas con attachMovie, pero no me ha resultado bien...

this.attachMovie("autito", "circle2_mc", this.getNextHighestDepth(), _y=400);

con ese código lo que hace es "mover" mi MC a X lugar... y yo necesito 5 mc duplicados...



tienes algún ejemplo con el que me pueda guiar?

Por vito

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2008 03:35 pm
Debes estar sobreescribiendo los niveles, además que usas mal el objeto de inicialización. Que pasa si pones hardcoded esto:


this.attachMovie("autito", "autito2",500, {_y=350});
this.attachMovie("autito", "autito3", 501, {_y=400});

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Sep 2008 03:52 pm
Me arroja el siguiente error:

**Error** Scene=Scene 1, layer=autos, frame=1:Line 7: ':' expected
this.attachMovie("autito", "autito2",500, {_y=350});

**Error** Scene=Scene 1, layer=autos, frame=1:Line 8: ':' expected
this.attachMovie("autito", "autito3", 501, {_y=400});

--

Las llaves que van en: ( {_y=350} ) son el problema... si le saco las llaves todo funciona bien, pero me tira sólo 1 auto... en los livedocs de internet y la ayuda de mi flash también están escritos de la misma manera... y estoy ocupando flash 8...

Por vito

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2008 03:53 pm
Sorry, es:

this.attachMovie("autito", "autito2",500, {_y:350});
this.attachMovie("autito", "autito3", 501, {_y:400});

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Sep 2008 03:58 pm
OHhh!!!! por fin estoy viendo resultados!! mi problema es q estaba poniendo el código en el movieclip del auto que tenía en el stage... entonces se me reiniciaba y no me funcionaba, pero ahora lo puse en el root y claro que me funciona... muchas gracias!!


Y lo último... me podrías orientar un poco en el cómo, ahora que ya tengo en pantalla estos mc's, les pongo código? se debería hacer en el root?

Por vito

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2008 04:08 pm
Para ponerlo en _root desde cualquier lado:

_root.attachMovie( ... )

Dale vueltas y tiempo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Sep 2008 07:47 pm
me puedes dar algún ejemplo del uso de function?

sé lo que hacen, y es justo lo que necesito... pero todavía me falta afinar detalles...

function auto_anda(autitox) {
if (_root.autitox._x>=520) {
//si llega al final de la pantalla que vuelva al principio y con otra imagen
_root.autitox._x = -34.6;
_root.autitox.gotoAndStop(random(5)+1);
} else {
_root.autitox._x += 7;
}
}

quiero que "autitox" sea el valor que yo vaya cambiando cada vez q llame a la función... pero como llamo a la función?


muchas gracias!!

Por vito

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2008 08:09 pm
En este caso parece que a la función le pasas una instancia sobre la que chequea la posición, pero dado que es una instancia fija en el code, no tiene sentido el argumento o está mal el code
Suponiendo que le pasara como argumento algún clip que esta en _root sería

Código ActionScript :

function auto_anda(autitox) {
     if (_root[autitox]._x>=520) {
    //si llega al final de la pantalla que vuelva al principio y con otra imagen
     _root[autitox]_x = -34.6;
     _root[autitox].gotoAndStop(random(5)+1);
   } else {
     _root[autitox]_x += 7;
  }
} 
auto_anda(nombre_de_instancia_de_un_auto)


Igual la tienes que llamar en un onEnterFrame si los autos se mueven constantemente .... si no tienes mucha idea de programación, hacer un juego es bastante difícil. Empieza simple: un solo auto que avanza con el teclado y choca con obstáculos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.