Project Icon

phaser

开源且高性能的HTML5游戏框架

Phaser是一个开源的HTML5游戏框架,支持WebGL和Canvas渲染,适用于桌面和移动网页浏览器。它允许使用JavaScript或TypeScript开发游戏,并可通过第三方工具编译为移动应用。Phaser具有活跃的社区支持和持续的维护更新,提供开发友好的API和快速的技术支持,是GitHub上广受欢迎的游戏开发框架之一。

Phaser - HTML5 游戏框架

Phaser 头图

Discord JSDelivr GitHub

Phaser 是一个快速、免费且有趣的开源 HTML5 游戏框架,可在桌面和移动网页浏览器上提供 WebGL 和 Canvas 渲染。游戏可以通过第三方工具编译为 iOS、Android 和原生应用。您可以使用 JavaScript 或 TypeScript 进行开发。

除了出色的开源社区外,Phaser 还由 Phaser Studio Inc 积极开发和维护。由于快速的支持和开发者友好的 API,Phaser 目前是 GitHub 上最受欢迎的游戏框架之一。

从独立开发者到跨国数字机构,以及全球各地的大学都在使用 Phaser。看看我们的展示视频中他们令人难以置信的游戏

Phaser 游戏展示视频

访问 Phaser 网站
一些令人惊叹的游戏
学习 浏览我们的 API 文档、[支持论坛][forum]和 StackOverflow
代码示例? 我们有超过 2000 个示例供您学习
阅读 每周的 Phaser World 通讯
社交: 加入我们的 DiscordReddit 或在 Twitter 上关注我们

获取源代码,加入其中的乐趣!

最新动态

2024年6月21日

Phaser Studio 团队一直在努力开发 v3.85 版本,该版本今天进入了 beta 阶段。这个版本在 v3.80 的基础上进行了改进,带来了更多的修复和更新。我们感谢 Phaser 社区在报告问题和提交 pull 请求方面的帮助。你们总是让我们保持警惕 🙂

与此同时,我们也一直在忙于开发一个替代物理引擎和一个全新的渲染器,它们是从头开始构建的,目的是为 2D 网页游戏提供尽可能高效和强大的功能。在我们的每周通讯 Phaser World 中跟踪所有进展。

Phaser 在 GitHub 上的星标数量也达到了 36,500,被超过 34,600 名开发者使用。这些数字证明了越来越多的开发者将 Phaser 作为他们首选的网页游戏开发框架。我们感谢收到的支持和反馈,并承诺继续发展 Phaser 以满足您的需求。

没有社区的大力支持,Phaser 是不可能实现的。感谢所有支持我们工作的人,感谢那些和我们一样相信 HTML5 游戏未来的人,以及 Phaser 在其中扮演的角色。

祝大家编码愉快!

问候,

Rich 和 Phaser Studio 团队
@photonstorm

boogie

下载 Phaser

Phaser 可通过 GitHub、npm 和 CDN 获取:

  • 通过 [https][clone-http]、[ssh][clone-ssh] 或使用 GitHub 的 [Windows][clone-ghwin] 或 [Mac][clone-ghmac] 客户端克隆 git 仓库。
  • 下载 zip 文件
  • 下载构建文件:[phaser.js][get-js] 和 [phaser.min.js][get-minjs]

NPM

通过 npm 安装:

npm install phaser

创建 Phaser 游戏应用

快速开始使用 Phaser 的最简单方法之一是使用我们新的 create-phaser-game 应用。这是一个 CLI 工具,提供了官方项目模板和演示游戏的交互式选择。只需发出命令,回答一些问题,应用就会下载并配置适合您需求的正确包。

目前,我们支持以下所有框架和打包工具:

框架打包工具
Vue.jsVite
ReactRollup
AngularParcel
Next.jsWebpack
SolidJSESBuild
SvelteImport Map
RemixBun

这些大多都有 JavaScript 和 TypeScript 版本。

在这里了解更多关于该应用的信息

CDN

Phaser 在 jsDelivr 上,这是一个"面向开发者的超快速 CDN"。在您的 html 中包含以下内容:

<script src="//cdn.jsdelivr.net/npm/phaser@3.80.1/dist/phaser.js"></script>

或压缩版本:

<script src="//cdn.jsdelivr.net/npm/phaser@3.80.1/dist/phaser.min.js"></script>

API 文档

