分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

patch-gg/pixelfx

多媒体与设计

收录 232 个代码生成的像素风特效,可导出精灵表并借助 Claude Code 技能创作新特效。

245
25
JavaScript
MIT
今天创建

pixelfx 是一个包含 232 个像素风特效与动画的库,涵盖火焰、爆炸、水、闪电、UI 反馈、拾取物等类别。每个特效都是一小段 JavaScript 代码,而不是预渲染图片。它面向希望在浏览器游戏里获得可分层、随机种子稳定的特效,或导出精灵表到其他引擎的开发者。可以先用在线画廊和目录浏览全部特效。

内容与机制

每个特效位于 src/fx/<category>/<name>.js。特效分两类:纯特效只根据时间计算当前帧,因此循环无接缝;模拟型特效以固定频率推进真实的粒子、碎片和光源,从而在不同帧率下运动一致(工作原理)。每个特效绘制到两个缓冲区:存放不透明或半透明像素的 color 缓冲,以及叠加发光的 light 缓冲,明亮灼热的效果就靠后者呈现。所有随机数都来自种子,因此同一帧每次都完全一致,导出结果也稳定。

特效围绕自身原点在局部空间绘制,由调用方负责定位、镜像和旋转。palette 参数(由暗到亮的十六进制颜色渐变)可以不改代码就重新着色,把火焰调成蓝色或让治疗发粉光都只是换调色板而已。

在游戏中的两种用法

在浏览器环境(原生 canvas、Phaser、PixiJS、Kaplay 或 three.js)中,导入核心辅助函数和所需特效模块即可,没有运行时依赖。特效可以画在角色前后,合成进 ImageData,再用像素化渲染放大。可以通过 npm 从 GitHub 安装,或直接复制 src/core 和需要的特效(README)。

在 Godot、Unity、GameMaker、Defold、LÖVE 或 Bevy 等引擎中,用 Node 工具把特效导出为透明 PNG 精灵表,附带 Aseprite 风格的 JSON,记录帧矩形、时长、fps、循环、列数和轴心点;Phaser 的图集加载器以及 Godot、Unity 的 Aseprite 导入器都能读取。也可以一次性导出整个库(README)。

自己制作特效

脚手架工具生成新特效,渲染工具输出 contact sheet 供查看,检查工具则提示溢出、接缝、未使用种子的随机数和过慢帧等常见问题。流程是迭代式的:渲染、观察、修复最差的一处、再重复(制作方法、创作规范)。

要求与限制

浏览器路径需要 JavaScript 环境,没有运行时依赖。精灵表导出和创作工具需要 Node.js。可选的 pixelfx Claude Code 技能可以查找、使用、导出和生成特效,但需要 Claude Code,并以插件形式安装或复制到技能目录(技能说明);使用本库并不需要它。

项目的制作方法和部分模拟核心改编自 Hugo Duprez 以 MIT 许可发布的像素特效,代码和特效本身也采用 MIT 许可,可商用。一个例外:gallery/fonts 中的 Patch Pixel 字体为 Patch 自有,不在 MIT 许可范围内(许可条款)。

本文由 AI 根据项目 README 生成,更新于 2026年10月30日,以项目官方文档为准。