使用 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 投影的充分理由是什么? 的相关文章

  • Cocos2D 中的评分系统

    我的游戏有碰撞检测功能 当我的导弹击中敌人时 敌人就会消失 我想添加一个评分系统 每次我的导弹击中敌人时都会增加 1 分 我将在下面发布我的游戏代码 我使用了HelloWorldLayer m 这是代码 Link http pastebin
  • Cocos2d 肖像模式在 iPhone 上不工作

    我正在构建一个 cocos2d 游戏 它应该处于纵向模式 我将 RootViewController m 更改为纵向模式 无论是在模拟器上还是在我的 iPad 上 一切都工作正常 然而 当我在 iPhone 上运行游戏时 它会默认回到横向模
  • 使 Box2d 对象遵循预定路径

    我正在制作一个游戏 其中某个对象 建模为 box2d 主体 必须遵循固定路径 有没有一种方法可以指定路径坐标并使对象在每个 dt 上前进 Thanks 另外一个选择 将鼠标关节连接到您的身体上 使用鼠标关节的setTarget方法来移动身体
  • 更改 Shapefile 的投影

    我正在尝试更改或分配德国形状文件的投影NA to proj longlat datum WGS84 no defs ellps WGS84 towgs84 0 0 0 但不知何故效果不佳 可重现的示例 可以下载Shapefile和其他文件h
  • RPG 游戏循环和类结构(cocos2D for iPhone)

    我想在 iPhone 上使用 Cocos2D 制作一款 RPG 我做了相当多的研究 我真的很喜欢 Cocos2D 用于场景的模型 我可以实例化一个场景 设置我的角色等 这一切都工作得非常好 我遇到的问题是构建游戏循环并将代码与场景分开 例如
  • 如何将球形贴图投影到球体/立方体上:“等距矩形到立方体”

    更新 我找到 http os ivrpa org panosalado wiki http os ivrpa org panosalado wiki 在java中有一个实现 谁有类似的 c 或 c 东西 我有这张全景图 来自谷歌街景的球形地
  • 如何使用 gdal 通过一个命令将 png 平铺的投影从 epsg:4326 转换为 epsg:3857

    我平铺了 png 文件 这些投影是 EPSG 4326 我使用以下 2 个命令将投影转换为 EPSG 3857 gdal translate of Gtiff a ullr 135 00000000000003 36 59788913307
  • 将 cocos2d 视图添加到 UIView

    我已将 cocos2d 2 0 集成到现有的 iOS 项目中 并希望能够创建一个视图并将其作为子视图添加到现有视图中 cocos2d 设置代码应该放在哪里以及 cocos2d 视图如何在 UIView 中可见 我已关注雷 文德利希教程 ht
  • iOS应用程序不会死,退出后写入控制台并播放声音

    我的应用程序有某种僵尸问题 不是 NSZombie 问题 就像是死而复生的问题 我首先注意到 在调试会话之后 当我去跑步时 iPhone 上的音乐会每隔约 7 分钟暂停一次 当我解锁设备时 应用程序名称会在状态栏中闪烁红色 就好像它正在运行
  • 在cocos2d中平滑拖动Sprite - iPhone

    我已经实现了对精灵对象的拖动 如下所示 BOOL ccTouchesMoved NSSet touches withEvent UIEvent event UITouch touch touches anyObject CGPoint lo
  • 如何在 Matlab 中计算 3D 网格的投影

    我正在尝试使用 matlab 从不同视图计算 3d 网格的 2d 投影 我现在使用的解决方案是绘制 3D 网格 旋转它并制作屏幕截图 我想知道是否有任何 matlab 内部函数或任何其他解决方案允许我在给定一组顶点和三角形的情况下计算投影而
  • cocos2d v3 在应用程序使用过程中重新定向屏幕

    所以在 cocos2d 中 我相信我使用的是 v2 1 我这样做是为了锁定和设置方向 AppDelegate delegate AppDelegate UIApplication sharedApplication delegate con
  • Pvr 在 cocos2d 3.2 版本中翻转:从 2.1 移植时的困境

    我目前正在将一个游戏从cocos2d 2 1版本移植到3 2版本 我们有超过 3600 个未翻转的 pvr gz 文件 例如在 2 1 下生成和工作的文件 我们使用TexturePacker测试了pvr图像的flipY选项 并且确实有足够的
  • cocos2d中捏合时如何缩放精灵?

    我正在开发一个应用程序 我必须显示 50 到 70 个图像 精灵 我制作了一个滚动条 可以滚动所有这些图像 但我也想缩放这些图像 我一直在关注 http ganbarugagames com 2010 12 detecting touch
  • 《How To Make a Tile-Based Game with Cocos2D 2.X》用cocos2d V3制作本教程

    我有一个小问题 在本教程中如何使用 Cocos2D 2 X 制作基于图块的游戏 http www raywenderlich com 29458 how to make a tile based game with cocos2d 2 x使
  • 投影 - 将 3d 转换为 2d

    我有问题或者很好 我不知道如何将具有 x y z 值的 3d 点转换为 2d 点 我必须绘制投影 其中我确实有点的 x y z 值 但我不知道如何将它们转换为 2d 以便我可以将它们移动到我的轴上 我一直在浏览维基和谷歌 但是我不太确定应该
  • Xcode C++ 和 Objective-C 重构

    有没有办法refactorXcode 中的混合 C Objective C 代码 我正在使用 Cocos2D 和 Box2D 编写游戏 而 Box2D 是用 C 编写的 因此我编写的每个类都应该具有 mm 扩展名 因此当我尝试例如重命名变量
  • 如何在cocos2d中测试精灵碰撞?

    我如何开始实现精灵碰撞类 正如 Eric 指出的 CGRectIntersectsRect 是测试两个边界矩形是否重叠的方法 使用 CCNode 类的boundingBox 方法获取每个精灵 或其他节点 的正确边界框 在这里查看我的回答 C
  • Cocos2D中如何让物体对触摸做出反应?

    好吧 我开始更多地了解 Coco2D 但我有点沮丧 我发现的很多教程都是针对过时版本的代码 因此当我浏览并了解它们如何执行某些操作时 我无法将其翻译成我自己的程序 因为很多都发生了变化 话虽如此 我正在使用最新版本的 Coco2d 版本 0
  • 设置正确的 cocos2d 方向

    在我的 cocos2d 应用程序中 在我的应用程序委托的 applicationDidFinishLaunching 方法内 我通过 director setDeviceOrientation kCCDeviceOrientationPor

随机推荐