[Pergunta] Se pressionar duas teclas iguais executa uma acão...

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

[Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Pickler em Sab 16 Jul 2011, 14:45

Eu de novo...rsrs

Dessa vez eu estou com um dilema que é o seguinte. Eu quero que quando eu apertar 2 vezes a tecla pra direita (Seta) e continuar segurando o player corre até eu solta-la e se apertar apenas uma vez ele apenas ande até eu soltar.Já tentei de várias maneiras e está dificil...E o pior é uma parte crucial para a jogabilidade do meu jogo, então não posso ignora-la...Se alguém puder me ajudar agradeceria muito...VLW, abraço

Pickler

Número de Mensagens : 101
Idade : 19
Data de inscrição : 22/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por PedroX em Sab 16 Jul 2011, 14:50

Coloca no Evento Key Right Press:
Código:
alarm[0]=20;
Depois coloca no evento Keyboard Right:
Código:
if alarm[0]>0{
//correr
}
Não precisa por nada no alarm.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Mentos e Coca-cola em Sab 16 Jul 2011, 15:00

Só incrementando o Code do Pedro, lembrando que o alarme não pode estar sendo usado alguma outra função, não se esqueça disso, e os 20 steps são equivalentes a 50 millisegundos conforme se a room speed estiver em 30, só algumas observações ae...

Mentos e Coca-cola

Ranking : Nota D
Número de Mensagens : 627
Idade : 18
Data de inscrição : 30/06/2010
Notas recebidas : D
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Roger Jr em Sab 16 Jul 2011, 15:09

Então se a velocidade da room for 0, cada step é um milissegundo? (não seria centésimo de segundo?)

Roger Jr

Ranking : Nota D
Número de Mensagens : 395
Data de inscrição : 15/07/2010
Notas recebidas : C+D+D
Reputação : -1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.telepum.com

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Igor KinGamer em Sab 16 Jul 2011, 15:10

Só um detalhe aí nos códigos do Pedro Henrique: se você apertar várias vezes a seta direita, ele sempre vai correr. Se você não quiser isso (se aperta duas, ele corre, se aperta a terceira, ele anda normalmente), que eu acho que é o que se espera que aconteça, tem que colocar no Keyboard Right:
Código:
if alarm[0]>0{
//correr
alarm[0] = -1; // Se começa a correr, já não vai correr na próxima vez que apertar
}

Mentos e Coca-cola escreveu:e os 20 steps são equivalentes a 50 millisegundos conforme se a room speed estiver em 30, só algumas observações ae...
Peraí, se a room_speed = 30, 20 steps são 666,666... milissegundos ((20/30) segundo = 0.66... segundo).
Se você quiser controlar quanto tempo tem antes de apertar de novo por frações de segundo, use a variável room_speed, pois ela equivale a 1 segundo. Acho que 1/4 de segundo seria um bom tempo, assim: alarm[0] = room_speed/4.
roger028 escreveu:Então se a velocidade da room for 0, cada step é um milissegundo? (não seria centésimo de segundo?)
A room_speed não pode ser 0.


Última edição por Igor KinGamer em Sab 16 Jul 2011, 15:14, editado 2 vez(es)

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Mentos e Coca-cola em Sab 16 Jul 2011, 15:12

sim, centésimo de segundo, dei uma errada, vou me auto-torturar pra não esquecer (brinks), flw cara

Mentos e Coca-cola

Ranking : Nota D
Número de Mensagens : 627
Idade : 18
Data de inscrição : 30/06/2010
Notas recebidas : D
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Pickler em Sab 16 Jul 2011, 16:08

Bom, pra quem não entendeu eu quero que seja que nem no GC...
Eu testei o do Pedro Henrique mas, sempre que aperta ele corre...
Pra ajudar um pouco vou passar o meu step e o create...
Create:
Spoiler:

corre=false
correndo=false
pulo=true

Step:
Spoiler:

if keyboard_check_pressed(ord('C'))
{
corre=true
}

if keyboard_check_released(ord('C'))
{
corre=false
}

if keyboard_check(vk_right)
{
correndo=true
sprite_index=spr_heroi_correndo
image_speed=0.5
image_xscale=1
hspeed=5
}

if keyboard_check_released(vk_right or vk_left)
{
correndo=false
}

if keyboard_check(vk_left)
{
correndo=true
sprite_index=spr_heroi_correndo
image_speed=0.5
image_xscale=-1
hspeed=-5
}


if keyboard_check(vk_right) and corre=false
{
sprite_index=spr_heroi_andando
image_speed=0.3
image_xscale=1
hspeed=2
}
if keyboard_check(vk_left) and corre=false
{
sprite_index=spr_heroi_andando
image_speed=0.3
image_xscale=-1
hspeed=-2
}

if keyboard_check(vk_up) and pulo=false
{
pulo=true
vspeed=-15
}

if keyboard_check(vk_nokey)
{
hspeed=0
sprite_index=spr_heroi_parado
image_speed=0
image_xscale=image_xscale
}

if corre=true and correndo=false
{
hspeed=0
sprite_index=spr_heroi_parado
}

Na verdade o que eu quero é substituir o 'C' por apertar duas vezes a flecha da direita/esquerda...

Espero que isso ajude a vocês me ajudarem...=D
VLW abraço

Pickler

Número de Mensagens : 101
Idade : 19
Data de inscrição : 22/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Licht em Sab 16 Jul 2011, 16:17

Hmm... Ai agente usa alarms...

Tenta isso:
Create:
Código:

dash=2 //A variável de carreira é igual à 2...

Step:
Código:

if keyboard_check(vk_left) //Vou usar apenas a tecla esquerda como exeplo...
{
dash+=-1 //O Dash abaixará...
if dash=1 and vspeed=0 //Se o dash for igual à 1 e não tiver no ar...
{
hspeed+=-5 //Vai pra esquerda em velocidade 5
}
if dash<1 and vspeed=0 //Se o dash for menor que 1 e não tiver no ar...
{
hspeed+=-10 //Vai pra esquerda em velocidade 10
}
}

if keyboard_check_released(vk_left) //Se soltar a tecla esquerda
{
alarm[0]=5
}
Alarm 0:
Código:

if !keyboard_check(vk_left)
{
dash=2
}

Deve dar certo... Adapte os códigos também à tecla direita.

Licht

Ranking : Sem avaliações
Número de Mensagens : 1217
Idade : 18
Data de inscrição : 26/04/2010
Reputação : 34
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://lightsoftworks.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Pickler em Sab 16 Jul 2011, 16:33

Cara, não funcionou...
O que eu quero é por exemplo se deixar a seta do teclado para a direita/esquerda apertada ele anda em uma velocidade horizontal de 3 e quando eu apertar duas vezes a seta ele começa a correr em uma velocidade horizontal de 5...É um jogo de plataforma...(as vezes eu me esqueço de falar =X)...Resumindo algo que seja igual ao do Grand Chase...

Se tiver algo a mais que eu não falei por favor perguntem...

Vlw. :abraço:

Pickler

Número de Mensagens : 101
Idade : 19
Data de inscrição : 22/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Licht em Sab 16 Jul 2011, 16:36

O que exatamente não deu certo? Apareceu algum erro, o quê? Você trocou os valores, etc?

E eu também coloquei umas coisas que faltavam nos códigos.

Licht

Ranking : Sem avaliações
Número de Mensagens : 1217
Idade : 18
Data de inscrição : 26/04/2010
Reputação : 34
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://lightsoftworks.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Pickler em Sab 16 Jul 2011, 16:40

Quando você aperta para o lado ele fica aumentando a hspeed em 10 sempre enquanto você aperta para o lado então eu fui lá e tirei o '+' mas, dai não tem diferença entre apenas segurar o botão e aperta-lo duas vezes...

Se puderem explicar o código seria melhor eu poderia modifica-lo ao meu gosto e entenderia melhor ainda a GML...VLW abraço

Pickler

Número de Mensagens : 101
Idade : 19
Data de inscrição : 22/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por PedroX em Sab 16 Jul 2011, 17:17

Create:
Código:
andando=0;

Alarm[0]:
Código:
if !keyboard_check(vk_right)
{andando=0;}

Step:
Código:
if keyboard_check_pressed(vk_right)
{
if !andando
{andando=1;}
else
if (andando==1)
{andando=2}
}

if keyboard_check_released(vk_right)
{
if andando==1
alarm[0]=10;
else
if andando==2
alarm[0]=5
}

Se andando for 1, ele tá andando.
Se for 0, ele tá parado.
Se for 2, ele tá correndo.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Licht em Sab 16 Jul 2011, 17:22

Fiz uma engine... Agora sim a situação vai melhorar:
http://dl.dropbox.com/u/19426320/Carrera.gmk

Licht

Ranking : Sem avaliações
Número de Mensagens : 1217
Idade : 18
Data de inscrição : 26/04/2010
Reputação : 34
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://lightsoftworks.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Pickler em Sab 16 Jul 2011, 18:25

Agora funcionou!!! Vlw...Concerteza darei créditos à você...VLW mesmo ajudou muito!!!

Pickler

Número de Mensagens : 101
Idade : 19
Data de inscrição : 22/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por PedroX em Sab 16 Jul 2011, 18:32

Tópico trancado.
Se quiser que o mesmo seja destrancado, contate a moderação.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Pergunta] Se pressionar duas teclas iguais executa uma acão...

Mensagem por Conteúdo patrocinado Hoje à(s) 19:54


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