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. |
Ajuda na colisão com parede?
Ajuda na colisão com parede?
quando o meu player colide com o obj_chao,ele deve deixar a vspeed em 0,se estiver em cima do bloco.
quero que,quando ele colida de lado com o bloco,a hspeed dele que acabe.Como faço isso?
Uso o GameMaker 8 pro
quero que,quando ele colida de lado com o bloco,a hspeed dele que acabe.Como faço isso?
Uso o GameMaker 8 pro
Mister J-Game Maker
Re: Ajuda na colisão com parede?
pelo acho que entendi
vc quer que ele colida com chao e ao mesmo tempo na parede ?
se for o caso e somarca a opção solid no obj_chao no obj_parede depois va no personagem e adciona a colisão com o objeto e coloque esse codigo
ele vai parar de andar tanto no chao e na parede
mas se vc quer que ele pare de andar nos 2 use esse
espero ter ajudado não esquece de marcar o personagem como solido tabem
vc quer que ele colida com chao e ao mesmo tempo na parede ?
se for o caso e somarca a opção solid no obj_chao no obj_parede depois va no personagem e adciona a colisão com o objeto e coloque esse codigo
Código: Selecionar todos
move_contact_solid(direction,2);
vspeed=0;
mas se vc quer que ele pare de andar nos 2 use esse
Código: Selecionar todos
move_contact_solid(direction,0);
vspeed=0;
Re: Ajuda na colisão com parede?
Se o player colidir com um objeto solido,ele fique com a hspeed 0(quero que ele pare de ficar flutuando quando colidir com a parede)
Mister J-Game Maker
Re: Ajuda na colisão com parede?
Edit:
Faça uma variavel de movimento hsp ou vsp ou use o vspeed ou hspeed msm.
No comando de movimentação Esqueda e direita e etc...
Ai voce muda no X do if se e 1 pixel horizontal ou vertical
Faça uma variavel de movimento hsp ou vsp ou use o vspeed ou hspeed msm.
No comando de movimentação Esqueda e direita e etc...
Código: Selecionar todos
esquerda = -keyboard_check(.........)
direita = keyboard_check(.......)
//Aqui vai fazer uma verificação se não apertar nada mov = 0, mais se apertar direita ela vai valer 1, se esquerda -1.
mov = direta + esquerda
//Ele faz uma verificação se seu player encostar no objeto ele para, mais enquanto não estiver encostando ele pode se mover
//Colisão Horizontal
//Sign vai voltar o valor inteiro nunca fracionado
if place_meeting (x+sign(mov),y,obj_parede){
while(!place_meeting(x+sign(mov),y,obj_parede)){
hsp += sign(mov)
}
hsp = 0
}
x += hsp * movespeed "Sua variavel de velocidade"
//Vertical colisão
//Sign vai voltar o valor inteiro nunca fracionado
if place_meeting (x,y+sign(mov),obj_parede){
while(!place_meeting(x,y+sign(mov),obj_parede)){
vsp+= sign(mov)
}
vsp = 0
}
y += vsp
Editado pela última vez por Ark em Dom Jun 19, 2016 9:27 pm, em um total de 2 vezes.
Quem está online
Usuários navegando neste fórum: Semrush [Bot] e 3 visitantes