2014-11-05 20 views
0

我想學習如何在Processing中創建類,但是我無法使Capture類與我在程序主文件中使用的相同代碼一起工作。處理:可能在類中調用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或使用widthheight變量。我可以看到,在錯誤消息this被打印爲類的文件名,而不是主PDE的文件名。

如何讓課程將主要文件名識別爲this,或將widthheight識別爲主程序的寬度和高度?

回答

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()); 
} 

}