0

我想尝试为 iPhone 项目实现视觉滑动,就像他们在某些游戏中所做的那样,比如 Fruit Ninja。当您在屏幕上拖动手指时,它会留下一条痕迹,一段时间后就会消失。我认为您可以在“链”中拥有固定数量的点,并且随着新点添加到前面,旧点会从后面移除。我可以看到-touchesMoved用于生成新点和NSMutableArray跟踪点。我只是无法想象我将使用什么方法来实际绘制这些片段。我会做一个CALayer并画一条连接活动点的线吗?或者使用其他一些视图对象并将它们连接在一起......

有任何想法吗?

4

1 回答 1

0

如果你用 CGPoints 填充了“点”,这样的东西会起作用。警告:这是一项快速剪切、粘贴和编辑工作 - 因此可能会出现错误。另外,我将 stl::vector 用于“点”。您可能想要使用其他一些结构。

CGContextRef context = UIGraphicsGetCurrentContext();
CGMutablePathRef dataPath = CGPathCreateMutable();
bool firstPoint = YES;

for (int i=0; i < points.size(); ++i)
    {
    CGPoint point = points[i];
    if (firstPoint)
        {
        CGPathMoveToPoint(dataPath, NULL, point.x, point.y);
        firstPoint = NO;
        }
    else
        {
        CGPathAddLineToPoint(dataPath, NULL, point.x, point.y);
        }
    }

CGContextSetRGBStrokeColor( context, 1.0, 0.0, 0.0, 1.0);
CGContextSetLineWidth( context, 5);
CGContextBeginPath( context );
CGContextAddPath( context, dataPath );
CGContextDrawPath( context, kCGPathStroke);

CGPathRelease(dataPath);
于 2010-10-28T01:16:54.353 回答