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 对象的常用属性:
核心属性
- game.config - 游戏的配置对象,包含创建游戏时设置的所有参数
- game.renderer - 游戏使用的渲染器实例(WebGL 或 Canvas)
- game.canvas - 游戏的 HTML Canvas 元素
- game.context - Canvas 的 2D 上下文或 WebGL 上下文
管理器属性
- game.anims - 全局动画管理器
- game.cache - 缓存管理器,存储所有加载的资源
- game.input - 输入管理器,处理所有用户输入
- game.scale - 缩放管理器,处理游戏的尺寸和缩放
- game.scene - 场景管理器,控制所有游戏场景
- game.sound - 声音管理器,控制游戏音频
- game.textures - 纹理管理器,管理所有图像资源
- game.time - 时间管理器,提供游戏计时功能
状态属性
- game.isBooted - 游戏是否已启动
- game.isRunning - 游戏是否正在运行
- game.isPaused - 游戏是否已暂停
性能相关属性
- game.loop - 游戏循环对象,控制游戏的更新频率
- game.fps - 当前游戏的帧率
设备相关属性
- game.device - 设备信息对象,包含有关设备的详细信息
- game.device.os - 设备的操作系统
- game.device.type - 设备的类型(桌面、移动、平板电脑等)
- game.device.touch - 设备是否支持触摸事件
事件相关属性
- game.events - 全局事件管理器,用于触发和监听自定义事件
- game.events.on - 用于监听事件的方法
- game.events.off - 用于取消事件监听的方法
- game.events.emit - 用于触发事件的方法
插件相关属性
- game.plugins - 插件管理器,用于加载和管理游戏插件
- game.plugins.install - 用于安装插件的方法
- game.plugins.remove - 用于移除插件的方法
- game.plugins.get - 用于获取插件实例的方法
- game.plugins.getActive - 用于获取所有激活的插件实例的方法
调试相关属性
- game.debug - 调试工具,用于在游戏中添加调试信息
- game.debug.start - 用于启动调试工具的方法
- game.debug.stop - 用于停止调试工具的方法
- game.debug.graphics - 用于创建调试图形的方法
- game.debug.body - 用于调试游戏对象的物理体的方法
- game.debug.sprite - 用于调试精灵的方法
- game.debug.text - 用于在游戏中添加文本调试信息的方法
scene对象的常用属性:
Phaser 中 Scene 对象有许多常用属性,以下是一些最常用的:
系统相关属性
- this.sys - 场景系统,管理场景的内部工作
- this.game - 对 Phaser.Game 实例的引用
- this.config - 场景的配置对象
- this.scene - 场景管理器,用于控制场景的启动、暂停、恢复等
- this.time - 时间管理器,用于创建计时器和延迟事件
渲染相关属性
- this.add - 游戏对象工厂,用于创建精灵、文本等游戏对象
- this.cameras - 摄像机管理器,控制游戏视图
- this.make - 游戏对象创建器,与 add 类似但不会自动添加到显示列表
- this.children - 显示列表,管理场景中的所有游戏对象
- this.lights - 光照系统(WebGL 模式下)
输入相关属性
- this.input - 输入管理器,处理鼠标、触摸、键盘等输入
- this.scale - 缩放管理器,处理游戏的缩放和尺寸调整
物理相关属性
- this.physics - 物理系统,管理游戏中的物理效果
- this.matter - Matter.js 物理引擎(如果启用)
动画和效果相关属性
- this.anims - 动画管理器,用于创建和播放精灵动画
- this.tweens - 补间动画管理器,用于创建平滑的属性变化动画
- this.particles - 粒子系统,用于创建粒子效果
数据相关属性
- this.data - 数据管理器,用于存储和检索与场景相关的数据
- this.cache - 缓存管理器,存储和访问加载的资源
- this.registry - 全局数据存储,可在场景间共享数据
更多的API请访问官方的API文档:
https://docs.phaser.io/api-documentation/api-documentation
官方示例: