Показать сообщение отдельно
Старый 16.04.2013, 10:28   #14
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Движки. Графические движки. AndEngine

Скоро будет m4engine. Все операции сводятся к такому стилю написания
m4::load_texture
m4::draw_texture_opt
m4::draw_texture_prop

m4::begin_batch_opt
m4::add_to_batch_opt
m4::end_batch

Язык c++
скорость на высоте, возможность работать с матрицами, компиляция по windows, linux, android. Свое приложение для сборки приложения. Программирование в Qt creator. Интеграция Box 2D.
Скорее это api чем engine. Оно и логично, для каждого приложения свой скелет.
Из фич:
текстуры, рендер в текстуру, любой растровый формат текстур, хоть psd.
виртуальное рабочее пространство, при любом разрешении приложение выглядит одинаково
2 вида рисования, легкое и про, легкое - быстрое, про - использует матрицы
наложение цвета, алфы
работа с атласами
звуки
работа с 3д и шейдерами, эта часть движка выполнена очень гибко и прозрачно, можно творить все что угодно, в рамках opengl es 2, очень сложна эта часть для новичков, т.к. здесь нужно знать тонкости работы 3д. Но я тружусь над созданием helper библиотеки для этого

движок разрабатывается около 8ми месяцев, на данный момент адекватная сборка проекта под android на Ubuntu, как допилю под винду выложу.
Все фичи выбирались и обдумывались не один день, если чего-то в движке нет значит так надо.

кого интересует, дам бету, научу пользоваться.
в отличие от andengine работает на порядок быстрей, и проще

вот список команд на данный момент:
extern "C" void M4EXPORT log(const char *fmt, ...);
extern "C" void M4EXPORT load_pak(const m4::String &fileName);
extern "C" void M4EXPORT init(const m4::uint16 width, const m4::uint16 heightm4::function initFuncm4::function loopFunc);
extern "C" m4::Texture M4EXPORT *load_texture(const m4::String &fileName);
extern "C" m4::Texture M4EXPORT *create_texture();
extern "C" void M4EXPORT remove_texture(m4::Texture *texture);
extern "C" bool M4EXPORT is_file_exists(const m4::String &fileName);
extern "C" m4::File M4EXPORT *load_file(const m4::String &fileName);
extern "C" void M4EXPORT remove_file(m4::Filefile);
extern "C" void M4EXPORT draw_texture_opt(m4::Texturetexture, const m4::DrawOptions *options);
extern "C" void M4EXPORT draw_texture_prop(m4::Texturetexture, const m4::DrawProperties *prop);
extern "C" float M4EXPORT get_time();
extern "C" float M4EXPORT get_delta_time();
extern "C" bool M4EXPORT is_key_down(const m4::uint8 key);
extern "C" bool M4EXPORT is_key_hit(const m4::uint8 key, const bool reset false);
extern "C" bool M4EXPORT is_key_up(const m4::uint8 key, const bool reset false);
extern "C" bool M4EXPORT is_mouse_down(const m4::uint8 id);
extern "C" bool M4EXPORT is_mouse_hit(const m4::uint8 id, const bool reset false);
extern "C" bool M4EXPORT is_mouse_up(const m4::uint8 id, const bool reset false);
extern "C" int16 get_mouse_x(const m4::uint8 id);
extern "C" int16 get_mouse_y(const m4::uint8 id);
extern "C" m4::SoundM4EXPORT load_sound(const m4::String &fileName);
extern "C" void M4EXPORT remove_sound(Sound *sound);
extern "C" void M4EXPORT play_music(const m4::String &fileName);
extern "C" void M4EXPORT stop_sound();
extern "C" void M4EXPORT set_z_buffer(const bool value);
extern "C" void M4EXPORT set_alpha_thresold(const float thresold);
extern "C" void M4EXPORT set_virtual_screen(const m4::uint16 width, const m4::uint16 height);
extern "C" void M4EXPORT open_url(const m4::String &url);
extern "C" int M4EXPORT set_parameter(const m4::String &parameter, const m4::String &value);
extern "C" m4::String M4EXPORT get_locale();
extern "C" m4::String M4EXPORT get_application_data_path();
extern "C" bool M4EXPORT is_batch_begin_prop(m4::uint32 index 0);
extern "C" bool M4EXPORT is_batch_begin_opt(m4::uint32 index 0);
extern "C" void M4EXPORT begin_batch_prop(m4::uint32 index 0);
extern "C" void M4EXPORT begin_batch_opt(m4::uint32 index 0);
extern "C" void M4EXPORT add_to_batch_opt(const m4::DrawOptions *optionsm4::uint32 index 0);
extern "C" void M4EXPORT add_to_batch_prop(const m4::DrawProperties *propm4::uint32 index 0);
extern "C" void M4EXPORT end_batch_prop(m4::Texturetexturem4::uint32 index 0);
extern "C" void M4EXPORT end_batch_opt(m4::Texturetexturem4::uint32 index 0);
extern "C" m4::uint32 M4EXPORT get_draw_calls();
extern "C" m4::uint32 M4EXPORT get_draw_objects();
extern "C" m4::uint16 M4EXPORT get_window_width();
extern "C" m4::uint16 M4EXPORT get_window_height();
extern "C" m4::uint16 M4EXPORT get_virtual_screen_width();
extern "C" m4::uint16 M4EXPORT get_virtual_screen_height();
extern "C" m4::ShaderM4EXPORT create_shader(const m4::String &vertexSource, const m4::String &fragmentSource);
extern "C" void M4EXPORT RemoveShader(m4::Shadershader);
extern "C" m4::GeometryM4EXPORT create_geometry(m4::bytevertData, const m4::uint32 verticesm4::uint16indexData, const m4::uint32 indicesm4::uint16 vertexSize);
extern "C" void M4EXPORT remove_geometry(m4::Geometrygeometry);
extern "C" void M4EXPORT draw_geometry(m4::Geometrygeometrym4::Shadershaderm4::VertexAttributeList *attributesm4::uint32 offset 0m4::uint32 count 0); 
Пример и скрин во вложении
Файл zip, переименовать в apk!!!!
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_2013-04-16-16-26-12.png
Просмотров: 1079
Размер:	65.0 Кб
ID:	19059  
Вложения
Тип файла: zip BounceBall-debug.zip (1.87 Мб, 668 просмотров)

Последний раз редактировалось pozitiffcat, 16.04.2013 в 17:32. Причина: пример
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (18.04.2013)