最近我没有发布过关于游戏进展的更新,但开发仍在继续。最近,我完成了添加5种技能类型的支持,总共达到7种不同的类别。另外,我还想分享一下我开发的技能完全基于数据驱动且高度可配置的系统。为了避免为每个技能编写后端代码,我开始参数化所有技能属性,并使用NCalc(NuGet)来动态处理基于自定义参数的数学表达式。例如,火焰弹技能。其伤害随着等级的增加使用以下表达式:p1 + (p2 * lvl) 其中: p1 = 基础技能伤害 p2 = 每级伤害增加 lvl = 当前技能等级 在视频示例中: p1 = 20 p2 = 2因此: 等级1时,技能造成 22伤害 * 等级17时,技能造成 54伤害 使用这个系统,我可以以简单和灵活的方式配置几乎任何技能行为,包括: 伤害 被动和主动属性 互补作用 范围* 持续时间 作为奖励,NCalc还支持函数如min()和max(),这使得限制值时变得更加容易。例如:min(p1 + (p2 * lvl), 100)` 在这种情况下,技能伤害将被限制在100以下,即使计算结果超过该值。这种方法使系统极其灵活,同时大大减少了为每个新技能编写自定义代码的需要。
技能系统中的数学表达式
评论 (0)