Comunidad de diseño web y desarrollo en internet online

ayuda con un juego de nave

Citar            
MensajeEscrito el 23 Dic 2009 08:39 am
hola, soy nuevo en el foro espero no moleste, vi un tema similar, pero no lo entendi del todo :oops:
estoy tratando de hacer un juego de naves sencillo, el objetivo es evitar que algunos meteoritos destruyan un planeta, y casi lo logro pero al subirlo a mi pagina de prueba ( darkneme.es.tl ) ocurre un error, al hacer disparos consecutibos con la barra espaciadora el codigo falla, y los meteoros no de destruyen, creo que he llegado bastante cerca como para descartarlo, por eso postee aki, yo creo que el error kisa este en la forma de llamar a los MC bala

_level0.attachMovie("bala","bala_",_root.getNextHighestDepth(),{_x:_root.nav._x , _y:_root.nav._y});

veran el codigo original era diferente, ya que cada bala agregada tenia una nombre diferente ya que agregava un ""bala_"+_root.getNextHighestDepth()" en el nuevo nombre de la instancia, pero al hacer eso se me complicaba aser la colision ya que cada bala tenia un nombre diferente, los meteoros tenian añadido un codigo que solo reconocen el mismo nombre de intancia, por que? sencillamente porque no se como hacerlo para que reconosca casa cada nuevo nombre de insrancia ya sea con get nexr highest depth o con un contador que era la otra forma de hacerlo _level0.attachMovie("bala","bala_"+contador,_root.getNextHighestDepth(),.... ahora como si hacia el attach directamente al precionar la barra espaciadora resultaba en una cantidad infinita de disparos sin espacio entre ellos, el codigo se lo e agregado al final de una MC asi al percionar la barra espaciadora se correra esa animacion y al funalisarse, un disparo se ayade, el cual tiene el codigo de desplazamiento

onEnterFrame = function() {
this._x *= 1.1;
if (this._x > 750) {
this.removeMovieClip();
}
}

kisa sea un poko desordenado pero aun me falta mucho por aprender, si alguien me podria orientar estaria muy agradecido, pueden apreciar el error aki http://darkneme.es.tl/Home.htm

Por darkneme

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Dic 2009 02:30 pm
Tu mismo te estas respondiendo, si le asignas el mismo nombre tendrás problema. Hazlo controlado, o sea, usa un contador para que no puedas disparar luego de hacerlo por no se, 300 milisegundos por ejemplo. De esta forma no se te pegan los disparos, pero no uses el mismo clip ya que es una manera muy rara de lograr el efecto.

Algo que tabién te ayudará, es usar un setInteval y no unEnterFrame, es más eficiente.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 24 Dic 2009 06:01 am
hola Hernán, gracias por responder, me gustaria que me dieras un ejemplo sencillo de como agregar los 300 milisegundos a la MC, de antemano muchas gracias por tu tiempo.

Atte:
Darkneme

Por darkneme

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Dic 2009 07:19 am
Pues es solo un contador

Código ActionScript :

var shoot_avaiable:Boolean = true;
var delay_time:Number = 300;
function delayShoot():Void{
    shoot_avaiable = true;
    clearInterval(id);
}
function doShoot():Void{
   if(shoot_avaiable){
      shoot_avaiable = false;
      // Código del disparo
      id = setInterval(delayShoot,delay_time);
}  

btn_shoot.onRelease = doShoot


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox

 

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