代码之家  ›  专栏  ›  技术社区  ›  David Eyk

为游戏地图构造有向图(Python)的好策略是什么?

  •  9
  • David Eyk  · 技术社区  · 17 年前

    不

    对于世界生成算法,不同种类的房间将通过每个房间的“标记”属性(一组字符串)来区分。实例化房间后,可以通过标记(单个标记、标记交叉、标记联合、最佳候选)查询和选择房间。

    side_street, main_street, plaza, bar, hotel, restaurant, shop, office

    最后,问题是:实例化和安排这些房间以创建可能符合给定规则的图形的好策略是什么?

    梅因尤街 连接到 plaza 西杜街 连接到 西杜街 ; hotel 恩惠 或 连接,并相应地接收更多标签;等

    2 回复  |  直到 17 年前
        1
  •  7
  •   S.Lott    17 年前

    首先,你需要一些位置感。您的各种对象占用一定数量的坐标空间。

    你必须决定这些东西有多规律。在一般情况下,可以将它们作为简单矩形(或矩形实体)放入坐标空间,以使位置更易于规划。

    您的地图将需要一些方法来确定谁居住在给定的空间中,以及与该空间相邻的是什么,等等。


    迷宫/树有一个“根”节点,它将是迷宫的中心。不一定是空间的物理中心,但根节点将是迷宫结构的中间。

    此节点的另一个分支包含整个空间的一个“出口”。

    为根节点选择一种空间。把它放到你的地图空间里。

    这将有1个- 入口,每个入口都是一个带有根节点和1的子树- N 入口。正是这种多入口业务使得树木自然适合这种结构。另外,一棵合适的树总是连接得很好,因为你从来没有无法到达的孤立部分。

    对其进行单元测试,以确保它能很好地填充空间。


    其余的需求是在迷宫生成器选择位置的方式上进行微调。


    你对空间的定义可以是2D或3D——两者都很合理。对于红利信用,考虑如何实现以六边形而不是正方形为单位的二维空间。

    这个“几何体”可以是一个 策略

        2
  •  2
  •   Andy Mikula Eric Mickelsen    17 年前

    查看关于的讨论 The MUD Connector -在“高级编码和设计”(或类似)论坛上,有一些关于世界布局和生成以及不同类型的坐标/导航系统的精彩讨论。