-
Wir sind zurück mit Winston, wo ich nun Text hinzugefügt habe.
-
Ich möchte nun die Positionen von Winston unter diesen roten Bezeichnungen haben,
-
welche Auskunft über sein ungefähres Alter geben.
-
Momentan befindet sich Winston an diversen Positionen, weil für faceX
-
und faceY die Position durch random zufällig wurde.
-
Wir wollen jetzt aber genau bestimmen, wo Winston beim Ausführen der Funktion sein soll,
-
und zwar für jedes Mal, wenn wir die Funktion aufrufen.
-
So wie wir die Funktion fill und rect aufrufen.
-
Ich möchte nun einen Winston hier, hier, hier und hier.
-
Und eben nicht eine zufällige Position, wenn wir jeweils die Funktion aufrufen.
-
Hierzu müssen wir der function Parameter zuweisen.
-
Und zwar hier oben, wo wir es definieren
-
sowie hier unten, wo wir die Funktion mit drawWinston aufrufen.
-
Für drawWinston wollen wir nun Werte aus faceX und faceY.
-
Wir weisen nun aber Werte zu, anstatt diese einfach zufällig zu generieren.
-
Schauen wir nun, was wir hier unten bei drawWinston eingeben.
-
Wir positionieren die Winston unter den dazugehörigen Text. Die Koordinaten x und y
-
müssten also ähnliche Werte haben wie jene bei den Befehlen text.
-
Wir nehmen aber etwa 10 Pixel mehr bei y, sodass er etwas weiter unten ist. Beim ersten wären es dann 10 und 30.
-
Beim Zweiten 200 und 30 und beim Dritten 10 und 230 und beim Vierten 200 und 230.
-
Also wie hier bei den text-Koordination. Wir nehmen aber für y immer 10 mehr.
-
Denn wir wollen die Winston etwas unter dem roten Text.
-
Bis jetzt hat sich Winston aber noch nicht verschoben, weil wir hier oben bei function
-
noch keine Parameter zugewiesen haben. Daher gelten noch diese Werte von random.
-
Um dieser function mitzuteilen, dass wir jetzt aber andere Werte haben,
-
müssen wir bei den Parametern etwas zwischen den Klammern schreiben.
-
Wir schreiben faceX und faceY und setzen ein Komma dazwischen.
-
faceX und faceY deshalb, weil wir hier unten dies innerhalb der Funktion auch so benannt hatten.
-
Somit müssen wir nicht mehr den ganzen code schreiben.
-
Es hat sich aber nach wie vor nichts geändert. Winston ist immer noch am gleichen Ort.
-
Das Problem ist, dass faceX und faceY momentan
-
von random überschrieben wird, weil es weiter unten steht.
-
Das Einzige, was wir tun müssen, ist diese zwei Linien zu löschen.
-
Und ... siehe da! Jetzt werden faceX und faceY
-
in die Funktion übernommen. Es werden dabei die Werte verwendet, die wir hier aufrufen.
-
Wie du siehst, ist Winston aber nach wie vor nicht optimal positioniert. Ich habe vergessen, dass beim Text
-
mit den Koordinaten die obere linke Ecke bestimmt wird und beim Gesicht das Zentrum.
-
Ich muss deshalb hier ein wenig die Zahlen ändern.
-
Ich verschiebe damit ein wenig nach rechts und hier nach unten.
-
Wir ändern es auch bei den anderen.
-
Wir müssen bei der Definition der Funktion nichts ändern.
-
Die Werte werde von hier unten übernommen.
-
Genau so wie bei ellipse und rect.
-
Winston ist momentan auch noch ein wenig zu groß,
-
weshalb sich die einzelnen Gesichter überlappen.
-
Da der ganze code hier mit function aufgerufen wird,
-
kann ich hier nun einfach die Größe ändern,
-
indem ich auf dieser Linie den Befehl ändere, welche die Ellipse des Gesichts ausführt.
-
Versuchen wir es mit 190 und 190.
-
Jetzt sieht es schon besser aus. Ich kann nun hier noch ein
-
wenig verschieben, sodass es noch besser passt.
-
Blicken wir nochmals darauf zurück, was dieser code tut. Es wird eine Funktion mit dem Namen drawWinston definiert.
-
Diese Funktion beinhaltet zwei Werte, die mit faceX und faceY benannt sind.
-
Diese Werte verstehen sich als Variable,
-
worauf sich die Werte hier unten beziehen.
-
Nachdem wir die Funktion definiert haben, können wir diese aufrufen, wann immer wir wollen.
-
Wir können hier die gewünschten Werte eingeben.
-
Wir haben gesehen, dass diese Funktionen sehr nützlich sind, um code
-
mehrfach auszuführen. Anhand der Parameter
-
können wir kleine Dinge ändern beziehungsweise anpassen.
-
Wir haben eine Grundkonstruktion und wenn
-
wir bemerken, dass wir vier anstatt nur ein Winston zeichnen möchten,
-
dann müssen wir nicht von vorne beginnen, sondern
-
multiplizieren es einfach mal 4.
-