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

时间:2013-11-15 11:46:47

标签: ios cocos2d-x depth-buffer

我正在使用cocos2d-x中的等距tilemap,我面临的一个问题与深度管理有关。玩家精灵没有正确地隐藏在放置在不同图块地图上的树木和房屋后面。我已将 cc_vertexz = -1000 应用于背景自动应用于住宅和环境层,我正在设置vertexZ使用下面的方法,由update调用。

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(真);   CCDirector :: SharedDirector() - > setProjection(kCCDirectorProjection2D);

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

1 个答案:

答案 0 :(得分:0)

假设平铺坐标的格式类似于(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);