Abh*_*nay 2 cocos2d-iphone ipad retina-display
我找到了一个修复,以支持我的cocos2d游戏的iPad视网膜显示.当我在ipad视网膜模拟器中以纵向模式运行游戏时,它无法显示任何内容.但当我将默认设置从kCCDirectorProjection3D更改为kCCDirectorProjection2D时,它开始正常工作.
我想知道kCCDirectorProjection2D/kCCDirectorProjection3D到底做了什么?更改默认设置会导致任何问题吗?
谢谢阿比纳夫
3D投影(默认):
zOrder酒店影响订单.zOrder与z in相同addChild:z:.
看一下图片,你必须想象你的节点都是在相同的深度绘制的,例如直接在背板上绘制.因此它们都以相同的尺寸出现.仅通过以特定顺序呈现每个节点来实现节点的正确重叠.
您仍然可以通过改变节点的真实OpenGL渲染深度,vertexZ但不建议在3D投影中使用,因为它会产生由于3D投影而导致节点稍微偏离其位置的效果.
2D投影:
vertexZ属性顺序绘制,优先于zOrder.vertexZ也会影响节点的大小.如果您进行了更改vertexZ,则必须在EAGLView中启用深度缓冲才能正确渲染.这通常用于正确渲染等距贴图中的重叠切片.
使用2D投影,您现在可以使用任何深度移动精灵,vertexZ而不会偏移节点位置.但是,除非启用深度缓冲,否则您的节点将根据其vertexZ属性显示为更小或更大.
如果不更改vertexZ任何节点的属性,2D Projection应该为3D Projection提供相同的结果.但是,某些节点或操作可能需要3D Projection才能正常工作.
如果您想了解有关OpenGL投影矩阵的所有细节,请查看该句末尾的链接.
两个预测都具有相同的性能特征.但是,在不使用时启用2D投影vertexZ通常只在使用tilemaps时才有意义.
长话短说:只要您的应用程序在2D投影中工作正常并且在彻底测试后没有显示错误,您应该没问题.
但我确定这不是iPad Retina的正确解决方案.据我们所知,直到3月16日,这可能只是在iPad Retina模拟器中出现的问题.并且更有可能通过更新CCDirector的视网膜模式功能来修复该问题.