我在 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/