GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08

» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21


[Resolvido]Problema com engine de pulo com animação

3 participantes

Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty [Resolvido]Problema com engine de pulo com animação

Mensagem por FishyHatGuy Sex 19 Ago 2011, 20:26

Simples caros desenvolvedores, tentei criar um pulo com animação pro meu jogo usando este tutorial aqui: [Link]

Só que agora minha engine está zuada D:

Tenho dois problemas:

1- O personagem "afunda" quando cai no chão por causa do sprite utilizado para o pular/cair;
2- Uma vez que pula o personagem fica quicando a não ser que eu force outra animação nele (neste caso, a animação de ataque)

A seguir o código para pulo que eu fiz:

Código:
// ================= Code for jumping and stuff ==================

    // Gravity for the hero
    if place_free(x,y+1){
        gravity=1;
    }
    else {
        gravity = 0;
    }

    // Jump for the hero
    if key_detection[4] == true && jumpDetection == false{

        if jumpState == 0 && place_meeting(x,y+1,Collision_Block){
            sprite_index = Jump_Begin;
            if dir_R == true{ image_xscale = 1; }
            if dir_L == true{ image_xscale = -1; }
            image_speed = 1/2;
            alarm[0] = 2;
        }
       
        jumpDetection = true;
       
    }
   
    if jumpState != 0 && !place_free(x,y+1){
        jumpState = 0;
        vspeed = -12.5;
        sprite_index = Air;
        if dir_R == true{ image_xscale = 1; }
        if dir_L == true{ image_xscale = -1; }
        image_speed = 1/2;
    }
   
    if vspeed > 0 {
   
        jumpState = -1;
       
        if dir_R == true{
            sprite_index = Air;
            image_xscale = 1;
        }
   
        if dir_L == true{
            sprite_index = Air;
            image_xscale = -1;
        }
    }
   
    if !place_free(x,y+1) and jumpState < 0{
        sprite_index = Jump_End;
        if dir_R == true{ image_xscale = 1; }
        if dir_L == true{ image_xscale = -1; }
        image_speed = 1/2;
        jumpState = 0;
    }

}

Onde: jumpDetection é a variável que mostra se o personagem principal está pulando ou não, jumpState mostra o estado do pulo (-1 = Descendo; 0 = Neutro; 1 = Subindo), dir_R(L) mostra em que direção se encontra o personagem principal e key_detection[4] é uma variável que é verdadeira (true) quando o botão de pulo é acionado.

Agradeço já qualquer ajuda o/


Última edição por Mathaeuz em Dom 21 Ago 2011, 01:13, editado 2 vez(es) (Motivo da edição : Ativação da marcação "Avisar-me quando uma resposta for postada.")
FishyHatGuy
FishyHatGuy

Data de inscrição : 30/04/2011
Reputação : 1
Número de Mensagens : 18
Prêmios : [Resolvido]Problema com engine de pulo com animação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty Re: [Resolvido]Problema com engine de pulo com animação

Mensagem por Super Games Sex 19 Ago 2011, 20:47

Bom...não entendi direito, você quer dizer que o movimento está bastante zuado?

Off:Como eu adiciono um FriendCode?Tenho um 3DS e queria lhe adicionar a minha lista.
Super Games
Super Games

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2799
Prêmios : [Resolvido]Problema com engine de pulo com animação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Java
  • C ou C++


Ir para o topo Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty Re: [Resolvido]Problema com engine de pulo com animação

Mensagem por FishyHatGuy Sex 19 Ago 2011, 20:55

Como eu já falei, tem esse problema de colisão que faz o personagem afundar no chão quando somente cai, e o de ficar quicando quando ele pula.

Off:Tem que ir na lista de amigos, aí ambos temos que adicionar o FC um do outro :]
FishyHatGuy
FishyHatGuy

Data de inscrição : 30/04/2011
Reputação : 1
Número de Mensagens : 18
Prêmios : [Resolvido]Problema com engine de pulo com animação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty Re: [Resolvido]Problema com engine de pulo com animação

Mensagem por Spadan_RTicou Sáb 20 Ago 2011, 11:51

vc errou no gravity=0
não é o gravity mais sim o vspeed=0
Spadan_RTicou
Spadan_RTicou

Data de inscrição : 13/11/2010
Reputação : 1
Número de Mensagens : 71
Prêmios : [Resolvido]Problema com engine de pulo com animação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty Re: [Resolvido]Problema com engine de pulo com animação

