Ir para conteúdo

Arquivado

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

VCastilho

Como fasso para movimentar 2 personagens

Recommended Posts

Bom, estou criando um jogo básico para o meu curso, e estou tentando fazer um jogo de dois piratas que se batam, porem, segui vários tutoriais na internet mas só consigo mexer um deles, por mais que eu tente, ou procure na internet, n consigo fazer os 2 se mexerem e nem colocar a colisão entre eles.... irei postar o código logo abaixo e peço para que me corrigem no que errei eme ajude a por oque esta faltando por favor

import flash.events.KeyboardEvent;


var esquerda:Boolean = false;
var direita:Boolean = false;
var cima:Boolean = false;
var baixo:Boolean = false;

var velocidadeX:int = 20;
var velocidadeY:int = 20;


stage.addEventListener(KeyboardEvent.KEY_DOWN, TeclaPressionadaplayer1);
stage.addEventListener(KeyboardEvent.KEY_UP, TeclaSoltaplayer1);
stage.addEventListener(KeyboardEvent.KEY_DOWN, TeclaPressionadaplayer2);
stage.addEventListener(KeyboardEvent.KEY_UP, TeclaSoltaplayer2);

stage.addEventListener(Event.ENTER_FRAME, Movimentoplayer1);
stage.addEventListener(Event.ENTER_FRAME, Movimentoplayer2);

function Movimentoplayer1(e:Event):void{
								 
	if(esquerda){
		
		player1.x -= velocidadeX;
		
	} else if(direita) {
		
		player1.x += velocidadeX;
		
	}else if(cima){
		
		player1.y -= velocidadeY;
		
	} else if(baixo){
		
		player1.y += velocidadeY;
							
	}
	
	
}
function TeclaPressionadaplayer1(e:KeyboardEvent):void{
	
  if(e.keyCode == Keyboard.LEFT){
	  
	  esquerda = true;
	 
	  
  } else if(e.keyCode == Keyboard.RIGHT){
	  
	  direita = true;
	 
	  
  } else if(e.keyCode == Keyboard.UP){
	  
	  cima = true;
	  
	  
  } else if(e.keyCode == Keyboard.DOWN){

       baixo = true;
	   

  }
  
}

function TeclaSoltaplayer1(e:KeyboardEvent):void{
	
  if(e.keyCode == Keyboard.LEFT){
	  
	  esquerda = false;
	  
  } else if(e.keyCode == Keyboard.RIGHT){
	  
	  direita = false;
	  
  } else if(e.keyCode == Keyboard.UP){
	  
	  cima = false;
	  
  } else if(e.keyCode == Keyboard.DOWN){

       baixo = false;
	   
  }
  
  function Movimentoplayer2(e:Event):void{
								 
	if(esquerda){
		
		player2.x -= velocidadeX;
		
	} else if(direita) {
		
		player2.x += velocidadeX;
		
	}else if(cima){
		
		player2.y -= velocidadeY;
		
	} else if(baixo){
		
		player2.y += velocidadeY;
	
						
	}

}
function TeclaPressionadaplayer2(e:KeyboardEvent):void{
	
  if(e.keyCode == Keyboard.A){
	  
	  esquerda = true;
	 
	  
  } else if(e.keyCode == Keyboard.D){
	  
	  direita = true;
	 
	  
  } else if(e.keyCode == Keyboard.W){
	  
	  cima = true;
	  
	  
  } else if(e.keyCode == Keyboard.S){

       baixo = true;
	   

  }
  
}

function TeclaSoltaplayer2(e:KeyboardEvent):void{
	
  if(e.keyCode == Keyboard.A){
	  
	  esquerda = false;
	  
  } else if(e.keyCode == Keyboard.D){
	  
	  direita = false;
	  
  } else if(e.keyCode == Keyboard.W){
	  
	  cima = false;
	  
  } else if(e.keyCode == Keyboard.S){

       baixo = false;
  }  
  
  
  }
  

enquanto deixo só as opções do player 1 ele se move normalmente, mas quando coloco a dos player 2, ambos n se movem, peco para que me ajudem

OBS: Desculpe o erro de digitação no titulo, não consigo arrumar agora rsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para começo, nenhuma dessas verificações irá funcionar: (e.keyCode == Keyboard.A)

 

keyCode retorna o número da tecla e não a letra correspondente... Sobre a colisão, como são dois personagens, você poderia testar as posições x e y de cada um... outra forma mais elegante seria usar hitTest

 

Ajuste isso e depois diga se chegou ao resultado desejado...

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.