我怎么能用javascript创建一个颜色数组?

时间:2015-04-01 06:58:33

标签: javascript

我试图创建一个包含随机颜色的数组,每个变量在数组中有一个随机颜色。因此,当我在数组中调用变量时,它会给我一个随机颜色。

以下是可汗学院的说明:

"要制作下雨动画,如果我们使用数组来跟踪掉落及其不同的属性,那就最好了。从这个简单的代码开始,并在其上构建一个酷雨动画。以下是您可以做的一些想法:

向阵列添加更多滴。 使用条件后,一旦它们到达底部,它就会从顶部开始回落。 制作一系列颜色,以便每一滴都是不同的颜色。 让其他东西下雨,比如雪花(使用更多形状命令)或头像(使用图像命令)。 使其成为当用户单击时,会向阵列添加新的拖放。 在程序开始时使用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);
        }
    }

};

谢谢。

5 个答案:

答案 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)