Game Maker - создание игр | HellRoom Games
Февраль 21, 2017, 05:53:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Hyperflex - релиз!
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Dll для Game Makera на c++? Легко!  (Прочитано 8542 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Krib
«Старожил форума»
******

Репутация: 114
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 952


« : Январь 08, 2012, 19:31:26 »

Dll открывает большие возможности. Становится возможным соединить простой и удобный функционал Game Maker с быстрыми вычислениями c++. Если вам чего-то не хватает в ГМ, то можно реализовать это в виде dll и подключить в игру. Как? Как это сделать я расписал в данной статье.


Часть первая. Как создать dll проект?

Часть вторая. Пишем dll.

Часть третья. Создание gex файла.

Ссылки:
Gmapi библиотека, которая дает возможность доступа к ресурсам ГМ из dll!

upd: готовый проект можно посмотреть здесь

* Статья. Создание dll для Game Maker.rar (692.7 Кб - загружено 318 раз.)
« Последнее редактирование: Май 06, 2014, 05:18:50 от Dmi7ry » Записан

Fuge, late, tace
Devastator
Новичок
*

Репутация: 1
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

API: Game Maker 8.0 Pro
Сообщений: 14



« Ответ #1 : Январь 08, 2012, 21:35:06 »

Спасибо! Полезная статья  Уважуха !
Записан
Krib
«Старожил форума»
******

Репутация: 114
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 952


« Ответ #2 : Январь 08, 2012, 21:40:15 »

Потом еще допишу про работу со строками, там могут появиться проблемы с юникодом...
Записан

Fuge, late, tace
Q33
XD
GM Pro user
*

Репутация: 45
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio Master
Сообщений: 326



WWW
« Ответ #3 : Январь 08, 2012, 22:23:29 »

Зачёт! Давно искал такое на русском!
Записан
PelmeshkO
GM Pro user
*

Репутация: 67
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
За постоянность! [200 дней на форуме]
API: GameMaker Studio
Сообщений: 316

Stay hungry. Stay foolish.


« Ответ #4 : Январь 09, 2012, 11:32:29 »

Пригодиться Уважуха
А на C# можно по тому же принципу dll писать?
Записан

"Великое начинается с малого..."
Krib
«Старожил форума»
******

Репутация: 114
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 952


« Ответ #5 : Январь 09, 2012, 11:41:59 »

Да, должно работать, главное указать на сишную часть кода:
Код:
extern "C"
Не знаю как это на C# делается, возможно так же 

Добавлено: Январь 09, 2012, 11:47:11
На yoyo вроде пишут что использовать .NET для dll не удобно...
Записан

Fuge, late, tace
MaximXGame
Активный участник
*****

Репутация: 37
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio
Деятельность: Переводчик русского ошибочного на русский
Сообщений: 397

I like retro-cars!


« Ответ #6 : Январь 09, 2012, 11:57:45 »

Вопрос: с какой версии C++ можно такое сделать?
Записан

Krib
«Старожил форума»
******

Репутация: 114
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 952


« Ответ #7 : Январь 09, 2012, 12:02:25 »

Появились какие-то проблемы?
Я делал на VS2010.
Если не получается можно сделать так:
Код:
#define DLLEXPORT __declspec (dllexport)
И включить принудительную компиляцию в C код
Цитировать
Microsoft Visual Studio 2008 > Project > [project_name] Properties (Alt + F7) > Configuration Properties > C\C++ > Advanced > Compile As > Compile As C Code (/TC)
Записан

Fuge, late, tace
gedeon
Пользователь
***

Репутация: 7
Offline Offline

Сообщений: 65


« Ответ #8 : Май 12, 2012, 08:39:52 »

для этих же целей можно воспользоваться  purebasic , тоже умеет dll создавать, а в плане кода довольно прост, есть куча примеров и неплохой русскоязычный форум
Записан
ETUN4
«Старожил форума»
******

Репутация: 50
Offline Offline

Пол: Мужской
Ukraine Ukraine

Награды:
500 сообщений!За постоянность! [10 дней на форуме]
API: Game Maker 8.0 Pro
Деятельность: Game Maker, HTML, MobileBasic...
Сообщений: 860

Ну как-то так...


« Ответ #9 : Сентябрь 26, 2013, 15:14:22 »

А вот как сделать так что бы результат следующего вызова возвращал a*b+c, где с - результат предыдущего вызова функции.
Записан

VladTheCat
Немного
GM Pro user
*

Репутация: 144
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
1000 сообщений!За постоянность! [100 дней на форуме]Настоящий игродел!
API: Love
Деятельность: Целая игростудия, состоящая из одного кота.
Сообщений: 1438



« Ответ #10 : Сентябрь 26, 2013, 15:24:34 »

А вот как сделать так что бы результат следующего вызова возвращал a*b+c, где с - результат предыдущего вызова функции.
С принципами работы DLL не знаком, но думаю, что можно в самой библиотеке вне функций объявить переменную, которая будет результатом предыдущего вызова.
Записан


Будьте вежливы: Вам помогли? Не забудьте поставить плюс. А то банда злобных апельсинов придет за вами. И даже тех. поддержка вам не поможет. :3

Когда я что-то пишу в "<>", то это значит, что содержимое надо заменить на свое значение.
ETUN4
«Старожил форума»
******

Репутация: 50
Offline Offline

Пол: Мужской
Ukraine Ukraine

Награды:
500 сообщений!За постоянность! [10 дней на форуме]
API: Game Maker 8.0 Pro
Деятельность: Game Maker, HTML, MobileBasic...
Сообщений: 860

Ну как-то так...


« Ответ #11 : Сентябрь 26, 2013, 17:45:35 »

С принципами работы DLL не знаком, но думаю, что можно в самой библиотеке вне функций объявить переменную, которая будет результатом предыдущего вызова.
Исходников просто дллок не разу не видел.
Записан

VladTheCat
Немного
GM Pro user
*

Репутация: 144
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
1000 сообщений!За постоянность! [100 дней на форуме]Настоящий игродел!
API: Love
Деятельность: Целая игростудия, состоящая из одного кота.
Сообщений: 1438



« Ответ #12 : Сентябрь 26, 2013, 18:01:32 »

Исходников просто дллок не разу не видел.
Я их тоже не видел никогда. Только в справке по GML, и то там был Delphi.
Записан


Будьте вежливы: Вам помогли? Не забудьте поставить плюс. А то банда злобных апельсинов придет за вами. И даже тех. поддержка вам не поможет. :3

Когда я что-то пишу в "<>", то это значит, что содержимое надо заменить на свое значение.
Dmi7ry
Гл. Администратор
*

Репутация: 1183
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 5523



WWW
« Ответ #13 : Сентябрь 26, 2013, 18:29:38 »

А вот как сделать так что бы результат следующего вызова возвращал a*b+c, где с - результат предыдущего вызова функции.
Функции должны быть полностью независимыми. Вызывайте функцию из GM, она вернёт результат. Этот результат сами запоминайте, а после суммируйте с результатом нового вызова. Это самый простой вариант.
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
ETUN4
«Старожил форума»
******

Репутация: 50
Offline Offline

Пол: Мужской
Ukraine Ukraine

Награды:
500 сообщений!За постоянность! [10 дней на форуме]
API: Game Maker 8.0 Pro
Деятельность: Game Maker, HTML, MobileBasic...
Сообщений: 860

Ну как-то так...


« Ответ #14 : Сентябрь 27, 2013, 22:25:15 »

Функции должны быть полностью независимыми. Вызывайте функцию из GM, она вернёт результат. Этот результат сами запоминайте, а после суммируйте с результатом нового вызова. Это самый простой вариант.
То есть получается, что дллка не может хранить в себе что-либо?

Добавлено: Сентябрь 27, 2013, 22:26:02
А глобальные переменные?
Записан

Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  

Vendet | HellRoom Games © 2006-2017 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines