2017-10-02 8 views
-4

javascript confettiのコードはhereです。javascript confettiのコードを解読するのに助けが必要

私は、それらをランダムにするのではなく、デフォルトの設定ではなく、色付きの色を定義しようとしています。

私が色を決定するための変数は、いくつかの色を含む、 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] 
+2

さて、あなただけの白を表す単一の文字列を返す場合あなたは白くなるだけです。色の配列を定義し、その配列から色をランダムに選択する必要があります。 –

+0

何が問題なのですか?ランダムなものを生成するのではなく、白い色のコードに変更すると、同じ色になることが期待されます。 – APAD1

+0

この関数はランダムな色を返します。したがって、それを白に変更すると、関数を使用するすべてのものが白に変わります。他の設定を制御する部分はこのコードには含まれていません。 – Shilly

答えて

1

色がライン191に設定されますときに、それは「addConfetto」機能がある前に設定されますこの関数は、新しいパーティクルを作成するためのスプレッド設定に基づいて再帰的に呼び出されます。テーマ関数は既に決定されているので、すべてのパーティクルが同じものを使用します。 2つのオプションがありますが、あなたは、事前に定義された色の配列のうち、ランダムな色を返す関数を作成し、むしろランダムに選ばれた機能よりも、それを使用して、このようなものでした:

colorTheme(){ 
    var colors = [ 
     "rgb(255, 255, 255)", 
     "rgb(0, 255, 255)", 
     "rgb(255, 255, 0)" 
    ]; 
    return colors.length * random|0; 

} 

とに191を変更します。

テーマ機能は、ライン上で呼び出さ
var theme = colorTheme; 

または紙吹雪クラスに少し深く掘ると変える137:

innerStyle.backgroundColor = colorThemes[Math.floor(colorThemes.length * random())](); 
+0

ありがとうございました!私の目標は色をvar colorThemes = [function(){return 'rgb(...)'}、function(){return 'rgb(...)'}、...] 'として手動で定義することです。私はそれから2番目の選択肢に行くでしょう。 –

関連する問題