0

我一直在想一些关于能力的事情……比如在 DOTA、LoL 和其他 MOBA / MMORPG 游戏中。如果我一开始就做一个角色选择的游戏,在游戏中它会有法术/能力等等。

这样做的正确方法是什么?我应该创建一个具有所有值和纹理的 Champion 类,还是在 Game1.cs 中对其进行初始化Champion champ = new Champion(texture, name, Q-ability name, Q-cooldown, Q-damage, Q-manacost)- 但这需要大量不同的声明......

我应该制作一个 Champion 文件夹并将它们单独分类吗?还有能力 - 我正在考虑使用枚举来保留它们,或者列表或其他变量会更好地工作吗?谢谢!

4

2 回答 2

3

对于这样的游戏,我建议使用实体系统(http://entity-systems.wikidot.com/)。这些允许您创建单独的法术、能力、玩家、角色等类,并将它们组合成高度可配置的实体。我将流行的 Ash 实体框架移植到了 C#,它可以在https://github.com/DavidArno/Ash.NET获得,它可能对你有用。

于 2013-10-28T11:44:17.643 回答
0

除了 David Arno 建议的实体系统之外,如果我想这样做,我会选择一个Hero类,然后在其中包含一个能力列表。能力都是一样的,不同的是他们的因素。例如,一个技能可以造成多少伤害等等。这样你就必须实例化你所有的英雄和他们的技能。

于 2013-10-28T12:21:12.687 回答