【发布时间】:2017-03-31 15:00:04
【问题描述】:
总的来说,我对 C# 和游戏开发还是比较陌生,
我正在查看 Monogame 框架,我想知道 LOOP 在哪里。
我的意思是,据我所知,要制作一个 LOOP,您必须制作一个 WHILE()、一个 FOR() 或递归,而我在 Monogame 中找不到任何东西,那么 GAMELOOP 在哪里?
我使用了一些游戏框架(在 C++ 中),例如:SFML、OpenGl(学校项目),似乎它们都需要一个显式循环:
while(window is open) // pseudo code example
但不是在 Monogame 中,那么循环是在哪里制作的?
事实是,如果有某种方法可以在没有循环的情况下制作相同的东西,我想了解一下,它看起来非常有用。
【问题讨论】:
-
您不需要使用
while或for进行循环,您可以使用windows 消息泵并一遍又一遍地发送相同的消息。您可以使用定时操作每 X 毫秒调用一次特定方法。 -
您能否再澄清一下您的问题。你在谈论几件事。游戏循环与只有循环非常不同。
-
我认为您正在寻找在游戏运行时不断调用的 Update() 方法。对吗?
-
另外,如果您是 C# 和游戏开发新手,我不建议您从 MonoGame 开始。或许首先尝试像 Unity3D 这样的完整游戏开发引擎,而不是框架。
-
游戏循环在 github.com/MonoGame/MonoGame/blob/master/MonoGame.Framework/… 中完成,它要么调用 Platform.StartRunLoop 要么 Platform.RunLoop ,它再次调用特定于平台的函数来实现事件/游戏循环