Python 2.5 и Pygame 0.9.1 для MotoMAGX

Python — высокоуровневый язык программирования общего назначения с акцентом на производительность разработчика и читаемость кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций. Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Python организовывается в функции и классы, которые могут объединяться в модули (которые в свою очередь могут быть объединены в пакеты).



Pygame — это кроссплатформенная библиотека языка Python, предназначенная для написания компьютерных игр и мультимедиа приложений. Pygame базируется на библиотеке SDL. Изначально Pygame был написан Питом Шиннерсом (Pete Shinners). Начиная примерно с 2004/2005 года поддерживается и развивается сообществом свободного программного обеспечения.

Python — достаточно лёгкий и удобный язык программирования для понимания и изучения. Код, написанный на Python, воспринимается достаточно легко. Теперь у любителей этого языка появилась возможность запускать и портировать Pygame игры с официального сайта этой библиотеки.

Огромное спасибо rock88 за подсказку с компиляцией Pygame.

Установка:

  1. Качаем архив games.7z, распаковываем в корень карты памяти;
  2. Устанавливаем нужные пакеты, запускаем.

Примечания:

  • Архив games.7z содержит кроме Python и Pygame так же SDL и другие необходимые библиотеки, собранные для Motorola ZN5. Если вы устанавливаете Python + Pygame на другую модель телефона Motorola (Z6/E8/EM30/VE66/V8 etc.), то сохраните свою папку games/lib и не заменяйте её той, что имеется в архиве;
  • В архиве много файлов, поэтому заливать это всё лучше через картридер, в противном случае кидаться будет очень долго.

Для разработчиков:
Рассмотрим пример портирования на игре PyForce. PyForce — это скроллшутер написанный на Python для телефонов Nokia под Symbian OS.

Скачиваем исходный код игры со страницы (линк Source), распаковываем. Видим следующие папки и файлы:

  • lib — исходный код игры, библиотеки;
  • res — ресурсы, датафайлы;
  • run.pyw — файл для запуска игры.

Создаём файл run.sh и кидаем его в папку с игрой, структура скрипта run.sh:

Кидаем папку на телефон, например, в каталог mgxbox/. Подключаемся через Telnet, пробуем запустить игру. В Telnet кидает такой лог:

Где видны следующие ошибки:

psyco NOT installed, program may run slower — Компилятор psyco не установлен, программа может выполняться медленно. Игнорируем эту ошибку, psyco компилятор только под архитектуру x86.

self.screen = pygame.display.set_mode(RESOLUTION) pygame.error: Couldn’t create screen bitmap — Именно с этой ошибкой нам и нужно бороться. Это ошибка создания экрана, связанная с разрешением дисплея. Разрешение устанавливается 31-ой строкой self.screen = pygame.display.set_mode(RESOLUTION) в файле lib/pyforce.py. Ищем слово RESOLUTION по всем исходникам игры. Для этого можно использовать удобный текстовой редактор Notepad++. Находим в файле lib/const.py RESOLUTION = (360, 480) и правим на RESOLUTION = (320, 240) для альбомного режима и RESOLUTION = (240, 320) для портретного.

Во многих играх разрешение может устанавливаться как pygame.display.set_mode((640, 480)). В любом случае, чтобы поменять разрешение, ищем строку pygame.display.set_mode. Для некоторых игр придётся править ещё и размеры спрайтов, если игра под 640×480 — уменьшать в 2 раза, а если под 800×600 — в 2.5 раза. Для данной игры это не требуется. После того, как исправили разрешение, пробуем запустить игру ещё раз.

Игра теперь отлично запускается, но нужно настроить управление. Так как отсутствует кнопка, отвечающая за огонь. Ищем в исходниках по слову K_, находим следующее:

У нас в SDL библиотеке нет клавиши SPACE, поэтому заменяем if key[K_SPACE]: на if key[K_RETURN]: для центральной кнопки джойстика. Или на if (key[K_RETURN]) or (key[K_PLUS]): для центра джойстика и клавиши громкость ‘+’.

Список клавиш и их соответствие:

Сохраняем все сделанные нами изменения, кидаем на карту памяти и запускаем. Если всё отлично работает — делаем MGX-пакет с игрой.

Пример скрипта, который нужно использовать для запуска:

Где my_prog.py — ваша запускаемая программа на Python. Для Pygame следует использовать python.elf, так как в нём прописана нужная инициализация SDL-библиотеки. Для скриптов используйте просто python. Пакет MGX с игрой pyForce можно скачать здесь. Приветствуются любые вопросы по теме!

Скачать окружение Python/Pygame от 16-JAN-2011

Dev, Manuals, MotoMAGX

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *