Итак, я прохожу начальные этапы создания игры на Python и ищу библиотеку, которая способна манипулировать пикселями и относительно быстро их обрабатывать.
Моей первой мыслью была pygame, поскольку она имеет дело с чистыми 2D-поверхностями, но она позволяет только пиксельный доступ через pygame.get_at()
, pygame.set_at()
и pygame.get_buffer()
, каждый из которых блокирует поверхность при каждом вызове, их медленно использовать. Я также могу использовать классы PixelArray
и surfarray
, но они заблокированы на время жизни, и единственный способ скрыть их от поверхности - это скопировать пиксели на новую поверхность или использовать * 1008. *, что требует создания подповерхности экрана и приведения его в соответствие с этим, если массив меньше экрана (если он больше, я могу просто использовать часть массива, что не проблема).
У меня нет большого опыта работы с PyOpenGL или Pyglet, но мне интересно, есть ли более быстрая библиотека для манипулирования пикселями или есть более быстрый метод в Pygame для выполнения манипуляции с пикселями. Я немного поработал с SDL и OpenGL в C, и мне нравится идея добавления вершинных / фрагментных шейдеров в мою программу.
Моя программа будет в основном заниматься загрузкой изображений и записью / чтением с поверхностей.