1

我正在做一个标准的 kobold2d tilemap 游戏,我试图从 tiledmap 编辑器加载一个 .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像素。

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

线条之间的黑色虚线

我的 tilemap 看起来像:

在此处输入图像描述

4

1 回答 1

1

cocos2d 中非常标准的 tilemap 问题。

快速修复在 ccConfig.h 中被称为“通过拉伸纹素修复工件”,但它是一种具有混叠副作用的 hack-ish 解决方法,特别是在缓慢滚动或缩放时可见。

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

PS:KoboldTouch 和 Kobold Kit (Sprite Kit) 瓦片地图渲染器没有这个黑线伪影问题。

于 2013-09-21T19:30:32.380 回答