Cocos2d iphone kobold2d瓷砖贴图瓷砖之间的黑色间隙

Cocos2d iphone kobold2d瓷砖贴图瓷砖之间的黑色间隙,cocos2d-iphone,tile,kobold2d,Cocos2d Iphone,Tile,Kobold2d,我正在做一个标准的kobold2d tilemap游戏,我试图从从tilemap编辑器加载一个tile贴图开始,一个.tmx文件 标准代码非常简单: -(id) init { self = [super init]; if (self) { // add init code here (note: self.parent is still nil here!) CCTMXTiledMap *t

我正在做一个标准的kobold2d tilemap游戏,我试图从从tilemap编辑器加载一个tile贴图开始,一个.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;
    }
“我的瓷砖贴图”是一个40x35瓷砖,每个瓷砖为:64x64像素

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

我的tilemap看起来像:


cocos2d中相当标准的tilemap问题

该快速修复在ccConfig.h中被称为“通过拉伸texel修复工件”,但它是一种带有锯齿副作用的黑客解决方法,在缓慢滚动或缩放时尤其明显

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


注:KoboldTouch和KoboldKit(Sprite Kit)tilemap渲染器没有黑线瑕疵问题。

CoCoCos2D中相当标准的tilemap问题

该快速修复在ccConfig.h中被称为“通过拉伸texel修复工件”,但它是一种带有锯齿副作用的黑客解决方法,在缓慢滚动或缩放时尤其明显

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

注:KoboldTouch和KoboldKit(精灵工具包)tilemap渲染器没有黑线瑕疵问题