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
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 18:28

» 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

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

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

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16


Problema chato com rampas [ainda não foi resolvido :/]

4 participantes

Ir para baixo

Problema chato com rampas [ainda não foi resolvido :/] Empty Problema chato com rampas [ainda não foi resolvido :/]

Mensagem por Rhino Sex 07 maio 2010, 20:59

Estou fazendo um jogo de plataforma, no estilo do Mario. Porém, o que acontece é que, ao colidir com as rampas, ele sobe, tudo bonitinho (já consegui fazer e está perfeito, pelo menos eu acho), só que, algumas vezes quando ele está descendo/subindo e volta a andar num chão plano, ele simplesmente para de pular. D:
Outros dois problema que estou tendo é que, na rampa, ele não consegue pular e, quando sobe/desce, o sprite fica como o dele pulando e não como andando pra direita/esquerda.

Estou usando este código no End Step pra ele subir a rampa (uso um parent pra dela, marcada como sólida e as que estão interligadas não-sólidas):

Código:
while (place_meeting(x,y,obj_rampa_parent))
{
y-=1
}

Colisão do jogador com o parent da rampa:
Código:
if vspeed>0 and !place_free(x,y+vspeed)
{
move_contact_solid(direction,10)
}
vspeed=0


Última edição por Rhino em Qui 13 maio 2010, 13:18, editado 1 vez(es)
Rhino
Rhino

Games Ranking : Nota C

Notas recebidas : C-B
Data de inscrição : 17/04/2010
Reputação : 11
Número de Mensagens : 136
Prêmios : Problema chato com rampas [ainda não foi resolvido :/] 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

Problema chato com rampas [ainda não foi resolvido :/] Empty Re: Problema chato com rampas [ainda não foi resolvido :/]

Mensagem por zzxc Dom 09 maio 2010, 08:34

naum sei muito sobre rampas
mas acho que:

while (place_meeting(x,y,obj_rampa_parent))
{
y-=1 <-- isso cria uma reaçao de pulo e naum de subida
}
espero ter ajudado
zzxc
zzxc

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 11/01/2010
Reputação : 0
Número de Mensagens : 99
Prêmios : Problema chato com rampas [ainda não foi resolvido :/] 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

Problema chato com rampas [ainda não foi resolvido :/] Empty Re: Problema chato com rampas [ainda não foi resolvido :/]

Mensagem por shatterhand2 Dom 09 maio 2010, 11:46

Ele provavelmente está com o sprite de caindo pq vc está "subindo" o objeto mais do que a inclinação real da rampa... dai o personagem "cai" na rampa, e vc provavelmente está programando que quando a velocidade vertical do cara for diferente de zero, deve aparecer tal sprite.

To chutando, pq nao vi seu código inteiro, mas imagino que seja isso.

Em relação a nao pular... você disse que a interligação com as rampas está não solida? Você está verificando antes de pular se existe algo sólido embaixo do personagem? Porque se voce faz isso, e embaixo dele não tem nada sólido, ele de fato nao vai pular (obviamente). Tambem to chutando, mas o tutorial oficial de jogos de plataforma da Yoyo Games faz assim, então imagino que você esteja fazendo assim também.

Edit: Eu acho que com esse codigo no endstep do cara, voce vai sempre fazer ele subir um pixel se estiver enconstando na rampa, esteja ele andando ou nao... mesmo enquanto parado ele vai subir.... e logo em seguida vai cair por causa da gravidade...

antes de subir vc precisa verificar se a tecla que o move está sendo pressionada... e só ai fazer ele subir (ou descer caso seja o caso).

Eu nunca programei nenhum jogo de plataforma que usasse rampa, mas imagino que partindo da maneira que você está fazendo, a idéia seja essa.
shatterhand2
shatterhand2

Data de inscrição : 21/10/2009
Reputação : 11
Número de Mensagens : 649
Prêmios : Problema chato com rampas [ainda não foi resolvido :/] Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


http://bananabytes.com.br/

Ir para o topo Ir para baixo

Problema chato com rampas [ainda não foi resolvido :/] Empty Re: Problema chato com rampas [ainda não foi resolvido :/]

Mensagem por Janx Dom 09 maio 2010, 12:06

