javascript五彩纸屑的代码是here。
我试图定义五彩纸屑的颜色,而不是让它们随机(默认设置)。
我发现用于决定颜色的变量是一个名为colorThemes
的数组,它包含多种颜色:
var colorThemes = [
function() {
return color(200 * random()|0, 200 * random()|0, 200 * random()|0);
}, function() {
......
}, function() {
......
},
但是在我将第一个数组项更改为以下格式后,所有五彩纸屑都变成了相同的颜色(在这种情况下为白色):
var colorThemes = [
function() {
return 'rgb(255, 255, 255)';
},
第191行似乎控制颜色是随机选择还是第一个:
var theme = colorThemes[onlyOnKonami ? colorThemes.length * random()|0 : 0]
我曾尝试更改它以试图强制选择随机颜色,但仍然没有运气:
var theme = colorThemes[colorThemes.length * random()|0]
答案 0 :(得分:1)
因此,当颜色在第191行设置时,它会在" addConfetto"之前设置。调用函数,该函数基于展开设置递归调用以创建新粒子。由于主题函数已经确定,因此每个粒子都使用相同的粒子。有两个选项,您可以创建一个从预定义颜色数组中返回随机颜色的函数,并使用它而不是随机选择的函数,如下所示:
colorTheme(){
var colors = [
"rgb(255, 255, 255)",
"rgb(0, 255, 255)",
"rgb(255, 255, 0)"
];
return colors.length * random|0;
}
并将191更改为:
var theme = colorTheme;
或者深入了解Confetti类并改变第137行调用主题函数的位置:
innerStyle.backgroundColor = colorThemes[Math.floor(colorThemes.length * random())]();