jar - Libgdx 导出独立桌面游戏而不必将所有 Assets 放在同一个文件夹中?

标签 jar libgdx desktop-application executable-jar

所以这个问题不是没有必要的,我只是在寻找一种更优雅的方式来向 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/

相关文章:

java - java -cp 与 java -jar 之间的区别

java - 从 Matlab 创建的 jar 文件返回值

由于分发配置文件,iOS 应用程序在启动时崩溃? (libgdx + robovm)

java - 在 libgdx 对话框中绘制形状和图像

java - 如何使用 Polygon 类在 libGdx 中绘制六边形 map ?

java - NetBeans 中表的 Swing Bean 绑定(bind)

qt - 如何在桌面应用程序上使用 QtMultimedia?

java - dex2jar 和 JD-GUI 标签语句

java - 比较不同 jar 中公共(public)类的值

windows - 设置 mailto : protocol handler programmatically in Windows 8