Различия между игровыми библиотеками Pygame и Pyglet Python?

Класс имеет эффективный метод перетасовки, который можно скопировать, чтобы не зависеть от него:

/**
 * Usage:
 *    int[] array = {1, 2, 3};
 *    Util.shuffle(array);
 */
public class Util {

    private static Random random;

    /**
     * Code from method java.util.Collections.shuffle();
     */
    public static void shuffle(int[] array) {
        if (random == null) random = new Random();
        int count = array.length;
        for (int i = count; i > 1; i--) {
            swap(array, i - 1, random.nextInt(i));
        }
    }

    private static void swap(int[] array, int i, int j) {
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
}

41
задан Martin v. Löwis 16 December 2008 в 18:04
поделиться

4 ответа

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

Pyglet сразу работал и был приятен работать с, и концептуально очень чистый. Это, конечно, сделало, чтобы Pythonic чувствовал мне: Вы могли получить простой и читаемый пример, идущий очень быстро, и он использует декораторов успешно для обработки событий. Это также не вызвало конкретную структуру программы, которая облегчила для меня смешиваться в моделировании физики Pymunk ( http://code.google.com/p/pymunk/ ).

, В то время как это основано на OpenGL и можно использовать те функции для специальных эффектов, я смог сделать очень хорошо без любого ведома их.

Это также работает хорошо с py2exe и py2app, который важен, потому что большому количеству людей не установили интерпретатор Python.

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

кроме того, это изменилось вполне немного от предыдущих версий, таким образом, некоторые учебные руководства, которые являются, там теперь устарели (существует "модернизированный цикл событий" и класс Sprite как основные дополнения.)

я рекомендовал бы загрузить примеры (существует хороший клон Астероидов, названный включенным Astraea), и видящий, нравится ли Вам стиль.

27
ответ дан Kiv 23 September 2019 в 15:23
поделиться

Я хотел бы добавить, что существует быстрая библиотека спрайта Rabbyt, который может быть хорошим дополнением для Pyglet.

5
ответ дан sastanin 23 September 2019 в 15:23
поделиться

Pygame: лицензия

LGPL Pyglet: лицензия

BSD Pygame полагается на библиотеки SDL в большой степени

Pyglet, является чистой библиотекой Python с меньшим количеством зависимостей, я думаю, что это требует, чтобы лучшее понимание OpenGL

Pygame было здесь в течение долгого времени, много людей использовало его

, Pyglet является новым lib

, Pygame приспособлен к разработке игр (курсоры, спрайты, поддержка джойстика/игрового планшета)

, Pyglet является более общей целью (хотя это имеет класс Sprite)

, я нашел также это обсуждение pyglet-пользовательского списка рассылки: от pygame+pyopengl до поросенка

Правовая оговорка: Я еще не использовал ни одного, только попробовал некоторые учебные руководства;-)

28
ответ дан I. J. Kennedy 23 September 2019 в 15:23
поделиться

Посмотрев на оба pygame и pyglet Я обнаружил, что pyglet легче понять, и я смог написать простую игру в стиле прорыва за несколько дней.

2
ответ дан 26 November 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: