Phaser3 游戏开发环境搭建

J.sky
Phaser
2025/3/22

Phaser3的游戏开发环境搭建其实很简单的,如果你引入CDN的话,只需要一个HTML页面即可,但是这里我并不推荐使用CDN搭建,这里我推荐使用Vite。对于代码编写我推荐trae或vscode。

环境搭建

首先你的环境需要安装好Node.js,然后:

npx --yes create-vite . -t vanilla

安装Phaser的最新版:

npm install phaser

修改index.html:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite App</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

/src/main.js就是游戏的入口文件了。

编写一些简单的测试代码,然后运行:npm run dev。打开浏览器,你就可以看到你的游戏了。

使用AI辅助编写代码

有了入口文件,你就可以使用各种AI辅助编写代码了,初期,建议让AI把所有代码都添加详细的注释,最好每一行都要添加注释,直到你完全理解了代码的逻辑。

基础框架代码

这个基础框架是指游戏最基础的一些代码,例如:

配置变量:config, 游戏对象:game, 场景:scene等。

configg对象常用属性:

基础配置

  • type : 渲染器类型,可以是 Phaser.AUTO 、 Phaser.CANVAS 、 Phaser.WEBGL 或 Phaser.HEADLESS
  • width : 游戏画布宽度(像素)
  • height : 游戏画布高度(像素)
  • parent : 游戏画布要挂载的 DOM 元素 ID
  • backgroundColor : 游戏背景颜色
  • scale : 缩放配置,控制游戏如何适应不同屏幕尺寸
  • scene : 游戏场景配置,可以是单个场景或场景数组
  • title : 游戏标题,显示在浏览器标签上
  • url : 游戏的 URL
  • version : 游戏版本号
  • physics : 物理引擎配置,用于处理游戏中的物理效果
  • audio : 音频配置,用于管理游戏中的音频资源
  • input : 输入配置,用于处理游戏中的用户输入
  • dom : DOM 配置,用于控制游戏中的 DOM 元素
  • callbacks : 回调配置,用于处理游戏中的事件回调
  • render : 渲染配置,用于控制游戏的渲染方式

game对象的常用属性:

Phaser 中的 Game 对象是整个游戏的核心,它包含许多重要的属性。以下是 Game 对象的常用属性:

核心属性

  1. game.config - 游戏的配置对象,包含创建游戏时设置的所有参数
  2. game.renderer - 游戏使用的渲染器实例(WebGL 或 Canvas)
  3. game.canvas - 游戏的 HTML Canvas 元素
  4. game.context - Canvas 的 2D 上下文或 WebGL 上下文

管理器属性

  1. game.anims - 全局动画管理器
  2. game.cache - 缓存管理器,存储所有加载的资源
  3. game.input - 输入管理器,处理所有用户输入
  4. game.scale - 缩放管理器,处理游戏的尺寸和缩放
  5. game.scene - 场景管理器,控制所有游戏场景
  6. game.sound - 声音管理器,控制游戏音频
  7. game.textures - 纹理管理器,管理所有图像资源
  8. game.time - 时间管理器,提供游戏计时功能

状态属性

  1. game.isBooted - 游戏是否已启动
  2. game.isRunning - 游戏是否正在运行
  3. game.isPaused - 游戏是否已暂停

性能相关属性

  1. game.loop - 游戏循环对象,控制游戏的更新频率
  2. game.fps - 当前游戏的帧率

设备相关属性

  1. game.device - 设备信息对象,包含有关设备的详细信息
  2. game.device.os - 设备的操作系统
  3. game.device.type - 设备的类型(桌面、移动、平板电脑等)
  4. game.device.touch - 设备是否支持触摸事件

事件相关属性

  1. game.events - 全局事件管理器,用于触发和监听自定义事件
  2. game.events.on - 用于监听事件的方法
  3. game.events.off - 用于取消事件监听的方法
  4. game.events.emit - 用于触发事件的方法

插件相关属性

  1. game.plugins - 插件管理器,用于加载和管理游戏插件
  2. game.plugins.install - 用于安装插件的方法
  3. game.plugins.remove - 用于移除插件的方法
  4. game.plugins.get - 用于获取插件实例的方法
  5. game.plugins.getActive - 用于获取所有激活的插件实例的方法

调试相关属性

  1. game.debug - 调试工具,用于在游戏中添加调试信息
  2. game.debug.start - 用于启动调试工具的方法
  3. game.debug.stop - 用于停止调试工具的方法
  4. game.debug.graphics - 用于创建调试图形的方法
  5. game.debug.body - 用于调试游戏对象的物理体的方法
  6. game.debug.sprite - 用于调试精灵的方法
  7. game.debug.text - 用于在游戏中添加文本调试信息的方法

scene对象的常用属性:

Phaser 中 Scene 对象有许多常用属性,以下是一些最常用的:

系统相关属性

  1. this.sys - 场景系统,管理场景的内部工作
  2. this.game - 对 Phaser.Game 实例的引用
  3. this.config - 场景的配置对象
  4. this.scene - 场景管理器,用于控制场景的启动、暂停、恢复等
  5. this.time - 时间管理器,用于创建计时器和延迟事件

渲染相关属性

  1. this.add - 游戏对象工厂,用于创建精灵、文本等游戏对象
  2. this.cameras - 摄像机管理器,控制游戏视图
  3. this.make - 游戏对象创建器,与 add 类似但不会自动添加到显示列表
  4. this.children - 显示列表,管理场景中的所有游戏对象
  5. this.lights - 光照系统(WebGL 模式下)

输入相关属性

  1. this.input - 输入管理器,处理鼠标、触摸、键盘等输入
  2. this.scale - 缩放管理器,处理游戏的缩放和尺寸调整

物理相关属性

  1. this.physics - 物理系统,管理游戏中的物理效果
  2. this.matter - Matter.js 物理引擎(如果启用)

动画和效果相关属性

  1. this.anims - 动画管理器,用于创建和播放精灵动画
  2. this.tweens - 补间动画管理器,用于创建平滑的属性变化动画
  3. this.particles - 粒子系统,用于创建粒子效果

数据相关属性

  1. this.data - 数据管理器,用于存储和检索与场景相关的数据
  2. this.cache - 缓存管理器,存储和访问加载的资源
  3. this.registry - 全局数据存储,可在场景间共享数据

更多的API请访问官方的API文档:

https://docs.phaser.io/api-documentation/api-documentation

官方示例:

https://phaser.io/examples/v3.85.0

本文为原创文章,遵循: CC BY-NC-SA 4.0版权协议,转载请附上原文出处链接和本声明。