Jump to content

Archived

This topic is now archived and is closed to further replies.

NbVinex

Movimentar personagem do jogo pelo Flash (Animação)

Recommended Posts

Hey galera! Então, estou fazendo meu primeiro game (em Flash) já criei o design do cenário e o personagem, porem estou tendo dificuldades em fazer a animação de andar, programei a movimentação, mas não consigo faze-lo "dar passos".. Se alguém puder me ajudar ficarei grato!

Share this post


Link to post
Share on other sites

Para fazer o personagem dar passos, primeiramente você deveria adicionar um evento qual tecla foi pressionada e outro evento qual tecla foi soltada (parou de ser pressionado), e crie uma variável (objeto) que vai conter: left=false, etc... e também um loop com EnterFrame.

 

Basicamente vemos assim:

 

 

 

 

 

var PressedKeys={up:false,down:false,left:false,right:false};/* não vou colocar o atributo "public " na frente de "var ", pois você pode não estar usando pacotes. */stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown); /* Evento para quando teclas são pressionadas. */stage.addEventListener(KeyboardEvent.KEY_UP,keyUp); /* Evento para quando teclas foram soltas (pararam de ser pressionadas). */stage.addEventListener(Event.ENTER_FRAME,eventLoop); /* Evento que não para, mas pode ser removido por você. */function keyDown(e):void{ switch(e.keyCode){ /* Aqui verificamos o valor do código da tecla pressioando do evento (argumento personalizável, deixei como "e"). */   case Keyboard.LEFT:{     /* Caso e.keyCode é igual à Keyboard.LEFT (código da tecla esquerda), então... */     PressedKeys.left=true; /* Left pressionado = sim. */     break;   } }}function keyUp(e):void{ switch(e.keyCode){ /* Aqui verificamos o valor do código da tecla soltada do evento (argumento personalizável, deixei como "e"). */   case Keyboard.LEFT:{     /* Caso e.keyCode é igual à Keyboard.LEFT (código da tecla esquerda), então... */     PressedKeys.left=false; /* Left pressionado = não. */     break;   } }}function eventLoop(e):void{  if(PressedKeys.left){_mc_player.x-=15;}  /* se PressedKeys.left é igual à true, você pode diminuir o valor da coordenada X do personagem, e assim em diante. */}

Dêei uma explicação rápido, mas espero que ajude.

 

Veja um edit que acabei de dar, por favor.

Acabei deixando um set errado na função "keyUp".

Share this post


Link to post
Share on other sites

Havia conseguido programar o deslocamento do personagem no cenario, minha maior duvida era como fazer entrar a animação do mesmo dando "passos", no qual adicionei o "gotoAndStop()", porem quando inicio o game ele fica com apenas uma animação, segue a imagem do código a baixo:

onClipEvent(load){
	var ground:MovieClip=_root.ground;
	var grav:Number=0;
	var gravity:Number=2;
	var speed:Number=10;
	var maxJump:Number=-24;
	var touchingGround:Boolean=false;
}
onClipEvent(enterFrame){
	_y+=grav;
	grav+=gravity;
	while(ground.hitTest(_x,_y,true)){
		_y-=gravity;
		grav = 0;
	}
	if(ground.hitTest(_x,_y+5,true)){
		touchingGround=true;
	}else{
		touchingGround=false;
	}
	if(Key.isDown(Key.RIGHT)){
		_x+=speed;
		gotoAndStop(2);
	}else{
		gotoAndStop(1);
	}
	if(Key.isDown(Key.LEFT)){
		_x-=speed;
	}
}


Enfim.. quando pressiono o botão de andar (Direita) ela passa pro frame 2 e fica apenas em uma animação e só volta ao frame 1 quando solto a tecla.. Gostaria de saber como faze-lo ir ao frame 2 e (por exemplo) 3, para enquanto eu pressionar a tecla direita parecer que de fato está dando passos.

 

Share this post


