精灵的遮挡效果:
理论:
1. tiled map 的 VertexZ 计算方法在int TMXLayer::getVertexZForPos(const Vec2& pos)
2。
地图方向选择正常,
VertexZ 的值是按行来计算。每一行的tile都是相同的VertexZ ,由上到下VertexZ值逐行递增。
3。tilemap的layer的 VertexZ值是默认为0的。需要在属性中设置
,才会为该layer的tile自动设置Z值,并且Z值小于0。
因此,其它layer也要手动设置小于0的z值。
4。 cocos2dx 需要开启openGL深度检测后,Z值排序才生效。director->setDepthTest(true);
5.通过给精灵设置PositionZ,则可以实现动态遮挡的效果。m_displayModule->getDisplayNode()->setPositionZ(ret);
无论精灵的parent是否是tilemap。
6。 精灵的PositionZ计算公式可以去TMXLayer::getVertexZForPos获得