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
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[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 : 2800
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
  • Godot
  • Javascript
  • 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