Parada no ar, antes de tocar no chao

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

Parada no ar, antes de tocar no chao

Mensagem por katisuke em Qui 12 Mar 2015, 18:18

Tipo, em meu jogo de plataforma, quando meu personagem pula, ou simplismente está no ar, antes dele cair no chão, ele da uma parada uns pixels acima e depois cai normalmente.
É meio estranho ver o personagem fazer esse tipo de ação em um jogo.
Queria que ele caísse normalmente no chão, sem dar essa parada antes...
E se for possível, quero não seja um código novo totalmente diferente do meu. Eu vou mandar meu código do personagem. Se possível tentem achar o porque isso acontece e concertem nesse mesmo código:

CREATE

Código:
image_speed=0.20

hsp=0;
vsp=0;
grav=0.5;
saltar=false;
global.matar=false;
global.moeda=false;

global.colisao = 0;
solid = true;


STEP:

Código:
vsp += grav;
y += vsp;
x += hsp;

direita = keyboard_check(vk_right);
esquerda = keyboard_check(vk_left);
cima = keyboard_check(vk_up);


if (direita=true) {
     hsp=4;
     image_xscale=1
     if(global.colisao == 0 ){
       sprite_index = sprite6;}
     if(global.colisao == 1 ){  
       sprite_index = sprite29;}
    
}
else if (esquerda=true) {
     hsp=-4;
     image_xscale=-1;
     if(global.colisao == 0 ){
       sprite_index = sprite6;}
     if(global.colisao == 1 ){  
       sprite_index = sprite29;}
}  
else {
     hsp=0;
     if(global.colisao == 0 ){
       sprite_index = sprite0;}
     if(global.colisao == 1 ){  
       sprite_index = sprite26;}
}

if (place_meeting(x,y+vsp,chao)) {
      grav=0;
      vsp=0;
      if (place_meeting(x,y-16,chao)) {
          grav=0;
          vsp=0;
          saltar=false      
      } else {
            saltar=true
      }
}
else {
      grav=0.5
      saltar=false
}

if (cima=true) {
    if (saltar=true){
    vsp=-6;
    }
}

if (place_meeting(x+hsp,y-1,chao)) {
    hsp=0
}

if (place_meeting(x,y,slimeLVL1)) {
    if(vsp > 0) {
      global.matar = true;
      vsp=-5;      
    } else {
      global.matar = false;
    }
} else {
   global.matar = false;
}



Se puder ajudar ficarei incrivelmente grato felicidade

katisuke

Número de Mensagens : 31
Data de inscrição : 05/03/2015
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Parada no ar, antes de tocar no chao

Mensagem por guamaral em Qui 12 Mar 2015, 18:29

Kakisuke, cara para mim também sempre dá isso, eu não o que é, sempre fiquei me perguntando, mas talvez deve ser normal msm.

guamaral

Número de Mensagens : 87
Data de inscrição : 26/08/2014
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://viladogamer.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Parada no ar, antes de tocar no chao

Mensagem por vinians em Qui 12 Mar 2015, 18:30

No código de gravidade coloque:
Código:

if (place_meeting(x,y+vsp,chao)) {
      grav=0;
      vsp=0;
      if (place_meeting(x,y-16,chao)) {
          grav=0;
          vsp=0;
          saltar=false     
      } else {
            saltar=true;
            move_contact_solid(270, 15);
      }
O move_contact() move até encostar no objeto sólido tirando assim o gap que causa o problema que você citou. Se o objeto não for solido use a versão sem o "solid".
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Parada no ar, antes de tocar no chao

Mensagem por Isquilo_Roedor em Qui 12 Mar 2015, 22:10

Katisuke não sei se você viu no seu tópico anterior mas estamos usando as mesmas linhas de programação, e esse problema ai é meio que "normal", eu acho que você conseguiu esse script ai vendo o vídeo de um cara no youtube, e esse cara faz as coisas de forma "radical" kkkkk , ele foge do normal, dificilmente alguém aqui vai conseguir te dar uma solução concreta, eu mesmo também tenho esse bug chato, nem sei se é bug, mas resolvi deixar da forma que esta.

Isquilo_Roedor

Ranking : Nota D
Número de Mensagens : 334
Idade : 16
Data de inscrição : 22/03/2012
Notas recebidas : E-E-D
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Parada no ar, antes de tocar no chao

Mensagem por katisuke em Sex 13 Mar 2015, 20:36

vinians, eu entrei dentro da terra quando eu coloquei seu codigo :/

Isquilo_roedor, tou ligado kkkk mas eu gostei do resultado da engine do tutorial no youtube, achei bem simples e bem eficiente, eu ja concertei a maioria do que eu queria para o game, so falta isso, e outra coisa, q eu vou resolvar dps.
Se me ajudarem nisso, eu posso finalmente progredir no game sem nenhuma interrupção de bug e nada.

katisuke

Número de Mensagens : 31
Data de inscrição : 05/03/2015
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Parada no ar, antes de tocar no chao

Mensagem por vinians em Sex 13 Mar 2015, 20:40

katisuke escreveu:vinians, eu entrei dentro da terra quando eu coloquei seu codigo :/
Amigo, isso pode ser se o seu chão não for marcado como solido, neste caso, use move_contact_all() no lugar de move_contact_solid(). E verifique se você colocou o código naquele local que te indiquei no seu código.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Parada no ar, antes de tocar no chao

Mensagem por Isquilo_Roedor em Sab 14 Mar 2015, 18:56

Sim funcionou vinians, mas da pra perceber que quando o player em vez de dar aquela paradinha no ar, ele força a encostar no chão.

Isquilo_Roedor

Ranking : Nota D
Número de Mensagens : 334
Idade : 16
Data de inscrição : 22/03/2012
Notas recebidas : E-E-D
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Parada no ar, antes de tocar no chao

Mensagem por vinians em Dom 15 Mar 2015, 19:11

Para resolver isso basta reduzir a aceleração da gravidade. Veja:
Código:

if (vsp < 10)
  vsp += grav;
Neste caso vsp será limitado a 10, regule o valor de acordo com seu jogo.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Parada no ar, antes de tocar no chao

Mensagem por katisuke em Dom 15 Mar 2015, 20:06

Resolveu maninho kkk, vlw aew, vcs sao feras Very Happy

katisuke

Número de Mensagens : 31
Data de inscrição : 05/03/2015
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Parada no ar, antes de tocar no chao

Mensagem por Conteúdo patrocinado Hoje à(s) 01:55


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