Página 1 de 1

Problema em colisão Side-Scroller

Enviado: Qui Jun 02, 2016 6:19 pm
por Ark
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

Re: Problema em colisão Side-Scroller

Enviado: Qui Jun 02, 2016 6:35 pm
por KlabberyBlue
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.

Re: Problema em colisão Side-Scroller

Enviado: Qui Jun 02, 2016 7:05 pm
por Dust
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!

Re: Problema em colisão Side-Scroller

Enviado: Sex Jun 03, 2016 5:47 am
por Ark
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;
}

Re: Problema em colisão Side-Scroller

Enviado: Sex Jun 03, 2016 7:09 am
por Ark
//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]