text()
не поддерживает разрывы строк. Вы должны хранить каждую строку в отдельной строке. Например, используйте StringList
для хранения строк текста.
Создайте массив строк, в котором будут храниться готовые строки. Текущая строка все еще сохраняется в word
:
StringList lines = new StringList();
Когда предел строки достигнут, добавьте строку в список и начните новую строку:
if(lineBreak > 39) {
lines.append(word);
word = "";
}
Определить lineheight
Нарисуйте линии в oop. Вертикальное положение линии вычисляется как lineheight * (i + 1)
, где i
- индекс строки:
int lineheight = 30;
for (int i = 0; i < lines.size(); i++) {
String line = lines.get(i);
text(line, 0, lineheight * (i + 1));
}
text(word, 0, lineheight * (lines.size() + 1));
См. Пример:
StringList lines = new StringList();
String word = "";
void setup() {
size(1000, 600);
textSize(26);
fill(0);
}
void draw() {
background(255);
int lineheight = 30;
for (int i = 0; i < lines.size(); i++) {
String line = lines.get(i);
text(line, 0, lineheight * (i + 1));
}
text(word, 0, lineheight * (lines.size() + 1));
}
void keyPressed() {
int lineBreak = word.length();
if(lineBreak > 39) {
lines.append(word);
word = "";
}
else {
word += key;
}
}