2009-12-15 5 views
1

J'ajoute des objets "layer" à la scène avec une valeur de profondeur. J'ai ensuite créé ma propre classe d'appareil photo. Quand je dis à la caméra de se déplacer vers la droite, ce que je suis en train de faire, c'est de dire à chaque objet de la couche de se déplacer vers la gauche.Essayer de créer un effet de parallaxe en flash AS3

La distance que la couche déplacé vers la gauche est basée sur la valeur de sa variable de profondeur ...

var fCameraDepth = 1; 
var fTan:Number = Math.tan(fCameraMovement/fCameraDepth); 
oLayer.x += fTan * fLayerDepth 

Cela fonctionne bien et me donne un effet de parallaxe vraiment agréable. Le problème que je suis est que je veux être en mesure de dire à la caméra de regarder un clip sur n'importe quel calque, mais j'ai du mal à comprendre comment convertir les coordonnées des clips vidéo à la profondeur des caméras.

Im essayer quelque chose comme ça ...

var fCameraDepth = 1; 
var fCameraPosition:Number = oCamera.x; 

// the layer will have a + or - x val compared to the camera so we 
// need to take that into account when getting the targets position 
var fTargetPosition:Number = oActor.x + oActor.getLayer().x; 
var fTargetDepth:Number = oActor.getLayer().getDepth(); 

var fTan:Number = Math.tan(fTargetPosition/fTargetDepth); 

var fTargetPositionAdjusted:Number = fTan * fCameraDepth; 

oCamera.x = fTargetPositionAdjusted; 

Mais la caméra vagabonde juste à côté de quelque part (pas près du clip)

Quelqu'un peut-il obtenir leur tête autour de cela?

Répondre

0

La profondeur de la caméra doit être relative à la couche - I.E., fCameraDepth - fTargetDepth.

Faire l'équation qui relie la position de la caméra à la position de l'objet. Puis inversez l'équation algébriquement. Ma conjecture est que cela impliquera atan. Pour une implémentation plus simple, je pourrais recommander que la profondeur soit simplement une variable entre 0 et 1. Les objets à 0 sont infiniment loin dans la distance, et les objets à 1 sont à la profondeur de la caméra. Faire cela se traduira par des mathématiques beaucoup plus faciles, qui n'impliquent pas tangente ou arc tangente.

Questions connexes