跳转到内容

使用 XNA 创建游戏/基础/游戏循环

来自维基教科书,为开放世界提供开放书籍

游戏循环

[编辑 | 编辑源代码]

游戏主机 (GC) 的编程与普通 PC 的编程略有不同。PC 通常具有 Windows、Linux 或 Mac OS 等复杂的操作系统,而在游戏主机上,我们更接近硬件。这与游戏的特殊需求有关。我们必须考虑 PC 与 GC 之间的以下差异:

  • 在 GC 上,通常只有一个(多线程)程序在运行,因此没有真正意义上的操作系统
  • 在 GC 上,需要原始图形能力,但没有带窗口和小部件的 GUI
  • GC 通常没有键盘、控制台,有时甚至没有硬盘

因此,你不会找到名为 Window、Form、Button 或 TextBox 的类。相反,你会找到名为 Sprite、Texture2D 和 Vector3 的类。我们谈论的是内容管道、纹理和着色器。

通常,PC 程序是事件驱动的,这意味着用户点击某个地方就会发生某些事情。如果用户没有点击任何地方,就不会发生任何事情。在游戏主机 (GC) 上,情况略有不同。在这里,我们经常会发现所谓的“游戏循环”。对于 Xbox 360,或者更确切地说 XNA 框架,它包含三个方法:

  • LoadContent()
  • Update( GameTime time )
  • Draw( GameTime time )

LoadContent() 在游戏开始时被调用一次,用于加载图像、声音、纹理等。Update() 用于获取用户输入、更新游戏状态、处理 AI 和音效。Draw() 用于显示游戏。(MVC 模式)然后游戏循环由引擎调用 Update() 和 Draw() 两个方法。它们不一定按顺序调用!

华夏公益教科书