我试图创建一个包含随机颜色的数组,每个变量在数组中有一个随机颜色。因此,当我在数组中调用变量时,它会给我一个随机颜色。
以下是可汗学院的说明:
"要制作下雨动画,如果我们使用数组来跟踪掉落及其不同的属性,那就最好了。从这个简单的代码开始,并在其上构建一个酷雨动画。以下是您可以做的一些想法:
向阵列添加更多滴。 使用条件后,一旦它们到达底部,它就会从顶部开始回落。 制作一系列颜色,以便每一滴都是不同的颜色。 让其他东西下雨,比如雪花(使用更多形状命令)或头像(使用图像命令)。 使其成为当用户单击时,会向阵列添加新的拖放。 在程序开始时使用for循环和random()函数初始化数组。"
我想创造这种东西。
var color = [color1,color2,color3];
我怎么能让这个工作?我才开始了解数组。
这是我到目前为止所做的。
//This program creates raindrops each a different color.
var xPositions = [100,200,300];//1. Added Drops
var yPositions = [0,0,0];
var dropColors = [???,???,???];
draw = function() {
background(201, 247, 255);
//Additional Raindrops produced when mouse is pressed
if (mouseIsPressed) {
xPositions.push(mouseX);
yPositions.push(0);
}
for (var i = 0; i < xPositions.length; i++) {
noStroke();
fill(100, 100, 100);
ellipse(xPositions[i], yPositions[i], 10, 10);
//Speed at which raindrops fall.
yPositions[i] += 5;
//2. Drop restarts at initial yPosition.
if(yPositions[i] === 400){
yPositions[i] = 0;
//Random xPosition
xPositions[i] = random(0,400);
}
}
};
谢谢。
答案 0 :(得分:2)
这是我用来获得不同颜色的雨滴的地方:
var xPositions = [];
var yPositions = [];
var rainColor = [(color(random(0,255),random(0,255),random(0,255)))];
draw = function() {
background(204, 247, 255);
var x= random(0,255);
var y = random(0,255);
var z = random(0,255);
mouseReleased = function(){
xPositions.push(mouseX);
yPositions.push(mouseY);
rainColor.push(color(x, y, z));
};
for (var i = 0; i < xPositions.length; i++) {
noStroke();
fill(rainColor[i]);
ellipse(xPositions[i], yPositions[i], 10, 10);
yPositions[i] += 5;
if (yPositions[i] >400){
yPositions[i] = 0;
}
}
};
答案 1 :(得分:1)
//This program creates raindrops each a different color.
var xPositions = [0,100,200,300,400];//1. Added Drops
var yPositions = [0,100,200,300,400];
var dropColors = [color(random(0,255),random(0,255),random(0,255)),
color(random(0,255),random(0,255),random(0,255)),
color(random(0,255),random(0,255),random(0,255))];
draw = function() {
background(201, 247, 255);
//Additional Raindrops produced when mouse is pressed
if (mouseIsPressed) {
xPositions.push(mouseX);
yPositions.push(mouseY);
dropColors.push(color(random(0,255),random(0,255),random(0,255)));
}
for (var i = 0; i < xPositions.length; i++) {
noStroke();
fill(dropColors[i]);
ellipse(xPositions[i], yPositions[i], 10, 10);
//Speed at which raindrops fall.
yPositions[i] += 5;
//2. Drop restarts at initial yPosition.
if(yPositions[i] === 400){
yPositions[i] = 0;
//Random xPosition
xPositions[i] = random(0,400);
var randIndex = floor(random(dropColors.length));
var aDropColors = dropColors[randIndex];
dropColors[i] = aDropColors;
}
}
};
答案 2 :(得分:1)
我很容易回答您的问题。u不需要做所有的事情dropcolor [];阵列,并且具有很多颜色。
只是您想替换fill();填充(随机(0,255),随机(0,314),随机(0,255)); 这就是您为所有雨滴获得随机颜色的全部。 谢谢,我认为这个答案对您有帮助。
<PropertyGroup Condition="'$(TargetFramework)' == 'netcoreapp2.0' OR '$(TargetFramework)' == 'netstandard2.0'">
<DefineConstants>$(DefineConstants);NETCORE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'netcoreapp2.0'">
<DefineConstants>$(DefineConstants);NETCOREONLY</DefineConstants>
</PropertyGroup>
答案 3 :(得分:0)
我解决了以下问题(不包括用户交互):
var xPositions = [200];
var yPositions = [0];
var colArray = [(color(random(0, 255), random(0, 255), random(0, 255)))];
var backToZero = function() {
yPositions = [0];
xPositions = [200];
};
draw = function() {
background(204, 247, 255);
for (var i = 0; i < 15; i++) {
if(yPositions[i] >= 400) {
backToZero();
}
noStroke();
fill(colArray[i]);
ellipse(xPositions[i], yPositions[i], 10, 10);
yPositions[i] += 5;
xPositions.push(random(0, 400));
yPositions.push(0);
colArray.push((color(random(0, 255), random(0, 255), random(0, 255))));
}
};
答案 4 :(得分:0)
男人保持简单,只需使用:
var aColors = [];
var iTotalColorsGenerate = 100;
var count = 0;
while(count < iTotalColorsGenerate){
aColors.push('#'+(Math.random()*0xFFFFFF<<0).toString(16))
count++;
}
// HERE YOUR COLORS!
console.log(aColors)