如何有效标记周围区域

时间:2019-04-17 11:23:58

标签: python pygame

我正在制作一个游戏-类似于this-我的游戏在细节上有所变化,但是为了描述我的问题,该游戏很棒。我在标记区域时遇到问题。

游戏规则(如果您在关联游戏中玩了一分钟,您将获得-基本描述了吃豆人和幽灵在该游戏中的行为)

在地图上有一个玩家和敌人。开始时,整个地图是空的(所有字段都未被占用)。当玩家在空闲区域(喜欢的游戏中黑暗的区域)移动时,他正在标记自己的前进方向。如果敌人(鬼魂)击中印记,则玩家死亡。这部分非常简单-我是一个带数字的2D数组,其中0 =未占用区域,1 =已占用区域和2 =标记区域,我只是绘制适当的图块并在对象移动时检查数组。 当玩家从无人区移到有人区时,问题就来了。共有三种情况(此部分与链接游戏完全相同):

  • 占领的地砖未与地图边缘连接(当敌人摧毁很少的地砖击中它们并且在地图中间留下很少的地砖时,可能会发生这种情况)-然后标记的路径应绘制为占用面积

  • 玩家标记了两个被占用区域之间的路径,这两个区域都连接到地图边缘,然后他创建了两个分离的区域,并且可能发生两件事:

    • 首先他的道路被标记为已占用,
    • 如果在第一个分离区域是敌人(幽灵),则什么都不做,
    • 如果在第一个分离的区域没有敌人,请将整个区域标记为已占领,
    • 第二个区域相同

---规则结束:)

如您所见,我向您描述了与链接游戏非常相似的东西,我的细节会有所不同,主要是为了学习python并乐在其中,但最后一部分却有很大的问题,当我必须决定要做什么时如果玩家从闲置区域转到占用区域,该怎么办。

我可以检查递归的图块-首先是我站着的图块,然后是她的邻居,然后返回true或false,但是像这样的复杂采样是很悲惨的(我的地图将有大约200种异形)。

您是否知道如何检查和标记适当的区域,并且一次没有大量计算?

0 个答案:

没有答案