尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

pixi-miniprogram 实战指南:在微信小程序中跑通 PIXI.js 的完整方法

pixi-miniprogram 实战指南:在微信小程序中跑通 PIXI.js 的完整方法 pixi-miniprogram 实战指南在微信小程序中跑通 PIXI.js 的完整方法【免费下载链接】pixi-miniprogram一个可运行于微信小程序的PIXI引擎通过模拟window环境有些功能小程序无法模拟就直接修改了PIXI引擎代码最终使得PIXI引擎正常运行在小程序上项目地址: https://gitcode.com/gh_mirrors/pi/pixi-miniprogram微信小程序里没有 window也没有 document。WebGL 的 canvas 接口和网页端也不一样。PIXI.js 无法直接运行。pixi-miniprogram 用模拟环境注入加引擎改造补齐了这些缺口。你可以在小程序 canvas 上直接绘制精灵、文本和 Spine 动画。能力全景小程序里你能做什么这个适配器覆盖了小程序 2D 渲染的全部日常需求。下表是你的能力清单。层能力说明渲染WebGL canvas、Sprite、BitmapTextText 和 Graphics 内部用 2d canvas 模拟动画Spine 3.8、Animate、Live2D、myTween 缓动扩展库需手动传入 PIXI交互触摸事件转发、坐标比例适配需要你在 canvas 上自行绑定事件资源Assets 远程加载 fnt、json、spine不支持加载本地 fnt 和 json音频基础音频播放2022 年 3 月起支持三步跑通从零到第一屏准备好 Node.js 和微信开发者工具。跑完下面三步就能出第一屏。第一步克隆仓库并用 webpack 构建产物在 dist 目录。git clone https://gitcode.com/gh_mirrors/pi/pixi-miniprogram cd pixi-miniprogram npm install npm run build第二步把 dist 里的 pixi.miniprogram.js 复制到小程序项目的 libs 目录。配套运行库参照 example/libs/ 一并拷贝。第三步在 wxml 放一个 type 为 webgl 的 canvas用选择器拿到节点。下面这段代码一次完成渲染器初始化。var sw info.screenWidth, sh info.screenHeight; var canvas res[0].node; canvas.width sw; canvas.height sh; PIXI createPIXI(canvas, 750); unsafeEval(PIXI); installSpine(PIXI); var renderer PIXI.autoDetectRenderer({ width: 750, height: sh * 750 / sw, backgroundAlpha: 1, view: canvas }); var stage new PIXI.Container(); renderer.render(stage);下图是示例页的森林场景背景你的第一屏渲染成功后效果与之类似。实战三个核心用法资源、触摸、遮罩下面三个场景覆盖了绝大多数接入工作。按需取用。从 CDN 加载 Spine 资源并播放动画小程序无法加载本地 fnt 或 json 文件。把资源放到网络服务器即可。下面这段代码完成注册、加载并构建 Spine 对象。PIXI.Assets.add(spine, CDN 上的 spine 地址); PIXI.Assets.load([spine]).then(function(res){ var boy new PIXI.spine.Spine(res.spine.spineData); boy.state.setAnimation(0, hoverboard, true); stage.addChild(boy); renderer.render(stage); });把小程序触摸事件转发给 PIXIcanvas 的触摸事件不会自动进入 PIXI。你在 wxml 绑定四个触摸事件到同一个处理器然后一行转发。touchEvent: function(e) { PIXI.dispatchEvent(e); }用 Filter 加纹理做遮罩示例里的遮罩靠 shader 实现。原理是目标颜色乘以遮罩纹理颜色。所以遮罩形状必须填白色。拿到纹理后挂到目标的 filters 上方形就变圆形。完整代码见 example/pages/index/index.js。避坑清单能做什么不能做什么下面的边界都是实战中踩过的坑动手前逐条核对。场景能不能怎么绕WebGL canvas 与 Sprite 渲染能—播放视频不能改用图片序列或 Spine 动画加载本地 fnt、json不能放网络服务器远程加载基础库低于 2.16.1 运行不能换用 v1.0 版本代码全局对象取 PIXI不能手动把 PIXI 传入各扩展库当前 PIXI 版本基于 7.3.2 改造旧版 5.2.1、6.3.2 见 release八条性能调优与调试手段以下条目全部来自真实调优背下来直接用。用 WebGL 渲染器。autoDetectRenderer 会帮你选到最好的。及时销毁不再用的纹理和精灵。小程序内存余量很小。按窗口大小动态设置 canvas 宽高。舞台尺寸与物理像素不必一致。减少高频对象创建。容器和补间对象尽量复用。用 console.log 配合开发者工具控制台验证逻辑。Graphics 显示异常时检查 2d canvas 是否传对。触摸无响应时检查 wxml 四个事件是否都绑定。用 toDataURL 导出 canvas 位图方便验证渲染结果。模拟环境源码在 src/渲染与事件的实现都在里面。先跑通示例再移植到你自己的项目。【免费下载链接】pixi-miniprogram一个可运行于微信小程序的PIXI引擎通过模拟window环境有些功能小程序无法模拟就直接修改了PIXI引擎代码最终使得PIXI引擎正常运行在小程序上项目地址: https://gitcode.com/gh_mirrors/pi/pixi-miniprogram创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表