Programmieren leicht gemacht - adäquate Modelle für den Einsatz im Unterricht/ Einfache Interaktion mit dem Benutzer

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Hier soll an einem einfachen Beispiel die Verwendung von so genannten events erläutert werden. Events rufen Methoden auf, wenn vom Benutzer ein bestimmtes Verhalten an den Tag gelegt wird (z.B. Mausklick auf ein Objekt, Drücken einer bestimmten Taste). Folglich dienen sie zur einfachen Interaktion mit dem Benutzer. Weiters soll in diesem Beispiel erklärt werden, wie Eingaben von Seiten des Benutzers in Methoden verarbeitet werden können und welche vielfältigen Möglichkeiten dafür zur Verfügung stehen.

Erzeugen des Objekts[Bearbeiten]

Wir beginnen nun mit dem Einfügen des Objekts cheshireCat in unsere leere Welt. Im Folgenden wird dieses Objekt der Einfachheit halber einfach als Katze bezeichnet.


Katze1.png

Der vorgegebene Name von Objekten kann übrigens auch jederzeit geändert werden (mittels Rechtsklick auf das Objekt im Verzeichnisbaum - Klick auf rename; die Änderung wird mittels Return bestätigt)

Die Methode cheshireCat.sprechen[Bearbeiten]

Nun fügen wir der Katze eine neue Methode sprechen hinzu. Zuerst soll die Katze 1 Meter in Richtung Kamera bewegen:


Katze2.png

Um die Katze nun mit dem Benutzer sprechen zu lassen, wird folgende Methode hinzugefügt, wobei die Hintergrundfarbe der erscheinenden Sprechblase mittels bubbleColor gewählt werden kann. Auf analoge Weise kann die Schriftfarbe mittels textColor festgelegt werden:


Katze3.png

Die Variable duration gibt an, wie lange die Sprechblase angezeigt wird, bevor sie wieder verschwindet:


Katze5.png

Nun legen wir einen neuen String an, den wir mit "Name" bezeichnen. In diesen wollen wir den vom Benutzer eingegebenen Namen speichern. Um diesen String in unserer Methode verwenden zu können, ziehen wir ihn einfach mittels drap-and-drop an die gewünschte Position:


Katze6.png

Reaktion auf Eingaben vom Benutzer[Bearbeiten]

Um zu ermöglichen, dass der Benutzer Eingaben tätigen kann, fügen wir unserer Methode die Funktion ask user for a string (mittels drap-and-drop) hinzu:


Katze7.png

Den Text der auf diese Weise erzeugten Eingabeaufforderung kann folgendermaßen gewählt werden:


Katze8.png

Der Titel der Eingabeaufforderung wird in der Variable "title" gespeichert:


Katze9.png



Katze10.png

Der vom Benutzer eingegebene Name wird also dementsprechend in unserer Variable "Name" gespeichert. Die Katze soll den Benutzer nun mit seinem eingegebenen Namen begrüßen:


Katze12.png

Konkatenation von Strings[Bearbeiten]

Die Funktion "a" joined with "b" ermöglicht dabei, die Konkatenation zweier Teilstrings a und b zu einem neuen String:


Katze15.png

Die Konkatenation kann dabei beliebig ineinander verschachtelt werden, sodass die resultierende Sprechblase folgenden Text enthalten soll:


Katze19.png

Um die Entscheidung des Benutzers zu speichern, wollen wir nun einen neuen String „datumUhrzeit“ anlegen:


Katze20.png


Katze22.png

Die dafür benötigte Dialogbox soll folgenden Text bzw. Titel besitzen:


Katze24.png

If-Anweisung[Bearbeiten]

Wir wollen nun abfragen, welche der beiden Optionen (Uhrzeit oder Datum) der Benutzer gewählt hat. Dazu benötigen wir eine If-Anweisung:


Katze25.png

In der Variable datumUhrzeit wurde die Entscheidung des Benutzers (uhr oder datum) gespeichert. Dementsprechend muss dieser Wert nur noch verglichen werden. Im Weiteren gehen wir davon aus, dass der Benutzer entweder die Zeichenfolge uhr oder die Zeichenfolge datum eingegeben hat und bei dieser Eingabe auch keinen Fehler gemacht hat:


Katze26.png


Katze27.png

Je nachdem, welche Option der Benutzer gewählt hat, soll die Sprechblase der Katze einen darauf abgestimmten Text beinhalten:


Katze29.png

Da die Funktionen hour of day, month of year,... jeweils eine Zahl zurückliefern, müssen wir diese zuerst in einen String umwandeln, da der Text, der in der Sprechblase angezeigt wird, nur aus einzelnen Strings zusammengesetzt werden darf. Dafür legen wir den String "stundeString" an, indem die aktuelle Stunde als String gespeichert werden soll:


Katze30.png


Katze31.png

Die Umwandlung in einen String erfolgt mit Hilfe der Funktion „what“ as a string:


Katze32.png


Katze34.png

Die Vorgangsweise für die aktuelle Minute läuft analog ab. Zuerst legen wir wiederum einen String minutenString an, in welchem die aktuelle Minute gespeichert wird:


Katze35.png

Die Sprechblase soll Folgendes enthalten:


Katze40.png


Katze44.png

Im else-Zweig fügt man nun Folgendes ein:


Katze45.png


Katze46.png


Katze47.png

Unabhängig von der vom Benutzer ausgewählten Option, soll sich die Katze zum Schluss der Animation vom Benutzer verabschieden:


Katze50.png

Die Methode world.my first method[Bearbeiten]

Nun müssen wir in der Methode world.my first method noch diejenigen Methoden einfügen, die beim Start der Animation ausgeführt werden sollen. Zu Beginn soll die Katze sich in Richtung Kamera drehen:


Katze53.png

Erstellen eines Events[Bearbeiten]

Wir wollen nun erreichen, dass die von uns implementierte Methode cheshireCat.sprechen erst dann ausgeführt wird, wenn der Benutzer mit der Maus auf die Katze klickt. Um dies umzusetzen, müssen wir ein neues Event erzeugen:


Katze54.png


Katze55.png


Katze56.png


Katze57.png


Katze59.png

Um die zusammengestellte Animation anzusehen, muss nun nur noch der Play-Button gedrückt werden.

Herunterladen der erstellen Animation als Datei[Bearbeiten]

Die vorgestellte Animation kann auf http://finanz.math.tu-graz.ac.at/~pachernegg/informatik_didaktik.html unter InteraktiveAnimation.a2w heruntergeladen werden!