MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针。
如果在编辑的过程中遇到了什么问题,可以去讨论板提问。
为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证。
MCBBS Wiki GitHub群组已上线!
您可以在回声洞中发表吐槽!
服务器状态监控。点击进入
本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>
微件:SaltFirework:修订间差异
跳到导航
跳到搜索
Salt lovely(留言 | 贡献) (快过年了) |
Salt lovely(留言 | 贡献) 小 (添加了自定义烟花颜色色相,颜色波动范围,粒子数量三种自定义参数) |
||
第9行: | 第9行: | ||
*/ |
*/ |
||
(function () { |
(function () { |
||
// 阻止重复调用 |
|||
if (document.getElementById('saltFireWorkCanvas')) return |
|||
// 参数 |
// 参数 |
||
// 颜色范围 |
|||
const |
const hueRange = (function () { |
||
let defaultValue = (function () { |
|||
⚫ | |||
var x = [] |
|||
for (let i = 1; i < 361; i++) |
|||
x.push(i) |
|||
return x |
|||
})() |
|||
let e = document.getElementById('saltForeworkHueRange') |
|||
if (!e) return defaultValue |
|||
let c = e.textContent.replace(/[\s\n_]+/g, '').replace(/[\;\/\|\/\\,;、\-]+/g, ',').split(',').map((v) => parseInt(v)).filter(Boolean).filter((v) => v > 0 && v < 361) |
|||
if (!c || c.length < 1 || c.length > 360) return defaultValue |
|||
return c |
|||
})()// [0, 360] |
|||
// 颜色变化区间 |
|||
const hueDiff = (function () { |
|||
let e = document.getElementById('saltForeworkHueDiff') |
|||
if (!e) return 30 |
|||
let c = parseInt(e.textContent) |
|||
if (isNaN(c) || c < 0 || c > 180) return 30 |
|||
return c |
|||
})() |
|||
⚫ | |||
const count = (function () { |
|||
let e = document.getElementById('saltForeworkCount') |
|||
if (!e) return 110 |
|||
let c = parseInt(e.textContent) |
|||
if (isNaN(c) || c < 1 || c > 500) return 110 |
|||
return c |
|||
})() |
|||
const baseRange = [1, 4] // 粒子大小 |
const baseRange = [1, 4] // 粒子大小 |
||
const speedMutiply = 6 // 粒子速度范围 |
const speedMutiply = 6 // 粒子速度范围 |
||
第40行: | 第69行: | ||
clearCanvas() |
clearCanvas() |
||
tick() // 开始tick |
tick() // 开始tick |
||
document.addEventListener('mousedown', (e) |
document.addEventListener('mousedown', function (e) { createFireworks(e.clientX, e.clientY) }) // 监听事件 |
||
} |
} |
||
/**清理绘图区 */ |
/**清理绘图区 */ |
||
第55行: | 第84行: | ||
function createFireworks(x, y) { |
function createFireworks(x, y) { |
||
/**这个烟花的颜色 */ |
/**这个烟花的颜色 */ |
||
let hue = |
let hue = randomChoice(hueRange) |
||
for (let i = 0; i < count; i++) { |
for (let i = 0; i < count; i++) { |
||
let spd = Math.random() * speedMutiply + baseSpeed |
let spd = Math.random() * speedMutiply + baseSpeed |
||
第128行: | 第157行: | ||
clearParticles() |
clearParticles() |
||
requestAnimationFrame(tick) |
requestAnimationFrame(tick) |
||
} |
|||
/**随机选择 */ |
|||
function randomChoice(arr) { |
|||
if (arr.length < 1) { |
|||
return null; |
|||
} |
|||
return arr[Math.floor(Math.random() * arr.length)]; |
|||
} |
} |
||
})() |
})() |
2021年1月20日 (三) 21:37的版本