Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Problema em colisão Side-Scroller

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Ark
Membro
Membro
Reações: 0
Mensagens: 39
Localização: Rio de Janeiro

Problema em colisão Side-Scroller

Mensagem por Ark » Qui Jun 02, 2016 6:19 pm

Galera estou com um problema referente a colisão de objetos,  Se eu pular com o player e deixar um botão de direção apertada em algumas ocasiões quando ele colide com um bloco ele fica no ar andando e só cai se eu deixar de apertar os botões ! Imagem

Avatar do usuário
KlabberyBlue
Membro
Membro
Reações: 0
Mensagens: 27
Localização: Montes Claros, MG

Re: Problema em colisão Side-Scroller

Mensagem por KlabberyBlue » Qui Jun 02, 2016 6:35 pm

Cara explique melhor...
Por exemplo coloque os códigos de colisão ai ou se usa D&S mande uma imagem com os D&S e algumas informações dentro dos D&S.
Também mande os códigos/D&S da gravidade.
"Você precisa derrubar, as portas que vão se fechar"

Avatar do usuário
Dust
Membro
Membro
Reações: 0
Mensagens: 109
Localização: Santa Catarina

Re: Problema em colisão Side-Scroller

Mensagem por Dust » Qui Jun 02, 2016 7:05 pm

Isso tbm pode ser problema com a mask da sprite, ao se mexer com a perna, ela invade a parede e acaba ficando ali presa...
Mas mande ai seu código de gravidade e o seu código de colisão, ou o que você esta usando no d&d, aquelas caixa do canto que agente pega e larga nas action...
Flw!

Avatar do usuário
Ark
Membro
Membro
Reações: 0
Mensagens: 39
Localização: Rio de Janeiro

Re: Problema em colisão Side-Scroller

Mensagem por Ark » Sex Jun 03, 2016 5:47 am

Troquei a imagem do player pela mascara e mesmo assim trava no ar =/
Imagem
______________________________________________________________________
// Código de movimento e colisão.
direita = keyboard_check(ord("D"));
esquerda = -keyboard_check(ord("A"));
pular = keyboard_check_pressed(ord("J"));
atacar = keyboard_check_pressed(ord("K"));

move = direita + esquerda;

hsp = move * movespeed;
if(atacar){
    
    instance_create(x,y,obj_tiro);
}else{
    sprite_index = spr_idle_player;
}
if(vsp < 10) vsp += grav + 3;
if(place_meeting(x,y+1,obj_piso)){
    vsp = pular * -jumpspeed
}
if(place_meeting(x+hsp,y,obj_piso)){
    while(!place_meeting(x+sign(hsp),y,obj_piso)){
        x+= sign(hsp);
    }
    hsp = 0;
}
if(place_meeting(x,y+vsp,obj_piso)){
    while(!place_meeting(x,y+sign(vsp),obj_piso)){
        y+= sign(vsp);
    }
    vsp = 0;
}
x += hsp;
y += vsp;
if(hsp > 1){
  sprite_index = spr_walk_player;
  image_xscale = 1;
    
}
else if(hsp < 0 ){
sprite_index = spr_walk_player;
image_xscale = -1;
}
else {
sprite_index = spr_idle_player;
}

Avatar do usuário
Ark
Membro
Membro
Reações: 0
Mensagens: 39
Localização: Rio de Janeiro

Re: Problema em colisão Side-Scroller

Mensagem por Ark » Sex Jun 03, 2016 7:09 am

//Resolvido!

Era um erro na codigo, coloquei pra verificar (x)hsp só no final, isso fez a colisão dar erro,pois não estava verificando no momento certo ! 
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]//Codigo certo Movimento & Colisão[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]direita = keyboard_check(ord("D"));[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]esquerda = -keyboard_check(ord("A"));[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]pular = keyboard_check_pressed(ord("J"));[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]atacar = keyboard_check_pressed(ord("K"));[/font]

[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]move = direita + esquerda;[/font]

[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]hsp = move * movespeed;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]if(atacar){[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    [/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    instance_create(x,y,obj_tiro);[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]}else{[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    sprite_index = spr_idle_player;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]}[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]if(vsp < 10) vsp += grav + 3;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]if(place_meeting(x,y+1,obj_piso)){[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    vsp = pular * -jumpspeed[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]}[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]if(place_meeting(x+hsp,y,obj_piso)){[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    while(!place_meeting(x+sign(hsp),y,obj_piso)){[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]        x+= sign(hsp);[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    }[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    hsp = 0;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]}[/font]

[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]x += hsp;[/font]

[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]if(place_meeting(x,y+vsp,obj_piso)){[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    while(!place_meeting(x,y+sign(vsp),obj_piso)){[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]        y+= sign(vsp);[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    }[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    vsp = 0;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]}[/font]

[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]y += vsp;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]if(hsp > 1){[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]  sprite_index = spr_walk_player;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]  image_xscale = 1;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]    [/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]}[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]else if(hsp < 0 ){[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]sprite_index = spr_walk_player;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]image_xscale = -1;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]}[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]else {[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]sprite_index = spr_idle_player;[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]}[/font]
[font=-apple-system, Helvetica Neue, Helvetica, sans-serif]
[/font]

Trancado

Quem está online

Usuários navegando neste fórum: Ahrefs [Bot] e 0 visitante