Suponha que eu tenha três camadas: um primeiro plano, um meio intermediário e um segundo plano. O que está envolvido no uso dessas três camadas para criar rolagem de paralaxe ?
Suponha que eu tenha três camadas: um primeiro plano, um meio intermediário e um segundo plano. O que está envolvido no uso dessas três camadas para criar rolagem de paralaxe ?
Respostas:
Divida a posição de cada camada pela "distância" que você deseja que ela tenha da câmera.
Por exemplo: Crie algumas variáveis para representar a posição da câmera cameraX
e cameraY
. Defina-os para igualar a posição do seu personagem, possivelmente adicionando um pouco mais na direção do movimento.
A camada principal seria posicionada apenas em
mainLayer.x = -cameraX;
a camada do meio em algo como
middleLayer.x = -cameraX * 0.5;
e a camada mais distante em
farLayer.x = -cameraX * 0.2;
Mude as constantes conforme necessário.
Basicamente, você deseja que os objetos se movam mais rapidamente, quanto mais próximos eles estiverem da 'câmera'. Como você implementa isso é com você.
Atribuo uma profundidade a cada uma das minhas camadas e, em seguida, ao rolar a cena, divido esse rolo pela profundidade da camada, para que as camadas mais distantes se movam mais devagar.
A melhor maneira de fazer isso é simplesmente renderizar sprites como quads de outdoor em 3D. A "jogabilidade" pode acontecer em um único plano, enquanto o plano de fundo e o primeiro plano podem ser posicionados mais perto ou mais longe no espaço 3D. Dessa forma, o efeito de paralaxe é tratado para você sem que você precise fazer nenhuma codificação especial :-)