转:cocos2d-x 瓦片地图的黑线及地图抖动解决方案

本文转载自 cocos2d-x 瓦片地图的黑线及地图抖动解决方案

 

BUG 1:地图的每个图块之间有一些细密的间隔,特别是场景移动时更加明显,将游戏截图放大,可以很明显看到这个细线 

          解决方案:通过设置ccConfo.h中的CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL宏来解决。

             将  #define CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL 0   

             改为 #define CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL 1

             ccConfig.h位置:/cocos2dx/include/ccConfig.h

     解决大致原理是将贴图的适用范围改成99%,将纹理的四边形的范围缩小一圈

 

BUG2: 场景发生滚动过程中地图会抖动

     解决方案:我们可以通过给TiledMap的每个图层的纹理开启抗锯齿效果来解决这个问题

     具体代码如下:

     CCArray *pChildrenArray = map->getChildren();
     CCSpriteBatchNode *child = NULL;
     CCObject *pObject = NULL;
     CCARRAY_FOREACH(pChildrenArray,pObject){
  child = (CCSpriteBatchNode *)pObject;
  if(!child)
     break;
  child->getTexture()->setAntiAliasTexParameters();
     }

 

摘自《cocos2d-x 手机游戏开发》

 

下面是我自己的一点补充:

上面所说的瓦片地图的问题适用于cocos2d::TMXTiledMap,但是不适用于cocos2dx 3.2版本后出现的cocos2d::CCFastTMXTiledMap,如果使用的是快速瓦片地图的话,我找到的解决黑线的办法是在创建瓦片地图的新图块的时候,将边距和间距分别设置为 1像素,这样生成的tmx文件则不会产生黑线的情况。

posted @ 2015-03-31 11:23  -浮云骑士-  阅读(1517)  评论(0编辑  收藏  举报