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.

[RESOLVIDO] Level Warp - mudando de room plataforma 2D

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
AdrianoPpaula
Membro
Membro
Reações: 0
Mensagens: 59
Localização: Quissamã RJ

Contato:

[RESOLVIDO] Level Warp - mudando de room plataforma 2D

Mensagem por AdrianoPpaula » Dom Fev 12, 2017 4:55 pm

Fala galera, estou tendo problemas com o sistema de mudança de room no meu jogo. eu fiz esse sistema seguindo um vídeo tutorial, é bem simples mas não funciona em jogos 2D somente em jogo topviews. Bom, o link do tutorial está aqui para quem quiser ver. vou fazer um resumo também para que não seja necessário assistir o vídeo.

Tutorial level warp - Inglês
https://www.youtube.com/watch?v=CSX-bZDsI28&t=73s


Bom, o sistema funciona da seguinte maneira:

primeiramente criei um objeto control e no  room_start dele coloquei

Código: Selecionar todos

global.pos_x= ob_player.xstart
global.pos_y= ob_player.ystart
no objeto player no evento room_start

Código: Selecionar todos

x= global.pos_x;
y= global.pos_y;
isso faz com que a posição do player fique de acordo com as variais global.

proximo objeto é o ob_warp ele praticamente é o objeto chave que ao contato com o player faz a transição das room e do posicionamento do player entra as roons.

No objeto player no evento colisão com o ob_warp

Código: Selecionar todos

global.pos_x= other.target_x;
[size=85][font=monospace][b]global.pos_y[/b][/font][/size]= other.target_y;
room_goto(other.target_r);
.
O segredo está exatamente nessa parte. as variáveis target são modificadas dentro da room fazendo com que possa criar varios posicionamento e enviar o player para qualquer room que quiser.

Bom na room onde está o ob_warp clique o com botão direito no objeto e vá em "Create Code" coloque dessa forma

Código: Selecionar todos

target_r= ro_castle_01;
target_x= 2838;
target_y= 828;
 Beleza terminamos o tutorial, lembrando que o ob_player deve ser persistent para funcionar.

Agora vem a minha dúvida, esse tutorial funciona para jogos topviews como ele  mostra no vídeo. porem para meu jogo que é um 2D plataforma não funciona pelo simples fato de se você for no canto da tela e pular quando ele aparecer na outra room ele estará no chão. isso porque definimos as coordenadas com ele no chão....então como fazer com que ele mantenha a altura dele do pulo e cair na outra room.


Um exemplo perfeito são os jogos castlevania onde o sistema de transição entre as room é suave vc pula e ele cai certinho entre as roons. 
Editado pela última vez por AdrianoPpaula em Seg Fev 13, 2017 7:44 am, em um total de 1 vez.
Imagem

Avatar do usuário
Dust
Membro
Membro
Reações: 0
Mensagens: 109
Localização: Santa Catarina

Re: [50%] Level Warp - mudando de room plataforma 2D

Mensagem por Dust » Dom Fev 12, 2017 9:48 pm

Bom... não sei se vai funcionar, mas acho que você deveria de expêrimentar algo do tipo...
Você poderia criar uma variavel que guardaria o y inicial do pulo, e um y da posição em que ele se encontra no pulo, tipo o valor Y1 seria o valor inicial antes dele pular, e Y2 a posição y dele armazenada durante o pulo.
Então os valores seriam subtraidos, formando um outro valor para uma nova variavel Y3, então na room start seria só somar com o valor Y3:

Código: Selecionar todos

x= global.pos_x;
y= global.pos_y+Y3;
//edit//
Na hora de subtrair, use Y2-Y1 invés de Y1-Y2, pois o Y2 ficara com o valor mais alto ja que armazenara o Y do pulo, ja o Y1 sera o valor inicial do pulo... se fizer ao contrario sera formado um numero negativo e ficara abaixo da posição y esperada... isso é o basico da matematica rsrsrs...

Avatar do usuário
AdrianoPpaula
Membro
Membro
Reações: 0
Mensagens: 59
Localização: Quissamã RJ

Contato:

Re: [50%] Level Warp - mudando de room plataforma 2D

Mensagem por AdrianoPpaula » Seg Fev 13, 2017 7:43 am

Funcionou perfeitamente! na hora de passar para outra room ele faz o calculo certinho pegando o valores da posição do pulo. O resultado final é uma transição suave. \o/ lol o/ o/
Imagem

Trancado

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes