MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针

如果在编辑的过程中遇到了什么问题,可以去讨论板提问。

为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证

MCBBS Wiki GitHub群组已上线!

您可以在回声洞中发表吐槽!

服务器状态监控。点击进入

本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>

微件:SaltFirework:修订间差异

来自MCBBS Wiki
跳到导航 跳到搜索
(快过年了)
 
(添加了自定义烟花颜色色相,颜色波动范围,粒子数量三种自定义参数)
第9行: 第9行:
*/
*/
(function () {
(function () {
    // 阻止重复调用
    if (document.getElementById('saltFireWorkCanvas')) return
     // 参数
     // 参数
     const hueRange = [0, 360] // 颜色范围
    // 颜色范围
     const hueDiff = 30 // 颜色变化区间
     const hueRange = (function () {
     const count = 110 // 粒子效果数量
        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) => { createFireworks(e.clientX, e.clientY) }) // 监听事件
         document.addEventListener('mousedown', function (e) { createFireworks(e.clientX, e.clientY) }) // 监听事件
     }
     }
     /**清理绘图区 */
     /**清理绘图区 */
第55行: 第84行:
     function createFireworks(x, y) {
     function createFireworks(x, y) {
         /**这个烟花的颜色 */
         /**这个烟花的颜色 */
         let hue = Math.floor(Math.random() * (hueRange[1] - hueRange[0])) + hueRange[0]
         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)];
     }
     }
})()
})()
</script></includeonly>
</script></includeonly>

2021年1月20日 (三) 21:37的版本