shatterhand2 escreveu:
antes de subir vc precisa verificar se a tecla que o move está sendo pressionada... e só ai fazer ele subir (ou descer caso seja o caso).

Eu nunca programei nenhum jogo de plataforma que usasse rampa, mas imagino que partindo da maneira que você está fazendo, a idéia seja essa.

Se ele só subir se estiver pressionando a tecla, se ele soltar mas o personagem continua andando até parar totalmente (fricção, desaceleração) então ele entraria na rampa, concorda? Se ele pular, enquanto cai ele tambem vai entrar nela.
--
Como você esta fazendo para ele pular? Mande o código, provavelmente você vai precisar checar se tem chão um pouco mais abaixo do personagem.
Quando ele desce a rampa, ele vai parecer dando uns pulinhos mesmo pois ele anda horizontalmente mais rapido do que ele cai (verticalmente). Tem como arrumar? Tem, mas é um pouco complicado =/
Você poderia ver qual o angulo de inclinação da rampa em que ele esta, depois quando for andar, adicionar no valor Y do personagem:
y += sin(angulo_rampa)*velocidade_horizontal;
Dessa forma você acaba com o problema de subir ou descer rampas. Com velocidades muito altas pode dar algum bug!
Janx
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : Problema chato com rampas [ainda não foi resolvido :/] Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

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

Ir para o topo Ir para baixo

Problema chato com rampas [ainda não foi resolvido :/] Empty Re: Problema chato com rampas [ainda não foi resolvido :/]

Mensagem por Rhino Dom 09 maio 2010, 12:16

shatterhand2 escreveu:Ele provavelmente está com o sprite de caindo pq vc está "subindo" o objeto mais do que a inclinação real da rampa... dai o personagem "cai" na rampa, e vc provavelmente está programando que quando a velocidade vertical do cara for diferente de zero, deve aparecer tal sprite.

To chutando, pq nao vi seu código inteiro, mas imagino que seja isso.

Em relação a nao pular... você disse que a interligação com as rampas está não solida? Você está verificando antes de pular se existe algo sólido embaixo do personagem? Porque se voce faz isso, e embaixo dele não tem nada sólido, ele de fato nao vai pular (obviamente). Tambem to chutando, mas o tutorial oficial de jogos de plataforma da Yoyo Games faz assim, então imagino que você esteja fazendo assim também.

Edit: Eu acho que com esse codigo no endstep do cara, voce vai sempre fazer ele subir um pixel se estiver enconstando na rampa, esteja ele andando ou nao... mesmo enquanto parado ele vai subir.... e logo em seguida vai cair por causa da gravidade...

antes de subir vc precisa verificar se a tecla que o move está sendo pressionada... e só ai fazer ele subir (ou descer caso seja o caso).

Eu nunca programei nenhum jogo de plataforma que usasse rampa, mas imagino que partindo da maneira que você está fazendo, a idéia seja essa.

Então, uma das coisas que eu pensei que pudesse ser seria a programação dos movimentos (até porque, uso sprites animados e só sei programar desse jeito que vou postar). Aqui estão os códigos:

Step do Jogador:
Código:
if (place_free(x,y+1))
{
gravity=0.5
pulo=true
}
else
{
gravity=0
pulo=false
}

if (keyboard_check(vk_left)) and !(keyboard_check(vk_right)) and (place_free(x-3,y))
{
hspeed=-hsp
direita=false
andando=true
}

if (keyboard_check(vk_right)) and !(keyboard_check(vk_left)) and (place_free(x+3,y))
{
hspeed=hsp
direita=true
andando=true
}

if !(keyboard_check(vk_left)) and !(keyboard_check(vk_right))
{
andando=false
hspeed=0
}

if keyboard_check_pressed(vk_up) and !(place_free(x,y+1))
{
sound_play(snd_pulo)
vspeed=-7
pulo=true
}

Outro Code do Step do Jogador:
Código:
if pulo=false and andando=true and direita=true
{
sprite_index=spr_jogador_andando
image_xscale=1
}
else if pulo=false and andando=true and direita=false
{
sprite_index=spr_jogador_andando
image_xscale=-1
}
else if pulo=false and andando=false and direita=true
{
sprite_index=spr_jogador_parado
image_xscale=1
}
else if pulo=false and andando=false and direita=false
{
sprite_index=spr_jogador_parado
image_xscale=-1
}

