Conectar-se
Quem está conectado
20 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 20 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Convidad
Convidado

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

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)
avatar
Ranking : Nota C
Notas recebidas : C - C
Data de inscrição : 14/11/2008
Número de Mensagens : 1166
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://www.programaCODM.webs.com/

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

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^^
Convidad
Convidado

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

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
avatar
Ranking : Nota C
Notas recebidas : C - C
Data de inscrição : 14/11/2008
Número de Mensagens : 1166
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://www.programaCODM.webs.com/

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

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
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 14

Prêmios
   : 0
   : 2
   : 0
Ver perfil do usuário

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

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...
}
Convidad
Convidado

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

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+
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   :
Ver perfil do usuário

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

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}
avatar
Data de inscrição : 29/05/2008
Número de Mensagens : 422
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 16

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://felipejoys.webnode.com

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

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...
Convidad
Convidado

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

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+
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

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

em Seg 08 Dez 2008, 17:03
tah ai um exemplo meu:

rapidshare.com pulo.gmk.html
Convidad
Convidado

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

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

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

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+
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum