Post on 31-Jul-2020
Name: Datum:
AB1
Game DesignDen Ball springen lassen
WPU IIAnd
Heute: Ein weiteres Spielelement
In der heutigen Einheit lernst du, wie man den Ball außer den bisherigen Bewegungsrichtungen auch springen lassen kann.
Überlege zunächst:
Welchen Teil des Balls können wir überhaupt „springen“ lassen? Oder andersherum gefragt: Ohne welche Komponente wäre dies auf jeden Fall nicht möglich? (Tipp: Schaue dir deinen Spielerball dazu einfach mal an)
__________________________________________________________________________________________________________________________________
Die Funktion, mit der wir den Ball hüpfen lassen wollen, nennt sich „AddForce“. Damit fügt man einem Rigidbody eine Kraft hinzu, die ihn zum Beispiel schneller macht oder auch springen lässt. Kurz: Die Kraft wirkt unter Berücksichtigung der Spielephysik auf den Rigidbody ein.
1. Öffne das PlayerController-Script
2. Füge in FixedUpdate unten folgendes ein:
Name: Datum:
AB1
Game DesignDen Ball springen lassen
WPU IIAnd
Challenge 5: Roll a Ball – Das Level verfeinern
Bringe dein Level auf den neuesten Stand
Mit dem neuen Spieleelement „Sprung“ kannst du Plattformen
einbauen und so das Spiel schwieriger gestalten
Vielleicht baust du einige Stufen als Sprungpassagen ein
Schaue vielleicht auch im Internet nach Geschicklichkeitsspielen für den
PC, um dir Ideen zu holen
Dein erster Bug
Ja, es passiert den besten. Selbst große Spieleschmieden haben mit ihnen zu kämpfen: Bugs. Damit meint man fehlerhafte Programmierungen im Spiel. Und du hast auch gerade einen programmiert. Weißt du schon welchen? 😊
___________________________________________________________________________________________________________________________________________________________________________________________________
Wie lösen wir das Problem?
Leider ist es nicht ganz so einfach das Problem zu lösen, wie der Weg dorthin. Die Programmierung der Sprungfunktion war recht einfach. Jetzt müssen wir dafür sorgen, dass der Ball nicht beliebig oft springen kann (das ist nämlich der Bug drücke mehrmals hintereinander die Space-Taste und du wirst sehen).
Wir müssen dem Spiel mitteilen, wann der Ball erneut springen darf. Wann wäre das der Fall?
____________________________________________________________________________________________________________________________
Name: Datum:
AB1
Game DesignDen Ball springen lassen
WPU IIAnd
Das Zauberwort heißt „Kollision“. Wir müssen herausfinden, wann der Ball mit dem Boden kollidiert. Erst dann darf er wieder „sprungbereit“ sein. Dazu müssen wir zunächst festlegen, was alles zum „Boden“ gehört
1. Klicke ein beliebiges Bodenelement an2. Gehe im Inspector-Fenster auf Tag und klicke Add Tag…3. Füge durch das kleine Plus-Symbol einen neuen Tag mit dem Namen
„Ground“ hinzu
4. Markiere nach Möglichkeit alle deine Bodenelemente (gedrückte Shift-Taste für mehrfaches Markieren)
5. Ändere ihren Tag von Untagged zu Ground
Name: Datum:
AB1
Game DesignDen Ball springen lassen
WPU IIAnd
6. Zurück ins PlayerController-Script7. Füge hier in Zeile 16 folgende Variable hinzu: bool inAir = false;
Diese Variable speichert einen Ja- oder Nein-Wert8. Ganz unten im Script (vor der letzten Klammer) fügst du noch folgendes
ein (die Zeilen müssen nicht übereinstimmen):
9. Außerdem fügst du beim AddForce (Funktion vom Springen) noch hinzu:
10.Ausprobieren!
Was genau passiert hier?
Wir haben eine Variable eingerichtet (bool inAir), der wir sagen können, dass der Ball in der Luft ist oder nicht
Während des Spiels wird dauerhaft überprüft (über OnCollisionEnter), ob der Ball den Boden berührt
Immer, wenn der Ball nicht mehr den Boden berührt, wird die Variable inAir verändert sie wird auf true (wahr) gesetzt
Sobald der Ball wieder den Boden berührt, wird sie wieder auf false (falsch) gesetzt
Zuletzt hast du eingestellt, dass man nur springt, wenn man die Space-Taste drückt und die inAir-Variable auf false eingestellt ist (also der der Ball am Boden ist)