Comunidad de diseño web y desarrollo en internet online

Disparos en nave

Citar            
MensajeEscrito el 20 Jul 2009 11:32 pm
Acabo de hacer una nave, quiero hacer algo tipo space invaders, tengo lista la parte de controlar direcciones de la nave, pero nose como hacer los disparos. Es decir que cada vez que presione cierto botón, la coordenada y del movieclip (bala) aumentará, hasta llegar a su destino y chocar. Pero quiero poder disparar balas de forma seguida y no esperar a que esta colisione con el objeto.

Por Lain0x

12 de clabLevel



 

opera
Citar            
MensajeEscrito el 21 Jul 2009 12:39 am
te habai escrito un post arriba pero lo borre porque estaba mal, me averguenzo =/ ya lo cheque, necesitaba un enterFrame
contador = 0;
onEnterFrame = function () {
contador++;
if (Key.isDown(Key.SPACE)) {
_root.bala.duplicateMovieClip("disparo"+contador, contador);
_root["disparo"+contador]._y = nave._y;
_root["disparo"+contador]._x = nave._x+65;
_root["disparo"+contador].onEnterFrame = function() {
disp = this;
disp._x += 100;

if ((this)._y<30 || (this)._y>350) {
unloadMovie(this);
}
if ((this)._x>550 || (this)._x<1) {
unloadMovie(this);
}
};
}
};

Por el davo29

253 de clabLevel



Genero:Masculino  

Chihuahua :D!

msie8
Citar            
MensajeEscrito el 21 Jul 2009 01:28 am
Los this se refieren a la nave?

Por Lain0x

12 de clabLevel



 

opera
Citar            
MensajeEscrito el 21 Jul 2009 02:05 am
No me funcionó el código... pero estoy intentando crear uno ójala lo más simple posible.

Con este la bala sale disparada a gran velocidad... me gustaría saber de que forma podría disminuir la velocidad... estaba pensando que una sentencia for podría funcionar, aunque quizá siga con la misma velocidad.

this.onEnterFrame = function(){

if(Key.isDown(Key.UP))
{ this._y = this._y-390;


}
}

Por Lain0x

12 de clabLevel



 

opera
Citar            
MensajeEscrito el 21 Jul 2009 10:12 pm
disp._x += 100;//esta es la linea de velocidad, tu bala"disp" se mueve en x a 100pixeles cada enterframe, mhh n ose a cuanto sea pero es menos de 1 segundo
y quien sabe porque no te funciono, a menos que no tengaslos nombres de tus MCs bien, debes de tener un MC que se llame bala y uno que se llame nave
contador = 0;
onEnterFrame = function () {//cada enterframe "no se cuanto tiempo sea"
contador++;//contador se hace mas 1,2,3,4......
if (Key.isDown(Key.SPACE)) {//si preionas espacio
_root.bala.duplicateMovieClip("disparo"+contador, contador);//duplica a bala y llamala"disparo"+contador(contador cada enterframe es diferente 1,2,3,4...,en cambio con l oque empezaste la post era uno solo, sin una variable que haga mas duplicados por eso cuando presionabas tu tecla para disparar se te movia otra evz a el origen)
_root["disparo"+contador]._y = nave._y;//el y de tu bala es igual a el y de la nave
_root["disparo"+contador]._x = nave._x+65;//el x i gual al de la nave+65
_root["disparo"+contador].onEnterFrame = function() {//tu bala cada enterframe
disp = this;//disp es igual a _root["disparo"+contador] << tu bala esta linea n oes necesaria pero si no quieres estar poniendo _root["disparo"+contador] haz eso
disp._x += 100;//velocidad, 100 pixeles en x cada enterframe

if ((this)._y<30 || (this)._y>350) {//si _root["disparo"+contador] o disp es menor o mayor a esos Ys quita _root["disparo"+contador]. o disp
unloadMovie(this);
}
if ((this)._x>550 || (this)._x<1) {//igual aqui, pero en xs
unloadMovie(this);
}
};
}
};

Por el davo29

253 de clabLevel



Genero:Masculino  

Chihuahua :D!

msie8

 

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