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
Problema em colisão Side-Scroller
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 !
- KlabberyBlue
- Membro
- Reações: 0
- Mensagens: 27
- Localização: Montes Claros, MG
-
Re: Problema em colisão Side-Scroller
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.
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"
Re: Problema em colisão Side-Scroller
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!
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
Troquei a imagem do player pela mascara e mesmo assim trava no ar =/
______________________________________________________________________
______________________________________________________________________
Código: Selecionar todos
// 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
//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]
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 !
Código: Selecionar todos
[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]
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante