Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andreeh15

Movimentando eixo X e Y ao mesmo tempo

Recommended Posts

Tenho um personagem em meu jogo e fiz o movimento básico dele no ActionScript3, mas quero que ele movimente-se também nas diagonais, ou seja, usando duas teclas ao mesmo tempo.

 

Meu código:

 


stage.addEventListener(KeyboardEvent.KEY_DOWN, moverJogadorVermelho);

function moverJogadorVermelho(e:KeyboardEvent):void{

switch(e.keyCode)
{
	case 39:
		JogadorVermelho.x += 10;
	break;
}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem uma forma. sem bugs e nada.

 

Primeiro crie 4 variaveis do tipo Boolean

 

var key_UP:Boolean =   ;
var key_DOWN:Boolean =   ;
var key_LEFT:Boolean =   ;
var key_RIGHT:Boolean =   ;

 

e os eventos

stage.addEventListener(KeyboardEvent.KEY_DOWN, kdown);
stage.addEventListener(KeyboardEvent.KEY_UP, kup);
stage.addEventListener(Event.ENTER_FRAME , update);

 

Vai funcionar da seguinte forma:

 

Toda vez que uma das 4 teclas estiverem apertadas vai estar true. Se soltar vai para false.

 

 

 

function kdown(e:KeyboardEvent):void{
switch(e.keyCode){
case 38: //up
key_UP = true;
break ;
case 40: //down
key_DOWN = true;
break ;
case 37: //left
key_LEFT = true;
break ;
case 39: //right
 key_RIGHT = true;
 break ;

}
}

function kup(e:KeyboardEvent):void{
switch(e.keyCode){
case 38: //up
key_UP = false;
break ;
case 40: //down
key_DOWN = false;
break ;
case 37: //left
 key_LEFT = false;
 break ;
case 39: //right
  key_RIGHT = false;
  break ;

}
}

 

Agora o resto é com enter frame

 

function update(e:Event):void{
if(key_UP){
JogadorVermelho.y -= 5;
}
if(key_DOWN){
JogadorVermelho.y += 5;
}
if(key_LEFT){
JogadorVermelho.x -= 5;
}
if(key_RIGHT){
JogadorVermelho.y -= 5;
}

}

 

Falta os imports

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.