| Цель | Инструмент |
|---|---|
| Desktop | python main.py или PyInstaller |
| Web | pygbag / spritepro --webgl |
| Android | Kivy + Buildozer |
pip install --upgrade build
python -m build # Результат в dist/s.run(scene=MainScene, platform="pygame")pip install pyinstaller
pyinstaller --windowed main.py # Папка с проектомpip install pygbagpython -m pygbag . --buildИли через SpritePro:
pip install "spritepro[web]"
spritepro --webgl . --archive # ZIP в build/web.zippython -m pygbag .
# Открыть http://localhost:8000pip install "spritepro[kivy]"s.run(scene=MainScene, platform="kivy")python -m spritePro.cli --preview main.py --platform kivy --screen phone-portrait
python -m spritePro.cli --preview main.py --platform kivy --screen tablet-landscape
python -m spritePro.cli --list-screen-presetsБыстрый путь:
python -m spritePro.cli --android .Ручной путь:
pip install buildozer "cython==0.29.33"
buildozer init
# Отредактировать buildozer.spec
buildozer android debugrequirements = python3==3.10.12,hostpython3==3.10.12,kivy==2.3.0,pyjnius==1.5.0,pygame,pymunk,spritepro
android.archs = arm64-v8apython -m spritePro.cli --android . --android-mode release
python -m spritePro.cli --android . --android-mode aab
python -m spritePro.cli --android . --android-orientation portrait
python -m spritePro.cli --android . --android-permission INTERNETadb install -r bin/<apk>.apk
adb shell am start -n org.example.mygame/org.kivy.android.PythonActivity
adb logcat -d- Делайте UI и hitbox крупнее, чем на desktop
- Используйте
Path(__file__)для путей к ассетам - Проверяйте на реальном устройстве
- Для мультиплеера добавьте
android.permissions = INTERNET
python -m spritePro.demoGames.mobile_orb_collector_demo --kivy
python -m spritePro.demoGames.kivy_hybrid_demo