我正在尝试学习如何在Processing中创建类,但是我无法让Capture类使用我在程序主文件中使用的相同代码。
import processing.video.*;
class Game{
Capture video;
void videoFunction()
{
video = new Capture(this, width, height, 30);
video.start();
}
}
我得到的错误是the constructor Capture(filename.Game, int, int, int) is undefined
我猜测问题是使用this
还是使用width
和height
变量。我可以看到错误消息this
被打印为类的文件名,而不是主PDE的文件名。
如何让课程将this
识别为主文件名,或width
和height
作为主程序的宽度和高度?
答案 0 :(得分:0)
你的Game类是在Processing草图中,还是在它自己的标签中?
如果它在主草图选项卡中,则可以使用草图的名称来指定“this”的含义。像这样:
void setup(){
Test2 t = new Test2();
t.printClass();
}
class Test2{
void printClass(){
print(TestSketch.this.getClass());
}
}
请注意,在上面的示例中,我的草图名称是TestSketch。
如果它在自己的选项卡中,那么您需要通过其构造函数将Processing草图的实例传递给Game类。像这样:
从主草图标签:
void setup(){
Test t = new Test(this);
t.printClass();
}
在其自己的名为Test:
的标签中class Test{
TestSketch testSketch;
public Test(TestSketch testSketch){
this.testSketch = testSketch;
}
void printClass(){
print(testSketch.getClass());
}
}