2D平台游戏的适当级别表示/数据结构?

Ram*_*ama 2 java 2d data-structures

我即将用Java编写Mario的副本.我正在考虑关于级别的2个表示/数据结构,但我不确定应该选择哪一个:

  • 一个2D整数数组.
  • 用于分割碎片的四叉树.

它的优点和缺点是什么?

Cod*_*Guy 5

绝对是某种类型的二维数组.整数将是一个好主意,但字符将是一个更好的主意.

考虑制作一个基本上是"地图"的文本文件.它可以是10行×10列的文本.在这种情况下,一个非常简单的地图.也许你可以用"a"来表示草,用"b"来表示砖.通过这种方式,您甚至可以在将地图投入使用之前直观地了解地图.但您基本上可以编写应用程序以依赖此地图文本文件.

例如,考虑这张地图:

bbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaa
Run Code Online (Sandbox Code Playgroud)

所以,这看起来像是一条长长的砖路,长在3排长长的草地上.想象一下,使用各种字符az和AZ,甚至像$或%或&等标点符号,使这个方案更加复杂.

然后,您可以通过更改文本文件来动态创建地图.如果使用整数,则仅限于10个字符(或10个地图对象本身).例如,如果你有10个对象,那么如何制作一个数字彼此相邻的文本文件呢?你不会知道如何分开数字.

四叉树的缺点是它过于复杂,不允许快速访问特定元素.