所以我一直在使用Visual Studio C ++中的文件中的音频和图像进行一些项目。截至目前,它们只是测试项目,但我现在将转向使用SFML和一些不同的音频库制作2D游戏。问题是这样,我想把我的游戏发给别人,这样他们就可以玩和测试它们了,我可能会尝试为某些人开发某种多人游戏,从而增加了我愿意把它交给别人的愿望,但是我没有知道如何给他们包含所有文件的游戏。我以前只能从调试或发布文件夹中获取exe文件,但这些项目有他们依赖的文件。
所以这是我的问题,是否可以导出包含所有其他文件(wav,jpg等)的exe文件?如果这个问题听起来非常愚蠢,那么告诉我,因为我对exe是什么一无所知,以及它是否可以保存这些文件(我习惯于java,你可以简单地将东西输出到一个可运行的jar中,因为它是一个存档,其中包含预先打包的所有资源,我不知道exe是否共享这些特征)。如果这是不可能的,或者有更好的选择,那么它们是什么?我已经看过并知道如何从数据数组中加载声音,那会是更好的解决方案吗?还是有其他选择吗?最重要的是,在调试和发布文件夹中有几个DLL文件,我需要运行项目,有没有办法将这些文件压缩到exe或者那些必须与exe在同一个文件夹中,无论什么?
这里真正的问题是导出项目的exe文件的最佳方法是什么,以便我可以将所有声音和图像资源以及dll用于易于分发的副本?提前感谢您的任何建议。
答案 0 :(得分:5)
导出包含exe和其他多个文件的exe 是不可能的。您可以使用安装程序(例如免费的InnoSetup),或将额外文件捆绑到资源中,并在运行时从资源加载它们。 (第一个的好处是能够询问用户安装位置,创建快捷方式和文件夹,开始菜单项等。)
答案 1 :(得分:5)
有两种简单的方法可以制作一个文件,您可以轻松地让人们测试和/或玩游戏。
第一个选项是使用安装程序,如Ken White的回答中所述。这是“最终”发布的一种很好的方法,但如果您只是想将游戏副本发送给某人进行测试,则会增加额外的步骤。
第二种方法是将所有文件放入一个 .zip文件(或.rar或.tar.bz)。基本上,这很像Java的.jar文件,所有的dll,图像文件和声音文件都放在一个文件中。最新版本的Windows能够创建内置的zip文件,因此最好的方法是使用所有文件压缩Debug或Release版本,然后解压缩到某个空文件夹,并测试游戏。这样做可以确保您获得所需的所有文件。通过这种方式,您可以轻松地将游戏发送给某人,他们可以将其简单地解压缩到某个文件夹,然后玩游戏,而不会与安装人员混淆。
奖励第三个选项是将文件粘贴到资源并在运行时加载它们或类似的东西(它可能真的很花哨并将所有文件合并到一个EXE中,但这并不容易,也不是真的可取。)