代码之家  ›  专栏  ›  技术社区  ›  Jeffrey Kern

游戏设计:RPG中可堆叠属性(DFP、HP、MP等)的数据结构(VB.Net)

  •  1
  • Jeffrey Kern  · 技术社区  · 15 年前

    我一直在争论如何在我的游戏中存储角色装备和属性的问题。

    • 基地ATP:55
    • 武器ATP:45
    • 铠装1 ATP:-10
    • 装甲3 ATP:3

    我正在寻找一种在代码中实现这一点的方法。嗯,我已经实现了这个,但它并不优雅。现在,我有一个ClassA,它将这些属性存储在一个数组中。然后,我有一个ClassB,它接受五个ClassA,将值相加并返回最终的属性。

    然而,我需要强调的是,这不是一个优雅的解决方案。

    必须有更好的方法来访问和操作这些属性,包括我没有想过要使用的数据结构。有什么建议吗?


    编辑:我应该注意到,这些属性有一些限制,我需要设置到位。例如,这些是基线。

    1 回复  |  直到 14 年前
        1
  •  2
  •   timebean    15 年前

    生成一个名为 角色属性

    制造 设备 类来表示任何可装备项。这个类将有一个字典,它是由这个设备修改的任何属性的列表。对于造成+10伤害的剑,使用字典[CharacterAttributes.Damage] = 10. 魔法物品可能会影响多个属性,所以只要添加你喜欢的条目就可以了。

    你的 性格

    要计算最终统计信息,请在角色类中创建如下方法:

    int GetFinalAttribute(CharacterAttributes attribute)
    {
        int x = baseStats[attribute];
        foreach (Equipment e in equipment)
        {
            if (e.StatModifiers[attribute] != null)
            {
                x += e.StatModifiers[attribute];
            }
        }
    
        // do bounds checking here, e.g. ensure non-negative numbers, max and min
    
        return x;
    }
    

    我知道这是C#你的帖子被贴了标签VB.NET,但方法应该很容易理解。我还没有测试过这段代码,所以很抱歉如果有语法错误或什么。

    推荐文章