[Dúvida]Desativando comandos do heroi em certos momentos

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Dúvida]Desativando comandos do heroi em certos momentos

Mensagem por GustavoLC em Qui 15 Dez 2011, 00:13

Olá, pessoal. Estou com o seguinte problema:

tenho um herói totalmente programado para se locomover, pular, atirar, ativar menus através das devidas teclas. Porém, em determinados momentos, ele não deve responder a essas teclas.

Por exemplo, ao abrir uma caixa de texto para que o heroi e outro personagem possam conversar, as teclas direcionais que controlam seus movimentos não deverão responder assim, nem o Enter para abrir o menu. Um outro exemplo é quando o chefe da fase se apresenta, o heroi precisa ficar simplesmente parado.

como faço isso? Tentei desativar o heroi e depois reativa-lo, porém não funciona. Destruir o objeto heroi e depois reconstrui-lo também não é o mais conveniente, pois o evento Create recarregaria determinadas variáveis para seus valores iniciais.

Tentei associar os comandos através de uma variável, como por exemplo, no código abaixo:

====
Evento "Press Enter"

if v_eventox=0
{instance_create(0,0,obj_menu)}
====

Assim, a variável v_eventox controla liberação das teclas. Porém também não funcionou. Creio que o GM armazena de alguma forma as teclas que foram apertadas e depois que a variável libera as teclas, esta memória ativa as funções.

E então? Alguém pode me ajudar? Desde já agradeço. Um Abraço a todos

PS: desculpem se estou repetindo algum tópico, procurei no histórico do fórum e não achei nada condizente com minha dúvida.

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida]Desativando comandos do heroi em certos momentos

Mensagem por viniciusav em Qui 15 Dez 2011, 00:51

Você está no caminho certo, mas devemos fazer algumas considerações.
Digamos que você tem o seguinte código no Step do seu player:

Código:

if keyboard_check_pressed(vk_down)
 {
  // Código que Move herói para baixo
 }

Acredito que poderia ser solucionado se você definisse no create uma variável podeagir = 'sim' e quando o menu fosse aberto a variável podeagir seria igual a 'nao' (podeagir = 'nao') e quando fechasse seria igual a 'sim' (podeagir = 'sim'). O mesmo esquema seria feito na apresentação do chefe e criação do menu.
Vale lembrar que podeagir deve ter seu valor definido de acordo com o que ocorre no jogo.
OBS: Você deve testar o valor da variável antes de colocar no Evento "Press Enter", no mesmo estilo que postei abaixo: (Logo o código que postei inicialmente seria colocado também no Step e mais ou menos assim)
Código:
 
if podeagir = 'sim'
{
  if keyboard_check_pressed(vk_down)
  {
    // Código que Move herói para baixo
  }
}

Outro exemplo: (Menu)

Código:
 
if podeagir = 'sim'
{
  if keyboard_check_pressed(vk_enter)
  {
    // Código para exibir o menu. No caso você está usando:
    instance_create(0,0,obj_menu)
  }
}

Qualquer coisa só falar que tento solucionar ou explicar de outra forma.

Espero ter ajudado

Viniciusav!! ;)


Última edição por viniciusav em Qui 15 Dez 2011, 01:17, editado 4 vez(es) (Razão : Formatação, para tentar aumentar o entendimento)

viniciusav

Número de Mensagens : 131
Data de inscrição : 10/08/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida]Desativando comandos do heroi em certos momentos

Mensagem por saim em Qui 15 Dez 2011, 09:31

if v_eventox=0
{instance_create(0,0,obj_menu)}
Deveria funcionar. O raciocínio é o mesmo que o que o Viniciusav apresentou e está correto. Hora de debugar e verificar se v_eventox está mesmo diferente de zero. Ele deve estar igual a zero quando você é capaz de criar o menu e diferente de zero quando não é capaz. Isso está claro, né?
Você sabe debugar? Tem um tutorial na minha assinatura, mas não precisa ler ele todo, basta saber verificar o valor da variável.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: [Dúvida]Desativando comandos do heroi em certos momentos

Mensagem por GustavoLC em Sex 16 Dez 2011, 13:53

Obrigado, Saim. Fiquei sem internet ontem, por isso vi sua resposta apenas hoje. Vou "fuçar" nesta questão depois do meu serviço e qualquer novidade eu posto aqui. Não sabia debugar não, seu tutorial me ajudou bastante. Abração!!

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida]Desativando comandos do heroi em certos momentos

Mensagem por Conteúdo patrocinado Hoje à(s) 05:58


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum