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.
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); } }; } };
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.
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); } }; } };