我正在尝试使用 CGContextClipToMask() 函数创建不同颜色的粒子。出于某种原因,我的第一个粒子似乎通过其更新完全显示和动画,但根本没有其他粒子显示。这是一段代码:
while(i < mNextParticleIndex)
{
Particle* p = &mParticles[i];
CGRect drawRect = CGRectMake(
p->mPos.x,
p->mPos.y,
p->mSize,
p->mSize);
// try image masking
CGContextClipToMask(context, drawRect, [mImage CGImage]);
CGContextSetBlendMode(context, kCGBlendModeNormal);
CGContextSetFillColor(context, CGColorGetComponents([UIColor
colorWithRed:p->mColor.r green:p->mColor.g blue:p->mColor.b alpha:p->mColor.a].CGColor));
CGContextFillRect(context, drawRect);
当我注释掉 ClipToMask 调用时,我看到我所有的各种填充矩形动画(即一堆以粒子效果方式填充的正方形。但是,通过调用,我只看到第一个。我是否缺少明显的东西?