Mensagem por FishyHatGuy Sáb 20 Ago 2011, 12:33

Pior que não é, isso não mudou nada, aliás, na colisão com o chão eu forço vspeed = 0.
Alguém aí poderia ceder uma engine mais elaborada pra eu ter uma idéia de como resolver meu problema?
FishyHatGuy
FishyHatGuy

Data de inscrição : 30/04/2011
Reputação : 1
Número de Mensagens : 18
Prêmios : [Resolvido]Problema com engine de pulo com animação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty Re: [Resolvido]Problema com engine de pulo com animação

Mensagem por Spadan_RTicou Sáb 20 Ago 2011, 23:12

porque vc ão tenta tirar o gravity e nem vspeed e só usar y e x
Spadan_RTicou
Spadan_RTicou

Data de inscrição : 13/11/2010
Reputação : 1
Número de Mensagens : 71
Prêmios : [Resolvido]Problema com engine de pulo com animação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty Re: [Resolvido]Problema com engine de pulo com animação

Mensagem por FishyHatGuy Sáb 20 Ago 2011, 23:15

Mexer apenas com x e y pode zuar com a colisão, mesmo se ela estiver certinha. Por exemplo, o personagem pode ser "empurrado" bruscamente ao colidir com um objeto sólido, ou não chegar a encostar na parede dependendo de como a colisão é checada. Com o hspeed, vspeed e gravity eu não preciso me preocupar com isso.
FishyHatGuy
FishyHatGuy

Data de inscrição : 30/04/2011
Reputação : 1
Número de Mensagens : 18
Prêmios : [Resolvido]Problema com engine de pulo com animação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty Re: [Resolvido]Problema com engine de pulo com animação

Mensagem por Spadan_RTicou Sáb 20 Ago 2011, 23:22

