Skip to main content

Simple 2D scene library based on pygame

Project description

🎬 Morascene

morascene — это простая Python-библиотека для создания 2D-сцен и окон на базе pygame.

Главная идея — максимально упростить работу с графикой: без циклов, без сложной логики, без постоянного pygame.init() и while True.

👉 Всё управление идёт через сцены и команды.


🚀 Установка

pip install morascene

⚡ Особенность

  • 🔹 Внутри используется pygame (запускается 1 раз автоматически)
  • 🔹 Один поток для всех сцен
  • 🔹 Не нужно писать игровой цикл
  • 🔹 Команды выполняются по очереди

🧠 Как это работает

Ты создаёшь сцены, и работаешь с ними по ID:

import morascene

morascene.create("Моя сцена", 1)
morascene.id_1.page(800, 600)

После этого все команды применяются к активной сцене.


🎮 Команды

🆕 Создание сцены

morascene.create("Название", id)

Создаёт сцену с уникальным ID.


🖥️ Открыть окно

morascene.id_1.page(width, height)
  • Создаёт окно
  • Делает сцену активной
  • Выводит окно на передний план

🎨 Заливка / очистка

morascene.id_1.pagecolor(r, g, b)
morascene.id_1.pageclear(r, g, b)

Заливает экран цветом.


🔤 Текст

morascene.id_1.pagetext(x, y, font, size, text, r, g, b)

Выводит текст.


📏 Линия

morascene.id_1.pageline(x1, y1, x2, y2, thickness, r, g, b)

Рисует линию.


⬛ Прямоугольник

morascene.id_1.pagesquer(x, y, w, h, filled, thickness, r, g, b)
  • filled=True — залитый
  • filled=False — контур

⚪ Круг

morascene.id_1.pagecircle(cx, cy, radius, filled, thickness, r, g, b)

⏳ Пауза

morascene.id_1.pagewait(seconds)

Останавливает выполнение программы.


🔁 Переход между сценами

morascene.id_1.pagecont(2)
  • Окно остаётся
  • Меняется сцена
  • Меняется название окна
  • Экран очищается

❌ Закрыть окно

morascene.id_1.pagecruch()

Полностью закрывает окно и завершает pygame.


⚠️ Важно

  • Команды работают только если сцена активна
  • Нужно сначала вызвать:
.page()

или перейти через:

.pagecont()

Иначе будет ошибка.


💡 Пример

import morascene

morascene.create("Сцена 1", 1)
morascene.create("Сцена 2", 2)

morascene.id_1.page(800, 600)
morascene.id_1.pagecolor(0, 0, 0)

morascene.id_1.pagetext(100, 100, "Arial", 40, "Привет!", 255, 255, 255)

morascene.id_1.pagewait(2)
morascene.id_1.pagecont(2)

morascene.id_2.pagetext(100, 100, "Arial", 40, "Это сцена 2", 255, 0, 0)
morascene.id_2.pagewait(2)

morascene.id_2.pagecruch()

🎯 Для чего это

  • Быстрое создание окон
  • Простые визуальные проекты
  • Прототипы
  • Обучение
  • Мини-программы без сложного кода

📌 Итог

morascene — это "pygame без боли":

👉 без циклов 👉 без потоков (для пользователя) 👉 без лишнего кода

Просто команды — и всё работает.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

morascene-1.1.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

morascene-1.1.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file morascene-1.1.0.tar.gz.

File metadata

  • Download URL: morascene-1.1.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for morascene-1.1.0.tar.gz
Algorithm Hash digest
SHA256 6eaf507111681357fa92d715c503c6d1fbfa3a5b267f94186ee4d4298c07bfaa
MD5 06ec120f6cdd7802f7830c8f8709ddee
BLAKE2b-256 9b679a1feb6e38dcbd05968e2f65f75ae514209d4984b116b87785c5e7fd9726

See more details on using hashes here.

File details

Details for the file morascene-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: morascene-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for morascene-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5df793908c463395b8b7e83478acfa38f283df74e504ea25a961447e73b648fe
MD5 36f97c9069e2a74eefe6bf702372529f
BLAKE2b-256 68671414c1cea01f2a7b054b6333818c3eaf86822f251ad49e048f7cfe35566d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page