motofan logo
5 страниц V < 1 2 3 4 > »         
> 

Python 2.5 + pyGame 0.9.1, Собираем игры и программы на Python'е!

EXL
сообщение 27.11.2010, 19:16 Закрепленное сообщение!


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 964
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4609



Компиляция Python 2.2.1

Прикрепленное изображение

Для начала скачиваем тулчейн
Устанавливаем его, подробнее про установку тут, в закреплённом посту
Скачиваем собственно Python-2.2.1
Скачиваем Патч для кросс-компиляции

1. Запускаем окружение:
Код
cd /home/z6
. setenv-z6.sh


2. Распаковываем Python-2.2.1 в /home/z6:

Код
tar -C /home/z6 -xzvf /home/z6/Python-2.2.1.tgz


3. Создаём папку python в тулчейне

Код
mkdir /opt/toolchains/motomagx/arm-eabi2/python


4. Применяем патч (он должен лежать /home/z6)

Код
cd /home/z6
cat python-cross-compile.diff | patch -p0


5. Заходим в директорию питона и выполняем
Код
cd/home/z6/Python-2.2.1
./configure --host=arm-linux-gnueabi --prefix=/opt/toolchains/motomagx/arm-eabi2/python
make

После Make ругнётся, что не может запустить
./python: 1: Syntax error: word unexpected (expecting ")")
Правильно, мы ведь компилировали не под х86, а под ARM
Так что выполняем
Код
make install


6. Копируем папку /opt/toolchains/motomagx/arm-eabi2/python
в телефон, я например скопировал её в /mmc/mmca1/games/ (/mmc/mmca1- это флешка)

7. Кстати, не забываем устанавливать необходимые либы, понадобиться libutils и ещё некоторые.
Если у вас тут возникнут проблемы - стучите в асечку

8. Ну и собственно Hello World

- Создаём файл test.py
- С помощью Notepad++ пишем туда следующее:
Код
print "Hello, Motorola!"

- Сохраняем, кидаем файл куда-нибудь на телефон, например в папку /mmc/mmca1/test/
- Создаём такой скриптик start.sh:
Код