if pulo=true and direita=true
{
sprite_index=spr_jogador_pulo
image_xscale=1
}
else if pulo=true and direita=false
{
sprite_index=spr_jogador_pulo
image_xscale=-1
}

End Step do Jogador:
Código:
while (place_meeting(x,y,obj_rampa_parent))
{
y-=1
}

Não encontrei o problema (tentei resolver de várias maneiras e continou =/), mas se alguém puder me ajudar, ficarei muito grato. Só queria aprender aonde errei para já saber como fazer em outros jogos. (:

@Janx: Sim! Ele dá uns pulinhos mesmo! Você poderia me ensinar como resolver? =D
Rhino
Rhino

Games Ranking : Nota C

Notas recebidas : C-B
Data de inscrição : 17/04/2010
Reputação : 11
Número de Mensagens : 136
Prêmios : Problema chato com rampas [ainda não foi resolvido :/] 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

Problema chato com rampas [ainda não foi resolvido :/] Empty Re: Problema chato com rampas [ainda não foi resolvido :/]

Mensagem por shatterhand2 Dom 09 maio 2010, 12:29

Se ele só subir se estiver pressionando a tecla, se ele soltar mas o personagem continua andando até parar totalmente (fricção, desaceleração) então ele entraria na rampa, concorda? Se ele pular, enquanto cai ele tambem vai entrar nela.

Eu nao considerei inércia... nesse caso tem que verificar se ele tem velocidade horizontal, e nao se a tecla está pressionada realmente. E ele ja deve ter programado pro cara nao "entrar" nos objetos sólidos, imagino eu. Isso não teria relação com so subir se a tecla está pressionada.

Eu to atrasado pra um compromisso... imagino que o Janx vai dar uma olhada nos teus codigos, mas se ele nao olhar até eu voltar, eu tento te ajudar Very Happy
shatterhand2
shatterhand2

Data de inscrição : 21/10/2009
Reputação : 11
Número de Mensagens : 649
Prêmios : Problema chato com rampas [ainda não foi resolvido :/] Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


http://bananabytes.com.br/

Ir para o topo Ir para baixo

Problema chato com rampas [ainda não foi resolvido :/] Empty Re: Problema chato com rampas [ainda não foi resolvido :/]

Mensagem por Janx Dom 09 maio 2010, 13:31

Rhino escreveu:
Step do Jogador:
Código:
if (place_free(x,y+1))
{
gravity=0.5
pulo=true
}
else
{
gravity=0
pulo=false
}

if (keyboard_check(vk_left)) and !(keyboard_check(vk_right)) and (place_free(x-3,y))
{
hspeed=-hsp
direita=false
andando=true
}

if (keyboard_check(vk_right)) and !(keyboard_check(vk_left)) and (place_free(x+3,y))
{
hspeed=hsp
direita=true
andando=true
}

if !(keyboard_check(vk_left)) and !(keyboard_check(vk_right))
{
andando=false
hspeed=0
}

if keyboard_check_pressed(vk_up) and !(place_free(x,y+1))
{
sound_play(snd_pulo)
vspeed=-7
pulo=true
}

Outro Code do Step do Jogador:
Código:
if pulo=false and andando=true and direita=true
{
sprite_index=spr_jogador_andando
image_xscale=1
}
else if pulo=false and andando=true and direita=false
{
sprite_index=spr_jogador_andando
image_xscale=-1
}
else if pulo=false and andando=false and direita=true
{
sprite_index=spr_jogador_parado
image_xscale=1
}
else if pulo=false and andando=false and direita=false
{
sprite_index=spr_jogador_parado
image_xscale=-1
}

if pulo=true and direita=true
{
sprite_index=spr_jogador_pulo
image_xscale=1
}
else if pulo=true and direita=false
{
sprite_index=spr_jogador_pulo
image_xscale=-1
}

End Step do Jogador:
Código:
while (place_meeting(x,y,obj_rampa_parent))
{
y-=1
}

Não encontrei o problema (tentei resolver de várias maneiras e continou =/), mas se alguém puder me ajudar, ficarei muito grato. Só queria aprender aonde errei para já saber como fazer em outros jogos. (:

@Janx: Sim! Ele dá uns pulinhos mesmo! Você poderia me ensinar como resolver? =D

Primeiro me responda uma coisa:
TODOS os objetos "rampas" que tem o parent o objeto obj_rampa_parent estão marcados como sólidos? Verifique, pode ser o motivo de você não poder pular na rampa! Pois não estaria considerando a rampa como um "chao", logo não teria chao embaixo para o personagem pular!

Caso estejam marcadas como sólidas tente mudar o código do pulo assim:
Código:
    if keyboard_check_pressed(vk_up) and !(place_free(x,y+2)) //+2!
    {
    sound_play(snd_pulo)
    vspeed=-7
    pulo=true
    }
Agora ele já deve pular!

Para descer a rampa sem dar os pulinhos, vamos tentar mudar o código end step:
Código:

if hspeed != 0 && place_meeting(x,y+1,obj_rampa_parent)
{y+=1;}
while (place_meeting(x,y,obj_rampa_parent))
{y-=1;}

Sinceramente eu não acho que vai funcionar 100%, mas deve diminuir um pouco os pulinhos. Se quiser, faça o teste usando += 2 ou alguns valores maiores, mas no maximo uns 5~6! Se ainda não funcionar, tente usando:
Código:

if hspeed != 0 && place_meeting(x,y+1,obj_rampa_parent)
{y+= min(hspeed,5);}
while (place_meeting(x,y,obj_rampa_parent))
{y-=1;}

Esse deve ser o jeito mais simples, mas pode dar alguns pequenos bugs e o personagem ainda dar alguns pulinhos. Só testando para descobrir!
Boa sorte \o>
Janx
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : Problema chato com rampas [ainda não foi resolvido :/] Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

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

Ir para o topo Ir para baixo

Problema chato com rampas [ainda não foi resolvido :/] Empty Re: Problema chato com rampas [ainda não foi resolvido :/]

Mensagem por Rhino Dom 09 maio 2010, 17:08

Janx escreveu:Primeiro me responda uma coisa:
TODOS os objetos "rampas" que tem o parent o objeto obj_rampa_parent estão marcados como sólidos? Verifique, pode ser o motivo de você não poder pular na rampa! Pois não estaria considerando a rampa como um "chao", logo não teria chao embaixo para o personagem pular!

Caso estejam marcadas como sólidas tente mudar o código do pulo assim:
Código:
    if keyboard_check_pressed(vk_up) and !(place_free(x,y+2)) //+2!
    {
    sound_play(snd_pulo)
    vspeed=-7
    pulo=true
    }
Agora ele já deve pular!

Para descer a rampa sem dar os pulinhos, vamos tentar mudar o código end step:
Código:

if hspeed != 0 && place_meeting(x,y+1,obj_rampa_parent)
{y+=1;}
while (place_meeting(x,y,obj_rampa_parent))
{y-=1;}

Sinceramente eu não acho que vai funcionar 100%, mas deve diminuir um pouco os pulinhos. Se quiser, faça o teste usando += 2 ou alguns valores maiores, mas no maximo uns 5~6! Se ainda não funcionar, tente usando:
Código:

if hspeed != 0 && place_meeting(x,y+1,obj_rampa_parent)
{y+= min(hspeed,5);}
while (place_meeting(x,y,obj_rampa_parent))
{y-=1;}

Esse deve ser o jeito mais simples, mas pode dar alguns pequenos bugs e o personagem ainda dar alguns pulinhos. Só testando para descobrir!
Boa sorte \o>

Então Janx, apenas o parent estava marcado como sólido! As rampas em si estavam não-sólidas!
Fiz o que você falou sobre marcá-las como sólidas e não adiantou, pois o personagem não consegue subir (nesse caso, acho que tem algo com a colisão do personagem com o parent), embora ele ficasse com o personagem parado quando em contato com as rampas (e não mais com o sprite de pulando). D:
Testei também com elas desmarcadas como sólidas e não adiantou. Ficou a mesma coisa! D8
Rhino
Rhino

Games Ranking : Nota C

Notas recebidas : C-B
Data de inscrição : 17/04/2010
Reputação : 11
Número de Mensagens : 136
Prêmios : Problema chato com rampas [ainda não foi resolvido :/] 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

Problema chato com rampas [ainda não foi resolvido :/] Empty Re: Problema chato com rampas [ainda não foi resolvido :/]

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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