在 Processing 中一次输入一个字符
Typing one character at a time in Processing
我试图在处理过程中一次显示一个字符。例如,如果我输入字母 "Q",我怎样才能使它在我输入另一个字符时显示在与前一个字符相同的位置,但在此过程中删除前一个字符?
最终,我正在尝试制作一个程序,以不同的字体显示任何按下的键;但是当我尝试这样做时,字符只是连续添加。
截至目前,这连续给了我字符:
String letters = "";
void setup() {
size(100, 100);
stroke(255);
fill(0);
textSize(16);
}
void draw() {
background(204);
text(letters, 0, 50);
}
void keyPressed() {
if (key == BACKSPACE) {
if (letters.length() > 0) {
letters = letters.substring(0, letters.length()-1);
}
} else if (textWidth(letters+key) < width) {
letters = letters + key;
}
}
怎么可能一直只显示一个字符?
看看这一行:
letters = letters + key;
此处您要将 key
添加到 letters
变量。因此,如果 letters
是 "ABC"
并且 key
是 'X'
,那么 letters
将在该行运行后成为 "ABCX"
。
如果您只想显示最近按下的键,为什么不直接使用 key
值呢?这正是它所拥有的:
void draw() {
background(0);
text(key, 25, 25);
}
我试图在处理过程中一次显示一个字符。例如,如果我输入字母 "Q",我怎样才能使它在我输入另一个字符时显示在与前一个字符相同的位置,但在此过程中删除前一个字符?
最终,我正在尝试制作一个程序,以不同的字体显示任何按下的键;但是当我尝试这样做时,字符只是连续添加。
截至目前,这连续给了我字符:
String letters = "";
void setup() {
size(100, 100);
stroke(255);
fill(0);
textSize(16);
}
void draw() {
background(204);
text(letters, 0, 50);
}
void keyPressed() {
if (key == BACKSPACE) {
if (letters.length() > 0) {
letters = letters.substring(0, letters.length()-1);
}
} else if (textWidth(letters+key) < width) {
letters = letters + key;
}
}
怎么可能一直只显示一个字符?
看看这一行:
letters = letters + key;
此处您要将 key
添加到 letters
变量。因此,如果 letters
是 "ABC"
并且 key
是 'X'
,那么 letters
将在该行运行后成为 "ABCX"
。
如果您只想显示最近按下的键,为什么不直接使用 key
值呢?这正是它所拥有的:
void draw() {
background(0);
text(key, 25, 25);
}