【发布时间】:2013-11-15 11:46:47
【问题描述】:
我在 cocos2d-x 中使用等距 tilemap,我面临的一个问题与深度管理有关。玩家精灵没有正确地隐藏在放置在不同瓷砖地图层上的树木和房屋后面。我已将 cc_vertexz = -1000 应用到 background 并将 automatic 应用到 house and enviornment layer 我正在设置vertexZ 使用以下由更新调用的方法。
void HelloWorld::repositionSprite()
{
CCPoint p = playerSprite->getPosition();
p = CC_POINT_POINTS_TO_PIXELS(p);
float newZ = -(p.y+16) /16;
playerSprite->setVertexZ( newZ );
}
我还在 AppDelegate 类中启用了以下功能。
CCDirector::SharedDirector()->setDepthTest(true); CCDirector::SharedDirector()->setProjection(kCCDirectorProjection2D);
但仍然无法获得适当的解决方案,请帮助我,让我知道我缺少什么。
【问题讨论】:
-
要让vertexZ工作,你必须启用深度缓冲,这应该在CCGLView初始化中
-
你说的是depthFormat吗?
-
是的,depthFormat 等于深度缓冲
-
它已经在 AppController.mm 中的方法 applicationdidFinishLaunchingWithOptions 中启用,您认为我在编码部分还缺少什么?我已经发布了我的代码。
标签: ios cocos2d-x depth-buffer