[Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

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

[Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Convidad em Seg 08 Dez 2008, 11:53

Fala galera, blz!

Seguinte, eu queria fazer com que o player saltasse com 2 possibilidades de vspeed, dependendo do tempo que a tecla permanecer pressionada...

...ou seja, se eu pressionar a tecla por um espaço de tempo muito curto o vspeed é igual a -4, senão (tempo "normal") o vspeed é igual a -6.5;
(OBS. Os valores citados são apenas para exemplo)

O código base que estou usando é:
Código:
Evento Step:
if keyboard_check_pressed(ord('X')) and not place_free(x,y+1)
    vspeed=-6.5


...o KinKing já tinha me dado uma força com isso outro dia (além de ter sido ele próprio à sugerir a add disto no game =D), porém a forma que ele fez mexendo na gravidade deixou o salto muito estranho >.<


Se alguém souber e puder ajudar eu agradeço muito (créditos garantidos)

flw

t+


Última edição por fmanna em Seg 08 Dez 2008, 21:21, editado 1 vez(es)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Kevin em Seg 08 Dez 2008, 12:01

Bem eu faria assim:

Code:
if (keyboard_check_pressed(vk_up))
{
if (!place_free(x, y + 1))
vspeed = -12;

else if (!place_free(x + sign(wspeed), y))
{
vspeed = -8;
wspeed = -sign(wspeed) * 16;
}
}
if (keyboard_check_released(vk_up))
if (vspeed < 0)
vspeed /= 2;

Colocar no Evento STEP ou no evento do botão do pulo^^

qualquer coisa pergunte mais^^

Kevin

Ranking : Nota C
Número de Mensagens : 1166
Idade : 22
Data de inscrição : 14/11/2008
Notas recebidas : C - C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.programaCODM.webs.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Convidad em Seg 08 Dez 2008, 12:45

Não entendi muito bem essa lógica velho... o que eu preciso é que o valor de vspeed max/min seje escolhido de acordo com o pressionamento da tecla... ou é -4 (min) ou -6.5(max);

flw

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Kevin em Seg 08 Dez 2008, 13:26

então faz o seguinte:

Código:
if (keyboard_check_pressed(vk_up))
{
if (!place_free(x, y + 1))
vspeed = -6.5;

else if (!place_free(x + sign(wspeed), y))
{
vspeed = -5.25;
wspeed = -sign(wspeed) * 16;
}
}
if (keyboard_check_released(vk_up))
if (vspeed < 0)
vspeed /= 4;

acho que isso vai funcionar Happy... tenta lá Happy

Kevin

Ranking : Nota C
Número de Mensagens : 1166
Idade : 22
Data de inscrição : 14/11/2008
Notas recebidas : C - C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.programaCODM.webs.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Janx em Seg 08 Dez 2008, 13:30

bom se podia fazer algo mais simples como...
if (keyboard_check_pressed(vk_up))
{
vspeed = -4;
}

if keyboard_check(vk_up) && vspeed < 0
{
y -= 2; //troque o dois por um valor maior se quiser ir mais alto...
}

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Convidad em Seg 08 Dez 2008, 14:11

É nessa linha ae janx... mas dessa forma que vc fez ele sempre salta igual... se elevar o -2y ele só irá ir mais alto, indiferente do quanto vc pressionar a tecla;

t+

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Juninho em Seg 08 Dez 2008, 14:18

Tenta assim, não testei, mas testa ae, flw!

Código:
if (keyboard_check_pressed(vk_up))
{
vspeed = -4;
}

if keyboard_check(vk_up) && vspeed < 0
{
y -= 2; //troque o dois por um valor maior se quiser ir mais alto...
}

if vspeed>12{
vspeed=0}

Juninho

Número de Mensagens : 468
Data de inscrição : 11/08/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por KinKing em Seg 08 Dez 2008, 16:28

Acho que o jeito é fazer um timer (um alarme sem evento de alarme) com um tempo ridiculamente pequeno, tipo, 0.25segs. Se a tecla ainda estiver pressionada após esse período, saltar mais alto. se a tecla se tornar "false" durante esse período, saltar menos...

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Convidad em Seg 08 Dez 2008, 16:53

@Juninho... é a mesma coisa que o do janx, vc só add o limite... e de qq forma não é bem essa a questão =]

@Kinking... foi o que eu tinha pensado (lembra que eu comentei isso com vc?), porém, não sei se foi o código que eu tentei pra isso ou outra coisa, mas não funcionou >.<

Se alguém souber uma forma legal de fazer da maneira que o KinKing falou eu agradeço =D

t+

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Gusba em Seg 08 Dez 2008, 17:03

tah ai um exemplo meu:

http://rapidshare.com/files/171520274/pulo.gmk.html

Gusba

Número de Mensagens : 1156
Idade : 21
Data de inscrição : 03/08/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.ciganospictures.hd1.com.br

Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Convidad em Seg 08 Dez 2008, 17:23

Legal gusba... só que tem só pula se vc soltar a tecla... se ficar segurando ele apenas "carrega" a força;

Agradeço ae a colaboração galera, mas acho que a forma que o KinKing disse é que mais se adequa à necessidade =]

t+

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Convidad em Seg 08 Dez 2008, 21:20

Malz pelo 2post, mas é para postar a solução!

Com a ajuda do KinKing eu cheguei a um código viável para essa função:
Código:
Create:
var_power_jump=0

Step:
if keyboard_check(ord('X')) and not place_free(x,y+1)
    var_power_jump+=0.5
if var_power_jump<1 and keyboard_check_released(ord('X')) and not place_free(x,y+1)
    {
    vspeed=-4
    var_power_jump=0
    }
if var_power_jump>1 and not place_free(x,y+1)
    {
    vspeed-=6.5
    var_power_jump=0
    }

Keyboard release > X
var_power_jump=0


Vlw à todos que deram uma força!

t+

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [Resolvido] Pulo com altura max/min dependendo do tempo que a tecla fica pressionada;

Mensagem por Conteúdo patrocinado Hoje à(s) 04:03


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