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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 25/04/2011
Número de Mensagens : 111
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

[Resolvido] Jogo plataforma, ajuda com parede

em Sex 15 Jul 2011, 11:58
Kole pessoal.

To precisando de uma ajuda no jogo de plataforma que eu to fazendo. O problema é que quando eu chego perto da parede e tento pular e continuo com o botao pro lado apertado ele fica grudado nela, e no ar. Isso é muito estranho.

Eu tentei fazer um objeto parede pra poder colocar nos lados, mas nao funcionou, o objeto quando eu pulo ele da um pulo gigantesco (muito estranho isso).

Queria saber porque isso acontece.

Eu tenho um objeto chao (obj_chao) e nele esta marcado como solid. e no objeto jogador (obj_jogador) no evento colisao com o obj_chao tem esse codigo.

Código:
if vspeed > 0 and not place_free(x,y + vspeed)//***se a velocidade vertical for maior do que 0 e não tiver o mesmo valor da vel vertical abaixo...
{
    move_contact_solid(direction,vspeed)//mover na direção do bloco, na direcçao e com a vel.vertical
}
vspeed = 0//***velocidade vertical = a 0(esta no chao)

O que esta errado?

O que eu quero:

Quando ele encostar na parede ele vai continuar caindo ate achar o chao.


Última edição por gifah em Sex 15 Jul 2011, 18:42, editado 1 vez(es)
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 11/01/2010
Número de Mensagens : 99
Insígnias de JAM :

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

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

Re: [Resolvido] Jogo plataforma, ajuda com parede

em Sex 15 Jul 2011, 12:02
cara pq tu num tenta fazer assim:
coloca no step:
if keyboard_check(vk_left) //movimento a esquerda
{
if place_free(x-8,y) //checa se esta livre
{
hspeed=-8
}
else // se n tiver
{
hspeed=0
}
}
if keyboard_check(vk_right)
{
if place_free(x+8,y)
{
hspeed=8
}
else
{
hspeed=0
}
}
if not keyboard_check(vk_left) and not keyboard_check(vk_right) //se nehum botao estiver precionado
{
hspeed=0
}
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 25/04/2011
Número de Mensagens : 111
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: [Resolvido] Jogo plataforma, ajuda com parede

em Sex 15 Jul 2011, 12:42
zzxc escreveu:cara pq tu num tenta fazer assim:
coloca no step:
if keyboard_check(vk_left) //movimento a esquerda
{
if place_free(x-8,y) //checa se esta livre
{
hspeed=-8
}
else // se n tiver
{
hspeed=0
}
}
if keyboard_check(vk_right)
{
if place_free(x+8,y)
{
hspeed=8
}
else
{
hspeed=0
}
}
if not keyboard_check(vk_left) and not keyboard_check(vk_right) //se nehum botao estiver precionado
{
hspeed=0
}

nao funcionou. deu o mesmo problema.
Ranking : Sem avaliações
Notas recebidas : D+C+C+D
Data de inscrição : 01/07/2010
Número de Mensagens : 399
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://blogluanmaia.blogspot.com.br/

Re: [Resolvido] Jogo plataforma, ajuda com parede

em Sex 15 Jul 2011, 13:29
Coloca na colisão com a parede assim:
Código:

x = xprevious;
flw
avatar
Data de inscrição : 13/07/2011
Número de Mensagens : 40
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuáriohttp://www.kisuk_kun.ucoz.com

Re: [Resolvido] Jogo plataforma, ajuda com parede

em Sex 15 Jul 2011, 13:38
se vai la no obj_player e coloca assim
na colizao do player com a parede coloque"vertical speed" ''o incone e uma seta pra baixo''
e deixa do jeito que apareçer
tenta ae e me fala se deu certo
avatar
Ranking : Sem avaliações
Data de inscrição : 21/11/2010
Número de Mensagens : 775
Insígnias de JAM :

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

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

Re: [Resolvido] Jogo plataforma, ajuda com parede

em Sex 15 Jul 2011, 15:03
coloca isso na colisão do player com a parede:
Código:
move_contact_solid(direction,*velocidade y maxima)
vspeed=0

ai faz akilo que o q o zzxc falou.

---edit---
ops, n faz que nem o zzxc
faz assim no step:
Código:
if keyboard_check(vk_left)
{if place_free(x-4,y) then x-=4}
if keyboard_check(vk_right)
{if place_free(x+4,y) then x+=4}
flw


Última edição por Tedi Ripper em Sex 15 Jul 2011, 15:07, editado 1 vez(es)
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: [Resolvido] Jogo plataforma, ajuda com parede

em Sex 15 Jul 2011, 15:06
Um código que nunca dá problema:

Código:
if place_free(x,y+vspeed+1){
vspeed+=0.75;
}else{
move_contact_solid(270, 16)
vspeed=0;
}

Você nem precisa colocar gravidade, porque ele já coloca.

Até mais!
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 25/04/2011
Número de Mensagens : 111
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: [Resolvido] Jogo plataforma, ajuda com parede

em Sex 15 Jul 2011, 18:40
ja consegui. Nao tava com net quando consegui, entaum vo mostra como fiz.

Coloquei no colisao com o obj_chao o seguinte codigo.

Código:

if (place_free(x,y+2)) {
vspeed += gravity;
} else {
vspeed = 0;//***velocidade vertical = a 0(esta no chao)
}

Obrigado quem ajudou.
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