前端之家收集整理的这篇文章主要介绍了
(转载)CCTMXTiledMap使用的几个事项,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
转载:
项目中的地图层采用cocos2d-x中的CCTMXTiledMap,我们的整个tile层采用的是一个大整图,然后对里面的tile进行分格子,而且这些tile只有在一个整图上才能使用ccbatchnode 。
CCTMXTiledMap默认是不抗锯齿的,就是采用的是setAliasTexParameters,这一点可以在CCTMXLayer的setupTiles方法里进行设置的
- m_pobTextureAtlas->getTexture()->setAliasTexParameters();
使用默认的设置,会有个问题,就是当对地图进行缩放以后,再对map进行移动,这时有些map的tile块会闪动,在android的机器上特别明显,没有办法就改用了抗锯齿操作,没有
@H_
301_10@
if(map -> getChildren() != NULL && map -> getChildren() ->count() > 0)
{
CCObject* child;
CCARRAY_FOREACH(map -> getChildren(),child)
{
CCSpriteBatchNode* pNode = (CCSpriteBatchNode*) child;
if (pNode != NULL)
{
pNode->getTexture()->setAntiAliasTexParameters();
}
}
}
抗锯齿操作默认是没有问题的,,但是由于我们的地图块周围并没有预留额外的1-2个像素,用于抗锯齿操作时的保留像素,所以地图移动过程中,在某些地图块的边界上就会看到其在整图位置上周围像素的一些痕迹,造成一条条的白线,或者黑线,网上看到了好几个方案,最后发现在ccconfig.h中
修改一个变量就可以
解决这个问题