Что Pygame может сделать с точки зрения графики, чего не может wxPython? - PullRequest
16 голосов
/ 05 декабря 2008

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

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

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

Ответы [ 2 ]

20 голосов
/ 05 декабря 2008

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

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

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

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

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

  • PyWeek . :) Это сделает вашу игру еще веселее!

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

13 голосов
/ 05 декабря 2008

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

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

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

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

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

...