[DUVIDA] Colisao do inimigo com chao

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

Resolvido [DUVIDA] Colisao do inimigo com chao

Mensagem por RubensGM em Dom 27 Nov 2011, 15:30

Hi galera,
to com um probleminha na colisão do meu inimigo com o chao:
quando ele cai de um bloco para o outro(da plataforma para o chao) ele trava e depois some, ta tentei corrigir mas nao consegui, olha só o q coloquei na colisão do inimigo com o bloco:
Código:
    if seguindo == false
    {
        if direita == true
        {direita = false; }
        else
        {direita = true; }
    }
olhem o que eu quero q aconteça:
ele cai e continua andando normal ai se ele colidir com um bloco do lado (direito ou esquerdo) acontece aquele codigo lá(se tiver para a direita e colidir c o bloco, vai para a esquerda e vice versa)
mas ele quando cai fica nao sai andando ele fica virando p direita e esqerda e depois some...
Me ajudem ai galera... Essa é a unica coisa q ta me impedindo de lançar meu Primeiro game:
The Fearless Adventurer(ta la na galeria de projetos)

agradeço muito quem puder me ajudar...


Última edição por RubensGM em Qua 30 Nov 2011, 17:19, editado 1 vez(es)

RubensGM

Número de Mensagens : 87
Data de inscrição : 31/05/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [DUVIDA] Colisao do inimigo com chao

Mensagem por RubensGM em Ter 29 Nov 2011, 14:57

Ola galera,
nao sei se isto éh contra asregras mas to dando um UP aqui para nao ter que criar um novo topico...
Me ajudem ae galera...

@EDIT por Grotle
Não é permitido fazer post duplo, ou seja, não pode postar duas mensagens seguidas, preste mais atenção e leia as regras.
Usuário alertado.

RubensGM

Número de Mensagens : 87
Data de inscrição : 31/05/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [DUVIDA] Colisao do inimigo com chao

Mensagem por saim em Ter 29 Nov 2011, 16:15

Provavelmente, ele está entrando alguns pixels no chão. Se o objeto do chão for o mesmo que o das paredes, o código de colisão com as paredes vai acontecer a todo step.
Pra ele sumir, pode estar acontecendo um milhão de coisas, entre elas, a velocidade estar aumentando a cada colisão e, aí, quando ela estiver alta o suficiente, ele sai vazado, tão rápido que não chega a colidir com nada da room.

Pra resolver eu precisaria ver seu código de cair. O que você mostrou não explica como ele cai, como ele para de cair nem porque está caindo errado.

PS: Também não sei se é contra as regras. Elas não falam nada de upar o tópico. Fala-se sobre flood, e double-post é considerado flood, mas nesse caso, eu acho mais sensato upar do que criar outro tópico... que, no final das contas, seria floodar mais ainda!

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [DUVIDA] Colisao do inimigo com chao

Mensagem por RubensGM em Qua 30 Nov 2011, 10:40

@Saim,
ta ki os codigos, ve se vc pode me ajudar aew:
create:
Código:
image_speed = 0.5
seguindo = false
direita = irandom(1)
vel_ini = choose(1,1.25,1.5,2,2.25,2.5,3)
alarm[0] = (floor(random_range(room_speed*2,room_speed*10)))
Step:
Código:


if(place_free(x,y+1))
{gravity_direction = 270; gravity = 0.7; }
else
{gravity_direction = 270; gravity = 0; }

if !place_free(x,y+1)// se estiver no chao
and(instance_exists(obj_player))
and(distance_to_object(obj_player)<=180)//e se a distancia p o objeto player for maior ou igual a 180
and(max(y,obj_player.y))-(min(y,obj_player.y))<=32//e estiver mais ou menos na mesma altura
and(!collision_line(x+16,y+16,obj_player.x+16,obj_player.y+16,obj_blocoP,true,0))
{
    seguindo = true; // ele esta seguindo
}
else// senao
{
    seguindo = false; // ele nao esta seguindo
}


if seguindo == true// se ele tiver seguindo
{
move_towards_point(obj_player.x,y,vel_ini);//segue o player XD
    if (obj_player.x > x)// se tiver a direita do player
        {
        sprite_index = spr_ini_dir;// troca p o sprite da direita
        }
    else// senao
        {
        sprite_index = spr_ini_esq; // troca p o sprite da esquerda
        }
}
else//se nao estiver seguindo
{
    if direita == true and place_free(x+1,y)// e se tiver para a direita
        {
            hspeed = +vel_ini; sprite_index = spr_ini_dir; // ele vai p direita
        }
    else//senao
        {
            if direita == false and place_free(x-1,y)
            {
                hspeed = -vel_ini; sprite_index = spr_ini_esq; // ele vai p esquerda
            }
        }
}
alarm[0]:
Código:

direita = irandom(1)
vel_ini = choose(1,1.25,1.5,2,2.25,2.5,3)
alarm[0] = (floor(random_range(room_speed*2,room_speed*10)))
colisão com o obj_bloco(chao e parede):
Código:
if vspeed == 0
{
    if seguindo == false
    {
        if direita == true
        {direita = false; }
        else
        {direita = true; }
    }
}
e Outside_room:
Código:
instance_destroy()

vlw

RubensGM

Número de Mensagens : 87
Data de inscrição : 31/05/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [DUVIDA] Colisao do inimigo com chao

Mensagem por saim em Qua 30 Nov 2011, 12:59

Então é quase isso mesmo. Note que, não colisão, você não faz um monte de coisas:
- move_towards_sei-que-lá (aquela funçãozinha jóia pra colisão perfeita pra quem usa built-ins, o que não é meu caso, então não lembro o nome dela),
- zerar a velocidade e,
- zerar a gravidade.

Isso explicaria tudo SE você não zerasse a gravidade no step. Mas já explica o fato da variável "direita" ficar oscilando, você realmente está afundando um pouco no chão.
Não sei porque desaparece depois. Se a gravidade continuasse, a velocidade vertical aumentaria até o ponto em que o objeto poderia atravessar a parede sem colidir com ela.
Em momento algum você zerou a vspeed. Será que ele não fica afundando no chão, aos pouquinhos, até atravessar, não?

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [DUVIDA] Colisao do inimigo com chao

Mensagem por RubensGM em Qua 30 Nov 2011, 17:19

@saim,
vlw cara, a unica coisa que precisou para parar com o problema foi por a vspeed = 0 na colisao...
vlw cara, se nao fosse vc...
ficou assim:
Código:
vspeed = 0

if seguindo == false
{
if direita == true
    {direita = false; }
    else
    {direita = true; }
}

RubensGM

Número de Mensagens : 87
Data de inscrição : 31/05/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [DUVIDA] Colisao do inimigo com chao

Mensagem por Conteúdo patrocinado Hoje à(s) 05:57


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