Phaser 是一个开源 HTML5 2D 游戏框架,用 JavaScript / TypeScript 编写,主要面向浏览器端游戏开发。它支持 Canvas 和 WebGL 双渲染,能自动根据设备能力选择合适模式,因此很适合做跨桌面和移动端的轻量级网页游戏。
核心能力
- 场景管理:Phaser 3 以
Scene为组织单元,支持init、preload、create、update等生命周期,适合拆分菜单、关卡、结算等模块。 - 游戏对象:提供 Sprite、TileSprite、Text、Graphics、Group、Container 等常用对象。
- 物理引擎:内置 Arcade Physics 和 Matter.js。Arcade 轻量高效,适合平台跳跃、射击类;Matter.js 支持更复杂的刚体和碰撞。
- 动画与粒子:支持帧动画、骨骼动画插件、粒子发射器,适合做打击反馈和特效。
- 输入系统:统一管理键盘、鼠标、触摸和游戏手柄。
- 资源加载:图片、音频、精灵表、纹理图集、Tilemap、JSON 配置都能通过 Loader 预加载。
- 工程化友好:可通过 npm 安装,配合 Vite / Webpack 使用,也有官方 CLI
npm create @phaserjs/game@latest快速生成项目。
版本与架构
Phaser 2 依赖 Pixi.js,Phaser 3 则使用自研渲染器,架构更模块化,渲染与游戏逻辑分离更清晰。Phaser 4 仍在演进中,当前生产环境主流仍是 Phaser 3。
典型开源项目与示例
- Phaser 3 Examples:官方示例仓库,覆盖动画、物理、输入、相机、Tilemap 等核心能力,适合直接本地运行学习。
- Breakout-phaser:打砖块示例,展示 Arcade Physics、碰撞回调、场景管理和粒子特效。
- PlaySimpleHack:较完整的 Phaser 3 工程模板,体现 Scene 分层、资源预加载、输入处理和构建流程。
- bg-phaser-client:Web 端游戏客户端示例,体现场景管理、输入处理、资源加载和前端工程化结构。
- Phavuer:Phaser 3 与 Vue 3 集成库,适合在 Vue 项目中以声明式方式管理游戏界面。
- games:基于 Phaser 的小游戏集合,包含 2048、糖果消除、弹弓、恐龙跑酷、收集星星等入门项目。
适合场景
Phaser 最适合做 2D 网页游戏、H5 小游戏、教育互动应用、营销互动页、跨端轻量游戏。如果目标是原生 3D、重度主机级游戏,通常会更适合 Unity、Godot 或 Babylon.js;如果只是想做一个高性能 2D 渲染层而不需要完整游戏引擎,Pixi.js 会更轻。
快速起步
npm create @phaserjs/game@latest
cd your-game
npm install
npm run dev也可以直接用 CDN 引入:
<script src="https://cdn.jsdelivr.net/npm/phaser@3/dist/phaser.min.js"></script>