Всем привет! Наверное многих интересует загрузка игровых ресурсов в Game Maker'e из внешних файлов. Ещё больше людей интересуются как защитить свои спрайты, звуки, фоны и т. д. от различных недоброжелателей. Сегодня я расскажу об универсальном средстве для хранения, защиты и кроме того - сжатия размеров файлов вашего проекта. Называется эта чудесная вещь gmZip.dll. Данная DLL и будет осуществлять всё выше названное. Итак приступим:)
1) Запаковываем ресурсы любым zip'ером. Я предпочитаю 7-Zip.
Видно, что у меня в архиве один спрайтик.
2) Зашифровываем наш архив, этим займётя всё таже DLL-ка. Для удобства я набросал мини программку GMzipCrypter.gmk. У меня файл после зашифровки называется graphics_crypt.
3) Загружаем ресурсы в игру. (Не забудте в проект закинуть скрипты, а длл-ку в папку с игрой.)
Code file_decrypt("graphics_crypt","gcup.ru","graphics.zip")//дешифруем наш архив, graphics.zip - то, что получится после обработки, gcup.ru - пароль указанный для криптографии в пункте 2 extract_zip(working_directory,"graphics.zip")//извлекам ресурсы file_delete("graphics.zip")//удаляем уже ненужный, дешифрованный архив newsprite = sprite_add_sprite("TestSprite.gmspr")//загружаем спрайт file_delete("TestSprite.gmspr")//удаляем извлечённый из архива спрайт (instance_create(100,100,objTest)).sprite_index = newsprite//ну а дальше используем по назначению:D
Лично я код загрузки ресурсов пишу в событии криэйта комнаты.
Вот собственно и всё, проверяйте, у меня - работает;)
P.S.: Ну и конечно, не забудте зашифровать exe файл игры, каким нибудь Game Maker Anti Decompiler. |