c# - 如何让角色扮演游戏中的生物相互追踪

标签 c#

我正在编写一个角色扮演游戏,目的是为了娱乐和学习。我计划拥有一个整体的游戏世界,并且在该游戏世界中我计划拥有玩家和怪物可以移动的“区域”。假设“区域”是 20x20 网格,该网格上的每个“图 block ”宽度为 64 像素。玩家或怪物可以占据一个 1x1 方 block 并以每步 1 个方 block 的步长移动。

如何让怪物和玩家在游戏进行时相互了解?我不知道我会使用什么样的数据结构,也不知道如何生成怪物并让它们在区域中徘徊。

注意:我似乎提到过使用某种树结构(四叉树),但我不太明白它们将如何应用。

最佳答案

我只会按区域映射怪物:

Map<Zone, Monster> MonsterByZones = new  Map<Zone, Monster>();

当角色进入特定区域时,我猜该区域应该遍历它包含的所有怪物并要求它们做出决定:

foreach(Monster monster in MonsterByZones[currentZone].Values)
{
    monster.MakeDecision(character);
}

世界应该有一种改变角色区域的方法:

world.ChangeZoneIfNeeded(character);

这是实现 RPG 的简单方法!

玩得开心!

关于c# - 如何让角色扮演游戏中的生物相互追踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2234339/

相关文章:

c# - 单击按钮时动态添加的文本框为空

c# - aspnet 5 RESTful api ModelState.IsValid == true 即使值根据 DataAnnotations 无效

c# - Azure 存储计数事务

c# - 如何检查是否已抛出任何异常?

c# - Resharper 警告 Unity3D 调用的未使用方法

c# - 让Excel执行C#代码

c# - 在 LinkedListNode 中找不到特定元素

c# - C#从URL中提取域名

c# - 通过 WMI 更新

c# - 如何使用 Entity Framework 在读取时锁定表?