快速设置像素

Voi*_*tar 8 python graphics performance

我搜索并搜索了一个很好的答案,我即将因沮丧而哭泣.我是一个业余爱好者的程序员,我不做事,因为他们有意义,或者他们是正确的做法; 我这样做是为了学习,现在我很难过.

我想在屏幕上设置单个像素.这可能听起来很容易,但这是我的其他条件使其变得困难.我需要快速执行此操作,仅CPU,20 fps或更高(当然运行其他程序元素),400 x 300或更好的屏幕(全屏?).

我使用Python编写的使用Pygame的程序渲染了一些很酷的图像,但只用随机像素填充100px×100px的屏幕需要50毫秒(那是我的20 fps,而其他程序位则减慢了更多) .理想情况下,我很乐意制作我自己的(蹩脚)3D游戏,只使用CPU,设置屏幕上的像素(可能是体素八叉树的图形).

是否有任何方法(使用任何语言,但最好是Python)我想在RAM中制作一个像素值的二维数组(更像是带有RGB的3D数组)(这称为位图?)并将其转储到显示器上或者其他的东西?那会不会很快??? 你如何直接与窗口上的像素接口.哎呀!我很无能为力.我/我不是编程菜鸟.给我任何你可以扔给我的东西,我可以消化它.我只需要一些正确方向的指针(哈哈).

max*_*axy 4

如果您想制作自己的“针对每个像素”数学(而不是仅仅移动圆圈和位图),则必须使用 C(或 C++)进行计算才能接近机器速度。

另一方面,如果你想制作一款完整的游戏,那么用 C 之类的低级语言编写它并不有趣。你需要将快速的 C 代码与一些高级脚本语言结合起来。使用 Python,您可以通过 numpy 桥接到 C 扩展模块,或者您可以将 Lua 这样的语言嵌入到 C 代码中,或者您可以尝试(哦恐怖)学习 C++ 中的高级编码。无论哪种方式,事情都会变得复杂。

如果您只想尝试快速像素渲染,我建议使用 SDL(这是 pygame 内部使用的),但仅使用 C 或 C++。遵循这样的教程并享受一些乐趣。

如果您想继续使用 Python,我建议您首先尝试 2D 游戏(加载和移动位图)或尝试 cairo(渲染几何形状)。