Página 1 de 1

Como fazer combos?

Enviado: Sex Out 21, 2016 8:36 pm
por vagnerfacini
Boa noite galera, sou novo aqui no Fórum e estou junto com mais dois amigos desenvolvendo um projeto. Sou leigo em programação, mas estou enfrentando cada barreira e aprendendo conforme o meu projeto necessite. No meu projeto eu preciso do seguinte: Eu aperto "cima", "cima", "baixo" (por exemplo) e depois disso meu personagem executa uma magia. Não estou pedindo a programação em si, mas um caminho, um tutorial algum direcionamento que eu possa ler e criar essa programação, não tem problema se o tutorial for em inglês, conto com a colaboração de vocês e sempre ajudarei no que estiver ao meu alcance.

Re: Ajudem um iniciante

Enviado: Sex Out 21, 2016 8:44 pm
por Dust
você ta querendo fazer uma espécie de combinação tipo um hadouken?
você pode pode usar os alarms para ver se você apertou "up" 2 vezes rapidamente para executar o combo, ou criar uma variável tipo cima_x=0 se apertar pra cima a variável ganhara +1, então se você apertar up e a variável for igual ou maior que 1, seria executado o {combo}, também pode ser feito uma variável de tempo caso você queira que o combo seja executado rapidamente.

Re: Ajudem um iniciante

Enviado: Sex Out 21, 2016 10:10 pm
por Chuaschinai
É isso ai mesmo que o amigo Dust disse, utilizar alarms é a melhor maneira de fazer um combo. 

Re: Como fazer combos?

Enviado: Sáb Out 22, 2016 4:25 am
por gabrielsch
É possivel fazer isso registrando as ultimas teclas digitadas para ver se existe uma sequência que dispara o combo. No Game Maker é possível pegar a ultima tecla usando a variável keyboard_lastkey ela retorna o código da tecla, então você pode utilizar com as contantes vk_up, vk_down etc. Sendo assim, a melhor solução é armanezar a sequencia de teclas digitadas em uma ds_list e verificar se completou uma sequência correta de teclas toda vez que pressionar um botão lendo os últimos itens adicionados. Fiz um exemplo, pode ficar mais robusto na parte de verificar sequencias corretas mas já é um começo:
///CREATE
ultimas_teclas = ds_list_create()
tempo = 60

///STEP
if keyboard_lastkey != -1 {
   
   tempo = 30 //Reseta o tempo
   var combo = false;
   
    //Adiciona a ultima tecla na lista
   ds_list_insert(ultimas_teclas, 0, keyboard_lastkey);
   keyboard_lastkey = -1; //Reseta a ultima tecla
   
   //Verifica se um combo foi feito usando "accessors"
   if (ultimas_teclas[| 0] == vk_down) && 
      (ultimas_teclas[| 1] == vk_up) && 
      (ultimas_teclas[| 2] == vk_up) {
      combo = true;
      show_message('Combo!');
   }
   
   //Outras combinações aqui....
   
   //Se houve combo ou a lista ultrapassou a 
   //sequencia de 8 teclas limpa a lista de teclas
   if combo || (ds_list_size(ultimas_teclas) > 8 ) {
      ds_list_clear(ultimas_teclas)
      tempo = -1
   }   
}

//Tempo para executar o combo
if tempo > 0 
{
   tempo -= 1;
   if tempo <= 0 
   {
      ds_list_clear(ultimas_teclas) 
      tempo = -1;  
   }
}
O exemplo usa algumas coisas de certa forma avançadas mas nada que uma boa leitura no manual não resolva. Boa sorte com o projeto!

Re: Como fazer combos?

Enviado: Sáb Out 22, 2016 4:33 pm
por vagnerfacini
Pô valeu galera, vou usar todas as dicas de vocês e depois eu volto aqui pra falar como ficou!!!!