Reagieren auf Ereignisse
In dieser Lektion erhalten Sie
Informationen über:
Erstellen interaktiver Spiele, die auf Ereignisse
reagieren.
Spaß mit Formen
Bisher haben Sie erfahren, wie Sie verschiedene Formen in Ihre
Small Basic-Programme einfügen und diese animieren.
Sie haben auch gelernt, wie Sie
Steuerelemente sowie Tastatur- und
Mausereignisse verwenden können,
um in Ihr Small Basic-Programm
Interaktivität zu integrieren.
Sie haben auch gelernt, dass Sie diese Formen, Steuerelemente
und Ereignisse gemeinsam verwenden können, um in
Small Basic interaktive Spiele zu integrieren.
Die Schildkröte zeichnet – Das Spiel
In diesem einfachen Spiel teilen Sie der Schildkröte mit, dass sie
eindeutige Formen im Grafikfenster zeichnen soll, indem Sie
festlegen, wie viele Seiten jede Form hat.
Das Spiel zeigt, wie Sie mit Farben
arbeiten und die Eigenschaften
von Turtle und GraphicsWindow
zum Zeichnen verschiedener
Formen verwenden.
Beachten Sie, wie Sie das Turtle-Objekt verwenden, um Formen zu
zeichnen, und wie Sie die Maus- und Tastaturereignisse verwenden,
um die Farbe und die Anzahl der Seiten auszuwählen.
Die Schildkröte zeichnet – So funktioniert das Spiel
Wie spielen Sie also dieses Spiel?
Schritte für das Spielen des Spiels:
Zunächst müssen Sie eine Farbe
aus der Farbpalette auswählen.
Als Nächstes definieren Sie,
welche Form die Schildkröte
zeichnen soll, indem Sie die
Anzahl der Seiten festlegen.
Wenn Sie auf Absenden klicken,
beginnt die Schildkröte zu
zeichnen.
Die Schildkröte zeichnet – Der Code
Betrachten wir den Code für das Spiel nun im Detail…
Sie erstellen dieses Spiel, indem Sie
mittels des GraphicsWindow-Objekts
eine Benutzeroberfläche erstellen. Sie
verwenden das Controls-Objekt, indem
Sie eine Schaltfläche und ein Textfeld
hinzufügen und die Größe für die
Steuerelementschaltflächen festlegen.
Sie verwenden das Shapes-Objekt, um
verschiedene Formen hinzuzufügen.
Sie verwenden anschließend das
Shapes-Objekt, um Formen anzuzeigen,
zu verschieben und auszublenden. Sie
verwenden das Turtle-Objekt auch, um
den Winkel, die Geschwindigkeit und die
Position festzulegen. Sie verwenden
für verschiedene Aktionen
verschiedene Bedingungen.
Prall den Ball – Das Spiel
Betrachten wir ein komplexeres Spiel, in dem Sie auf einen Ball
klicken, damit dieser nicht den Boden berührt.
Ziel des Spiels ist es, den Ball so
lange wie möglich vom Boden
entfernt zu halten.
Beachten Sie, wie die Mausereignisse
verwendet werden, um den Ball davon
abzuhalten, den Boden zu berühren.
Der Ball reagiert auf die Mausklicks
und berührt den Boden nicht.
Prall den Ball – So wird es gespielt
Wie spielen Sie also dieses Spiel?
Schritte für das Spielen des Spiels:
Auf dem Bildschirm fällt ein Ball auf
den Boden.
Sie klicken auf den Ball, damit dieser
in die Höhe springt.
Sie klicken auf den Ball, um ihn davon
abzuhalten, den Boden zu berühren.
Der Zeitnehmer zeigt an, wie viele
Sekunden Sie den Ball davon abhalten,
den Boden zu berühren.
Lassen Sie den Ball abprallen – Der Code
Betrachten wir den Code für das Spiel nun im Detail…
Sie entwickeln dieses Spiel, indem Sie
mittels des GraphicsWindow-Objekts
die Benutzeroberfläche erstellen. Sie
verwenden das Controls-Objekt, um das
Mausereignis zu definieren, das für die
Balancierung des Balls verwendet wird.
Sie verwenden das Shapes-Objekt,
um das Bild des Balls hinzuzufügen.
Sie verwenden außerdem
Bedingungsanweisungen, um
die durchzuführende Aktion zu
definieren, wenn ein bestimmtes
Mausereignis eintritt.
Fassen wir zusammen…
Herzlichen Glückwunsch! Sie haben
Folgendes gelernt:
Erstellen interaktiver Spiele, die auf Ereignisse
reagieren.
Zeigen Sie, was Sie wissen
Schreiben Sie ein Programm, um ein Grafikfenster
anzuzeigen, und führen Sie die folgenden Schritte durch:
Erstellen Sie eine Reihe von
Anweisungen, die im Grafikfenster
angezeigt werden sollen.
Erstellen Sie eine Schaltfläche
Richtig und eine Schaltfläche Falsch.
Bei jeder Aussage muss der Benutzer
auf Richtig oder Falsch klicken.
Der Benutzer erhält Punkte, wenn
der die Aussagen korrekt als richtig
oder falsch erkennt.
Notes de l'éditeur
Lösung:' Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.GraphicsWindow.Hide()gw = 500gh = 350scoreBoxLeft = 200passedQuestion = 0score = 0Clicked = ""i = 1Q[1] = "Der Nil ist der längste Fluss der Welt."Q[2] = "Der Mount Everest ist der höchste Berg der Welt."Q[3] = "Sambia ist auch als 'Land des Kupfers' bekannt."Q[4] = "Sibirien ist die kälteste Gegend der Erde."Q[5] = "Sydney ist die Hauptstadt der USA."Q[6] = "Der Jordan fließt in das Tote Meer."Q[7] = "Mumbai ist die Hauptstadt von Indien."Q[8] = "Afrika ist der größte Kaffee-anbauende Kontinent der Welt."Q[9] = "Die Sahara ist die größte Wüste der Erde."Q[10] = "London ist die Hauptstadt von Großbritannien."A[1] = "True"A[2] = "True"A[3] = "True"A[4] = "True"A[5] = "False"A[6] = "True"A[7] = "False"A[8] = "False"A[9] = "True"A[10] = "True"ArrayRandom[1] = "5234162"ArrayRandom[2] = "1896523"ArrayRandom[3] = "5974216"ArrayRandom[4] = "2756194"randomNumber = Math.GetRandomNumber(Array.GetItemCount(ArrayRandom))GraphicsWindow.CanResize = "False"GraphicsWindow.Width = gwGraphicsWindow.Height = ghGraphicsWindow.Top = (Desktop.Height - gh) / 2GraphicsWindow.Left = (Desktop.Width - gw) / 2GraphicsWindow.Title = "True or False"GraphicsWindow.Show()Controls.ButtonClicked = OnButtonClickedCreateUI()Sub CreateUIGraphicsWindow.BrushColor = "Purple"GraphicsWindow.FontName = "Verdana"GraphicsWindow.FontSize = 14GraphicsWindow.DrawRectangle(10, 10, 480, 330) trueButton = Controls.AddButton("True", 30, 210) falseButton = Controls.AddButton("False", 320, 210) Controls.SetSize(trueButton, 150, 100)Controls.SetSize(falseButton, 150, 100)GraphicsWindow.DrawText(220, 300, "Ergebnis")resultTextBox = Shapes.AddText("")Shapes.Move(resultTextBox, 220, 250)scoreTextBox = Shapes.AddText("Punktestand: 0")Shapes.Move(scoreTextBox, 404, 15)StartGame() EndSubSub StartGamepassedQuestion = Text.GetSubText(ArrayRandom[randomNumber], i, 1) If i <= 7 Thenqx = 60qy = 90 GraphicsWindow.BrushColor = "LightBlue"GraphicsWindow.FillRectangle(200, 220, 100, 80) GraphicsWindow.FillRectangle(20, 50, 460, 100) GraphicsWindow.BrushColor = "Blue"GraphicsWindow.DrawBoundText(qx - 20, qy, 420 "" + Q[passedQuestion])currentAnswer = A[passedQuestion]ElseProgram.Delay(1000) GraphicsWindow.ShowMessage("Ihr Punktestand ist " + score, "Das Spiel ist beendet.")Program.End()EndIfi = i + 1EndSubSub OnButtonClickedclickedButtonCaption = Controls.GetButtonCaption(Controls.LastClickedButton)If currentAnswer = clickedButtonCaption ThenlastAnswer = "Correct"Shapes.Move(resultTextBox, 220, 250) score = score + 1ElselastAnswer = "Incorrect"Shapes.Move(resultTextBox, 212, 250)EndIfShapes.SetText(resultTextBox, lastAnswer) Shapes.SetText(scoreTextBox, "Punktestand: " + score)StartGame()EndSub