Supposons que j'ai trois couches: un premier plan, un sol intermédiaire et un arrière-plan. En quoi consiste l'utilisation de ces trois couches pour créer un défilement de parallaxe ?
Supposons que j'ai trois couches: un premier plan, un sol intermédiaire et un arrière-plan. En quoi consiste l'utilisation de ces trois couches pour créer un défilement de parallaxe ?
Réponses:
Divisez la position de chaque couche par la «distance» que vous souhaitez qu'elle ait de la caméra.
Par exemple: créez quelques variables pour représenter la position de la caméra, cameraX
et cameraY
. Réglez-les pour égaler la position de votre personnage, en ajoutant éventuellement un peu plus dans le sens du mouvement.
La couche principale serait juste positionnée à
mainLayer.x = -cameraX;
la couche intermédiaire à quelque chose comme
middleLayer.x = -cameraX * 0.5;
et la couche éloignée à
farLayer.x = -cameraX * 0.2;
Modifiez les constantes selon vos besoins.
Fondamentalement, vous voulez que les objets se déplacent plus rapidement, plus ils sont proches de la «caméra». La façon dont vous implémentez cela dépend de vous.
J'attribue une profondeur à chacun de mes calques, puis en faisant défiler la scène, pour chaque calque, je divise ce défilement par la profondeur du calque, de sorte que les calques les plus éloignés se déplacent plus lentement.
La meilleure façon de le faire est de simplement rendre les sprites sous forme de quadrillages d'affichage en 3D. Le "gameplay" peut se produire sur un seul plan, tandis que l'arrière-plan et le premier plan peuvent être positionnés plus près ou plus loin dans l'espace 3D. De cette façon, l'effet de parallaxe est géré pour vous sans que vous ayez à faire de codage spécial :-)