iphone - 如何在 iPhone 上绘制单个像素?

标签 iphone opengl-es core-graphics pixel

我有兴趣制作一款依赖于像素、绘图的游戏 每个像素一次一个。

但是我很难找到准系统源代码 展示如何做到这一点。一切都必须通过 OpenGL 吗?

我知道开发套件中有一个示例,但它没有绘制 1 个像素,而是绘制了一个大像素 圆圈,我需要 1 像素映射。

是否有一个允许简单注册手指的准系统示例 在屏幕上输入并绘制 1 像素?

最佳答案

有两种常见方法可以将原始像素绘制到屏幕上:使用 OpenGL ES 渲染或使用 Quartz 2D 绘制。两者都有各自的优点和缺点。

在进行大量显示更新时,OpenGL ES 将为您提供最佳的绘图性能。您可以查看Apple的GLPaint sample application有关如何使用 OpenGL ES 进行手指驱动绘画的示例。如果您愿意,您甚至可以将该示例中使用的画笔修改为仅一个像素宽。

但是,OpenGL ES 使用起来可能很复杂,并且需要大量代码来完成您想要的绘图,即使是在 2D 中也是如此。您可以引用问题Learning OpenGL ES 1.x获取可帮助您了解这些 API 的资源。

对于定期更新的内容,Quartz 2D 绘图要慢得多,但它比 OpenGL ES 更容易上手。 Quartz 2D 基于矢量图形,因此它并不是真正旨在成为逐像素渲染框架。我在对 this question 的回答中给出了有关此框架的教程的一些指示。 .

第三种替代方案可能不像这两种方案那么简单,它是创建一个 UIImage 并手动更改其像素以响应绘图操作,并在每次更改后重新显示图像。同样,您将遇到与使用 Quartz 2D 相同的性能缓慢问题。有关更多信息,请参阅 this question 中发布的答案.

关于iphone - 如何在 iPhone 上绘制单个像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5076573/

相关文章:

ios - 从 CGMutablePath 中删除部分

iphone - CGContextDrawImage 是否即时解压缩 PNG?

iphone - iOS 4 是否向 3rd 方开发人员提供 “Real Multitasking”?

iphone - 从其他 NSThread 委托(delegate)回调

ios - ios 中的应用内购买是否可以使用特定于帐户的订阅?

c++ - 在 OpenGL ES 2.0 中应用高斯模糊时如何修复奇怪的伪像

iphone - iPhone 使用什么版本的 GLSL?

iphone - 左右两侧有阴影

iphone - 我如何绘制(如在 GLPaint 中)到背景图像上,并使用临时绘图?

objective-c - 为什么 Helvetica Neue Bold 字形不会在 NSBezierPath 中绘制为普通子路径?