0

我尝试使用 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)。但这在设备上不起作用。

知道如何修复红圈部分吗?

谢谢。

4

1 回答 1

0

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

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

于 2012-07-02T22:10:39.900 回答