Página 1 de 1

[ RESOLVIDO ] Efeito parallax usando objetos

Enviado: Ter Jul 25, 2017 1:59 pm
por AdrianoPpaula
Fala pessoal blz? Retornando as atividades aqui \0/

Então, dessa vez estou aqui com problema que estou passado e que está quase sendo resolvido mas preciso de algumas sugestões, vamos lá

Estou recentimente trabalhando no cenario do jogo. Porem pintou um problema, existe um objeto que possui uma certa animacão. Esse objeto faz parte do cenario e deve ficar na frente do personagem e o pior esses objetos devem se comportar como backgrounds com efeito parallax. Atualmente fiz da seguinte maneira


If player.hspeed > 0 { x += 1 }
If player.hspeed < 0 { x -= 1 }

Resumidamente fiz com essa ideia simples e até que funcionou mas da bugs pois se o personagem se mover muito rápido o cenario n volta pro lugar certinho.

Re: [80%] Efeito parallax usando objetos

Enviado: Qua Jul 26, 2017 11:31 am
por All-x
Pra ficar bem posicionado o mais correto seria fazer em relação à própria view, e não ao player.

Vou considerar que você quer manter a posição inicial do objeto.

No Step:

Código: Selecionar todos

x = xstart - (view_xview[0] * 1.25);
Ou seja o objeto vai passar 25% mais rápido pela tela.

Se fosse para um objeto no fundo só trocar o 1.25 por 0.75, por exemplo, sendo 25% mais lento.

Espero que ajude.

FLWS!

Re: [80%] Efeito parallax usando objetos

Enviado: Qui Jul 27, 2017 8:59 am
por AdrianoPpaula
Poxa brigadão mesmo funcionou perfeitamente dessa maneira, antes o cenário estava deslizando descontroladamente mas agora tudo está perfeito!
Eu fiz da seguinte forma usando a sua resposta pra poder criar vários objetos que se comporta como parallax.

Criei 4 grupos de objetos: frente, frente_2 ,frente_3, frente_4
ai no draw do parente desses objetos fiz assim

Código: Selecionar todos

if frente=true {

    //MOVIMENTO PARALLAX 1
    x = xstart - (view_xview[0] * 0.1);
}


if frente_2=true {

    //MOVIMENTO PARALLAX 2
    x = xstart - (view_xview[0] * 0.2);
}

if frente_3= true {

    //MOVIMENTO PARALLAX 3
    x = xstart - (view_xview[0] * 0.3); 
}

if frente_4= true {
    //MOVIMENTO PARALLAX 4
    x = xstart - (view_xview[0] * 0.4);
}
ai na room eu coloco qualquer objeto parent e vou no creation code por exemplo

Código: Selecionar todos

depth=-3;
frente_3=true;
Dessa forma posso fazer qualquer objeto na room se comportar com a profundidade e movimento parallax, tipo criando layer para os cenários de maneira rustica ^^