讓我們來看看the source for PApplet
。這個類包含此變量:
public PGraphics g;
這裏是colorMode()
功能:
public void colorMode(int mode) {
if (recorder != null) recorder.colorMode(mode);
g.colorMode(mode);
}
這告訴我們PApplet#colorMode()
實際上只是一個快捷方式到PGraphics#colorMode()
。我們來看看the source for PGraphics
。從類colorMode()
功能,最終導致這裏:
public void colorMode(int mode,
float max1, float max2, float max3, float maxA) {
colorMode = mode;
//more code
這使我們的colorMode
變量:
/** The current colorMode */
public int colorMode; // = RGB;
換句話說,要獲得當前色彩模式,你必須從PApplet
去到它的g
變量,到它的colorMode
變量。如果您在草圖的時候,它看起來像這樣:
void setup() {
size(500, 500);
colorMode(HSB);
}
void draw() {
background(0);
if(g.colorMode == RGB){
println("RGB");
}
else if(g.colorMode == HSB){
println("HSB");
}
}
如果你不是在一個草圖,那麼你就需要使用this
關鍵字在PApplet
情況下通過。
PApplet mySketch;
int colorMode = mySketch.g.colorMode;
我剛剛g沒有電子郵件對我的標籤編輯提出質疑(這非常非常規 - 這就是爲什麼我們有評論)。我將在此回覆:我的編輯基於StackOverflow Meta決策,在[Processing tag info page](http://stackoverflow.com/tags/processing/info)中提到。我相信用一個或另一個來標記的情況,但很少兩者都是最強的。所以,如果你想爭辯,繼續並權衡在該頁面上鍊接的討論。也就是說,我也不是一個進入編輯之戰的人,所以如果你非常不同意一個標籤編輯,可以隨時添加它。 – CodeMouse92