kobold2d tilemap瓷砖之间的黑色间隙

时间:2013-09-21 17:26:53

标签: cocos2d-iphone tile kobold2d

我正在做一个标准的kobold2d tilemap游戏,我试图从tilemap编辑器加载一个tile map,一个.tmx文件

标准代码非常简单:

-(id) init
    {
        self = [super init];
        if (self)
        {
            // add init code here (note: self.parent is still nil here!)
            CCTMXTiledMap *tiledMap = [CCTMXTiledMap   tiledMapWithTMXFile:@"background.tmx"];
            [self addChild:tiledMap z:-1];
            tiledMap.position = CGPointMake(-500, -300);

            for( CCTMXLayer* child in [tiledMap children] ) {
                [[child texture] setAntiAliasTexParameters];
            }


            // uncomment if you want the update method to be executed every frame
            //[self scheduleUpdate];
        }
        return self;
    }

我的tilemap是 40x35 图块,每个图块为: 64x64 像素。

但是,我得到了以下结果,看起来在图层的每一行之间都有一条黑线:

broken black line between lines

我的tilemap看起来像:

enter image description here

1 个答案:

答案 0 :(得分:1)

cocos2d中相当标准的tilemap问题。

快速修复在ccConfig.h中称为“通过拉伸纹素来修复工件”,但它是一种带有混叠副作用的黑客解决方法,尤其是在缓慢滚动或缩放时可见。

实际修复需要将tmx节点,其父节点和所有祖父母的所有位置设置为精确的像素位置。在非Retina设备上,这意味着将x / y坐标转换为int,在Retina设备上,它意味着舍入到下一个最近的0.5坐标(即10.3变为10.5,10.8变为11.0)。

PS:KoboldTouch和Kobold Kit(精灵套件)tilemap渲染器没有此黑线伪影问题。