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.

duvida com plataformas

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
186557
Programador
Programador
Reações: 0
Mensagens: 28

duvida com plataformas

Mensagem por 186557 » Ter Dez 18, 2018 1:10 am

Novamente tenho mais uma duvida. Eu tentei fazer uma plataforma que se move na horizontal e quando
colide em um objeto especifico (chao ou parede por exemplo) ela se move na direção oposta.

Minha duvida é que o player sobe na plataforma mas continua na mesma posição sem ser levado pela plataforma. Pelo oque
eu pesquisei esse é um erro bem comum nas plataformas mas não consegui encontrar um codigo que funcionasse.

Create da plataforma:

dir = -1;
movespeed = 3;
hsp = 0;

Step:

hsp = dir * movespeed

if (place_meeting(x+hsp,y,obj_terra))
{
while(!place_meeting(x+sign(hsp),y,obj_terra))
{
x += sign(hsp);
}
hsp = 0;

dir *= -1;
}
x += hsp;

Alguem conheçe algum codigo que possa funcionar?

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: duvida com plataformas

Mensagem por None » Ter Dez 18, 2018 10:50 am

Na teoria você só precisa checar se a plataforma está colidindo com o player
Se sim, então você da para o player a velocidade horizontal da plataforma.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Avatar do usuário
186557
Programador
Programador
Reações: 0
Mensagens: 28

Re: duvida com plataformas

Mensagem por 186557 » Qua Dez 19, 2018 1:09 am

Ok, vou testar isso.
Hoje eu resolvi criar outra plataforma com outro codigo, mas (como sempre) houve um problema.
Na teoria a plataforma se movimenta para um lado e quando o alarme é acionado a plataforma se move na direção oposta, o problema é que a plataforma começa a se mover em uma direção, quando o alarme é acionado ela se move na direção contraria, mas ao inves do alarme ser acionado de novo para a plataforma trocar a direção ela continua se movendo na mesma direção, como eu faço para o alarme ser acionado sempre e não só uma vez?

create da plataforma:
reserve_direction = 1;
hspeed = 2;

alarm 0:
hspeed = -hspeed;
reverse_direction = 1;

step:
if reserve_direction = 1 {
alarm[0]=60;
reserve_direction = 0;
}

Tem algum erro nos codigos?

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: duvida com plataformas

Mensagem por None » Qua Dez 19, 2018 9:05 am

Parece que você quer que a cada 60 steps ele mude de direção, certo?
Então coloca o alarm[0] = 60 dentro do create event e no final do evento do alarme.
O step event no seu caso é desnecessário
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Avatar do usuário
186557
Programador
Programador
Reações: 0
Mensagens: 28

Re: duvida com plataformas

Mensagem por 186557 » Qua Dez 19, 2018 10:25 pm

Ok, esta tudo funcionando. Mas e se eu criar uma segunda plataforma como eu faço para o codigo de colisão do player com a plataforma1 funcionar para a plataforma2 tambem?

Codigo de colisão do player com a plataforma1:

if position_meeting(x-sprite_xoffset+sprite_width/2,y-sprite_yoffset+sprite_height,obj_plataforma){
objID=instance_position(x-sprite_xoffset+sprite_width/2,y-sprite_yoffset+sprite_height,obj_plataforma)
hspeed = objID.hspeed;
}else{
hspeed:=0;
}

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: duvida com plataformas

Mensagem por None » Qua Dez 19, 2018 11:27 pm

Você cria um terceiro objeto e faz com que ele seja o parent de ambas as plataformas, então com o player você checa a colisão com o objeto pai.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Responder

Quem está online

Usuários navegando neste fórum: Bing [Bot] e 0 visitante