我正在编写RPG游戏,并发现用户可以看到更多的背景功能。
我有一个战斗类。这可以保存敌人的背景图片,并处理选择战斗中的敌人。
我开发了几个全局函数来计算和显示像hp和mp这样的仪表。和另一个移动计时器栏,以便进行战斗。但是我想知道这些是否应该在战斗类中和我所有的其他功能一样,看它会比其他任何类增长得多吗?
我也知道绘图应该与其他代码分开,所以现在我有全局函数循环遍历所有活动的东西并在流程代码完成后绘制它,但是最好在每个类中放置一个绘制函数而是通过它们循环或将它们全部分开?
困扰我的另一件事是我正在实施攻击并且正在考虑给予该生物类四个攻击类实例。如果战斗中有两个或更多生物使用相同的攻击,这会产生浪费。我想过在某个地方创建每个攻击类型的一个实例,让每个生物存储四个指向适用攻击实例的指针。 这些选项中的任何一个都是好主意,还是更好的实现方法?
答案 0 :(得分:0)
我认为你应该看一下通常是游戏基础机制的有限状态机。这样可以让您广泛了解如何组织代码,以便让所有内容都易于编辑和轻松浏览。
我认为你选择的课堂提取有点奇怪。其中的“战斗”本身并不符合课程资格,因为它与OOP核心的任何“对象”没有任何相似之处。我的意思是,是的,你可以将你的函数收集到一个特定的类中,但是首先确定你正在处理的状态然后围绕它们建立一个状态机更有意义,所以如果你进步,一组新的状态出现后,您可以轻松地为该功能构建一个新类。
我确信FSM是您正在寻找的东西......
提出一个想法: Simple but generic FSM implementation in C++ Game design with FSM tutorial