2015-08-04 2 views
0

В настоящее время я работаю над проектом видеоигр на C++, используя Allegro 5 в качестве моей графической библиотеки. Я храню свои графические и шрифтовые активы в подпапках в корневой папке .exe. Чтобы использовать их в программе, у меня есть функция initGraphics(), которая загружает все необходимые активы через al_load_bitmap(), а затем освобождает память с помощью al_destroy_bitmap(). Это означает, однако, что когда я в конечном итоге раздаю свою игру, всем будет легко войти в папку установки и просто отредактировать графику, чтобы быть чем угодно, и у меня возникли проблемы с поиском какой-либо помощи относительно того, как предотвратить это , То, что я подумал, может быть, это какая-то программа, которую я запускал на своем собственном компьютере перед дистрибутивом, который загружает соответствующие графические активы и каким-то образом преобразует их в файл .txt, а затем меняет «initGraphics() функцию для загрузки и использования этих файлов вместо необработанных файлов .png, но я не уверен, что это возможно. Любая информация об этом типе конверсии была бы чрезвычайно оценена или, альтернативно, более надежный проверенный метод, который бы достиг бы такого же эффекта. Заранее большое спасибо!Allegro 5 ALLEGRO_BITMAP в текстовый файл

+0

Вы можете изменить расширение ваших файлов * .txt и проверьте, напр. _DEBUG макрос. Поэтому, если он установил чтение из файлов с * .png, иначе из * .txt. Однако я бы порекомендовал какую-то zip-библиотеку, а затем поставил ваши активы в архив и защитил с паролем. – user2475983

+0

Спасибо за идею. Я получаю отказ от утверждения, хотя при попытке загрузить файл, если я изменю его на .txt. Есть ли какой-то дополнительный шаг, который мне нужно предпринять, чтобы сделать это возможным? – CaptainTid

+0

Если вы только изменили расширение, я верю, что это тоже имеет значение, если вы изменили код. Однако убедитесь, что вы изменили расширение точно, а не только имя (видимые настройки расширений файлов в окнах). Вы также можете опубликовать свою ошибку, я подумаю об этом в свободное время. – user2475983

ответ

0

Исследуя Интернет я нашел интересное решение:

Allegro5 использует библиотеку PhysicsFS для обработки файловых архивов. Он не поддерживает архивы, защищенные паролем, но вы можете вычислить md5 для своего архива активов и скопировать его в свою программу, а затем сравнить его во время выполнения (source - see more here).

См. this часть документации Allegro5.

Пример Объяснение реализации md5 является here

Смежные вопросы