惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 最新话题
G
Google Developers Blog
J
Java Code Geeks
The GitHub Blog
The GitHub Blog
F
Full Disclosure
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Vercel News
Vercel News
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
Help Net Security
Help Net Security
The Hacker News
The Hacker News
IT之家
IT之家
Y
Y Combinator Blog
Martin Fowler
Martin Fowler
L
Lohrmann on Cybersecurity
C
CERT Recently Published Vulnerability Notes
V
Visual Studio Blog
博客园 - 聂微东
Hacker News: Ask HN
Hacker News: Ask HN
H
Hacker News: Front Page
Know Your Adversary
Know Your Adversary
Security Latest
Security Latest
Security Archives - TechRepublic
Security Archives - TechRepublic
Simon Willison's Weblog
Simon Willison's Weblog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Last Week in AI
Last Week in AI
Schneier on Security
Schneier on Security
N
News and Events Feed by Topic
博客园 - 【当耐特】
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
Google DeepMind News
Google DeepMind News
Cloudbric
Cloudbric
N
News | PayPal Newsroom
A
About on SuperTechFans
S
Schneier on Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Hugging Face - Blog
Hugging Face - Blog
M
MIT News - Artificial intelligence
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
雷峰网
雷峰网
T
The Exploit Database - CXSecurity.com
罗磊的独立博客
K
Kaspersky official blog
The Cloudflare Blog
I
Intezer

碎言

不懂就别瞎掰掰:【程序员的常识】写的什么玩意? AI 辅助编程下的程序设计与代码编写 使用 Next.js 和 Tailwind CSS 构建可编辑和删除的 ToDo 待办事项应用 探索编程新境界:MarsCode 助你一臂之力 使用 Next.js 和 Tailwind CSS 搭建静态图片展示站点并部署到 Vercel AI 辅助编程:免费工具的优缺点及官网一览 GitHub push更新总是失败,写个python脚本解决 把博客从GitHub迁移到到了vercel ComfyUI 和 Flux.1 安装与使用教程 Flux.1 入门必知:硬件、环境、模型 Git项目的子文件夹中的内容无法同步到远程仓库的解决方法 blender流体Fluid使用中没有流体、流体穿模等一些问题的解决方法 博客聚合网站:积薪,竟然关闭了! blender日常使用中的一些技巧 虽然只有我自己在用,但还是更新了碎言博客的源代码, 与其在迷茫中困惑,不如在努力中前进 差点忘了我还有一个博客... 秧歌、博客和AI 终于熬到了新手上路 好久没有更新博客了。。。 老妈大腿骨骨折,最近一直在医院护理 Hello, September! Ubuntu开机自动启动Docker容器运行WordPress Docker 简单快速安装部署WordPress Docker下安装MySQL 加碘盐能防核辐射的话,还怕什么核战争? shields.io 一个简洁、一致、清晰的徽章 Ubuntu下使用root登录ssh的设置 GitHub Actions 构建、部署 Next.js项目 我又用回了"IE"--edge ubuntu-22-live-server 设置固定IP Next项目部署GitHub pages的一些坑 整理了一个下午的收藏夹...... 短暂而忙碌的暑假即将谢幕 GitHub Actions 是干什么用的? 放弃Next.js重构博客:经验、教训与未来技术探索 关于Google LCP 问题:超过了2.5秒 验证已通过 仅用了几个小时就使用next.js重构博客的所有功能 关于使用Next.js重构博客构思的记录 使用Tailwind css和JavaScript实现一个简单的返回顶部功能 罗技K380 F1-F12 功能键锁定 PHILIPS猛禽SPK8404机械键盘手感真是超赞! 局域网的DNS设置192.168.0.1与8.8.8.8,114.114.114.114有什么区别? 史诗结合的浪漫:《长安三万里》 聊 聊 友 情 链 接 1767个中文博客的数据洞察:中文博主都喜欢干啥? python requests 设置读取超时时间 八月回顾:博客之路,一路前行 Docker基础学习笔记和常用命令汇总 vim常用命令整理 Ubuntu 22 安装Docker过程记录 使用python结合feedparser模块编写自己的私人RSS订阅程序 博客大数据分析:38880条博文揭示博主最爱写什么? Windows下国产杀毒软件还有选择吗?火绒安全可以一试。 export exports module.exports 这三个命令的区别是什么如何使用? 时代的变迁:从56K拨号上网到1G光纤的回忆 理工计算机专业准大学生如何选配笔记本? 使用JavaScript编写自己的私人RSS订阅程序 如何使用CSS为博客标题设置彩虹颜色? 最终还是决定使用传统的网线来解决千兆速率问题。 1300M USB双频2.4+5G无线网卡的一些常识和使用技巧 Python Gui新框架:NiceGui之初体验 pycharm 正在关闭项目(closing project)无法关闭退出程序的解决方法! 速度与优雅:博客性能优化之旅 久了,博客主题就会一直做减法 七月的焦虑 在react中使用复制插件clipboard.js react中如把HTML代码转成字符串进行渲染? react useEffect()中使用lodash库中的防抖debounce react useEffect() 为什么在开发模式的时候会执行两次? 七年之痒!别了我曾深爱的MacBookPro 前端React+Material UI开发环境的快速搭建 一键更新Github部署的静态博客 编程新手学习过程中如何更好的提问? Typed.js 一款有意思的网页打字机效果库 解决错误 ERROR [WinError 10049] 在其上下文中,该请求的地址无效。 Stable Diffusion 相关教程与模型的记录 Stable Diffusion ControlNet openpose 报错无法使用 在react或vue中使用localStorage存储数据 使用React+Vite+TailwindCSS+daisyUI打造一个简单的ToDos 碎言静态博客 聊聊Python中的装饰器 npm更换源与nrm安装与配置 pip临时修改下载源 Vue快速学习笔记(9)Vuetify配置及简单使用 Vue快速学习笔记(8)webpack4.X配置Vue开发打包环境 Vue快速学习笔记(5)使用路由vue-router(1) Vue快速学习笔记(4)Vue组件中的数据传递 Vue快速学习笔记(3)Vue的组件 Vue快速学习笔记(2)Vue中的监听与计算属性 Vue快速学习笔记(1)Vue实例基础 基于Django构建的小学生英文单词背写检测考试系统。 如何在Python程序中使用配置文件.ini(ConfigParser) 写在我的博客PV10万时:聊聊编程与画画 python3函数学习笔记简单总结 PythonINI配置文件读写的简单方法 Python open()函数文件打开、读、写操作总结 Python os.path模块中一些常用方法的整理总结 Python 采集数据三步曲之[Requests + re.py模块进行数据采集] Python 采集数据三步曲之[Requests开源协议的HTTP 库]
Phaser3 游戏开发环境搭建
J.sky · 2025-03-22 · via 碎言

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