wxPython или pygame для простой карточной игры?

Я играл с написанием нескольких простых карточных игр на Python для развлечения, и я хотел бы добавить в игры графический интерфейс пользователя (GUI). Какую библиотеку вы бы порекомендовали для написания графического интерфейса для простой карточной игры?


person adam    schedule 12.03.2009    source источник


Ответы (6)


Если все, что вам нужно, это графический интерфейс, wxPython должен помочь.

Если вы хотите добавить звук, ввод с контроллера и выйти за рамки простой карточной игры, вы можете использовать pygame.

person Robert P    schedule 12.03.2009

Я не использовал wxPython, но Pygame сам по себе довольно низкоуровневый. Он позволяет вам перехватывать нажатия клавиш, события мыши и рисовать элементы на экране, но не предлагает никаких готовых элементов управления графическим интерфейсом. Если вы используете Pygame, вам придется либо написать свои собственные классы GUI, либо использовать существующие расширения GUI для Pygame, например Pygame Utilities Фила.

person user24877    schedule 12.03.2009

Как правило, PyGame — лучший вариант для кодирования игр. Но это для более распространенных игр, где объекты движутся по экрану, и у вас должна быть хорошая производительность с «частотой кадров».

Однако для чего-то вроде карточной игры я бы выбрал wxPython (или, скорее, PyQt). Это связано с тем, что в карточной игре не так много графики (рисовать 2D-фигуры карт на экране в wx/PyQt не сложнее, чем в PyGame). А с другой стороны, вы получаете массу преимуществ от wx — вроде готового GUI для взаимодействия.

В Pygame вам нужно создать графический интерфейс самостоятельно или использовать несколько недоработанных библиотек, которые сделают это за вас. Это на самом деле имеет смысл для Pygame, потому что, когда вы создаете игру, вам обычно нужен собственный графический интерфейс, который соответствует стилю игры. Но для карточных игр, скорее всего, стандартные виджеты графического интерфейса wx сделают свое дело и сэкономят вам часы кодирования.

person Eli Bendersky    schedule 12.03.2009
comment
Интересно, что вы предложили рисовать 2D-фигуры карт. Я думал об использовании изображений карт для представления карт. Есть ли какие-либо преимущества в рисовании форм карт по сравнению с использованием изображений? - person adam; 12.03.2009
comment
@adam: два преимущества. (1) вы научитесь рисовать нетривиальные фигуры. (2) вы можете сделать так, чтобы карты выглядели так, как вы хотите, не привязываясь к какому-либо конкретному изображению, которое вы найдете. - person Eli Bendersky; 13.03.2009

Ответы на этот связанный вопрос могут быть очень полезны для вас:

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

person zweiterlinde    schedule 12.03.2009

Я бы сказал, pygame - я слышал, что это очень весело, легко и весело. Кроме того, весь мой опыт работы с wxPython был печальным и болезненным.

Но я не предвзят или что-то в этом роде.

person David Wolever    schedule 12.03.2009

pygame — типичный выбор, но pyglet привлек много внимания на PyCon. Вот вики-запись об игровых библиотеках Python: http://wiki.python.org/moin/PythonGameLibraries

person Mike Driscoll    schedule 23.08.2010