如何让ccdrawline在cocos2d中绘制线条更流畅

时间:2012-07-02 09:32:59

标签: cocos2d-iphone

我尝试使用cocos2d进行跟踪手指游戏。

我移动手指写字母,结果如下:

http://www.freeimagehosting.net/m39l6

源代码:

-(void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event{
    CGPoint touchLocation = [self convertTouchToNodeSpace:touch];
    CGPoint oldTouchLocation = [touch previousLocationInView:touch.view];
    oldTouchLocation = [[CCDirector sharedDirector]convertToGL:oldTouchLocation];
    oldTouchLocation = [self convertToNodeSpace:oldTouchLocation];

    NSValue *oldVal = [NSValue valueWithCGPoint:oldTouchLocation];
    NSValue *val = [NSValue valueWithCGPoint:touchLocation];
    [trails addObject:oldVal];
    [trails addObject:val];

}

绘制方法:

-(void)draw{
    for (int i=0; i<trails.count-1; i++) {
           origin = ((NSValue *)[trails objectAtIndex:i]).CGPointValue;
           destination = ((NSValue *)[trails objectAtIndex:i+1]).CGPointValue;
           ccDrawLine(origin, destination); 
    }

}

我尝试过glEnable(GL_LINE_SMOOTH)。但这不适用于该设备。

任何想法如何修复红圈部分?

THX。

1 个答案:

答案 0 :(得分:0)

您使用的gl线宽大于iPhone上允许的最大值。当你超过这个数字时会发生这种情况,你得到那些奇怪的加上形状。你需要做的是使用CCRenderTexture像画笔一样连续画一个精灵。阅读本教程,特别是有关绘制草图的部分。

http://www.learn-cocos2d.com/2011/12/how-to-use-ccrendertexture-motion-blur-screenshots-drawing-sketches/#sketching