#!/bin/sh
mypath=${0%/*}
export HOME=$mypath
LIBDIR1=/ezxlocal/download/mystuff/games/lib
LIBDIR2=/mmc/mmca1/games/lib
LIBDIR3=$mypath/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3
PYTHONHOME=/mmc/mmca1/games/python
export PYTHONHOME
PYTHONPATH=${PYTHONHOME}/lib/python2.2/site-packages:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}/lib/python2.2:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}:$PYTHONPATH
export PYTHONPATH

LD_LIBRARY_PATH=${PYTHONHOME}/extras:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH

exec $PYTHONHOME/bin/python2.2 -v $mypath/test.py


- Копируем скрипт в папку test, подключаемся в телнет, выполняем:
Код
/mmc/mmca1/test/start.sh


- И видим следующее
Код
ture__.pyc
Python 2.2.1 (#1, Nov 28 2010, 15:31:13)
[GCC 3.4.3 (MontaVista 3.4.3-25.0.96.%{_mvl_build_id} 2007-11-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Hello, Motorola!
# clear __builtin__._
# clear sys.path
# clear sys.argv
# clear sys.ps1
# clear sys.ps2


- Избавиться от мусора можно просто убрав флажок -v в скрипте
Т.е
Код
exec $PYTHONHOME/bin/python2.2 $mypath/test.py

Тогда будет просто
Код
[root@Symbiosis ~]
#> /mmc/mmca1/test/start.sh
Hello, Motorola!


Результат можно вывести в файл:
Код
exec $PYTHONHOME/bin/python2.2 $mypath/test.py > $mypath/output.txt


9. Скрипт на питоне для получения числа пи.
Код

#! /usr/bin/env python

# Print digits of pi forever.
#
# The algorithm, using Python's 'long' integers ("bignums"), works
# with continued fractions, and was conceived by Lambert Meertens.
#
# See also the ABC Programmer's Handbook, by Geurts, Meertens & Pemberton,
# published by Prentice-Hall (UK) Ltd., 1990.

import sys

def main():
    k, a, b, a1, b1 = 2L, 4L, 1L, 12L, 4L
    while 1:
        # Next approximation
        p, q, k = k*k, 2L*k+1L, k+1L
        a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
        # Print common digits
        d, d1 = a/b, a1/b1
        while d == d1:
            output(d)
            a, a1 = 10L*(a%b), 10L*(a1%b1)
            d, d1 = a/b, a1/b1

def output(d):
    # Use write() to avoid spaces between the digits
    # Use str() to avoid the 'L'
    sys.stdout.write(str(d))
    # Flush so the output is seen immediately
    sys.stdout.flush()

main()

Код

#!/bin/sh
mypath=${0%/*}
export HOME=$mypath
LIBDIR1=/ezxlocal/download/mystuff/games/lib
LIBDIR2=/mmc/mmca1/games/lib
LIBDIR3=$mypath/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3
PYTHONHOME=/mmc/mmca1/games/python
export PYTHONHOME
PYTHONPATH=${PYTHONHOME}/lib/python2.2/site-packages:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}/lib/python2.2:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}:$PYTHONPATH
export PYTHONPATH

LD_LIBRARY_PATH=${PYTHONHOME}/extras:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH

exec $PYTHONHOME/bin/python2.2 $mypath/pi.py > $mypath/pi.txt

Ждём с минутку, нажимаем Ctrl + C, и в файле pi.txt будет число пи smile.gif

10. Примеры скриптов, демок итд можно посмотреть в файле /home/z6/Python-2.2.1/Demo

В общем направление я дал. Дело за вами)
Теперь насчёт pyGame и визуальной оболочки.
pyGame реально портировать, он уже портирован на такие устройства как Dingoo A320, GP2X думаю нам нужно будет сделать лишь вывод изображения
Я не сильно знаком с питоном, но если из него можно будет запускать необходимые шоумодули - получим оболочку.

При написании мануала пользовался этим - ARM Cross-compiling Python и статьёй уважаемого racinglocura07

Зеркала. Прикрепил все файлы на мотофан:

Скачать исходники Python-2.2.1
Скачать патч python-cross-compile
Скачать уже откомпилированный Python-2.2.1 для Z6/V8/EM30/ZN5 и прочих MotoMagx
Скачать HelloWorld'ы, примеры скриптов
Прикрепленный файл python-cross-compile.7z   ( 1.87 килобайт ) Кол-во скачиваний: 706
Прикрепленный файл python.7z   ( 1.59 мегабайт ) Кол-во скачиваний: 956
Прикрепленный файл Python-2.2.1.tgz.7z   ( 6.23 мегабайт ) Кол-во скачиваний: 1498
Прикрепленный файл test.7z   ( 4.77 килобайт ) Кол-во скачиваний: 704
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 16.1.2011, 16:07


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 964
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4609



Цитата(K()t @ Сегодня, 20:01)

EXL, у меня на е8 запускается только тетрис. Лог дать не могу я без компютера сечас.
*



Нужно смотреть лог, так я тебе сказать ничего не могу. Скажу лишь, что pyForce может и не запуститься, т.к там разрешение экрана 240*320, но можно легко переделать.

SanchoNT,
Спасибо за порт.
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
Hairo Carela
сообщение 18.1.2011, 17:42


From a Distant Land
***

Группа: Пользователи
Сообщений: 141
Регистрация: 17.8.2009
Из: Dominican Republic
Пользователь №: 204 655
Модель телефона: ZINE Zn5
Прошивка: Qtopia Alpha


Настроение:
(-.-)'



Рейтинг: 230



i'ts quite easy... smile.gif
but it seems to be some problems with the sound...



6. Escape from Anathema Mines

Назначение: Увлекательная игра, в которой вы раб, сбегающий из алмазной шахты. Включает восемь диких уровней!
Автор: Phil Hassey
Портировал на ZN5: Hairo
Язык: English
Дополнительно: Управление:
Джойстик - Движение.
Центр джойстика - OK, выбор.
Левая софт-кнопка - Назад, нет.
"1" - Включить или выключить фонарь.
Зелёная трубка - Пауза.
Красная трубка - Выход.
Скриншоты приложения:
Прикрепленное изображение

Имена установочных пакетов и файлов в общем архиве | зеркало | зеркало на Yandex.Disk (2.4 GiB, md5sum: 3624b858a4a053a534f0a2f4071bcacc):Прикреплённые файлы:
Прикрепленный файл anathema.mgx   ( 145.86 килобайт ) Кол-во скачиваний: 482
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 19.1.2011, 14:59


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 964
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4609



Цитата(Hairo Carela @ Вчера, 23:42)

i'ts quite easy...
but it seems to be some problems with the sound...
*



Yes, unfortunately sound doesn't work yet. I do not know why. Hopefully soon find out.

Цитата(Hairo Carela @ Вчера, 23:42)

Escape from Anathema Mines
*



Thanks for the port
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
Hairo Carela
сообщение 20.1.2011, 1:00


From a Distant Land
***

Группа: Пользователи
Сообщений: 141
Регистрация: 17.8.2009
Из: Dominican Republic
Пользователь №: 204 655
Модель телефона: ZINE Zn5
Прошивка: Qtopia Alpha


Настроение:
(-.-)'



Рейтинг: 230



You can install some new modules...

- Look for an installable module (it must have a file called "setup.py")
- Download
Прикрепленный файл setup.7z   ( 6.7 килобайт ) Кол-во скачиваний: 250

- Copy the "pyconfig.h" file to /mmc/mmca1/games/python/include/python2.5/ (create the folders)
- Copy the "setup.sh" file in the same place as "setup.py"
- Run setup.sh (from phone, telnet or terminal)

Tested and work with this:
hachoir-core 1.3.3
hachoir-parser 1.3.4
hachoir-metadata 1.3.3

Some may not work...
Прикрепленный файл setup.7z   ( 6.7 килобайт ) Кол-во скачиваний: 250
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Hairo Carela
сообщение 22.1.2011, 15:48


From a Distant Land
***

Группа: Пользователи
Сообщений: 141
Регистрация: 17.8.2009
Из: Dominican Republic
Пользователь №: 204 655
Модель телефона: ZINE Zn5
Прошивка: Qtopia Alpha


Настроение:
(-.-)'



Рейтинг: 230



7. Asteroids Infinity

Назначение: Вариация на тему популярной игры Asteroids
Автор: Ben Whittaker, zebbedy (автор вариации)
Портировал на ZN5: Hairo
Язык: English
Дополнительно: Управление настраивается, по умолчанию следующее:
Джойстик - Движение.
Центр джойстика - OK.
Громкость "+" - Огонь.
Громкость "-" - Активировать щит.
Камера - Пауза.
Красная трубка - Выход.
Скриншоты приложения:
Прикрепленное изображение

Имена установочных пакетов и файлов в общем архиве | зеркало | зеркало на Yandex.Disk (2.4 GiB, md5sum: 3624b858a4a053a534f0a2f4071bcacc):Прикреплённые файлы:
Прикрепленный файл AsteroidsInfinity.mgx   ( 59.63 килобайт ) Кол-во скачиваний: 445
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
shevayura
сообщение 26.1.2011, 8:48


Опытный
***

Группа: Пользователи
Сообщений: 143
Регистрация: 21.5.2006
Пользователь №: 84 197
Модель телефона: Defy+ MB526

Рейтинг: 36



Вот пережал Python 2.5 c PyGame. Оптимизировал папку python/lib
Изменения:
- Вырезаны все .py, .pyo для которых есть компилированный .pyc
- Все библиотеки за архивированы в zip
- Не трогал папки: config, lib-dynload, site-packages (c pyGame внутри)
- Размер папки с библиотеками теперь 10 МБ (вместо 30)
- Файлов теперь 124 (раньше было несколько тысяч): заливать быстрее, хранить удобнее
- Библиотеки грузятся чуть медленнее. Будет чуть дольше грузиться. На скорости работы игр сказываться не должно (при условии что никто не грузит библиотеки внутри игрового цикла).


Нужно чуть править файл запуска.
Добавить
Код
PYTHONPATH=${PYTHONHOME}/lib/python2.5/python2.5.zip:$PYTHONPATH

Выглядеть должно как-то так:
Код
export PYTHONHOME
PYTHONPATH=${PYTHONHOME}/lib/python2.5/site-packages:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}/lib/python2.5:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}/lib/python2.5/python2.5.zip:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}:$PYTHONPATH
export PYTHONPATH


В архиве есть образец запуска файла (для моего V8).
Прикрепленный файл python.7z   ( 5.42 мегабайт ) Кол-во скачиваний: 196
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 29.1.2011, 18:09


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 964
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4609



8. pyBlocks

Назначение: Клон игры Blocks
Автор: chirachira
Портировал на ZN5: EXL
Дополнительно: Мой порт с Dingoo A320. Управление:
Джойстик - Движение.
Вверх, центр джойстика - Крутить фигуру.
Вниз - Разгон.
"5" - Выбор скина.
"0" - Пауза.
Красная трубка - Выход.
Скриншоты приложения:
Прикрепленное изображение

9. Tuxletics

Назначение: Играем пингвином, нужно как можно дальше забросить снежок
Автор: Tero Kuusela и Stefan B.
Портировал на ZN5: EXL
Дополнительно: Мой порт с Dingoo A320. Управление:
Джойстик - Движение (в меню "ввести имя" нажмите вбок, затем центр джойстика).
Центр джойстика - Выбор или огонь.
"->" - Возврат.
"0" - Справка или пауза
Красная трубка - Выход.
Скриншоты приложения:
Прикрепленное изображение

Имена установочных пакетов и файлов в общем архиве | зеркало | зеркало на Yandex.Disk (2.4 GiB, md5sum: 3624b858a4a053a534f0a2f4071bcacc):
  1. ZN5/Games/pyBlocks.mgx (55.5 KiB)
  2. ZN5/Games/tuxletics.mgx (357.7 KiB)
Прикреплённые файлы:
Прикрепленный файл pyBlocks.mgx   ( 55.52 килобайт ) Кол-во скачиваний: 388
Прикрепленный файл tuxletics.mgx   ( 357.66 килобайт ) Кол-во скачиваний: 453
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
Irony
сообщение 1.2.2011, 16:52


Интересующийся
**

Группа: Пользователи
Сообщений: 53
Регистрация: 9.1.2007
Из: Ростов-на-Дону
Пользователь №: 115 732
Модель телефона: Zine Zn5
Прошивка: PE 0.9beta

Рейтинг: 5.5



Получилось запустить только питона 2.2 версии из первого поста.
2.5 с pyGame выдаёт либо сегфол, либо
Код

# ./start2.sh
/mmc/mmca1/games/python/bin/python: 1:ELF}BUILD/glibc-2.3.3/obj/csu/crti.S: not found

Либо же игру
Код


# ./run.sh
hide splash: -1
map framebuffer at 0x4365b000 (size 262144)
QT Show: 1939 setAltitude and requestFocus, winId:1446, fget:1, alt:0, fixed:1, order:1

ZApplication::slotSystemMessage msg=LCDOn data=(null)
ZApplication::slotSystemMessage msg=LCDOn data=(null)
ZApplication::slotSystemMessage msg=LCDOn data=(null)
ZApplication::slotSystemMessage msg=DPL_BKLGT_RESTORED data=(null)
~SDL_QWin(): done
QT Show: 1939 requestFocus: lost, winId:1446

Segmentation fault
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 1.2.2011, 17:01


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 964
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4609



Выложите скрипты, которые запускаете
./start2.sh
и
./run.sh
Юзер в онлайне!В друзьяВизиткаП/Я
К началу страницы
+Ответить
Irony
сообщение 1.2.2011, 19:46


Интересующийся
**

Группа: Пользователи
Сообщений: 53
Регистрация: 9.1.2007
Из: Ростов-на-Дону
Пользователь №: 115 732
Модель телефона: Zine Zn5
Прошивка: PE 0.9beta

Рейтинг: 5.5



Start2.sh
Spoiler:

#!/bin/sh
mypath=${0%/*}
export home=$mypath
libdir1=/ezxlocal/download/mystuff/games/lib
libdir2=/mmc/mmca1/games/lib
libdir3=$mypath/lib
export ld_library_path=$ld_library_path:$libdir1:$libdir2:$libdir3
pythonhome=/mmc/mmca1/games/python
export pythonhome
pythonpath=${pythonhome}/lib/python2.5/site-packages:$pythonpath
pythonpath=${pythonhome}/lib/python2.5:$pythonpath
pythonpath=${pythonhome}:$pythonpath
export pythonpath

ld_library_path=${pythonhome}/extras:${ld_library_path}
export ld_library_path

exec $pythonhome/bin/python $mypath/primes.py
[close]

run.sh
Spoiler:

#!/bin/sh
mypath=${0%/*}
export home=$mypath
libdir1=/ezxlocal/download/mystuff/games/lib
libdir2=/mmc/mmca1/games/lib
libdir3=$mypath/lib
export ld_library_path=$ld_library_path:$libdir1:$libdir2:$libdir3
export sdl_qt_invert_rotation=1
pythonhome=/mmc/mmca1/games/python
export pythonhome
pythonpath=${pythonhome}/lib/python2.5/site-packages:$pythonpath
pythonpath=${pythonhome}/lib/python2.5:$pythonpath
pythonpath=${pythonhome}:$pythonpath
export pythonpath
ld_library_path=${pythonhome}/extras:${ld_library_path}
export ld_library_path
cd $mypath

exec $pythonhome/bin/python.elf $mypath/tuxletics.py
[close]


Папка games из архива, лежит в корне карты.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Python 2.5 + pyGame 0.9.1, Собираем игры и программы на Python'е! · Motorola ZINE ZN5, ZN5 T-Mobile · Forum
 

5 страниц V < 1 2 3 4 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16.4.2024, 20:36

Форум живёт: