2013-03-06 69 views
3

我正在使用actionscript 3.0实现一个简单的点球大战游戏。游戏的观点与旧的“感知足球世界”的观点相似。我想通过使用尺寸z来使用3D游戏逻辑,因为我认为它可以帮助我实现更好的碰撞检测 - 响应结果。不过,我希望保持图形风格和视图等同于旧的2d社区。因此,我认为正交投影适合于这种实现。尽管互联网上有大量关于正交投影的信息,但我对某人如何将其应用于他/她的代码中存在一些困惑。正投影 - 转换3d点到2d的过程是什么

所以我的问题是:

  • 哪一步程序步骤上采取专人转换3D(X,Y,Z)指向2D(X 'Y')点在正交投影?
  • 我们可以避免使用矩阵吗?如果是,将坐标x',y'与x,y,z相关联的方程是什么?
  • 在应用转换之前,我们是否必须定义相机的位置和角度?在我的情况下,相机将处于固定的位置和角度。
+0

http://stackoverflow.com/questions/665653/flash-10-orthographic-projection?rq=1 – 2013-03-06 10:46:59

回答

1

的DisplayObject和他们的后代(即影片剪辑和雪碧)有一个z属性,你可以用它来做到这一点没有头痛 - 他们也有的rotationX/Y/Z和的scaleX/Y/Z属性呢!

使用'z'可以相应地调整对象的位置和比例(虽然它会将矢量转换为位图),没有深度排序,所以即使它的z坐标表示它也会保持在对象的顶部应该在他们后面,但是对于您所考虑的项目,我无法看到这是一个问题 - 无论如何都很容易修复,在场景中有一组对象,根据z位置对其进行排序并重置深度每个索引/重新添加到按排序顺序的阶段。

可以使用的PerspectiveProjection成员剪辑的调整FOV,产地等 -

Perspective Tutorial

..但你不需要得到任何比这更复杂。当然,即使你想以实验的方式手动计算,你也不需要用固定的相机视图来测量矩阵。

希望这有助于