在CCSprite上画线?

时间:2012-01-12 04:50:21

标签: iphone ios cocos2d-iphone core-graphics

我在游戏中添加CCsprite作为背景图像。现在我希望用户根据他的触摸在该CCSprite上绘制线条。没有添加精灵作为背景时,绘制工作正常。但是当我添加精灵时,这条线在精灵上是看不到的,但我想它是在背景上绘制的。 我如何在精灵上画线而不是在它后面?

我是否必须在图形上下文中获取图像并使用核心图形而不是ccsprite来绘制它...它会起作用吗?

我在以下代码的帮助下画线 -

-(void) draw
{
    // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
    // Needed states:  GL_VERTEX_ARRAY, 
    // Unneeded states: GL_TEXTURE_2D, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
    glDisable(GL_TEXTURE_2D);
    glDisableClientState(GL_COLOR_ARRAY);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);


NSMutableArray *arr =[NSMutableArray arrayWithArray:pointTouches];

world->DrawDebugData();

glEnable(GL_LINE_SMOOTH);

glColor4f(1.0, 1.0, 1.0, 0.0);

for(int i = 0; i < [arr count]; i+=2)
{
    CGPoint startPoint = CGPointFromString([arr objectAtIndex:i]);

    CGPoint endPoint = CGPointFromString([arr objectAtIndex:i+1]);

    ccDrawLine(startPoint, endPoint); 
    //start point and end point are updated on in CCTouchesMoved
    //ccDrawQuadBezier(startPoint, ccp(160,240), endPoint, 1);
}

// restore default GL states
glEnable(GL_TEXTURE_2D);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

}

0 个答案:

没有答案