You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Processing浏览器版背景无法每半秒切换故障排查求助

为啥你的Processing背景只会变一次就“罢工”啦?

先来看看你写的代码哦:

void setup(){
    size(500,500);
    int(q=1)
}

void draw(){
    if(q>0){
        float(z=random(255));
        float(x=random(255));
        float(c=random(255));
        background(z,x,c)
    }
    delay(500)
}

现在用幼儿园游戏的方式给你讲错在哪:

  • 第一个小错误:玩具放错地方啦
    你在setup里写的int(q=1),不仅写法不对(应该写成int q = 1;),而且这个q是藏在setup的小房间里的,draw这个小朋友根本找不到它!就像你把积木锁在自己衣柜里,小伙伴没法拿来玩一样。而且你忘了加句号(分号;),电脑会看不懂你说的话哦。

  • 第二个小错误:好多地方没加句号
    你看代码里的int(q=1)、background(z,x,c)、delay(500)后面都没加分号;,就像你说话不说完,电脑会懵圈的,它不知道你这句话到底结束没。

  • 第三个大错误:让draw小朋友一直“站着不动”
    Processing里的draw函数本来是会自己一遍一遍跑的,就像小朋友绕着操场跑圈。你加了delay(500),就是让它每跑一步就站着不动半秒,而且它还一直在跑圈,这些不动的指令堆在一起,电脑就被堵死啦,直接“罢工”不干活了。

那怎么改呢?我们可以给draw小朋友装个小闹钟,每隔半秒才换一次颜色:

// 把q放在外面,这样setup和draw都能拿到它
int q = 1;
// 记录上次换颜色的时间
long lastTime = 0;

void setup(){
    size(500,500);
}

void draw(){
    // 看看现在的时间和上次换颜色的时间差够不够半秒
    if(millis() - lastTime > 500){
        float z = random(255);
        float x = random(255);
        float c = random(255);
        background(z, x, c);
        // 更新上次换颜色的时间
        lastTime = millis();
    }
}

这样就不会卡死啦,背景会乖乖每半秒换一次颜色~

内容的提问来源于stack exchange,提问作者my_it_teacher_is_grumpy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:47:16