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 NA COLISÃO] Tópico resolvido
[ PROBLEMA NA COLISÃO] Tópico resolvido
opa tudo bom, eu comecei a fazer um jogo top/down no estilo de rpg msm (sou iniciante em programação), mas indo pro problema , quando o personagem encosta nos blocos que ´pra ele colidir o personagem só teleporta pra algum lugar aleatório
meu código de colisão:
function scr_personagem_colisao(){
if place_meeting(x + hveloc, y, obj_parede )
{
while !place_meeting(x +sign(hveloc) , y, obj_parede)
{
x += sign(veloc);
}
hveloc = 0;
}
//
x += hveloc;
//Colisão vertical
if place_meeting(x, y + vveloc, obj_parede)
{
while !place_meeting(x ,y + sign(vveloc),obj_parede)
{
y += sign(veloc);
}
vveloc = 0;
}
y += vveloc;
}
meu código de colisão:
function scr_personagem_colisao(){
if place_meeting(x + hveloc, y, obj_parede )
{
while !place_meeting(x +sign(hveloc) , y, obj_parede)
{
x += sign(veloc);
}
hveloc = 0;
}
//
x += hveloc;
//Colisão vertical
if place_meeting(x, y + vveloc, obj_parede)
{
while !place_meeting(x ,y + sign(vveloc),obj_parede)
{
y += sign(veloc);
}
vveloc = 0;
}
y += vveloc;
}
Re: [ PROBLEMA NA COLISÃO]
À principio nada de errado com o código. scr_personagem_colisao() Tem que estar no evento Stepdo seu personagem e você tem que estar usando hveloce vvelocpara mover seu personagem.
Um código sempre depende dos outros. Pode ser que tu esteja usando hspeede vspeed, só vendo o restante dos códigos pra saber com 100% de certeza.
Um código sempre depende dos outros. Pode ser que tu esteja usando hspeede vspeed, só vendo o restante dos códigos pra saber com 100% de certeza.
Re: [ PROBLEMA NA COLISÃO]
opa meu bom , então tentei tentei e não consegui resolver da ai apaguei todo o cenario q eu tinha feito com as layers , da ai tinha voltado a funcionar mas quando eu encostei em um bloco de colisão de baixo pra cima
(tipo dando uma cabeçada na parede) o jogo só trava eu n sei se é problema com o meu game maker ou não tem como me da uma força?
link do projeto :
(tipo dando uma cabeçada na parede) o jogo só trava eu n sei se é problema com o meu game maker ou não tem como me da uma força?
link do projeto :
Re: Re: [ PROBLEMA NA COLISÃO]
Jovem, use a opção exportar (Ctrl + E), não consegui abrir aqui, da erro.
Re: Re: [ PROBLEMA NA COLISÃO]
Você mandou o mesmo arquivo, mesmo link. Use a opção exportar (Vai gerar um único arquivo de extensão YYZ) ou poste mais detalhes.
Removi os outros tópicos duplicados, leia as regras: /viewtopic.php?f=118&t=4
Removi os outros tópicos duplicados, leia as regras: /viewtopic.php?f=118&t=4
Re: [ PROBLEMA NA COLISÃO]
opa tudo bem?
aqui eu exportei o projeto no mega:
https://mega.nz/file/LUMhUS7Z#UNLSlfJBR ... EB2JC6mjSA
qualquer coisa me chama no discord :Yoki#8220
aqui eu exportei o projeto no mega:
https://mega.nz/file/LUMhUS7Z#UNLSlfJBR ... EB2JC6mjSA
qualquer coisa me chama no discord :Yoki#8220
Re: [ PROBLEMA NA COLISÃO]
o problema é literalmente o personagem qnd pare na horizontal do bloco de colisão a janela do jogo so trava ,(da ai eu tenho q fechar pelo o gerenciador de tarefas) , img:
exatamente assim qnd eu encosto ali o jogo so trava
estou a uns 3 dias tentando resolver isso e n consigo o link do projeto pelo o mega:
https://mega.nz/file/LUMhUS7Z#UNLSlfJBR ... EB2JC6mjSA
exatamente assim qnd eu encosto ali o jogo so trava
estou a uns 3 dias tentando resolver isso e n consigo o link do projeto pelo o mega:
https://mega.nz/file/LUMhUS7Z#UNLSlfJBR ... EB2JC6mjSA
Re: [ PROBLEMA NA COLISÃO]
Aparentemente era no primeiro script mesmo. A variável veloc está sendo usada no lugar errado.
Só substituir o primeiro código que postou por esse abaixo, apenas substitui o velocda checagem horizontal por hveloc e na checagem horizontal por vveloc.
Só substituir o primeiro código que postou por esse abaixo, apenas substitui o velocda checagem horizontal por hveloc e na checagem horizontal por vveloc.
Código: Selecionar todos
function scr_personagem_colisao()
{
if place_meeting(x + hveloc,y,obj_parede)
{
while !place_meeting(x +sign(hveloc), y,obj_parede)
{
x+=sign(hveloc);
}
hveloc = 0;
}
x+= hveloc;
if place_meeting(x, y+vveloc,obj_parede)
{
while !place_meeting(x, y+sign(vveloc),obj_parede)
{
y+=sign(vveloc);
}
vveloc = 0;
}
y+=vveloc;
}
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes