VCastilho 0 Denunciar post Postado Dezembro 6, 2014 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 ajudemOBS: 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
DesenvolvedorRoger 50 Denunciar post Postado Dezembro 26, 2014 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