WindMill 2D Game Engine
| |
nilrem | Дата: Воскресенье, 04 Июля 2010, 14:19 | Сообщение # 1 |
Просветленный разум
Сейчас нет на сайте
| Все. Сегодня я решил, что пилить двиг можно до скончания веков, и он так и не станет(на мой взгляд) пригодным для демонстрации. Итак, встречаем.
Скачать WindMill Framework v0.88 альфа (3,59 мб)
Скачать WindMill SDK v0.90 (4,84 мб)
Скачать WindMill SDK v0.92 (5,24 мб)
Скачать WindMill SDK v1.25 (5,09 мб)
WindMill SDK v1.30 rev.39 (5,02 мб)
Учтите, что теперь SDK не содержит скомпилированные примеры, их нужно скачивать отдельно
Скачать скомпилированные примеры WindMill v1.25 (2,71 мб)
WindMill SDK v1.40 (6,02 мб)
Патч Windmill Engine 1.42 Небольшой патч движка от 1.11.2012. Стабильная работа в Windows 8. Для установки достаточно распаковать скачанный файл в папку с Windmill SDK 1.4.
Windmill 2
Windmill framework - это построенный на базе DirectX движок для создания двухмерных игр. Задуман он был, когда делая текстовую игру я понял, что уже тошнит от псевдографики и что в гробу я ее видел. Так появился Windmill framework. За пару месяцев из 12 простых функций он разросся до текущего состояния. Главное достоинство - простота использования. Базовое приложение, выводящее пустое окно, занимает всего 7 строк кода. Далее дабы нарисовать картинку, проиграть звук, нужно всего по одной функции на действие. Движок ориентирован на начинающих программистов, поэтому кроме просторы использование имеет и довольно высокую надежность.(я надеюсь)))) Состоит движок из нескольких взаимосвязанных классов, но для работы доступно только несколько интерфейсных функций. ООП реализация полностью скрыта. Для .NET все функции те же, но для простоты включения они собраны в базовый класс. Библиотеки импорта для С++, .NET, PDA не совместимы. Поддерживаемые языки программирования С++, все .Net языки (пока тестил на шарпе и бейсике). Возможно и Делфи. Также собираю версию для КПК. Среда разработки - пока только Microsoft Visual Studio 2008/2010(в остальных просто еще не тестировал)
Возможности: Вывод двухмерной графики, как статической, так и анимированной. Поддерживаются следующие форматы bmp tga png dds jpg. Работы с устройствами ввода (клавиатура, мышь) Воспроизведения звука (формат wav) в отдельном потоке. Вывод текста(быстрый, не GDI и не его родственник D3DXFont) Управления звуковыми и графическими ресурсами отсечение невидимой графики, воспроизведение звуков с учетом позиции в пространстве(EAX) самостоятельный поиск ресурсов в структуре каталогов
Требования: DirectX Ноябрь 2008 и выше. Знание С++ на базовом уровне (на уровне моего курса).
Относительно названия. Почему именно Windmill(Ветряная мельница), я вам не скажу. А framework (каркас) потому что то, что я сейчас вам демонстрирую, в дальнейшем будет обвешано дополнительными наворотами, и станет отличным каркасом для создания двухмерных игр любого жанра и любой сложности.
http://fabermun.at.ua/load/wmfdemo/1-1-0-13 По этой ссылке можно скачать демо движка, содержащее откомпилированные туториалы, и демку стресс-теста производительности
На закуску скрины:
Игры:
АйсТетрис с исходным кодом (1 мб)
Если у кого-то что-то не запустилось сообщать сразу же, указывая конфигурацию компа. если вы используете версию 0,89 и выше то и лог-файл.
Windmill 2
WindMill 2D Game Engine
|
|
| |
noTformaT | Дата: Воскресенье, 22 Января 2012, 22:39 | Сообщение # 141 |
Ukrainian independent game developer
Сейчас нет на сайте
| smach1, для ссылок используется элемент доступа ->, для статических переменных - ".". Пример
knight *Zerat = new knight;//ссылка/указатель на экземпляр класса knight; Zerat->x =10; //устанавливаем для свойства х значение 10
knight Zerat; //статическая переменная Zerat.х = 10; //устанавливаем для свойства х значение 10
@noTformaT
|
|
| |
smach1 | Дата: Воскресенье, 22 Января 2012, 22:57 | Сообщение # 142 |
был не раз
Сейчас нет на сайте
| Угу, спасибо. Тогда, если можно, еще вопрос
мне нужно создать несколько экземпляров одного класса и получить координаты каждого
Code class ground { int x,y; ... } void ground::DrawGr(void) { DrawSprite(L"file.png",x,y); }
ground *Grnd;
...
for(int i=0; i<1000;i+=100) //цикл 9 раз подряд выводит один и тот же экземпляр { x=i; y=400; Grnd->DrawGr() }
Метод срабатывает 9 раз, спрайт нарисован в требуемых координатах, но теперь при попытке обратиться к ним (координатам, например проверить столкновение с динамическим объектом) доступны только последние присвоенные, то есть x=900, y=400 Можно каким то образом использовать подобную конструкцию? Или же безперспективняк?
|
|
| |
Demeron | Дата: Понедельник, 23 Января 2012, 00:59 | Сообщение # 143 |
User created in C++
Сейчас нет на сайте
| smach1, Code class ground { int x,y; ... } void ground::DrawGr(void) { DrawSprite(L"file.png",x,y); }
ground *Grnd;
...
for(int i=0; i<1000;i+=100) //цикл 9 раз подряд выводит один и тот же экземпляр { Grnd[i].x=i; Grnd[i].y=400; Grnd[i].DrawGr(); }
Сообщение отредактировал Demeron - Понедельник, 23 Января 2012, 01:00 |
|
| |
smach1 | Дата: Понедельник, 23 Января 2012, 06:54 | Сообщение # 144 |
был не раз
Сейчас нет на сайте
| Благодарю, буду пробовать
|
|
| |
zodiak | Дата: Понедельник, 23 Января 2012, 12:30 | Сообщение # 145 |
постоянный участник
Сейчас нет на сайте
| Quote (noTformaT) для ссылок используется элемент доступа ->, для статических переменных - ".". О, великий знаток С++, зачем пишешь бред? Зачем вводишь незнающих людей в заблуждение? Если ты не в курсе, то в с++ ссылки и указатели хоть и близкие по смыслу, но их использование отличается. Как раз для указателей используется стрелка "->" а для ссылок точка. Ты же обозвал указатель ссылкой, что знающий программист никогда не сделает, слишком они разные. А термин "статические переменные" вообще из другой оперы. Есть объект, или экземпляр класса.
Точка зору окремо взятого індивіда завжди суб'єктивна!
Взломщик Battle City.Net
|
|
| |
noTformaT | Дата: Понедельник, 23 Января 2012, 13:13 | Сообщение # 146 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (zodiak) О, великий знаток С++, зачем пишешь бред? Зачем вводишь незнающих людей в заблуждение? Если ты не в курсе, то в с++ ссылки и указатели хоть и близкие по смыслу, но их использование отличается. Как раз для указателей используется стрелка "->" а для ссылок точка. Ты же обозвал указатель ссылкой, что знающий программист никогда не сделает, слишком они разные. А термин "статические переменные" вообще из другой оперы. Есть объект, или экземпляр класса. блин, чет я реально сфейлил...
@noTformaT
|
|
| |
Riketta | Дата: Понедельник, 23 Января 2012, 14:13 | Сообщение # 147 |
Strategist
Сейчас нет на сайте
| Тьфу на вас. Подняли тему. Я думал апдейт. :(
Fougerite - Rust Server OpenSource API TerraDev - Terraria OpenSource Hack
|
|
| |
smach1 | Дата: Пятница, 27 Января 2012, 12:24 | Сообщение # 148 |
был не раз
Сейчас нет на сайте
| Попробовал ваш пример в действии. Все плохо Может быть указатель этот на объект класса нужно каким то особым образом объявить? При отладке компилятор просто начинает глючить, ошибки выдает каждый раз разные, иногда проект даже компилируется, но ведет себя совсем не так как должен -изображение начинает прыгать, дергаться и т.п., а при закрытии выдает что то вроде "куча повреждена" и еще пару ошибок со ссылкой на библиотеки msvs Рискну предположить, что каким то образом необходимо выделить определенный объем оперативной памяти под объект? Если я прав, то как же это провернуть?Добавлено (27.01.2012, 12:24) --------------------------------------------- Сам отвечу на свой вопрос, кому то пригодится мб
Объявлять объект класса нужно так, как написал Demeron, кроме одного момента: в теле главной функции Grnd = new ground[100]; так же удалять нужно с помощью оператора delete[]
|
|
| |
AGENTX001 | Дата: Пятница, 27 Января 2012, 18:37 | Сообщение # 149 |
почётный гцупер
Сейчас нет на сайте
| От смотрю на этот плюсовский код и думаю, как же всётаки хорош делфи!) Всё понятно, просто, безупречно
|
|
| |
prog_154rus | Дата: Пятница, 27 Января 2012, 18:40 | Сообщение # 150 |
Lonely Developer
Сейчас нет на сайте
| AGENTX001, ага, а еще слабофункциональный, медленный и без контроля памяти. А так - все ок
|
|
| |
stalkerya | Дата: Пятница, 27 Января 2012, 18:53 | Сообщение # 151 |
Пользователь Blender 2.5
Сейчас нет на сайте
| prog_154rus, Просто нормально юзать надо его.
Бросила девушка после того, как узнала, что я перешел с гм на Construct.
|
|
| |
AGENTX001 | Дата: Пятница, 27 Января 2012, 19:10 | Сообщение # 152 |
почётный гцупер
Сейчас нет на сайте
| Quote (prog_154rus) а еще слабофункциональный с каких пор?Quote (prog_154rus) медленный Ненамного медленней плюсов.Quote (prog_154rus) без контроля памяти А оно вам надо? Делфи сам следит чтобы утечки не было.
|
|
| |
05142 | Дата: Пятница, 27 Января 2012, 19:33 | Сообщение # 153 |
постоянный участник
Сейчас нет на сайте
|
mecinvader
|
|
| |
prog_154rus | Дата: Пятница, 27 Января 2012, 19:51 | Сообщение # 154 |
Lonely Developer
Сейчас нет на сайте
| AGENTX001, программист должен сам управлять памятью и юзать это во благо проги.
|
|
| |
AGENTX001 | Дата: Пятница, 27 Января 2012, 20:28 | Сообщение # 155 |
почётный гцупер
Сейчас нет на сайте
| Quote (prog_154rus) программист должен сам управлять памятью и юзать это во благо проги. Возможно, но во благо, получается далеко не всегда... Поетому Delphi лучше))
|
|
| |
smach1 | Дата: Пятница, 27 Января 2012, 21:21 | Сообщение # 156 |
был не раз
Сейчас нет на сайте
| хм, для интереса, можете назвать примеры "больших" проектов написанных на делфи?
|
|
| |
Demeron | Дата: Пятница, 27 Января 2012, 21:44 | Сообщение # 157 |
User created in C++
Сейчас нет на сайте
| Quote (smach1) хм, для интереса, можете назвать примеры "больших" проектов написанных на делфи? Ну на сколько я знаю, то раньше GameMaker был написан на нем) Чем не большой проект?)
|
|
| |
Rorschach | Дата: Пятница, 27 Января 2012, 21:46 | Сообщение # 158 |
участник
Сейчас нет на сайте
| Предлагаю отрубить prog_154rus`y руки за провокацию холивара.
Never compromise. Not even in the face of Armageddon.
|
|
| |
smach1 | Дата: Пятница, 27 Января 2012, 22:18 | Сообщение # 159 |
был не раз
Сейчас нет на сайте
| Холивары - это весело!
А если брать из области тех же игр, есть хотя бы несколько ААА класса? Нет. Если просто немного поискать в инете на эту тему, на той же википедии посмотреть, то обнаружиться, что из сколько нибудь известных программ на делфи были написаны скайп, квип и неплохая игрушка "Космические рейнджеры". Не то чтобы совсем ничего, но все же негусто, а? А если такой же вопрос задать в отношение c++? Миллионы не могут ошибаться! =)
|
|
| |
AGENTX001 | Дата: Пятница, 27 Января 2012, 22:27 | Сообщение # 160 |
почётный гцупер
Сейчас нет на сайте
| smach1, дружище, делфи естественно не для проектов ААА класса, но для инди игрушек - самое оно!
|
|
| |
|