访问 https://newdocs.phaser.io/ 在线阅读文档。使用链接导航命名空间、类和游戏对象列表,也可以使用搜索框。

Phaser 的文档是一个持续进行的项目。请通过贡献改进的文档和示例来帮助我们。

TypeScript 定义

TypeScript 定义可以在 types 文件夹中找到。它们也在 package.jsontypes 条目中被引用。

根据您的项目,您可能需要在 tsconfig.json 文件中添加以下内容:

"lib": ["es6", "dom", "dom.iterable", "scripthost"],
"typeRoots": ["./node_modules/phaser/types"],
"types": ["Phaser"]

TypeScript 定义是从 Phaser 源代码中的 JSDoc 注释自动生成的。如果你想帮助完善它们,你必须直接编辑 Phaser JSDoc 块,而不是 defs 文件。你可以在 scripts/tsgen 文件夹中找到关于我们构建的解析器的更多详细信息。

许可证

Phaser 根据 MIT 许可证 发布。

入门

Phaser 的教程和指南每周都在发布。

免费的 Phaser 示例书籍

一本全新的 500 页免费书籍,介绍使用 Phaser 进行游戏开发。通过构建射击游戏、益智游戏、Rogue-like 游戏等来学习。

Phaser 示例

由长期多产的 Phaser 爱好者 Pello Xabier Altadill 和 Phaser 创始人 Richard Davey 撰写,包含超过 500 页全新、最新的使用 Phaser v3.80 构建游戏的内容。

该书分为 17 章,带你完成创建各种不同游戏的过程。正如书名所暗示的,这允许你通过实际例子来学习。游戏从简单的无尽跑酷游戏开始,然后逐步讲解如何构建射击游戏、平台游戏、益智游戏、Rogue-like 游戏、故事游戏,甚至包括 3D 游戏和多人射击游戏。

除了游戏之外,Richard 还撰写了大量关于 Phaser 核心概念的内容,涵盖了框架使用的术语和约定,以及对游戏对象(任何 Phaser 游戏的生命线)的全面深入探讨。你将了解包括游戏对象工厂、遮罩、自定义混合模式等主题。

该书最后还包括了有关处理资产、流行构建工具、4:44 规则以及参与游戏 jam 的好处等章节,以及一个方便的 Phaser 食谱。

下载这本书,只需注册一个免费的 Phaser 账户。

源代码示例

在 Phaser 的开发过程中,我们创建了数百个示例,提供完整的源代码和资源。这些示例可以在 Phaser 3 实验室 上浏览,或者克隆 [示例仓库][examples]。我们不断地添加和完善这些示例。

Hathora

Hathora Cloud 是一个可扩展的在线多人游戏托管平台。你可以使用 Hathora 控制台或 CLI 上传你的服务器项目,然后在全球 10 多个地区动态创建服务器实例。你只需为活跃的比赛/会话持续时间付费。它非常适合处理 WebSocket 连接的 nodejs 服务器,并负责 SSL 终止(用于 wss)和 DDoS 保护。

他们还发布了一个全新教程,介绍如何创建一个可扩展的多人 Phaser 游戏。如果你认为这对你的托管需求有用,可以加入他们的 Discord 服务器 联系他们。

Phaser 3 插件大列表

超级社区成员 RexRainbow 多年来一直在发布 Phaser 3 内容,积累了令人印象深刻的目录。你会发现大量插件,从文本输入框等 UI 控件,到 Firebase 支持、有限状态机等等。除了插件之外,还有一套关于 Phaser 3 的综合"笔记",详细介绍了各种系统的工作原理。这是一个宝贵的资源,值得在 https://rexrainbow.github.io 查看。

创建你的第一个 Phaser 3 示例

Phaser 沙盒:如果你不想在本地测试 Phaser,那么你可以在我们的网站上注册一个免费账户,并使用 Phaser 沙盒。这里你会找到一个完全配置好的在线编辑器,随时可用。否则,请继续阅读...

在本地创建一个 index.html 页面,并将以下代码粘贴到其中:

<!DOCTYPE html>
<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/phaser@3.80.1/dist/phaser-arcade-physics.min.js"></script> 
</head>
<body>

    <script></script>

</body>
</html>

这是一个标准的空白网页。你会注意到有一个 script 标签引入了 Phaser 3 的构建版本,但除此之外,这个网页还没有任何功能。现在让我们设置游戏配置。将以下内容粘贴在 <script></script> 标签之间:

