处理:未使用代码的错误

Processing: Error for code that's not used

我正在尝试测量 运行 我的一些函数所花费的时间,但我在处理中遇到错误:playInvadersMoveSoundStart 无法解析为变量。

在我的文档顶部:

boolean debug;

并在设置中:

debug = false;

正赛:

case 2:
    background(0);
    if (debug){
        double gameLoopStart = millis();
        println("fps " +frameRate);
        int playInvadersMoveSoundStart = millis();
    }
    playInvadersMoveSound();
    if (debug){
        int playInvadersMoveSoundEnd = millis();
        int playInvadersMoveSoundTime = (playInvadersMoveSoundEnd - playInvadersMoveSoundStart);
        println("playInvadersMoveSound " +playInvadersMoveSoundTime);
        int displayBunkersStart = millis();
    }

我是处理和编程方面的新手,所以这可能是我不明白的地方,但我认为如果处理停止进行错误检查,代码会 运行 没问题。我的意思是 - Debug 设置为 false,所以 Processing 抱怨的代码没有 运行。对吧?

变量playInvadersMoveSoundStartif语句的块范围内声明:

if (debug){
    // [...]
    int playInvadersMoveSoundStart = millis();
}

因此在 if 语句的块范围之外无法访问该变量。 将变量声明移到 if:

之前
case 2:
{
    background(0);

    int playInvadersMoveSoundStart = 0;
    if (debug){
        double gameLoopStart = millis();
        println("fps " +frameRate);
        playInvadersMoveSoundStart = millis();
    }
    playInvadersMoveSound(); 
    if (debug){
        int playInvadersMoveSoundEnd = millis();
        int playInvadersMoveSoundTime = playInvadersMoveSoundEnd - playInvadersMoveSoundStart;
        println("playInvadersMoveSound " +playInvadersMoveSoundTime);
    }
}