isto resolve
create
Código:
vvel=0
mov_dir=false
mov_esq=false
no_ar=false
step
Código:
if keyboard_check(vk_right){mov_dir=true mov_esq=false}
if keyboard_check(vk_left){mov_dir=false mov_esq=true}
if keyboard_check(vk_left) and keyboard_check(vk_right){mov_dir=false mov_esq=false}
if !keyboard_check(vk_left) and !keyboard_check(vk_right){mov_dir=false mov_esq=false}}else{if no_ar{if keyboard_check(vk_right){mov_dir=true mov_esq=false}
if keyboard_check(vk_left){mov_dir=false mov_esq=true}
if keyboard_check(vk_left) and keyboard_check(vk_right){mov_dir=false mov_esq=false}
if !keyboard_check(vk_left) and !keyboard_check(vk_right){mov_dir=false mov_esq=false}}
Código:
vel=argument0//aqui temos uma variavel q servira como um tipo de velocidade
//é basicamente quantos pixels serão avaçados ou recuados em cada step

//movimento para a direita
if mov_dir{ //essa variavel se ativada, movimentara o objeto que estiver executando o script
 if place_free(x+vel,y){x+=vel}//aqui o movimento é normal, sem obstrução
 else
 if place_free(x+vel,y-1){x+=vel-1 y-=1} //se estiver obstruido checa em um pixel a cima
 else
 if place_free(x+vel,y-2){x+=vel-1 y-=2}//dois pixels
  else
 if place_free(x+vel,y-3){x+=vel-1 y-=3}//três
  else
 if place_free(x+vel,y-4){x+=vel-1 y-=4}//quatro
 else
 if place_free(x+vel,y-5){x+=vel-1 y-=5}//dois pixels
  else
 if place_free(x+vel,y-6){x+=vel-1 y-=6}//três
  else
 if place_free(x+vel,y-7){x+=vel-1 y-=7}//quatro
 else
 if place_free(x+vel,y-8){x+=vel-1 y-=8} //se estiver obstruido checa em um pixel a cima
 else
 if place_free(x+vel,y-9){x+=vel-1 y-=9}//dois pixels
  else
 if place_free(x+vel,y-10){x+=vel-1 y-=10} //se estiver obstruido checa em um pixel a cima
 else
 if place_free(x+vel,y-11){x+=vel-1 y-=11}//dois pixels
  else
 if place_free(x+vel,y-12){x+=vel-1 y-=12}//três
}
//movimento para a esquerda
//aqui temos basicamente a mesma coisa que para a direita, só que como quermos ir para a esquerda
//os valores em X tem de ser negativos.
if mov_esq{
 if place_free(x-vel,y){x-=vel}
 else
 if place_free(x-vel,y-1){x-=vel-1 y-=1} //vai adicionando um pixel
 else
 if place_free(x-vel,y-2){x-=vel-1 y-=2}
  else
 if place_free(x-vel,y-3){x-=vel-1 y-=3}
  else
 if place_free(x-vel,y-4){x-=vel-1 y-=4}
  else
 if place_free(x-vel,y-5){x-=vel-1 y-=5}
  else
 if place_free(x-vel,y-6){x-=vel-1 y-=6}
  else
 if place_free(x-vel,y-7){x-=vel-1 y-=7}
  else
 if place_free(x-vel,y-8){x-=vel-1 y-=8}
  else
 if place_free(x-vel,y-9){x-=vel-1 y-=9}
  else
 if place_free(x-vel,y-10){x-=vel-1 y-=10} //vai adicionando um pixel
 else
 if place_free(x-vel,y-11){x-=vel-1 y-=11}
  else
 if place_free(x-vel,y-12){x-=vel-1 y-=12}
}
//encaixando no chão
//aquele negocio de setar a variavel "no_ar" para false é somente uma precaução para que não "desgrude"
//do chão enquanto estiver descendo uma rampa.
if vvel>=0{
if place_free(x,y+1) and !place_free(x,y+2){y+=1 no_ar=false vel=vel+1}
if place_free(x,y+2) and !place_free(x,y+3){y+=2 no_ar=false vel=vel+1}
if place_free(x,y+3) and !place_free(x,y+4){y+=3 no_ar=false vel=vel+1}
if place_free(x,y+4) and !place_free(x,y+5){y+=4 no_ar=false vel=vel+1}
if place_free(x,y+5) and !place_free(x,y+6){y+=5 no_ar=false vel=vel+1}
if place_free(x,y+6) and !place_free(x,y+7){y+=6 no_ar=false vel=vel+1}
if place_free(x,y+7) and !place_free(x,y+8){y+=7 no_ar=false vel=vel+1}
if place_free(x,y+8) and !place_free(x,y+9){y+=8 no_ar=false vel=vel+1}
if place_free(x,y+9) and !place_free(x,y+10){y+=9 no_ar=false vel=vel+1}
if place_free(x,y+10) and !place_free(x,y+11){y+=10 no_ar=false vel=vel+1}
if place_free(x,y+11) and !place_free(x,y+12){y+=11 no_ar=false vel=vel+1}
if place_free(x,y+12) and !place_free(x,y+13){y+=12 no_ar=false vel=vel+1}   

//checando se está no chão
//ele encaixa no chão no maximo em três pixels, se estiver livre, então esta no ar.
if place_free(x,y+3){no_ar=true}
if !place_free(x,y+3){if vvel>0{no_ar=false}}}

//aqui fica o controle da velocidade vertical que é uma variavel que depois é adicionada a Y
if no_ar{
if vvel<8 {vvel+=0.4}else{vvel=8}}//aqui limitamos a variavel "vvel" a 5, se estiver menor que isso
//será adicionado 0.2 a cada step, para chegar a 5
if !no_ar{vvel=0}//se não estiver no ar, a velocidade vertical e setada a zero.

//colisão em cima
//se houver um solido em y-4 e a velocidade vertical for menor que zero, ou seja, se estiver subindo
//a velocidade sera setada pra zero.
if vvel<0 and !place_free(x,y-4){vvel=0}

//adicionando a vvelocidade vertical a .X
y+=vvel
Código:
if keyboard_check_pressed(ord("S")){
if !no_ar{vvel-=7 no_ar=true}
}
if keyboard_check_released(ord("S")){
if vvel<0{vvel/=2}
}
respectivamente
Spadan_RTicou
Spadan_RTicou

Data de inscrição : 13/11/2010
Reputação : 1
Número de Mensagens : 71
Prêmios : [Resolvido]Problema com engine de pulo com animação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty Re: [Resolvido]Problema com engine de pulo com animação

Mensagem por FishyHatGuy Dom 21 Ago 2011, 00:03

Bem...consegui consertar o problema de um jeito mais simples (mas tive que refazer a engine do zero @_@), ainda sim agradeço a ajuda, podem trancar o tópico o/
FishyHatGuy
FishyHatGuy

Data de inscrição : 30/04/2011
Reputação : 1
Número de Mensagens : 18
Prêmios : [Resolvido]Problema com engine de pulo com animação Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Problema com engine de pulo com animação Empty Re: [Resolvido]Problema com engine de pulo com animação

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos