【问题标题】:Include assets in build (SDL-2 game project in C)在构建中包含资产(C 中的 SDL-2 游戏项目)
【发布时间】:2019-03-09 16:54:26
【问题描述】:

我正在使用 SDL-2 制作游戏项目,使用 C 编码。IDE 是 Code::Blocks v17.12。我的资产文件夹有问题。

在游戏中包含资产没问题。我是这样放的:

SDL_Surface* temp_surface = IMG_Load("assets/player.png");

当然,这只有在我的项目目录有一个名为“assets”的文件夹时才有效,该文件夹本身有一个名为“player.png”的文件。

问题是在构建项目时情况仍然如此。在我的“Release”文件夹(或我放置构建的任何位置)中,“Assets”必须存在,位于“.dlls”和“.exe”旁边。这是非常次优的。我不希望普通用户如此轻松地查看我的游戏资产。

我尝试通过转到项目 > 构建设置 > 搜索目录 > 资源编译器然后添加我的资产文件夹来解决问题。那没有用,我承认不知道“资源编译器”实际上是做什么的,我只是根据名称进行了猜测。

如果提供解决此问题的唯一可行方法,我愿意切换到 C++。我还没有开始任何项目(只是确定了我的环境和工具),因此我愿意做出很大的改变以使设施正常工作。

【问题讨论】:

  • 简单的解决方案:将资产的扩展名更改为其他内容,例如 .asset。另一种解决方案是压缩您的资产,然后将 .zip 更改为 .asset,但您必须在将它们加载到游戏之前先解压缩它们。
  • 我承认,我很惊讶 .png 即使变成 .asset 仍然可以正常工作。但是,我仍然必须将 Assets 文件夹与 .exe 一起随身携带,以使它们显示在屏幕上。

标签: c codeblocks assets sdl-2


【解决方案1】:

PhysicsFS & 使用您的favorite method 将生成的存档二进制嵌入到您的可执行文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多