如何在最顶层的z-oder中绘制线条

时间:2011-04-17 09:16:10

标签: cocos2d-iphone

我想画线连接两个精灵,但在这种情况下我不能这样做:

//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 个答案:

答案 0 :(得分:2)

我不知道Cocos2D所以这只是疯狂的猜测,但是[self addChild:map z:1 tag:kTagTileMap]的z参数;似乎是一个z偏移。由于1将位于0(可能是默认值)的前面,因此您的地图将在您的线前呈现。试试[self addChild:map z:-1 tag:kTagTileMap];

答案 1 :(得分:0)

我在2天前遇到了同样的问题。

我的解决方案是制作一个单独的MyLineLayer,它只绘制线条。然后,您可以将CCLayer的z-index设置为顶部。

我认为使用封装的MyLineLayer会比使tile图的z-index更小更好。