2012-06-09 19 views
4

看来我们可以显示图层,甚至在Core Animation中为不同的图层使用不同的zPosition - 但是,确实没有简单的方法来显示某些厚度的东西吗?核心动画和CALayer和CATransformLayer可以显示“厚度”的对象吗?

例如,一片厚度为2mm的奶酪,或者是一个按钮或一个倾斜的硬币,因此显示1mm的厚度?不知何故,厚度必须通过添加另一层来模拟厚度来显示?所以这个2.5D是一个更基本的2.5D,它是一个限于平面2D图像的3D世界......而一些2.5D,比如一些RPG游戏(如Diablo),有时也被称为2.5D,但是物体在那些情况下(如建筑物)实际上可以具有宽度,长度和高度(厚度)。所以实际上,这些对我而言实际上是3D的......除了大多数物体位于侧向倾斜的2D地图上。

所以回到刚才的问题......这是真的,在iOS上,它是相当限于2D平面图像的3D世界,去任何width X length X height将需要进入的OpenGL/CAEAGLLayer

+0

是不是2.5D厚度通常由阴影图像伪造? ''zPosition''控制组合顺序,我不认为它与3D效果有关系。 –

+0

与CATransformLayer,zPosition实际上可以影响图像的z坐标 –

回答

2

是的,这是真的。核心动画执行2D对象(图层)的3D动画。您可以通过构建复杂的对象组合来模拟厚度,在这些对象组合中为对象边缘添加图层,但这很痛苦。

OpenGL是一个更好的3D平台。

+0

是。根据你试图模拟厚度的情况,额外的图层可能工作得很好 - 比方说,对于快速投币,你可能只需将一些圆圈叠加在一起,并在z位置有所不同,然后翻转群组。如果动画短小,用户可能会注意到厚度的错觉,但可能无法捕捉到你如何制作它的技巧。 – rickster