Организация файлов проекта в обозревателе решений в Visual Studio
Я делаю свою первую простую игру для D3D. Моя игра использует много изображений.
Это моя организация на диске:
MyGame
|
|-Debug
|-Release
|-Assets
|-Others
|-Images
|All cpp and h fiels here
Если я запускаю игру из Visual Studio, игра работает. Но если я запускаю игру из Windows (щелкая EXE-файл в папке Release), я получаю сообщение об ошибке, что мое приложение не может загрузить изображения. Это потому, что в моем приложении я ссылаюсь на эти изображения, такие как "Assets\Images\image.bmp".
Как мне организовать свой проект?
Теперь я должен сделать копию папки Assets в папке Release и в главной папке проекта.
2 ответа
Другая возможность ответа @shelleybutterfly - всегда относиться к изображениям относительно, например, как "..\Assets\Images\abcde.bmp". Затем при развертывании вы можете поместить свой исполняемый файл в такую же структуру, если относительные отношения остаются прежними.
например, проект:
MyGame
|-Debug
|-Release
|-Assets
|-Others
|-Images
например, развертывание:
C:\Program Files\MyGame
|-Bin (contains *.exe)
|-Assets
|-Others
|-Images
Я думаю, что ваш проект организован хорошо; Мое предложение было бы вместо того, чтобы полагаться на определенную структуру каталогов, просто иметь app.config или другой параметр файла XML .config, или, возможно, параметр реестра (но не делать этого) или переменную среды (MY_GAME_ASSETS="C:\path\to\assets"
) или, возможно, даже параметр командной строки (MyGame.exe --assets-dir="c:\path\to\assets\"
) что вы можете установить при запуске игры; тогда вы можете указать это в правильном каталоге, где бы он ни находился.