制作尾随像素的最佳方法?

Best way to make a trailing pixel?

所以在 swift 中,对于 iOS 设备(如果我仍然可以在 Xcode 中编码,跨平台会很酷)我正在尝试做一些相当简单的事情。

我只想让小颗粒在屏幕上四处移动并留下痕迹。不幸的是,我不能使用传统的粒子系统,因为我需要对它们的运动进行编程。

无论如何,我在想,如果我可以将所有像素保存在一个大数组中,并根据需要更改它们。这样我就可以根据粒子设置像素,并在每一帧淡出它们,从而产生轨迹的错觉。

执行此操作的好方法是什么?我一直在研究 quarts、core graphics 和 opengles,但是我找不到一个教程告诉我如何绘制单个像素……只有那些告诉我如何画线和其他东西的教程。我只需要能够逐个像素地绘制屏幕(除非你有更好的主意)

  1. 我应该使用什么框架
  2. 如何在给定 x,y 屏幕坐标(或 link 教程)的情况下在其中绘制单个像素。

非常感谢!

带有 CIImageAccumulator 的 CoreImage 可以帮助您做到这一点。在我的 FurrySketch 项目中,我做了一些非常相似的事情。简而言之:

  1. 开始 UI 图形上下文:UIGraphicsBeginImageContext(view.frame.size)
  2. 使用CGContextAddLineToPoint等函数绘制到上下文
  3. 创建一个 CIImage 绘图:let drawnImage = UIGraphicsGetImageFromCurrentImageContext()
  4. 使用 CISourceOverCompositing 将新图像合成到累加器中的前一个图像上,并将合成图像写回累加器: compositeFilter.setValue(CIImage(image: drawnImage), forKey: kCIInputImageKey) compositeFilter.setValue(imageAccumulator.image(), forKey: kCIInputBackgroundImageKey) imageAccumulator.setImage(compositeFilter.valueForKey(kCIOutputImageKey) as! CIImage)

  5. 在 UI 中显示新合成:imageView.image = UIImage(CIImage: imageAccumulator.image())

通过为该图像添加模糊,您也可以让粒子淡出,就像我所做的那样 here