【问题标题】:how to set random text size on each letter once? (processing)如何在每个字母上设置一次随机文本大小? (加工)
【发布时间】:2017-07-22 06:52:43
【问题描述】:

如何为展开的每个字母设置随机大小?我希望它们每个都有不同的随机大小,但我真的不知道在哪里放置textSize (random(10, 20));,因为如果我把它放在 draw 下它只会一遍又一遍地循环,每个帧每个字母的文本大小都会改变,但是当我把它放在设置下时,它只会改变所有字母的大小。

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);
  }
}

【问题讨论】:

    标签: random processing text-size


    【解决方案1】:

    您的Letter 类封装了有关特定字母的所有内容。因此,如果您想要每个字母的随机大小,那么您应该将该大小存储在 Letter 类中。

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

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

    【讨论】:

    • 哦好吧我试试
    • 我能问一下构造函数在哪里以及是什么吗? :)
    • @Noobprocessor 你试过谷歌搜索吗?提示:你的类已经包含了一个构造函数。
    • 好的明白这意味着什么!花了我一天哈哈!你是什​​么意思我在绘制字母之前使用display() 函数中的大小? :)
    • @Noobprocessor 你试过什么?你觉得我是什么意思?现在您只需设置一次文本大小,每个字母都使用该大小。听起来您想为每个字母设置文本大小。你觉得你会怎么做?
    猜你喜欢
    • 2023-01-18
    • 2020-09-03
    • 1970-01-01
    • 2021-11-13
    • 2021-05-11
    • 1970-01-01
    • 2021-03-09
    • 2013-12-17
    • 1970-01-01
    相关资源
    最近更新 更多