我正在尝试在c#中创建一个库,用于在主机上创建角色扮演游戏(从这里开始的rpg),其中包含由我编写的几个类生成的图形。我希望在使用这个库时,玩家能够创建许多房间,就像典型的rpg一样。为此,我有一个公共枚举,命名为Rooms
。问题是,Rooms
将不会被用户编辑,因为它将是库的一部分,而不是他们的Program.cs
,这应该是他们所需要的,使他们的RPG功能与适当的图形(这需要Rooms
有一定的值)。然而,他们需要选择在游戏中想要的房间,所以这是行不通的。
我怎样才能绕过这个?我希望也许有人可以使用XML文件(也许您会运行一次程序来获取XML文件中的值并将它们放入Rooms
enum中,然后然后开始编写RPG)、字典或数组来生成枚举的值,但我不确定这是否可能。
我如何才能以一种方便RPG制作者的方式去做这件事(重申一下,目标是使编码器能够只编辑Program.cs
文件)?如果将RPG套件作为Visual Studio解决方案提供给程序员,让他们能够自己编辑所有内容,这是否更有意义?
我建议Rooms
不应该是enum
。它应该是一个抽象类
public abstract class Room {
public abstract string RoomType {get;}
}
使用您的库的开发人员将创建他们自己的Room
的派生类:
public class ClassRoom : Room {
public override string RoomType {get {return "ClassRoom";}}
}
然后,您的库可以使用反射来查找Room
的所有派生类型,以用于显示或其他目的。