Comunidad de diseño web y desarrollo en internet online

problema de sincronizacion entre bucles for

Citar            
MensajeEscrito el 16 Jul 2008 10:38 am
Esto puede parecer una pregunta avanzada o complicada pero la verdad que es algo bastante idiota, se trata solo sobre bucles for y setinterval.
Estoy haciendo un juego de disparos multijugador y resulta que se ve a los otros personajes moverse a una velocidad diferente a la real, esto esta causado por que los bucles que animan a los otros personajes , estan funcionando a una velocidad diferente a los bucles que animan al personaje que manejamos, no se que puede estar causando esa diferencia, por que el codigo que mueve a los otros personajes y al que manejamos es identico. (problema del server no es)
Los bucles for y setinterval que mueven a los otros personajes y los que mueven al personaje que manejamos tienen los mismos valores de repeticion y casi el mismo contenido dentro de ellos, (exepto por una cosa que aclaro mas abajo, que creo que es lo que causa el problema) exepto eso todos los valores son los mismos, entonces no se por que pasa esto.

Aqui les pongo una version simplificada con comentarios, del codigo que meve a los otros personajes:

Código :

setInterval(animar_los_otros_PJ, 10)  //se ejecuta el intervalo cada 10 milisegundos para que la animacion sea fluida

function animar_los_otros_PJ(){
   
   //Se toma el usuario desde un array que se llena en otra parte del codigo, con todos los usuarios 
   //que van entrando al juego
   for ( u = 0; u < usuarios.length; u++){
      
      id_usuario = usuarios[u]
      
      var mc:MovieClip
      
      //En otra prarte del codigo se crean movielcips con los otros PJ con nombres por ejemplo: "PJ_4"
      mc = contenedor["PJ_" + id_usuario]
      
      
      //este for es necesario por un tema de suavidad al caminar sobre terreno irregular
      for (var i = 0; i < 20; i++) {
         if (suelo.hitTest(mc._x, mc._y - 1)) {mc._y -= .5}
      }

         //Se activa la gravedad hacia abajo si no esta tocando el suelo
         if (tocando_el_suelo = false ){
         mc._y += fuerza_gravedad
         }
         
      updateAfterEvent()
// end del for del array de los usuarios
}

//end function animar_los_otros_PJ()
}


Obviamente la unica diferencia entre este codigo y el que mueve al personaje que manejamos, es el otro bucle for que maneja dinamicamente los movieclips con la cantidad X de usuarios que haya dentro del juego. (tercera linea)

Intente recrear este codigo simplificadolo en otro documento a parte y daba el mismo problema de sincronizacion, parece que es por ese bucle que maneja los usuarios que precisamente acelera mas de lo que deberia a la modificacion del valor _x de cada usuario. Osea que cae mas rapido y tambien camina mas rapido el otro personaje que el que manejamos. Eso no deberia pasar no?

mis preguntas son:

¿es por ese bucle que pasa esto o a lo mejor es otra cosa?
si es por ese bucle ¿como puedo manejar multiples mc de otra manera o bien compensar esta diferencia o cual seria la forma de solucionarlo?
ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa o me van a pegar un tiro , estoy programando para unos de la mafia y si no lo termino me van a matar!!!!!!!!
saludos

Por fermmm

Claber

122 de clabLevel



 

msie
Citar            
MensajeEscrito el 16 Jul 2008 11:28 am
corrijo la prueba que hize en un documento ahora funciona perfectirijillo, mierda puta no se que mierda pasa con mi puto codigo

Por fermmm

Claber

122 de clabLevel



 

msie

 

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