Comunidad de diseño web y desarrollo en internet online

Atascado en el codigo de oleadas de mi juego.

Citar            
MensajeEscrito el 05 Mar 2015 07:21 pm
Buenas tardes.
Como bien dice el titulo, estoy atascado al crear la funcion de oleadas de enemigos de mi juego.
La funcion se llama Oleadas, la cual funciona si se le llama con un array que son los enemigos.
Por ejemplo, oleada1 = Array(1,1,1,1), llama 4 veces al enemigo de tipo 1.
La funcion funciona correctamente, ya que me llama al tipo de enemigo adecuado y el numero de veces correcto, pero me los llama todos a la vez. Por lo que aparecen todos casi juntos.
Lo que querria seria agregar un timing, que hiciera que aparecieran los enemigos cada 2 segundos por ejemplo pero no encuentro la manera. El codigo de la funcion mas o menos es el siguiente

Código ActionScript :

function Oleadas(oleada) {
   for (j=0; j<=oleada.length; j += 1) {
      if (j<oleada.length) {
         _root.attachMovie("Enem"+oleada[j], "Enem"+j, j, {_x:1000, _y:Math.ceil(random(435))+81});
      } else {
         _root.attachMovie("Enem"+oleada[j], "Enem"+j, j, {_x:1000, _y:Math.ceil(random(435))+81});
         oleadarealizada = true;
      }
   }
}

Gracias por su atencion :)

Por deirito

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Mar 2015 08:37 pm
Probablemente sea una tonteria, pero no caigo en la forma...

Por deirito

6 de clabLevel



 

safari
Citar            
MensajeEscrito el 05 Mar 2015 10:41 pm
Tienes que usar setInterval, suponiendo que tienes una funci[on llamada creaEnemigo() que instanciara solo un enemigo por vez, algo asi

Código ActionScript :

var cant = 5
var t = setInterval(function(scope){
     scope.cant--;
     scope.creaEnemigo();
     if(scope.cant==0) clearInterval(t)
}, 2000, this)


Uso una función anónima porque el típico error con el setInterval es crear muchos, no borrarlos y que se siga repitiendo como loco

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Mar 2015 05:10 pm
Muchas gracias! Me ha valido de mucho.
Pero ahora tengo otra duda:
Si por ejemplo quiero hacer una funcion en la que por ejemplo, se definen unos valores segun el tipo de enemigo.
Por ejemplo, Enem1, se le asigna fuerza1, vida1... el caso es que no se como hacer que se pueda llamar a una variable, como ["fuerza"+i] por ejemplo.
Se que los nombres de instancia si pueden ser llamados asi, pero no se como hacer eso mismo con los nombres de variable.
Gracias

Por deirito

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Mar 2015 07:39 pm
Para eso se usan clases. Estoy un poco olvidado de AS2, pero era algo asi

Código ActionScript :

class enemy1{
      private var fuerza:Number = 10;
      private var vidas:Number = 3;
     
      function enemy1(){
       }

      (....)
}


Puedes intentar crear variables dinamicamente, etc, pero en el contexto de un juego se hace rapidamente inmanejable. Considera tambien, ya que estas empezando, usar AS3 en vez de una version de hace 10 anos, la diferencia en performance es muy notoria

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.