Skip to content

DeltaWarden/CleEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CleEngine

3D-движок на Python с использованием OpenGL и GLUT. Поддерживает загрузку сцен из файлов CLE, физику, рендеринг, UI-кнопки и горячие клавиши.

Возможности

  • Загрузка и отображение 3D-сцен из файлов CLE
  • Поддержка объектов: cube, sphere, plane, cylinder, light
  • Свойства объектов: позиция, масштаб, цвет, текстура, материал, эмиссия
  • 2D UI-кнопки, фиксированные на экране
  • Управление камерой мышью (вращение — ЛКМ, перемещение — СКМ)
  • Физика с реалистичной гравитацией (1 метр = 100 единиц)
  • Декуплированная физика (стабильная при любом FPS)
  • Отображение FPS, количества объектов, имени сцены, позиции камеры, статуса физики
  • Переключение режимов: освещение, wireframe/solid, ортографическая/перспективная камера, текстуры
  • Адаптация UI и сцены к изменению размера окна

Формат CLE

CREATE <name> TYPE <type> POSITION <x> <y> <z> SCALE <sx> <sy> <sz> [COLOR <r> <g> <b>] [TEXTURE <file>] [MATERIAL <name>] [EMISSIVE <value>]

Пример:

CREATE player TYPE cube POSITION 500 100 0 SCALE 1 1 1 COLOR 1 0 0
CREATE light1 TYPE light POSITION 0 1000 0 SCALE 0.5 0.5 0.5 COLOR 1 1 1 EMISSIVE 1.0

Управление

Мышь

  • Вращение камеры — зажать ЛКМ и двигать мышь
  • Перемещение камеры — зажать СКМ (среднюю кнопку) и двигать мышь
  • Клик по UI-кнопкам — ЛКМ

UI-кнопки

  • Toggle Physics — включить/выключить физику
  • Load Scene — загрузить сцену из файла

Запуск

  1. Установите зависимости:
    • Python 3.x
    • PyOpenGL
    • Pillow
    • (опционально) Tkinter (обычно входит в стандартную библиотеку)
  2. Поместите assets.pack (архив с иконками) в корень проекта
  3. Запустите engine.py

Примечания

  • 1 метр = 100 единиц в координатах сцены
  • Гравитация и размеры мира соответствуют этому масштабу
  • Все параметры объектов и сцены указываются в этих единицах

About

A simple game engine written in Python.

Resources

License

Stars

Watchers

Forks

Contributors

Languages