在2D中制作地图的最有效方法?

时间:2011-05-09 02:25:27

标签: java maps 2d

我想知道在2D游戏中制作地图的最有效方法是什么?

我知道这取决于游戏的制作方式和制作方式,所以我收录了有关此内容的信息。

查看:从播放器顶部

游戏类型:2D射击游戏

游戏摄像头将专注于播放器。

我将创建自己的“地图制作者”,但想知道它是否应该存储在xml或其他东西中。不确定如何解决这个问题。这有什么好书吗?我正在阅读“杀手java游戏”,但它并没有很好地涵盖这个特定的话题,而是我试图做的事情。

现在告诉你我一直在想......

我认为最好的方法是.xml

以下是一个例子:

e =进入/退出

b =阻止

。 =开放空间

<?xml version="1.0" encoding="UTF-8"?>
<info>
    <name>Crack House</name>
    <date>9:49PM 5/8/2011</date>
    <level>Easy</level>
    <rows>10</rows>
    <colums>7</colums>
</info>
<map>
    <row1>bbbebbb</row1>
    <row2>b.....b</row2>
    <row3>b..bbbb</row3>
    <row4>b.bb..b</row4>
    <row5>b.....b</row5>
    <row6>b..b..b</row6>
    <row7>b..b..b</row7>
    <row8>b..bbbb</row8>
    <row9>b.....b</row9>
    <row10>bbbbbbb</row10>
</map>

3 个答案:

答案 0 :(得分:1)

这取决于对您来说最重要的效率:

  • 有效加载地图(所用时间),
  • 有效存储地图(空间利用率),
  • 有效利用开发时间。

这还取决于您的开发人员技能以及您未概述的问题的其他特征。

但最重要的是,你最好的策略可能就是以简单的方式实现它,并在以后担心效率......如果事实证明这是一个真正的问题。


一条建议。尝试设计/构建您的软件,以便您可以更改地图的存储方式而不需要太多努力。

答案 1 :(得分:1)

XML易于解析和使用,如果您以后需要向其中添加更多信息,则应该很容易进行更改。但是它会占用更多的磁盘空间,并且在最初加载地图时可能会更慢地解析它。

某种形式的自定义二进制映射格式会占用更少的磁盘空间,并且可以更快地进行解析,但如果您稍后需要更改格式,则不会那么灵活。

编辑:如果你计划拥有大量的地图或很多地图,你可能不想使用XML来节省空间。如果您需要在非常短的时间内加载地图,您可能不希望使用XML来节省时间加载。如果您希望以后更容易更改的地图格式并且易于手动修改,那么XML可能会更好。实现XML映射格式也可能更容易。总的来说,这取决于你,不过我会说你可以更容易/更快地实现,如果你认为有必要,可以稍后再切换。

答案 2 :(得分:0)

我用2D战略游戏是一个简单的纯文本文件。 该文件如下所示:

  

00000000000
  00111111100
  00111111100
  00222222200
  00111221100
  00000000000

0 =阻止的瓷砖
1 =草瓦 2 =道路瓦片

我认为这是一种非常紧凑的方法。 我的解析器实现工作非常快,解析后得到一个二维数组 - &gt;瓦片[式柱] [行]