In diesem Artikel werde ich erklären, wie die Einstellungen (), setup () und draw () von Processing 3.3.5 (Stand: 7/2) funktionieren. Es ist keine Beschreibung der IDE. Wenn Sie Fehler oder weitere interessante Informationen haben, teilen Sie uns dies bitte in den Kommentaren mit!
https://github.com/processing/processing
This is the official source code for the Processing Development Environment (PDE), the “core” and the libraries that are included with the download.
Also werde ich den offiziellen Quellcode von Processing lesen.
Weitere Informationen zur Funktionsweise der Verarbeitung finden Sie in core / src / process.
Alle drei dieser Funktionen sind in PApplet.java definiert. Schauen wir uns jeden an.
settings()
public void settings() {
// is this necessary? (doesn't appear to be, so removing)
//size(DEFAULT_WIDTH, DEFAULT_HEIGHT, JAVA2D);
}
setup()
public void setup() {
}
draw()
public void draw() {
// if no draw method, then shut things down
//System.out.println("no draw method, goodbye");
finished = true;
}
Der Code, den Sie in Processing schreiben, ist tatsächlich eine Klasse, die von "PApplet" erbt. Wenn ich den folgenden Code ausführe, wird "true" zurückgegeben.
println(this instanceof PApplet);
Die Verarbeitung wird unter der Annahme geschrieben, dass "settings ()", "setup ()" und "draw ()" von "PApplet" überschrieben werden. Das Schreiben von "@ Override" vor dem Code gibt keinen Fehler aus.
settings ()
wird von einer Funktion namens handleSettings ()
aufgerufen.
Außerdem werden "setup ()" und "draw ()" von der Funktion "handleDraw ()" aufgerufen.
Beide sind in "PApplet".
handleSettings()
Danach wird es in PApplet
in der Reihenfolge runSketch ()
⇒main ()
aufgerufen.
Nebenbei wird in dieser Funktion eine boolesche Typvariable namens "insideSettings" verwendet. Die Verarbeitungen glatt ()
und noSmooth ()
funktionieren nur, wenn die Variable insideSettings
wahr ist. Beachten Sie, dass die Verarbeitung nur im wahren Zustand in settings ()
erfolgen kann. Es gab tatsächlich eine bedürftige Person.
handleDraw()
setup ()
wird aufgerufen, wenn frameCount == 0
und draw ()
anders aufgerufen wird. Dies ist auch eine kleine Geschichte, aber da frameCount
eine öffentliche Variable ist, können Sie den numerischen Wert frei ändern. Wenn Sie dies in frameCount = -1
und draw ()
tun, wird setup ()
aufgerufen. Sie haben keine Chance, es zu verwenden, aber es ist eine der Sicherheitslücken bei der Verarbeitung.
AnimationThread
Ein Thread namens AnimationThread ist in der Klasse "PSurfaceNone" definiert. handleDraw ()
wird von callDraw ()
darin aufgerufen und läuft in run ()
weiter, bis die Endbedingung von der while-Anweisung erfüllt wird.
Bisher habe ich erklärt, wie die "settings ()", "setup ()" und "draw ()", die wir immer in Processing geschrieben haben, funktionieren. Ich hoffe, Sie sind mit diesem Artikel zufrieden.
handleDraw ()
ist öffentlich und kann überschrieben werden. Fügen Sie einfach den folgenden Code in den Code einer anderen Person ein und "setup ()" und "draw ()" werden nicht aufgerufen.
void handleDraw() {
}
Dies ist auch eine Verarbeitungsanfälligkeit. Ist es in Ordnung Verarbeitung ...
Recommended Posts