2017-07-20 193 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类中存储该大小。

如果您希望程序整个生命周期内单个字母的大小相同,那么您将在构造函数中设置该大小。

然后,您将在绘制该字母之前在display()函数中使用该尺寸。

+0

哦好吧我会试试 –

+0

我可以问在哪里,什么是构造函数? :) –

+1

@Noobprocessor你试过Google吗?提示:你的类已经包含一个构造函数。 –

相关问题