游戏界面设计

问题描述:

所以我正在制作一款类似于帝国时代2的游戏。到目前为止,我一直在做的是使用Applet并制作一系列包含单元和建筑物的图块(网格)。我认为从长远来看,这将是低效率的。我相信有更好的方法来做到这一点,也许使用GUI,但我不是一个非常有经验的程序员,所以我采取了这种更原始的方法。有没有更好,更有效的方法在地图上放置包含角色和建筑物的图块?游戏界面设计

谢谢。

这是一个很值得我多么希望它看起来像:enter image description here

+7

没有试图以任何方式让你离开,但如果你不是一个非常有经验的程序员,你可能想从一个稍微小一点的项目开始,因为这将** ** HARD **。 – 2012-03-23 02:23:14

+1

另外,您可能会对http://gamedev.stackexchange.com感兴趣。 – 2012-03-23 02:28:50

瓷砖的排列应该是罚款 - 这是通常用来表示在2D游戏中的地图。

请注意,你可能会想区分:

  • 地图地形瓦片,其中每平方米只包含一个瓷砖
  • 单位/建筑/其他游戏对象,其中每平方米可能包含多个对象

对于地形单个阵列很好,每个位置有一个瓦片。

对于其他对象,您需要一种方法来在每个方块中存储多个对象。在每个正方形中都有一个ArrayList的数组可以工作 - 尽管您可能希望在没有任何内容的所有正方形中留空,以避免创建大量空ArrayList。

创建游戏对象的全局集合也很有用,因此您可以遍历所有游戏对象和/或快速查找特定对象,而无需搜索整个地图。我通常为此使用类似HashMap的东西,其中整数键是每个游戏对象的唯一ID。

这取决于你认为是'低效'的部分。如果大多数数组元素都将包含数据,并且您需要能够快速轻松地查找数据,那么数组无疑是最佳方式。他们很容易理解,mikera描述的用于存储数据的逻辑是一种非常好的入门方式。

有数据结构很大基于瓦片的游戏用于存储数据。其中大部分针对“稀疏”图形进行了优化。稀疏图是大多数位置都是空的,但其中一些内容是空的。非常大的世界地图往往有这个质量。如果你对这些场景感到好奇,那么你应该谷歌“四树平铺”。

但是总的来说,如果你还在学习开发,那么坚持数组。不成熟的优化是万恶之源。 :)