Página 1 de 1

Ajuda na colisão com parede?

Enviado: Sáb Jun 18, 2016 5:11 pm
por Mr.J
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? :go:
Uso o GameMaker 8 pro

Re: Ajuda na colisão com parede?

Enviado: Sáb Jun 18, 2016 5:37 pm
por nicoca
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 

Código: Selecionar todos

move_contact_solid(direction,2);

vspeed=0;
ele vai parar de andar tanto no chao e na parede 
mas se vc quer que ele pare de andar nos 2 use esse 

Código: Selecionar todos

move_contact_solid(direction,0);

vspeed=0;
espero ter ajudado não esquece de marcar o personagem como solido tabem

Re: Ajuda na colisão com parede?

Enviado: Dom Jun 19, 2016 8:48 pm
por Mr.J
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)

Re: Ajuda na colisão com parede?

Enviado: Dom Jun 19, 2016 9:11 pm
por Ark
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...
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
Ai voce muda no X do if se e 1 pixel horizontal ou vertical 

Re: Ajuda na colisão com parede?

Enviado: Dom Jun 19, 2016 9:20 pm
por Mr.J
Isso é no step?

Re: Ajuda na colisão com parede?

Enviado: Dom Jun 19, 2016 9:25 pm
por Ark
Sim no step do player.