|
|

楼主 |
发表于 2025-6-12 13:05
|
显示全部楼层
本帖最后由 马黑黑 于 2025-6-12 17:54 编辑
ThreeJS Sprite 精灵粒子音画帖模块配置说明:
一、导入 spriteparticle.js 模块
① 简单导入 :适用于只做简单配置的音画帖
import { LZ } from 'https://638183.freep.cn/638183/web/ku/spriteparticle.js';
② 复杂导入 :适用于使用ThreeJS绘制其它图像的音画帖
import { THREE, scene, camera, renderer, clock, LZ } from 'https://638183.freep.cn/638183/web/ku/spriteparticle.js';
就是说,导出模块提供的除了 LZ 函数外的 ThreeJS 基本变量量。
二、配置粒子和播放器
不论是简单导入还是复杂导入精灵粒子系统模块,只要不使用或部分不使用模块默认配置,则需要做粒子和播放器的配置。先设计一个变量用来保存自定义配置,比如 config,然后依次配置精灵粒子和播放器:
const config = {
// 精灵
sprite: {
number: 200, // 总数
scale: 0.4, // 缩放
pic: 'https://638183.freep.cn/638183/small/hdxk.png', // 纹理贴图
rotation: [20, 20, 20] // 精灵组在 xyz轴 上旋转速度的除数(正数,数字越大对应轴上的旋转速度越慢)
},
// 播放器
mesh: {
pic: 'https://638183.freep.cn/638183/small/2025/fl101.png', // 纹理贴图
color: 0x008800, // 颜色(会与纹理颜色叠加)
transparent: true, // 是否启用透明(true或false,为真时纹理透明部分透明,为假时纹理透明部分黑色)
position: [0, 0, 0], // 播放器在 xyz轴 上的位置,浮点数,都为 0 表示在帖子中心,XY轴上负数表示左移、下移,取值范围自行探索
rotate: [0, 0, 0], // 播放器初始旋转角度,都为 0 表示不旋转,可使用浮点数、Math.PI / 4 等表达方法
rotation: [-0.5, 0.5, 0] // 播放器自转速度的乘数,浮点数,为 0 表示对应轴上不旋转,正、负数会决定旋转方向
}
};
然后:
LZ(tz, config);
完整的配置代码示例:
- const config = {
- sprite: {
- number: 200,
- scale: 0.4,
- pic: 'https://638183.freep.cn/638183/small/hdxk.png',
- rotation: [20, 20, 20]
- },
- mesh: {
- pic: 'https://638183.freep.cn/638183/small/2025/fl101.png',
- color: 0x008800,
- transparent: true,
- position: [0, 0, 0],
- rotate: [0, 0, -Math.PI / 2],
- rotation: [-0.5, 0.5, 0]
- }
- };
- LZ(tz, config);
复制代码
若需要另外绘制其它 ThreeJS 图形,请确保使用复杂方式导入模块,然后,在 LZ() 函数代码之后分行并加入:
- const cube = new THREE.Mesh(
- new THREE.BoxGeometry(),
- new THREE.MeshNormalMaterial()
- );
- cube.rotateX(0.5);
- cube.position.set(-2,-3,0);
- scene.add(cube);
复制代码
上面是绘制一个矩形并设置初始旋转角度(摆pose)、位置。
三、其它配置
① 全屏按钮需要自己定位,用CSS实现,请参考帖子代码 03 行;
② 为防止 ThreeJS 图像在窗口尺寸动态变更时偏移走位,建议在帖子CSS代码中加入对 canvas 画布的控制代码,请参与帖子代码 04 行;
③ 模块支持对帖子内视频的播放、暂停联动管理,视频CSS样式请自行设置。
四、其他说明
① 精灵和播放器纹理贴图需要对图片进行相应的数据解析,有些存储图片的服务器可能开放数据解析功能,若此,请更换其它服务器上的图片,确保纹理能被正常渲染;
② 精灵和播放器的配置,每一个子项目可以缺省。举例说明:假设粒子只需要自定义贴图、播放器除了贴图外其它统统使用模块的配置,则可以酱紫——
- const config = {
- sprite: {
- pic: 'https://638183.freep.cn/638183/small/hdxk.png'
- },
- mesh: {
- pic: 'https://638183.freep.cn/638183/small/2025/fl101.png',
- color: 0x008800
- }
- };
复制代码 一般的书写习惯是最后一个子项不要小角逗号,不过按照新JS规范,要也不影响。
【附】简单配置的帖子代码示例(在七楼) :https://www.huachaowang.com/foru ... 65&fromuid=7130 |
评分
-
| 参与人数 2 | 威望 +80 |
金钱 +160 |
经验 +80 |
收起
理由
|
花飞飞
| + 30 |
+ 60 |
+ 30 |
很给力! |
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|