使用 cocos2d-iphone 启用 2D 投影的充分理由是什么?

2023-12-03

在cocos2d-iphone中,默认的投影类型是“3D”投影。但您也可以将投影设置为“2D”,如下所示:

[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];

在幕后,3D 投影使用透视投影,而 2D 投影是 OpenGL 正交投影。关于这两种投影模式的技术细节可以在这里查看, 那是not我感兴趣的事情。

2D 投影对于 cocos2d 用户来说有哪些优点和缺点?切换到 2D 投影的充分理由是什么?

就我个人而言,我使用 2D 投影能够对等距图块地图使用深度缓冲。等距图块地图需要这样才能正确地对图块地图上的图块和对象进行 z 排序。

我还在非图块地图项目中使用了具有深度缓冲的 2D 投影,以通过 vertexZ 属性获得完整的 z 顺序控制。该项目使用伪等距显示,其中对象的顶点 Z 基于其 Y 坐标。

这意味着我一直使用 2D 投影只是为了能够使用 vertexZ 属性,这也需要启用深度缓冲。还有其他原因可能导致人们想要切换到 2D 投影吗?


在以下情况下,切换到 2D 投影可以挽救生命:

  1. 您创建了一个大的 CCRenderTexture

  2. 你可以使用 [...访问] 或 OpenGL 绘图函数在上面绘制一堆东西

  3. 您将渲染纹理添加到图层中,例如,以便将第 2 点中绘制的内容用作游戏的背景。

通过 3D 投影,纹理将呈现为垂直和/或水平断层线。参见例如,http://www.cocos2d-x.org/boards/6/topics/16197这是针对 cocos2d-x 的,但我观察到 cocos2d-iphone 也有同样的效果,并将投影设置为 2D 解决了这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 cocos2d-iphone 启用 2D 投影的充分理由是什么? 的相关文章

随机推荐