使用Processing的textSize()方法进行不需要的数据操作

时间:2017-03-11 07:57:54

标签: java processing

应用程序显示随机变化的字符流,在页面上向下运行以实现类似矩阵的效果。该应用程序使用处理工具来实现此目的。一切正常,除了调用textSize()改变文本大小,但现在所有字符都变成0或方形字符,如下图所示。

enter image description here

我重新创建了一个较小的硬编码版本来重现问题。此版本只是在屏幕中间绘制一个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

对于为什么会发生这种情况的任何解释都将不胜感激。提前谢谢。

0 个答案:

没有答案