我正在制作一款游戏元素看起来像是由建筑纸制成的游戏。为了实现纹理效果,我在每个绘制周期结束时混合全屏图像:
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
// ... draw things ... //
CGContextSetBlendMode(context, kCGBlendModeHardLight);
CGContextSetAlpha(context, 0.4);
CGContextDrawImage(context, [self frame], [paperTexture CGImage]);
}
不幸的是,这会使帧速率从60下降到感觉~10。如果没有进入OpenGL,有没有更好的方法呢?