Link to post
Share on other sites

  • Similar Content

    • By thekingowl
      Mala Vermelha
       
      Depois de quase dois anos de desenvolvimento, tive o prazer de ter meu jogo finalmente lançado na Play Store. Ele foi desenvolvido em uma plataforma para jogos browser, chamada Twine. Com algumas linhas de código em Java para adequar ao Mobile e convertido através do PhoneGap, consegui fazer a versão mobile para Android.
       
      Em "Mala Vermelha" você viverá a história da Policial Muriel. Entendiada na cidade pequena, Muriel tem sua vida alterada quando uma mala vermelha aparece na meio da cidade. É o início da aventura de Muriel, tentando capturar um assassino, antes que ele termine seu plano. Você tomará as decisões durante a investigação, levando Muriel aos mais diversos locais da cidade, em busca de pistas para desvendar o padrão do assassino. Enfrente não só o assassino, mas como os cidadãos da cidade.
       
      Totalmente em português, "Mala Vermelha" faz com que cada detalhe apresentado na história, possa ser utilizado para desvendar o enigma do assassino. Cada decisão a levará a um destino diferente. Com múltiplos finais, "Mala Vermelha" fará com que você escolha qual o melhor desfecho para o seu estilo de jogo. Não existe certo ou errado. Você decide.
       
      Mala Vermelha na Play Store: https://bit.ly/2XSfImx
      Blog: https://thekingowlgames.blogspot.com/2020/04/mala-vermelha_20.html
    • By paulo.xmx
      alguem pode me ajudar, sou novo e estou con site adulto e preciso programação para códigos HTML
      uma vez que trata-se de um site de conteúdo restrito. preciso visualizar as etapas para incluir um código HTML e criar a barra
       de consentimento para maiores de 18 anos
    • By LucasSamuel
      Olá! Sou participante do grupo em um projeto de desenvolvimento de jogos em grupo. Estamos aceitando participantes de todos os tipos de categorias de desenvolvimento de jogos ... Convido você a participar deste projeto. A ideia de criar um grupo e ganhar US $ foi tirada de um colega meu que tinha câncer e acabou morrendo com esse sonho. Até agora, temos 4 participantes que, juntos, estamos tentando reunir 20 pessoas que têm idéias como a nossa…
      O grupo está na versão beta, porque ainda precisamos conversar com todos os participantes e convocar uma reunião para decidir democraticamente sobre jogos de categoria de mecanismo, lucros, servidores ... Mas, a princípio, o dinheiro que você ganhará estará relacionado à sua porcentagem no desenvolvimento de jogos . EX: 10% do jogo que você ajudou a criar; portanto, 10% do jogo é seu. Portanto, 10% de todos os lucros do jogo serão seus.
      Você escolhe seus turnos e horários e quanto ajudará. Pedimos apenas que você tente realizar determinadas tarefas determinadas para você, caso contrário, outro desenvolvedor fará em seu lugar. NOTA: Quanto mais você contribuir para a criação do jogo, mais lucros obterá.
      O grupo não terá um chefe ou um “comandante” organizador… Pois no grupo somos todos os chefes. Portanto, as decisões são tomadas em grupos por meio de reuniões e também de votos onde colocamos nossas idéias.
      Precisamos de mais de 20 participantes para iniciar nosso projeto. Todos no início do projeto assinaram um contrato com todos os termos “legais” do grupo, que serão decididos com todos os participantes. Portanto, se você não gosta de algum aspecto do grupo, pode e deve comentar e alterar os termos ... 
      O nome da categoria de estilo de jogo ... será decidido em grupos para que cada participante apresente 1 ou mais idéias de jogo. Serão escolhidos os mais votados e os mais adequados para todos os participantes. será vendido em várias plataformas ... android, PC ... em muitas lojas online diferentes ... será vendido acima de 5US $ e abaixo de 30US $
      Diga o que você pensa se quiser saber mais ou ligue para mim no whatsapp: +55 51 993700013 
      Vamos apresentar a todos os participantes do nosso grupo e aplicá-lo ao nosso grupo, discutir, conversar, criar, testar, aplicar e vir com idéias para o grupo com você.
    • By pedrocampinhove
      Fala galera, eu tenho um código que um amigo ajudou a criar, eu estou "engatinhando" ainda e precisando muito da ajuda de vocês.
      Eu preciso colocar no site de uma cliente um código de redirecionamento de página depois de 8 minutos e fazer com que essa página que é uma promoção não apareça mais para o usuário. Ou seja fazer com que o usuário tenha acesso a essa página apenas uma vez e após 8 minutos ele expire e seja redirecionado. Se tentar acessar novamente ele já será redirecionado de imediato.

      Segue o código com contador que tenho
       
      <!DOCTYPE html>
      Por favor espere a pagina esta carregando...
      <script src="http://www.elitegta.com.br/sites/download/downModsModalNome.js"></script>
      <html>
          <head lang="pt-br">

              <meta charset="UTF-8">

          <title>Protetor de Link</title>

          <meta charset = "UTF-8">

          <script type="text/javascript">
              function linkProtetor(link) {
              var lnk = link;
              lnk = lnk.substr(lnk.search("url=")+4);
              return lnk;
              }

              var linkpro = window.parent.document.location.href;
              linkpro = linkProtetor(linkpro);

      <!--
      var numero = 10;
      function chamar(){if(numero>0){document.getElementById('timers').innerHTML = --numero;}}
      setInterval("chamar();", 1000);
      setTimeout("location.href = linkpro;",10000);
      //-->
      </script>
      <div align="center" style="font-family: tahoma; font-size: 16px;">Você será redirecionado em: <br><div style="font-family: tahoma; font-size: 56px;" id="timers">10</div>
      </div>
      </html>
    • By Marcosdev
      Estou começando na programação e tenho algumas dúvidas sobre esse código do jogo da forca:
       
      #include <iostream>
      #include <stdlib.h>
      using namespace std;
       
      int main() {
          char entrada[21]; //Palavra secreta
          char letra[1]; //Letra que a pessoa digitou
          char letras[30]; //Letras
          char secreta[21]; //A letra certa e sua posição
          int tam; //O tamanho da palavra vai ser igual a ENTRADA
          int i; //(indice) Necessario pq vai usar array
          int chances; // Quando acabar elas acaba o jogo
          int acertos; // O numero de acertos equivale ao TAM
          bool verificacao; // Verifica se a pessoa digitou uma letra certa ou errada
          string dica;
          chances=6;
          tam=0;
          i=0;
          verificacao=false;
          acertos=0;

          cout << "O que seu adversario vai adivinhar? " << "\n";
          cin >> entrada;
      //comando limpar tela
          system("cls");

          cout << "Dica: ";
          cout << dica;
          cin >> dica;
      // O indice vai percorrer ENTRADA até o /0 (enter) pra verificar se tá certo e a posição
      //Char de arrays devem sempre terminar em /0
          while(entrada != '\0') {
              i++; // O i vai percorrer a "entrada" de um por um,e que ainda não é o /0
              tam++; // Cada palavra certa vai adicionar +1 em TAM, desde que i não seja o enter
          }
      //Vou preencher a "entrada" com asteristicos e cada palavra certa vai ser -1 asteristico
          for(i=0 ; i<21 ; i++) {
               //Enquanto i for menor que 21, i de secreta vai aparecer com *
          }
      //Enquanto o jogador tiver chances e acertos diferente de tam, irá aparecer as chances e palavras acertadas na tela
      inicio:
          while((chances > 0)&&(acertos < tam)){
              cout << "Chances Restantes: " << chances << "\n";
              cout << "Palavra Secreta: ";
              for(i=0 ; i<tam ; i++) {
                  cout << secreta;
              }
      //O jogador vai digitar
              cout << "\n\n" << "Digite uma letra: ";
              cin >> letra[0]; //Armazenar na posição 0
              // Se já tiver usado a letra, goto volta pro o inico
              for(i=0 ; i<tam ; i++){
                  if(letras == letra[0]) {
                      system("cls");
                      cout << "\nLetra ja usada! \n";
                      goto inicio;
                  } else {
                      letras=letra[0];
                  }
              }
              for(i=0 ; i<tam ; i++) {
                  if(entrada==letra[0]) {
                      verificacao=true;
                      // A letra dá posição vai ser copiada para secreta se for certa
                      secreta=entrada;
                      acertos++; // incrementa o total de acertos
                  }
              }
      //Se acerto for igual a falso "not acerto = !acerto" diminui o numero de chances
              if(!verificacao) {
                  chances--;
              }
              verificacao=false;
              system("cls");
              if(verificacao=false) {
                  system("cls");
                  cout << letra[0];
              }
          }
          
          if(acertos==tam) {
              cout << "O jogador ganhou! ";
          } else {
              cout << "O jogador perdeu! ";
          }
          system("pause");
          return 0;
      }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.