ios - 如何在 cocos2d-x 的等距 tilemap 中设置 vertexZ 或适当的 zorder/如何在 cocos2d-x 的等距 tilemap 中应用适当的深度管理

标签 ios cocos2d-x depth-buffer

我在 cocos2d-x 中使用等距 tilemap,我面临的一个问题与深度管理有关。玩家 Sprite 没有正确地隐藏在放置在不同瓷砖 map 层上的树木和房屋后面。我已申请 cc_vertexz = -1000 背景 自动 房屋和环境层我正在使用以下由更新调用的方法设置顶点Z。

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);


但仍然无法获得适当的解决方案,请帮助我,让我知道我缺少什么。

最佳答案

假设平铺坐标的格式类似于 (x,y)

                         (0,0)
                      (1,0) (0,1) 
                   (2,0) (1,1) (0,2)
                (3,0) (2,1) (1,2) (0,3)

        So on........

    int a= _tileCor.x + _tileCor.y;
   _playerSprite->setZorder(a);

关于ios - 如何在 cocos2d-x 的等距 tilemap 中设置 vertexZ 或适当的 zorder/如何在 cocos2d-x 的等距 tilemap 中应用适当的深度管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20000379/

相关文章:

c++ - 为什么 GL_LEQUAL 推荐用于 GL 深度函数(为什么它对我不起作用)?

ios - iOS 上的跨应用数据交换

ios - 在 iOS 9 中从键盘隐藏剪切/粘贴面板

c++ - 使用自定义片段着色器的奇怪 y 位置偏移 (Cocos2d-x)

android - Cocos2D-X for android, Symbol 'cocos2d' 无法解析

swift - 如何在AR场景运行时提取SceneKit Depth Buffer?

OpenGL - BackCulling - 深度缓冲区值

objective-c - 如何解析不带引号的 JSON 及其 KEY 字符串?

iOS7 - TableView 标题中的多行文本?

ios - 当主线程被阻塞时,MBProgressHUD 没有及时显示