2017-07-20 3 views
1

どのように広がる文字ごとにランダムなサイズを設定できますか?私はそれらのそれぞれが異なるランダムなサイズを持っていることを望みますが、私は実際にtextSize (random(10, 20));をどこに置くのか分かりません。なぜなら、私がそれを引くと、各フレームのテキストサイズが変わるのです。セットアップの下に置くだけで、すべての文字のサイズが変わります。各文字にランダムなテキストサイズを設定する方法は? (処理)

String message = "Alice fell into the rabbit hole"; 
int x = 130; 
int y = 90; 

Letter[] letters; 

void setup() { 
    size(260, 200); 
    letters = new Letter[message.length()]; 
    textSize (random(10, 20)); 

    for (int i = 0; i < message.length(); i++) { 
    letters[i] = new Letter(x, y, message.charAt(i)); 
    //x += textWidth(message.charAt(i)); 
    } 
} 

void draw() { 
    background(255); 
    for (int i = 0; i < letters.length; i++) { 
    letters[i].display(); 
    letters[i].shake(); 
    } 
} 

class Letter { 
    char letter; 
    float x, y; 

    Letter (float x, float y, char letter) { 
    this.x = x; 
    this.y = y; 
    this.letter = letter; 
    } 

    void display() { 
    fill(0); 
    textAlign(CENTER, CENTER); 
    text(letter, x, y); 
    } 

    void shake() { 
    x += random(-2, 2); 
    y += random(-2, 2); 
    } 
} 

答えて

1

あなたLetterクラスは、特定の文字についてのすべてをカプセル化します。したがって、各文字のサイズをランダムにしたい場合は、そのサイズをLetterクラスに保存します。

プログラムの存続期間中に1文字のサイズを同じにしたい場合は、そのサイズをコンストラクタで設定します。

次に、文字を描画する前に、display()関数でそのサイズを使用します。

+0

ああ私はそれを試してみます –

+0

私はどこにどのコンストラクタが尋ねることができますか? :) –

+1

@Noobprocessorあなたはそれをグーグルで試してみましたか?ヒント:クラスにはすでにコンストラクタが含まれています。 –

関連する問題