Jump to content

Recommended Posts

Posted

Então basta veres qual a posição da arma da nave. Depois crias um laser a sair a partir dessa localização. Em Flash dá para criar bitmaps ou algo do género.

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Posted

Vamos por partes...

Primeira fase disparar objectos a partir do centro da tua nave...

saber quantos tiros disparou.

import mx.transitions.Tween;
import mx.transitions.easing.*;

var vSpeed:Number = 10; //Velocidade do tiro
var numTiros:Number = 0;//Numero de tiros disparados

//Criar o objecto NAVE
createEmptyMovieClip("mcNave",this.getNextHighestDepth());
mcNave.beginFill(0x000000, 100);
mcNave.lineTo(5, 0);
mcNave.lineTo(5, 5);
mcNave.lineTo(0, 5);
mcNave.lineTo(0, 0);
mcNave.endFill();
//Definir o tamanho da nave
mcNave._width = 100;
mcNave._height = 30;

//Posicionar a nave
mcNave._x = (Stage.width/2)- (mcNave._width/2)
mcNave._y = (Stage.height - (mcNave._height/2))

//Criar o objecto que será o tiro
createEmptyMovieClip("mcTiro",this.getNextHighestDepth());
mcTiro.beginFill(0x000000, 100);
mcTiro.lineTo(5, 0);
mcTiro.lineTo(5, 5);
mcTiro.lineTo(0, 5);
mcTiro.lineTo(0, 0);
mcTiro.endFill();

//Posicionar o tiro
mcTiro._x = -20;
mcTiro._y = -40;

this.onEnterFrame = function(){
   //Função será sempre executada frame by frame

   if (Key.isDown(Key.LEFT)) {
        //Quando pressionada a tecla <- (seta Esquerda) move a nave para a esquerda 
   	 mcNave._x -= vSpeed
    }

if (Key.isDown(Key.RIGHT)) {
        //Quando pressionada a tecla -> (seta Direita) move a nave para a direita
   	 mcNave._x += vSpeed
    }


if (Key.isDown(Key.SPACE)) {
               //Quando pressionada a tecla SPACE dispara tiros  

	//Incrementar o número de tiros disparados
                numTiros++;

	//Criar o objecto tiro
   	duplicateMovieClip (mcTiro, "mcTiros" + numTiros, numTiros);
	//Captar o objecto para a variável mcTiro
	mcTiro = eval("mcTiros" + numTiros);
	//Posicionar o tiro no centro superior da nave
	mcTiro._x = mcNave._x + (mcNave._width/2);
	mcTiro._y = mcNave._y;

       //Animação que levará o tiro desde a sua posição inicial até ao cimo do stage (ficando invisível)
	goToUp = new Tween(mcTiro, "_y",None.easeOut,mcTiro._y,(0-mcTiro._height),1,true);

    }

}
  • 3 weeks later...
Posted

hm ora podes usar um timer deste genero:


var tm:Timer = new Timer(1000,3);
tm.addEventListener(TimerEvent.TIMER_COMPLETE,funcaoPretendida);

function funcaoPretendida(e:Event):void{
//fazeres o que queres aqui dentro..
}

assim podes controlar a execuçao de algo apartir do timer 😛

Posted

Só um reparo na defenição da variável timer pois com o parâmetro 3 à frente dos milissegundos vai fazer um loop de 3x e depois para. Assim sem o parâmetro é tempo sempre contínuo.

var tm:Timer = new Timer(1000);
tm.addEventListener(TimerEvent.TIMER,funcaoPretendida);

Se precisares de "matar" o tempo podes fazer da seguinte forma

tm.stop();
tm.removeEventListener(TimerEvent.TIMER, posicionaObjecto);
Posted

Só um reparo na defenição da variável timer pois com o parâmetro 3 à frente dos milissegundos vai fazer um loop de 3x e depois para. Assim sem o parâmetro é tempo sempre contínuo.

Exactamente, usei o 3 meramente a titulo de exemplo, my bad, por vezes penso que as pessoas quando vao usar uma funçao pelo menos leem a sua documentaçao mas nem sempre acontece e se afinal estou aqui para tentar ajudar podia ter dito isso... :wallbash:

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.