Как нарисовать линию в верхнем z-oder - PullRequest
2 голосов
/ 17 апреля 2011

Я хочу нарисовать линию, соединяющую два спрайта, но я не могу этого сделать в этом случае:

//add Map Background
        map = [CCTMXTiledMap tiledMapWithTMXFile:@"orthogonal-test-zorder.tmx"];
        [self addChild:map z:1 tag:kTagTileMap];
//overite draw function
- (void)draw {

    glColor4f(0.8, 1.0, 0.76, 1.0);  
    glEnable(GL_LINE_SMOOTH);
    ccDrawLine( ccp(0, 0), ccp(150, 150) );
}

линия не отображается на экране, если я удаляю фон карты, она отображается.

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011

Я не знаю Cocos2D, так что это только дикие догадки, но параметр z в [self addChild: map z: 1 tag: kTagTileMap];кажется, смещение по аз.Поскольку 1 будет перед 0 (вероятное значение по умолчанию), ваша карта будет отображаться перед вашей линией.Попробуйте [self addChild: map z: -1 tag: kTagTileMap];

0 голосов
/ 20 апреля 2013

Я описал ту же проблему 2 дня назад.

Мое решение - создать отдельный MyLineLayer, который только рисует линию.Тогда вы можете установить z-индекс CCLayer на вершину.

Я думаю, что использование MyLineLayer с оболочкой будет лучше, чем уменьшение z-индекса карты тайлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...