2009-10-12 14 views
0

로드 할 때 배경이 멀리 보이게하려면 2000 위치에 .z 위치를 설정하는 영화 클립이 있다고 가정 해보십시오. 어떻게 세계에서 x 및 y 지점을 설정할 수 있습니까? 무대에 나타 납니까? 방정식이 있습니까?Actionscript에서 Z 위치 변경에 대한 오프셋 방정식이 있습니까?

예;

original.x = 200; 
original.y = 200; 
original.z = 0; 

new.z = 2000; 
new.x = original.x*10; 
new.y = original.y*10; 

답변

1

실제 x 및 y 점을 3D 공간 점으로 분리해야합니다 (저는 _x, _y 및 _z를 사용합니다). 멀리 떨어져있는 어떤 것이 든 기본적인 생각을 사용하면 소실점의 원점을 정의하고, 카메라의 렌즈를 생각하는 "초점 거리"를 정의하여 사물이 백그라운드에서 사라지는 속도를 정의해야합니다. 가치를 가지고 노는 시도를 해보겠습니다. 그러나 약 200 점 정도는 보통 상당히 잘 작동합니다. 이 AS2에 불구하고 (

my_mc._x = 0; 
my_mc._y = 0; 
my_mc._z = 200; 
var scaleRatio = focalLength/(focalLength + my_mc._z); 
my_mc.x = origin.x + my_mc._x * scaleRatio; 
my_mc.y = origin.y + my_mc._y * scaleRatio; 
my_mc.scaleX = my_mc.scaleY = scaleRatio; 

이 주제에 kirupa에서 정말 좋은 자습서가 시도이 하나 이 당신에게 my_mc에 당신에 영향을 미칠 할 개체가이 같은 간단한 무언가를 제공해야 이론은 동일합니다.) http://www.kirupa.com/developer/actionscript/3dexplore.htm

+0

감사합니다. 실제로 튜토리얼을보고 바로 가기를 찾고있었습니다. 어쩌면 저의 z 스케일링 된 물체가 무대 위에있는 곳을 최소한 제어 할 수있는 간단한 방정식 일 수 있습니다. 나는 내 머리 속의 다른면과 함께 그것을 실제로보아야 만한다. –

+0

글쎄, 만약 당신이 "거짓 관점"을 따른다면 z의 스케일 함수로 할 수 있습니다. 그것은 실제로 사용법에 달려 있습니다. 그것은 가장 단순한 "3D"시뮬레이터에서 발견되었습니다. – longstaff

관련 문제