我正在制作我的第一款D3D简单游戏。我的游戏使用了很多图像。
这是我在磁盘上的组织:
MyGame
|
|-Debug
|-Release
|-Assets
|-Others
|-Images
|All cpp and h fiels here
如果我从Visual Studio启动游戏,则游戏正在运行。但是,如果我从Windows启动游戏(通过单击 Release 文件夹中的EXE文件),我会收到一条错误消息,表明我的应用程序无法加载图像。这是因为在我的应用程序中,我引用的是像“Assets \ Images \ image.bmp”这样的图像。
我应该如何组织我的项目?
现在我必须复制 Release 文件夹和主项目文件夹中的 Assets 文件夹。
答案 0 :(得分:3)
我认为你的项目组织得很好;我的建议是,而不是依赖于某个目录结构,只需要app.config或其他XML .config文件设置,或者可能是注册表设置(但不要这样做)或环境变量(MY_GAME_ASSETS="C:\path\to\assets"
),或者甚至可以在启动游戏时设置的命令行参数(MyGame.exe --assets-dir="c:\path\to\assets\"
);然后你可以指向正确的目录,无论它在哪里。
答案 1 :(得分:1)
@ shelleybutterfly的答案的另一种可能性是总是相对地引用图像,例如作为“.. \ Assets \ Images \ abcde.bmp”。然后在部署时,只要相对关系仍然相同,就可以将可执行文件放在同一种结构中。
e.g。项目:
MyGame
|-Debug
|-Release
|-Assets
|-Others
|-Images
e.g。部署:
C:\Program Files\MyGame
|-Bin (contains *.exe)
|-Assets
|-Others
|-Images