如何在基于图块的游戏中保存地图数据

时间:2014-05-29 11:05:10

标签: java 2d data-storage

我有一个关于地图数据存储的新手问题我是一个java游戏。我制作了一个基于图块的2D游戏,其中每个图块都有一个id(1,2,3,4等等......)。我目前将游戏数据存储在.txt文件中,其中每个数字都由一个标签分隔。从那里我通过扫描仪.nextInt阅读它。

这种方法运行正常,但它似乎给我一个问题:

  • 由于关卡文件只是一个普通的.txt文件,所以任何人都可以轻松编辑。这意味着用户可以使用任何类型的文本编辑器更改文件中的一些数字,从而轻松作弊。

如何避免这种情况?我应该以不同方式存储地图数据还是应该使用某种形式的加密?

2 个答案:

答案 0 :(得分:0)

Java有一个Serializable接口,可用于保存java对象。

可以在此处找到API文档:http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html

这并不能让人们欺骗和改变地图变得更加困难。

如果您真的担心它,可以使用某种形式的加密或添加校验和以进一步防止篡改。

答案 1 :(得分:0)

对此的一个解决方案是将数据存储在数据库中,例如derby。一旦游戏被导出为jar文件,休闲玩家将永远不会看到该文件,如果他们确实得到了它,可能不知道如何处理它。

这是一个很好的教程,介绍如何设置和连接到简单的derby数据库。

http://www.vogella.com/tutorials/ApacheDerby/article.html

祝你好运。