Вопрос: Что может сделать Pygame с точки зрения графики, которую не может использовать wxPython?


Я хочу разработать очень простую 2D-игру в Python. Pygame - самая популярная библиотека для разработки игр на Python, но я уже хорошо знаком с wxPython и чувствую себя комфортно с ее помощью. Я даже написал Клон тетриса  в нем, и это было довольно гладко.

Интересно, что предлагает Pygame с точки зрения графики (оставляя звук в стороне, на мгновение), что wxPython не может сделать? Как-то проще или быстрее делать графику в Pygame, чем в wxPython? Это еще более кросс-платформенный?

Похоже, я здесь что-то пропустил, но я не знаю, что.


16


источник


Ответы:


Ну, в теории вы ничего не можете с Pygame, что вы не можете с помощью wxPython. Дело не в том, а в том, как. На мой взгляд, легче написать игру с PyGame becasue:

  • Это быстрее. Pygame основан на SDL, который является C-библиотекой, специально разработанной для игр, она была разработана с учетом скорости. Когда вы разрабатываете игры, вам нужна скорость.

  • Является игровой библиотекой, а не холстом общего назначения. Она имеет классы и функции, полезные для спрайтов, преобразований, обработки ввода, рисования, обнаружения столкновений. Он также реализует алгоритмы и методы, часто используемые в играх, таких как грязные прямоугольники, перелистывание страниц и т. Д.

  • Есть тысячи игр  и примеры, сделанные с ним. Вам будет легче узнать, как сделать любой трюк.

  • Есть много библиотеки  с эффектами и утилитами, которые вы можете использовать повторно. Вы хотите изометрическую игру, есть библиотека, вы хотите физический движок, есть библиотека, какой-то классный визуальный эффект, есть библиотека.

  • PyWeek , :) Это должно сделать развитие вашей игры еще более смешным!

Для некоторых очень простых игр, таких как Tetris, разница будет не слишком большой, но если вы хотите разработать довольно сложную игру, поверьте мне, вам понадобится что-то вроде PyGame.


20



wxPython основан на WxWidgets  который является ориентированным на GUI набором инструментальных средств. Он имеет то преимущество, что использует стили и декорации, предоставляемые системой, на которой он работает, и поэтому очень легко писать переносные приложения, которые прекрасно вписываются в внешний вид и качество того, что вы используете. Вам нужен флажок? Используйте wxCheckBox, и wxPython будет обрабатывать внешний вид и взаимодействие.

pyGame, с другой стороны, ориентирована на разработку игр и, таким образом, приближает вас к аппаратным средствам таким образом, что wxPython не делает (и не нужно, поскольку он вызывает ОС для рисования большей части своих элементов управления). pyGame имеет множество связанных с игрой вещей, таких как обнаружение столкновения, мелкозернистый контроль поверхностей и слоев или переключение буферов отображения во время вашего выбора.

Тем не менее, по-графически вы, вероятно, всегда найдете способ сделать то, что хотите, с помощью обоих наборов инструментов. Однако, когда скорость подсчитывается или вы хотите реализовать графически более увлекательные идеи игры, чем тетрис, вам, вероятно, лучше с pyGame. Если вы хотите использовать множество элементов графического интерфейса и не нуждаетесь в причудливых графических и звуковых функциях, вам лучше работать с wxPython.

Переносимость не является проблемой. Оба доступны для больших трех (Linux, OSX, Windows).

Это скорее вопрос о том, какие специальные возможности вам нужны.


13