在 cocos2d-iphone 中,默认的投影类型是“3D”投影。但您也可以将投影设置为“2D”,如下所示:
[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];
在幕后,3D 投影使用透视投影,而 2D 投影是 OpenGL 正交投影。这两种投影模式的技术细节可以在这里查看,这不是我感兴趣的。
二维投影对于 cocos2d 用户有什么好处和坏处?切换到 2D 投影的充分理由是什么?
就我个人而言,我使用 2D 投影能够将深度缓冲用于等距平铺地图。等距平铺地图需要此功能才能正确在平铺地图上对平铺和对象进行 z 排序。
我还在非 tilemap 项目中使用了带有深度缓冲的 2D 投影,以通过 vertexZ 属性获得完整的 z 顺序控制。该项目使用伪等距显示,其中对象的 vertexZ 基于其 Y 坐标。
这意味着我一直使用 2D 投影只是为了能够使用 vertexZ 属性,这也需要启用深度缓冲。是否还有其他原因可能想要切换到 2D 投影?