所以这个问题不是没有必要的,我只是在寻找一种更优雅的方式来向 friend 们展示我制作的第一款游戏。
当我导出游戏时,当所有 Assets 都在同一个文件夹中时它绝对有效。但是我也注意到,当没有 Assets 存在时,游戏的第一个屏幕仍然会加载,其中有一个背景图像。因此,我的第一个屏幕(一个简单的登录屏幕)的背景图像可能以某种方式与 jar 文件合并。当我切换到包含新 Assets 的任何其他屏幕时,它会崩溃,因此我拥有的其他图像不在 jar 文件中。
这种情况让我想到可能有一种方法可以将我所有的 Assets 放入一个 jar 文件中(就像我拥有的背景图像一样),这样我就会有一个更优雅的最终产品。有什么办法吗?
我使用 AssetManager,我已经尝试在登录屏幕上导入背景图像的行旁边导入所有其他图像,但没有帮助。事实上,出于某种原因,当我尝试让游戏甚至不包含第一个背景图像时,它甚至在登录屏幕之前就崩溃了。
如果有人有这样的经验或知识可以为我指明正确的方向,我将不胜感激。
更新:到目前为止,问题似乎只与极少数图像和声音有关。因此出于某种原因(可能是大小或维度),AssetManager 似乎只需要运行 jar 的同一目录中的一些 Assets 。
最佳答案
如果你想从桌面模块导出独立的jar。
Libgdx 使用 gradle 进行项目构建,因此希望您使用 gradle 和 IntellijIDEA 或 Android Studio 作为 IDE。
打开终端
View -> Tool Windows-> Terminal 或 Alt+ F12
在窗口上运行命令
gradlew desktop:dist
在mac上运行命令
./gradlew desktop:dist
它会将您的所有 Assets 从您的 android 模块的 Assets 文件夹放入您的 jar 中。
您可以在桌面模块中找到您的 jar。
编辑
您还可以使用 Artifact 创建您的 jar
文件 -> 项目结构 -> 工件 -> 添加(+) -> Jar -> 从模块和依赖项 ->
模块:桌面 主类:DesktopLauncher
然后确定
在 OutputLayout 选项卡 -> 添加副本 (+) -> 目录内容 -> 选择你的 Android Assets 文件夹 -> 应用 -> 确定
然后构建 -> BuildArtifacts。 -> desktop.jar -> 构建
关于jar - Libgdx 导出独立桌面游戏而不必将所有 Assets 放在同一个文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42326460/