基本上,处理编辑器可以处理两种类型的代码。第一种类型是函数调用的基本列表,如下所示:
size(500, 200);
background(0);
fill(255, 0, 0);
ellipse(width/2, height/2, width, height);
对于这种类型的代码,处理只需一次运行一个命令即可。
第二种类型的代码是具有函数定义的“真实”程序,如下所示:
void setup(){
size(500, 200);
}
void draw(){
background(0);
fill(255, 0, 0);
ellipse(width/2, height/2, width, height);
}
对于这种类型的代码,处理调用setup()
函数在开始时执行一次,然后调用draw()
每秒运行 60 次。
但请注意,你can't有混合两种类型的代码:
size(500, 200);
void draw(){
background(0);
fill(255, 0, 0);
ellipse(width/2, height/2, width, height);
}
这会给你一个编译器错误,因为size()
函数不在函数内部!
您的代码发生的情况是,Processing 发现您尚未定义任何草图级函数,因此它尝试将其视为第一种类型的代码。但随后它会看到类定义,这些定义仅在第二种类型的代码中有效。这就是你收到错误的原因。
要解决您的问题,只需定义一个setup()
and/or draw()
函数在您的代码中,因此处理知道它是一个“真正的”程序。