我应该如何使用 Java 保存自定义游戏文件?

Posted

技术标签:

【中文标题】我应该如何使用 Java 保存自定义游戏文件?【英文标题】:How should I save custom game files using Java? 【发布时间】:2012-11-05 04:50:21 【问题描述】:

我想创建一个类似于 Pokemon 的游戏,其中包含一些基本对象,例如人、咒语、药水和不同的地图,这实际上只是一个网格,每个正方形包含一个人或一个图像(如草) .由于通过逐行编码来创建所有这些对象会很乏味、难以可视化(尤其是地图)并且难以修改,因此我计划使用 Net Beans IDE 创建一个允许用户创建对象的 GUI前面提到过。

这是我的问题:一旦我弄清楚如何获取用户使用 GUI 输入的地图信息,我应该如何将其保存为类似 Pokemon 的应用程序可以读取的形式?是否有某种标准方法可以将对象保存到文件中,然后再在另一个应用程序中读取?还是我在这里采取了错误的方法?

我正在使用这个项目来学习更多关于 Java 编程的知识,并且刚刚开始使用 Net Beans;如果听起来我不知道我在说什么,请原谅我,因为我可能不知道。抱歉,这个问题太含糊了,但我不知道从哪里开始以有组织的方式将大量对象保存到文件中,只是希望获得有关如何执行此操作的一些指导。

【问题讨论】:

【参考方案1】:

听起来,Java 序列化非常适合您的问题。唯一要注意的是,您要序列化的图形中的所有对象都需要实现Serializable 接口......而某些库类没有实现它。 (例如,您不能序列化线程或 GUI 对象。)解决方法是使用 transient 修饰符将不可序列化的对象排除在要序列化的对象图中。

这里是 Java 序列化的文档索引:

http://docs.oracle.com/javase/7/docs/technotes/guides/serialization/index.html

这里是有关该主题的 Java 教程部分...如果您是 Java 新手,这可能是一个更好的起点。

http://docs.oracle.com/javase/tutorial/essential/io/objectstreams.html

【讨论】:

【参考方案2】:

从这里的文档中查看 java 中的基本文件 i/o:http://docs.oracle.com/javase/1.5.0/docs/guide/io/index.html,并且最好使用序列化存储大量对象:http://docs.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html

【讨论】:

以上是关于我应该如何使用 Java 保存自定义游戏文件?的主要内容,如果未能解决你的问题,请参考以下文章

保存游戏状态 Android

如何使用按钮实现自定义相机?

如何在 Android 中保存自定义 Java 对象?

Yii2如何使用自定义文件名保存文件?

如何将视频文件保存到自定义资源库?

如何保存和加载用户创建的游戏对象?