kobold2d tilemap черные промежутки между тайлами

Я делаю стандартную игру 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;
    }

с моей картой плитки представляет собой плитку 40x35, где каждая плитка имеет размер:64x64 пикселя.

Однако я получил следующий результат, который выглядит так, будто между каждой строкой слоя есть черная линия:

черная ломаная линия между строками

как выглядит моя тайловая карта:

введите здесь описание изображения


person phil88530    schedule 21.09.2013    source источник


Ответы (1)


Довольно стандартная проблема с тайловой картой в cocos2d.

Быстрое исправление называется «исправить артефакты путем растяжения текселей» в ccConfig.h, но это хакерский обходной путь с побочными эффектами сглаживания, особенно заметными при медленной прокрутке или масштабировании.

Фактическое исправление требует установки всех позиций узла tmx, его родителя и всех бабушек и дедушек в точные позиции пикселей. На устройстве без Retina это означает приведение координат x/y к типу int, на устройстве Retina это означает округление до следующей ближайшей координаты 0,5 (т. е. 10,3 становится 10,5, 10,8 становится 11,0).

PS: Рендереры тайловых карт KoboldTouch и Kobold Kit (Sprite Kit) не имеют этой проблемы с артефактами черных линий.

person LearnCocos2D    schedule 21.09.2013