[Problemas] Colisão e movimentação

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

[Problemas] Colisão e movimentação

Mensagem por Need_90 em Qua 25 Maio 2011, 14:51

Bom estou fazendo um jogo em que o personagem é uma bola com olhos,boca e tudo.Fiz movimentação troca de sprites tudo certin,mas ha alguns problemas
Colisão na rampa esta meio bugada,o player afunda um pouco na rampa,o codigo de colisão é esse
Step
Código:
while(place_meeting(x,y+2,obj_triangulo) ) // O código de colisão com a rampa
{
  y-=3
}
e para ele não afundar na rampa eu coloquei em colisão com rampa
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)
se eu tiro esse codigo ele afunda,lembrando que a rampa é solida
e ele desce dando meio que soquinhos (ja tem um topico sobre isso,mas os cara tão com preguiça de responde),e quando ele ta descendo e colide com o chão,ele buga a mask e não pula mais,é como se ele andasse no ar(1 pixel acima do chão + ou -)
E eu não sei se o problema é na movimentação,o codigo de movimentação e troca de sprites é esse
Step
Código:
//gravidade
if place_free(x,y+5){
gravity=0.5
chao=false;
}else{
gravity=0
chao=true;
}
if vspeed>15{
vspeed=15}
//*Variaveis para facilitar a digitação*
dir=keyboard_check(vk_right);
esq=keyboard_check(vk_left);
//Direita
if dir && !esq{//Direta
    repeat(velocidade){
    if place_free(x+1,y)
    x+=1
    direita=true
    anda=true
    dir=1
    }
}else if esq && !dir{
//Esquerda
    repeat(velocidade){
    if place_free(x-1,y)
    x-=1
    direita=false
    anda=true
    dir=-1
    }
}else{//Nenhum
anda=false
}
//Pular
if keyboard_check_pressed(vk_up)
{
if !(place_free(x,y+1)){vspeed=-8}
}
Esse é um codigo do willy o de colisão e troca de sprites tambem
End Step
Código:
if direita=true{
    if chao=true{
        if anda=true{
        sprite_index=spr_player_anda
        }else{
        sprite_index=spr_player
        }
    }else{
    sprite_index=spr_player_pulo
    }
}else{//Esqurda
    if chao=true{
        if anda=true{
        sprite_index=spr_player_anda2
        }else{
        sprite_index=spr_player2
        }
    }else{
    sprite_index=spr_player_pulo2
    }
}

Need_90

Número de Mensagens : 309
Idade : 17
Data de inscrição : 30/04/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Problemas] Colisão e movimentação

Mensagem por PedroX em Qua 25 Maio 2011, 15:12

Rampas são um problema mesmo.
Não é preguiça dos usuarios.

Tenta colocar esse código aqui junto com a movimentação; depois retire os outros códigos relacionados à rampa.

Código:
for (i=0;i<8;i+=1)
        {
        if place_free(x+hspeed,y-i)
                {
                x+=hspeed
                y-=i
                break;
                }
        }

Depois posta o resultado.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Problemas] Colisão e movimentação

Mensagem por Need_90 em Qua 25 Maio 2011, 15:17

Continuo igual a respeito do pulo,ja nas rampas,ele não sobe de geito nenhum e desce dando socos,mas quando eu aperto para pular e andar o player sobe um pouco da rampa,se não enteder avise,se quiser passo a engine (eu prefiro tutorias não postem engines,a não ser se eu pedir)

Need_90

Número de Mensagens : 309
Idade : 17
Data de inscrição : 30/04/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Problemas] Colisão e movimentação

Mensagem por Conteúdo patrocinado Hoje à(s) 14:29


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