C++ 我应该把我的函数代码放在哪里

C++ 我应该把我的函数代码放在哪里,c++,class,C++,Class,我正在写一个RPG游戏,我发现有更多的后台功能,用户从未见过 我有一门战斗课。它将敌人的实例保存在背景图片中,并用于选择战斗中的敌人 我开发了几个全局函数来计算和显示仪表,如hp和mp。另一个是移动计时器条,以便战斗继续进行。但是我想知道这些是否应该像我看到的所有其他函数一样出现在battle类中,它会比任何其他类都大得多吗 我还知道绘图应该与其他代码分开,所以现在我有全局函数,可以循环所有活动的内容,并在流程代码完成后绘制,但是在每个类中放置一个绘图函数并循环它们是更好的选择,还是将它们分开

我正在写一个RPG游戏,我发现有更多的后台功能,用户从未见过

我有一门战斗课。它将敌人的实例保存在背景图片中,并用于选择战斗中的敌人

我开发了几个全局函数来计算和显示仪表,如hp和mp。另一个是移动计时器条,以便战斗继续进行。但是我想知道这些是否应该像我看到的所有其他函数一样出现在battle类中,它会比任何其他类都大得多吗

我还知道绘图应该与其他代码分开,所以现在我有全局函数,可以循环所有活动的内容,并在流程代码完成后绘制,但是在每个类中放置一个绘图函数并循环它们是更好的选择,还是将它们分开

另一件困扰我的事情是,我正在实施攻击,并且正在考虑给这个生物提供四个攻击类实例。这会起作用,但如果战斗中有两个或两个以上的生物使用相同的攻击,则会造成浪费。我考虑在某处为每种攻击类型创建一个实例,并让每种生物存储四个指向适用攻击实例的指针。
这两个选项中有一个是好主意还是更好的实现方法?

我想你应该看看有限状态机,它通常是游戏的基本机制。这将使您大致了解如何组织代码,以使所有内容都易于编辑和浏览

我觉得你选择的班级抽取有点奇怪。it自身中的“战斗”不符合类的条件,因为它与OOP核心的任何“对象”都没有相似之处。我的意思是,是的,你可以将你的函数收集到一个特定的类中,但是首先确定你正在处理的状态,然后围绕它们构建一个状态机,这样你就可以很容易地为这个功能构建一个新的类

我相信FSM是你要找的东西

给出一个想法:

我建议你读一本书。我担心没有更简单的答案。@Space\u C0wb0y 1)我读过很多书,但有很多不同的方法,传统上,我更喜欢程序而不是OOP,但鉴于这是一个游戏OOP,它是:)2)多年前某个人写的页面与同行对您的特定设置的意见之间存在差异。听起来您有很多全局功能。也许您应该考虑一种封装某些功能的方法。也许一个“ScreenManager”界面是有用的,它由一个屏幕成员的列表组成(“绘制一场战斗”、“绘制一个健康测量仪”等等)。@Skeith-你的问题会有各种各样的意见,没有明确的答案,这样说的人是傻瓜。你自己应该是决定哪个最适合你的人。接受意见,但使用最适合你的意见。@Skeith:我建议你读一本书,因为你的问题范围太大,只有一本书才能回答。就目前而言,这不是一个有明确答案的问题,因此也不适合这样做。当我写这篇评论时,我意识到我本来应该投票结束。现在这样做。是的,一个战斗类可能是错误的想法,但我的理论是战斗是一个状态,所有关于该状态的数据都在战斗类中。这个网站上的人告诉我,这样一个类只实现一次是可以的。