2014-11-23 57 views
0

(只是要清楚,我要求guideance不是有人编程这整个事情(除非他们想XD))安卓块地图生成通过文本文件

嗨,我目前正在努力使一个android游戏,你可以在这个游戏中创建一个块(有几种类型,但我们只是在这里使用墙)。

地图将会是100x20块,其中玩家可以以任何顺序放入任何可用的块,并且将以文本文件“让我们称之为”mapFile“”(这部分我已经解决了),其中0将是没有什么,1将是墙壁。

现在问题是,当你开始玩地图时,游戏将不得不加载所有的障碍物来制造障碍物,但我希望它以特定的方式来做(主要是为了让游戏变得更加平滑)并且每次更新时不必检查2000个块):

- 使块(线,正方形,矩形)的块组成为1个障碍物,因此只有1个块在大量块中进行碰撞检测(困难部分是以最佳方式划分复杂形状)

-将地图分成5x5块,因此它不必检查每个障碍物以查看是否应该绘制它(它只会绘制块中的球员在和那些sur舍入)

从这个输出应该是一个4级阵列(或类似的东西): 数组[Ychunk] [Xchunk] [障碍物] [X,Y,大区块,yBlocks,类型] (类型仅仅是在地图中块的NUM(在这种情况下,它是1,因为它是在我的应用程序墙数)

对于现在的游戏有:

- 一个阵列的所有障碍信息(X,Y ,xBlocks,yBlocks,类型)

- 只有在距离玩家很小的距离时才会更新障碍物(仍然需要全部检查)

- 只绘制属于窗口内的障碍物(也必须检查他们所有)

+0

2D平铺游戏? [平铺游戏](http://www.tonypa.pri.ee/tbw/links.html)。 – j4rey89 2014-11-23 07:58:06

+0

是的,很抱歉忘了那个 – mbsff 2014-11-23 13:37:43

回答

0
  • 首先,你不需要一个阵列,所有的地图信息,你需要的是一个二维数组瓷砖。瓦片对象将包含像图像,isSolid等所有信息。
  • 其次,您将永远具有可见的播放器,以便作为您的播放器的行为,只有显示播放器周围的瓦片并将其呈现给屏幕。渲染不会在屏幕上呈现的瓦片是没有意义的,例如,如果玩家位于中心并且屏幕呈现5x5瓦片,则玩家瓦片的+/- 2瓦片。同样,检查瓷砖是否可见不,需要检查所有
  • 最后,您不需要检查与所有障碍物的玩家碰撞,只需要检查与玩家是将继续前进。

希望它有帮助。

+0

感谢您的回答,但正如在“现在游戏有”部分所述,有一个只有他们的信息的障碍物阵列,游戏只更新和呈现对象内窗口,说要检查它们的部分是为了知道它们是否在里面。 – mbsff 2014-11-24 02:16:41

+0

什么是xblock,yblock和xchunk,ychunk?该类型,我假设它是瓷砖类型。 – j4rey89 2014-11-24 06:45:05

+0

xblock和yblock是构成障碍物的每个方向上的块数,xchunk和ychunk是地图上的块(块是5x5空间区域) – mbsff 2014-11-26 02:20:20