应用程序显示随机变化的字符流,在页面上向下运行以实现类似矩阵的效果。该应用程序使用处理工具来实现此目的。一切正常,除了调用textSize()改变文本大小,但现在所有字符都变成0或方形字符,如下图所示。
我重新创建了一个较小的硬编码版本来重现问题。此版本只是在屏幕中间绘制一个Symbol对象。角色不会改变也不会移动。
import processing.core.PApplet;
public class Main extends PApplet {
private Symbol symbol;
public static void main(String[] args) {
PApplet.main("Main");
}
public void setup() {
noCursor();
background(0);
symbol = new Symbol(this, width / 2, height / 2);
}
public void settings() {
fullScreen();
}
public void draw() {
background(0);
symbol.show();
}
public static int getRandomInt(final int min, final int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
public class Symbol {
private float xPosition;
private float yPosition;
private char symbol;
private PApplet parent;
private float size = 35f;
private int opacity = 255;
public Symbol(final PApplet parent,
final float xPosition,
final float yPosition) {
this.parent = parent;
this.xPosition = xPosition;
this.yPosition = yPosition;
// Sets symbol to a random Katakana character.
this.symbol = generateRandomSymbol(0x30A0, 96);
}
public char generateRandomSymbol(final int origin, final int bound) {
return (char) (origin + getRandomInt(0, bound));
}
public void show() {
parent.fill(155, 155, 155, opacity);
// TODO: Fix this dumb bug
// parent.textSize(size);
parent.text(symbol, xPosition, yPosition);
}
}
}
整个项目有点大,要包含在这篇文章中,所以这里是项目github repo页面:https://github.com/JSextonn/MatrixRain
对于为什么会发生这种情况的任何解释都将不胜感激。提前谢谢。