初始化框架

这是学习如何使用 Gamedev Phaser 的 16 个教程中的第一个。完成本教程后,您可以在 Gamedev-Phaser-Content-Kit/demos/lesson01.html 中找到此部分的源代码。

在开始编写游戏的核心功能之前,我们需要创建一个基本的结构来渲染游戏。这可以使用 HTML 完成 - Phaser 框架将生成所需的 <canvas> 元素。

游戏的 HTML 代码

HTML 文档结构非常简单,因为游戏将完全在由框架生成的 <canvas> 元素中渲染。使用您喜欢的文本编辑器,创建一个新的 HTML 文档,将其保存为 index.html,并将其放置在合适的位置,然后将以下代码添加到其中

html
<!doctype html>
<html lang="en-US">
  <head>
    <meta charset="utf-8" />
    <title>Gamedev Phaser Workshop - lesson 01: Initialize the framework</title>
    <style>
      * {
        padding: 0;
        margin: 0;
      }
    </style>
    <script src="js/phaser.min.js"></script>
  </head>
  <body>
    <script>
      const game = new Phaser.Game(480, 320, Phaser.CANVAS, null, {
        preload,
        create,
        update,
      });
      function preload() {}
      function create() {}
      function update() {}
    </script>
  </body>
</html>

下载 Phaser 代码

接下来,我们需要下载 Phaser 源代码并将其应用到我们的 HTML 文档中。本教程使用的是 Phaser V2 - 它不适用于当前版本的 Phaser (V3)。V2 库仍然可以在 Phaser 下载页面上找到,位于 V3 下载链接下方。

  1. 访问 Phaser 下载页面.
  2. 选择最适合您的选项 - 我们建议使用 min.js 选项,因为它可以使源代码更小,而且您不太可能查看源代码。请确保使用 Phaser 版本 2,因为本教程是为该版本编写的。
  3. 将 Phaser 代码保存在与 index.html 文件相同位置的 /js 目录中。
  4. 更新上面显示的第一个 <script> 元素的 src 值。

逐步了解我们到目前为止的内容

此时,我们已定义了 charset<title> 以及标题中的某些基本 CSS 来重置默认的 marginpadding。我们还有一个 <script> 元素,用于将 Phaser 源代码应用到页面。主体包含第二个 <script> 元素,我们将在这里编写 JavaScript 代码来渲染游戏并控制它。

框架会自动生成 <canvas> 元素。我们通过创建一个新的 Phaser.Game 对象并将其分配给 game 变量来初始化它。参数如下:

  • 要设置的 <canvas> 的宽度和高度。
  • 渲染方法。三个选项是 AUTOCANVASWEBGL。我们可以显式设置后两个选项之一,或者使用 AUTO 让 Phaser 决定使用哪个选项。它通常使用 WebGL(如果浏览器支持),否则回退到 Canvas 2D。
  • 如果页面上已存在 <canvas>,则要用于渲染的 id(我们指定了 null,因为我们希望 Phaser 创建它自己的)。
  • 用于 Phaser 的三个关键函数的名称,这些函数用于加载和启动游戏,并在每一帧更新游戏循环;我们将使用相同的名称以保持清晰。
    • preload 负责预加载资源
    • create 在所有内容加载完毕并准备就绪时执行一次
    • update 在每一帧执行。

比较你的代码

以下是第一课的完整源代码,在 JSFiddle 中实时运行

下一步

现在我们已经设置了基本的 HTML 并了解了一些关于 Phaser 初始化的信息,让我们继续第二课,学习关于 缩放 的内容。