const config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    physics: {
        default: 'arcade',
        arcade: {
            gravity: { y: 200 }
        }
    },
    scene: Example
};

const game = new Phaser.Game(config);

config 是一个相当标准的 Phaser 3 游戏配置对象。我们告诉 config 尽可能使用 WebGL 渲染器,将画布大小设置为 800 x 600 像素,启用 Arcade 物理引擎,最后我们告诉它使用 Example 场景。这还没有实现,所以如果你现在运行这段 JavaScript 代码,会出现错误。在 config 上方添加以下内容:

class Example extends Phaser.Scene
{
    constructor ()
    {
        super();
    }

    preload ()
    {
        this.load.setBaseURL('https://labs.phaser.io');
这里我们创建了一个名为`Example`的场景。我们给它定义了两个函数。`preload`函数是用来加载游戏资源的地方。在`preload`中,我们设置了基础URL为Phaser服务器,并加载了3个PNG文件。

`create`函数目前是空的,现在是时候来填充它了:

```javascript
create ()
{
    this.add.image(400, 300, 'sky');

    const particles = this.add.particles(0, 0, 'red', {
        speed: 100,
        scale: { start: 1, end: 0 },
        blendMode: 'ADD'
    });

    const logo = this.physics.add.image(400, 100, 'logo');

    logo.setVelocity(100, 200);
    logo.setBounce(1, 1);
    logo.setCollideWorldBounds(true);

    particles.startFollow(logo);
}

这里我们向游戏中添加了一个天空图像,并创建了一个粒子发射器。scale值表示粒子最初会很大,随着生命周期的推进会逐渐缩小至消失。

创建emitter后,我们添加了一个名为logo的logo图像。由于logo是一个物理图像,默认情况下它会被赋予一个物理体。我们为logo设置了一些属性:速度、反弹(或恢复)以及与世界边界的碰撞。这些属性会使我们的logo在屏幕上弹来弹去。最后,我们让粒子发射器跟随logo - 所以当logo移动时,粒子会从它那里流出。

在浏览器中运行它,你会看到以下效果:

Phaser 3 Demo

如果你无法运行它,可以在Phaser沙盒中查看这个示例。

这只是一个小例子,还有数百个示例供你探索,但希望它能展示Phaser的表现力和使用的便捷性。只需几行易读的代码,我们就在屏幕上呈现了相当令人印象深刻的效果!

在仓库的dist文件夹中有Phaser的普通版和压缩版编译文件。普通版用于开发过程中,压缩版用于生产环境。你也可以并且应该创建自己的构建版本。

Phaser压缩器

使用我们强大的新型网页工具来压缩你的Phaser包,最多可减少60%的体积,只启用你的游戏所需的功能。

阅读更多关于Phaser压缩器的信息

从源代码构建

如果你希望从源代码构建Phaser,请确保你已经克隆了仓库,然后在你的源目录运行npm install来安装所需的包。

然后你可以运行webpackbuild文件夹中创建一个包含源映射的开发版本,用于本地测试。你也可以运行npm run distdist文件夹中创建一个压缩打包的构建版本。要查看所有可用命令的列表,请使用npm run help

由于我们的更新日志越来越大,我们现在将它们分割开来,每个版本一个文件夹。

我们已经将更新日志组织成常见的主题部分,以使其更易于理解,但我们理解其中内容仍然很多。请不要感到不知所措!如果你需要澄清什么,请加入Phaser Discord并询问。

[贡献指南][contribute]包含了如何帮助Phaser开发的全部细节。主要要点是:

  • 发现bug?在[GitHub Issues][issues]上报告并包含代码示例。请说明你使用的Phaser版本!这一点至关重要。

  • 在提交Pull Request之前,使用我们的配置通过ES Lint运行你的代码,并遵守我们的Editor Config

  • 在贡献之前请阅读行为准则

用Phaser写了些很酷的东西?请在Discord、[论坛][forum]上告诉我们,或者简单地发邮件到games@phaser.io

Phaser是Photon StormPhaser Studio Inc的作品。

Richard DaveyPhaser Studio Inc团队创建。由咖啡、动漫、像素和爱驱动。

Phaser标志和角色版权所有 © 2011 - 2024 Phaser Studio Inc。

保留所有权利。

"最重要的是,视频游戏的目的只有一个:娱乐。为所有人带来乐趣。" - 岩田聪

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号