关于cocos2d中fast tilemap出现黑线的解决方案

有关cocos2d中tilemap在移动时出现黑线的解决方案,我在上一篇文章里已经写过了,这里直接贴上链接:

http://blog.csdn.net/aabbcc729/article/details/54251613

转载请注明出处

后来我又仔细测试了一下,发现fast tilemap的创建不会调用到Sprite里的setTextureCoords方法,

所以不管是修改CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL宏定义还是继承Sprite类重写setTextureCoords方法,都只能解决tilemap移动出现黑线的问题,

对于fast tilemap,我想既然不是通过sprite实现的,那么就是fast tilemap自己实现的。然后参考了Sprite的setTextureCoords方法,到ccFastTMXLayer文件下去找。

果然被我找到了。在updateTotalQuads函数里,

// texcoords
                Rect tileTexture = _tileSet->getRectForGID(tileGID);
                left   = ((tileTexture.origin.x+0.5f) / texSize.width);
                right  = left + ((tileTexture.size.width-1.0f) / texSize.width);
                bottom = ((tileTexture.origin.y+0.5f) / texSize.height);
                top    = bottom + ((tileTexture.size.height-1) / texSize.height);

修改以上4处就可以了。因为这里没有if+宏定义的判断,直接修改就好了,其实就相当于把原来宏为0的执行语句改为宏为1的执行语句了。建议先看开头提到的文章。

以上就是cocos2d fast tilemap移动出现黑线问题的解决方案。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值