我正在尝试测量运行某些函数所花费的时间,但是在处理中出现错误: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);
    }
}

09-30 18:50
查看更多