Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 人们是否将课堂作为自己的“目标”;游戏循环?“;_C++ - Fatal编程技术网

C++ 人们是否将课堂作为自己的“目标”;游戏循环?“;

C++ 人们是否将课堂作为自己的“目标”;游戏循环?“;,c++,C++,所以我一直在学习如何编程,这样我就可以做游戏,因此,我一直在阅读和观看许多教程。每隔一段时间,我会遇到使用类来处理游戏事件的代码(c++),但没有人解释他们为什么这样做 似乎有些编程语言,如C#,会自动使用一个类作为程序的“main” 所以我想知道的是我是否应该在游戏中使用类。为什么和/或为什么不 下面是一个可能的示例: class GAME { public: void load_resources(); bool input(); void update();

所以我一直在学习如何编程,这样我就可以做游戏,因此,我一直在阅读和观看许多教程。每隔一段时间,我会遇到使用类来处理游戏事件的代码(c++),但没有人解释他们为什么这样做

似乎有些编程语言,如C#,会自动使用一个类作为程序的“main”

所以我想知道的是我是否应该在游戏中使用类。为什么和/或为什么不

下面是一个可能的示例:

class GAME
{
public:
    void load_resources();
    bool input();
    void update();
    void draw();
};

int main ()
{
    GAME game;

    while (!quit)
    {
         quit = game.input();
         game.update();
         game.draw();
    }

    return 0;
}

感谢阅读。

在游戏引擎设计方面,我们有一个叫做场景系统的东西。 场景通常包含所有游戏对象。 当您向场景发送事件时,它应在游戏对象上迭代,并使用事件更新所有对象(更新开始-结束渲染后渲染键盘鼠标滚动调整大小蚀刻)

但在一个简单得多的系统中,我们至少需要一个游戏类,这样我们就可以重新加载关卡了

例如,当用户进入游戏时,我们可能需要一分钟才能从内存加载所有模型、纹理和脚本,因此我们不希望它出现在主循环中,我们可能希望加载异步并显示加载屏幕。在这种情况下,我们将在另一个线程上构建游戏

或者,当用户获胜并进入下一关时,我们可以卸载上一关,因此我们只需销毁游戏/场景并创建新关卡中的新关卡


简而言之:这种方法用于定义应用程序的状态并轻松管理它们

是否要将类用于主循环?对好的,用它们。你不知道吗?太好了,不要用它们。对于那些无法想象没有课程的程序的人来说,没有“一种正确的方式”可以成为他们的精神支柱,这已经渗透到流行的出版物和教程“如何在30天内编写游戏”中。真正重要的不是入口点(您可能会有比这更复杂的入口点),而是程序的数据模型和组织,以及您如何处理API、可移植性、呈现支持和未来可能的代码支持。您最好也阅读实体组件系统模型。我想说,如果您需要您的程序同时运行多个完整的游戏实例,那么答案肯定是肯定的,将其封装在一个类中。如果你的程序只运行一个游戏实例,那就是风格问题。这不会有什么坏处,但可能会比它需要的更详细。我在早期阶段一直在开发自己的游戏,你可以看看代码。虽然它可能并不完美,但我觉得这是一个坚实的设计,在某种程度上表明了大多数游戏可能使用的模式,尤其是独立游戏。OOP设计是关于如何思考和组织代码的,虽然您可以在代码中使用类,但它比简单地在一个类中进行更复杂。如果您有任何问题,请随时在github上发布,我会尽我所能回答。快乐小径。