Transkripte
1. Frogger-Intro: Ordnung, alle zusammen,
in diesem Abschnitt ist das eigentlich ein Modul
aus einem größeren Kurs, und hier werden wir weitermachen und
Frogger entwickeln,
um euch zu
helfen, zu lernen, wie man Spiele
mit der Gatto-Engine erstellen Frogger entwickeln,
um euch zu
helfen, zu lernen, wie man kann,
indem
man ein
klassisches Spiel aus, ich glaube, es war aus den 80ern,
nachbauen In Ordnung, alle zusammen,
in diesem Abschnitt ist das eigentlich ein Modul
aus einem größeren Kurs,
und hier werden wir weitermachen und
Frogger entwickeln,
um euch zu
helfen, zu lernen, wie man Spiele
mit der Gatto-Engine erstellen kann,
indem
man ein
klassisches Spiel aus, ich glaube, es war aus den 80ern,
nachbauen kann. Es ist eine lange Zeit her. Aber du kannst sehen, dass
wir damit die Spieler bewegen werden. Musik Wir haben einige
Windzonen, Kollisionserkennung. Wir werden in der Lage sein, Tile Maps
zu verwenden. Verstehen Sie, wie Tile Maps funktionieren. Wir haben visuelle Darstellungen
der Zeit. Wir haben weiterhin Sponsoren.
Wir haben ständig Kollisionen Wir haben etwas Physik im
Gange, wir Leben und
Punktestand verfolgen
, sowie einige
Hintergrund-Multiplikatoren Wir haben hier in
diesem einfachen kleinen
klassischen Spiel eine Menge
Dinge vor sich. Ich wünsche Ihnen viel Spaß dabei
, wie wir weitermachen. Und Sie sollten hoffentlich zumindest
über Grundkenntnisse in Programmierung verfügen, wenn nicht sogar über G
D-Skripte, die
Ihnen helfen , Schritt zu halten und sich
nicht so sehr zu verirren.
2. Kein Setup herunterladen: Willkommen zukünftiger Entwickler. Wenn wir
Dinge mit der Gatto-Engine entwickeln wollen , entweder Videospiele oder
Desk-Cop-Software, brauchen
wir als
Erstes die Gatto-Engine Schauen wir uns also an, wie wir das herunterladen
können Als Erstes oder als Erstes sollte ich sagen, dass wir das bekommen können, indem wir
Gatto von der
offiziellen Website hier herunterladen Gatto von der
offiziellen Website hier Gehen Sie
einfach zu goto engine.org Alles so, wie wir es hier sehen.
Genau hier auf dem Bildschirm. Und sobald Sie hier sind, sehen Sie
den Download-Bereich
oben auf unserem Bildschirm. Sowie zwei
Download-Schaltflächen in der Mitte. Wir haben den LTS, drei Punkte hat, und den
neuesten, der 4.1 ist Wir werden die neueste
Version verwenden, nämlich 4.1. An der Three-Point-X-Version ist nichts auszusetzen. Es wird noch weiterentwickelt, und es ist der langfristige Support. Wenn Sie
es jedoch in dieser Version verwenden , während Sie
weitermachen, gibt es möglicherweise einige Funktionen oder Dinge, die wir
schreiben, die
andere Namen haben oder möglicherweise in
der alten Version
nicht einmal existieren. Sie also einfach daran,
und aus diesem Grund würde
ich Ihnen empfehlen, die Version
4.1 zu verwenden , während wir sie durcharbeiten. Ordnung. Also das ist
die stabile Version und 4.1 ist herausgekommen. Sie können also entweder
auf die Schaltfläche „
Zuletzt herunterladen “ oder oben auf die Registerkarte „
Herunterladen“ klicken. Beide bringen
Sie hier zu diesem Bildschirm. Ordnung. Also mach weiter
und lade das herunter. Alles, was wir brauchen werden,
da wir
die
GD-Skriptprogrammiersprache verwenden werden. Alles was wir brauchen ist die
Standardversion hier mit der blauen Taste. Und der Unterschied zwischen
dieser und
der.net-Version besteht darin, dass die.net-Version
auch C Sharp unterstützt Und wenn Sie das verwenden würden, müssten
Sie nach unten
scrollen und auch
das.net-Format auswählen , das für die Nutzung erforderlich
ist, sowie vorzugsweise
externe Programme Rachel Codin, es sind einfach eine
Menge zusätzlicher Dinge, die
wir nicht benötigen, wenn wir diesen Kurs durchmachen Wenn du
es also von der Website herunterladen möchtest, kannst
du einfach weitermachen und
dort für 4.1 in der Standardversion einfach
auf „Goto Engine“ klicken dort für 4.1 in der Standardversion einfach
auf Nun, es gibt einen zweiten Weg
, wie Sie das bekommen könnten. Und das wäre von Steam. Sie können zu
Steam kommen und es von dort
herunterladen,
wenn Sie möchten, und das gibt
uns die Standardversion. der Steam-Version ist die
Dot-P-Version standardmäßig
nicht verfügbar. Sie müssen sich also keine
Sorgen machen,
dass es zu Verwechslungen kommt, wenn Sie es von Steam herunterladen.
3. Was wir machen werden: In Ordnung, diese Woche
werden wir die Dinge in Schwung bringen. Eine Option,
anstatt
nur ein paar Texte zu schreiben, wie
wir es letzte Woche getan haben. Diese Woche
werden wir
ein altes 2-D-Spiel aus
den 80ern namens Frogger entwickeln oder neu erstellen ein altes 2-D-Spiel aus
den 80ern namens Das gibt
uns jetzt die Möglichkeit, mit Controller-Kollisionen mit zwei
D-Playern zu arbeiten zwei
D-Playern Vielleicht werden wir uns mit einigen
Partikeln befassen,
mit denen wir arbeiten können , wie Sie sehen Wenn Sie Frog
noch nie gespielt haben oder
noch nie davon gehört haben. Sie sehen hier, dass
wir
mit der Benutzeroberfläche für unser
Head-up-Display arbeiten werden . Wir haben Punkte, die wir brauchen
werden, um meine Maus dort für eine Sekunde im Auge zu behalten . Aber nicht nur das, wir werden auch sehen,
ob es hier gezeigt wird, dass wir eine bestimmte
Menge an Prog pro Spieler
haben Natürlich
haben wir keine Münzen dabei, aber das ist im Grunde das Spiel Hier haben wir zwei
kleine Sicherheitszonen In diesem kleinen violetten Bereich haben
wir in
der Mitte eine Straße mit fünf Fahrspuren, die sich
abwechselnd hin und her bewegen. Wenn der Frosch
von einem dieser Autos angefahren wird, stirbt
er und der Spieler verliert ein Leben. Sie schaffen
es bis an die Spitze. Sie können auf die
Schildkröten und Baumstämme springen , um
in die Sicherheitszone Wenn sie im Wasser landen, ist
das ebenfalls ein Fehlschlag Was jetzt, wo du darüber
nachdenkst, wohl nicht mehr allzu viel
Sinn ergibt, da es ein Frosch ist. Aber da hast du's.
Das ist die Idee von dem, was
wir kreieren werden, und genau das ist Frog, falls Sie
es noch nie gespielt oder davon gehört haben.
4. Den Hintergrund erstellen: In Ordnung, also lasst uns
weitermachen und einen Sprung machen. Fangen Sie an, Frogger zu erstellen. Als Erstes
müssen Sie sicherstellen, dass Sie
die Assets herunterladen und einfach den Sprites-Ordner
in Ihr Projekt
verschieben Auch hier habe ich gerade
einen leeren Ordner
speziell für Frogger erstellt , aber ich würde empfehlen dass Sie dafür ein neues
Projekt erstellen Auf diese Weise können Sie es
exportieren,
ohne dass es in Zukunft Probleme gibt Ordnung, das Erste, was
wir tun müssen, besonders weil unsere
Sprites so klein sind,
ist, dass wir sie verkleinern
müssen Oder sie nicht verkleinern,
sondern unseren Bildschirm auf die Größe eines
Arcade-Gehäuses verkleinern eines
Arcade-Gehäuses verkleinern Um das zu tun,
gehen wir
zu Projekt und gehen in
unsere Projekteinstellungen Ordnung, es
sollte also einfach so beginnen, wenn die erweiterten
Einstellungen ausgeschaltet sind. Und Sie werden auf der
linken Seite sehen,
dass Sie einfach zum
Anzeigebereich gehen und in das Fenster gehen. Und wir werden die Breite auf
336 und die Höhe auf 240
setzen . In Ordnung, das ist die Bildschirmgröße eines
Arcade-Schranks. Die Bildschirmauflösung dafür, und sie wird perfekt
für unsere kleinen Sprites sein Ordnung, sobald Sie das eingestellt haben, können
Sie weitermachen und einfach
schließen und Sie werden sehen unser kleines blaues Kästchen viel
kleiner
geworden ist als früher Das Erste, was
wir hier tun werden ist, den Hintergrund zu
erstellen. Also erstellen wir die
ganze Straße, das Wasser, den violetten
Mittelstreifen, den sie nennen,
den Punktebereich, in den wir mit unserer Front kommen
müssen Wir werden all
das einrichten. Auf diese Weise können wir
in den nächsten folgenden Videos direkt damit beginnen, unser
Gameplay und all
das einzurichten und zum Laufen zu bringen . In Ordnung, also wir werden
hier eine Zwei-D-Szene brauchen. Klicken wir auf zwei D, und das gibt uns einen Knoten
zwei D für unseren Wurzelknoten. Wenn Sie das umbenennen möchten
, können Sie das tun. Wenn du willst, kannst du es
Maine nennen. Game Manager, spielt
eigentlich keine Rolle. Wenn du wirklich willst, kannst
du
es einfach als Standardnamen belassen . Ich werde mich vorerst
als Standard belassen. Um dies
in unserem kleinen Hintergrund zu erstellen, werde
ich
eine neue Zeitkarte erstellen. Ich drücke die
Plus-Schaltfläche und wir
gehen und wählen Tile Map
aus dem Drop-down-Menü aus, siehe in unserem Curtain Node. Wählen Sie die Kachelkarte aus. Machen Sie weiter und doppelklicken Sie darauf
und wählen Sie das aus. Jetzt habe ich meine Meinung hier eingerichtet. Ich werde einfach all diese
löschen. 1 Sekunde. Ordnung, du solltest also so
aussehen , wenn du die
Kachelkarte ausgewählt hast. Wenn Sie keine Auswahl haben,
fahren Sie fort und wählen Sie sie aus. Was wir
tun werden, ist auf
die rechte Seite zu gehen . Wir gehen hier
zum Fliesenset. Es bleibt im Moment leer, aber wir werden es
anklicken und
zum neuen Kachelsatz wechseln. Und dann klicken Sie auf das Kachelset und das bringt uns hierher. Was wir hier brauchen, ist das
kleine Zielgebiet,
das Wasser, die Straße
und den Mittelstreifen Wenn wir zu unserem
Sprite gehen und nach unten scrollen, werden
wir Zuhause,
Mittelstreifen, Straße und Wasser sehen Wenn du einfach die
Strg-Taste gedrückt hältst, kannst du sie alle
auf einmal auswählen
und
sie einfach in unser Kachelfeld hier ziehen Ordnung. Bevor wir sie hier
tatsächlich verwenden können. Wie Sie sehen können, können wir auf nichts
klicken. Was wir machen wollen, ich einfach mit meinem Scrollrad hinein
, oder du kannst ein Minus hinzufügen. Als Erstes müssen wir sicherstellen
, dass wir uns hier auf
der Registerkarte „Einrichten“ befinden, unser Wasser
auswählen und
darauf klicken können. Und jetzt haben wir diese
orangefarbene Kiste drum herum. Das heißt, wir haben eine Kachel
, die wir jetzt verwenden können. Das
Gleiche mache ich für Road,
Median Home, Brow
Straight Jetzt ist mein Zuhause etwas größer. Ich denke, es könnte
eine größere sein. Mal sehen, was haben wir? 2062 groß. Wie ist das? Ich denke, das wird reichen. Absolut lustig. Ordnung. Gehen sie jemals? Ich habe
hier 16 mal 24 für diese Kachel. In Ordnung, also wenn wir jetzt unten
auf die Kachelkarte klicken. Unser Bildschirm hier unten. Wir sollten jetzt in der Lage sein,
darauf zu klicken und mit dem Zeichnen
unserer Sprites zu beginnen Klicke auf meinen Median, Klicke hier auf meine lila Kachel Ziehe einfach eine Zeile
nach unten. Geh auf meine Straße, wir haben
fünf Verkehrslagen. Wir brauchen fünf Reihen
unseres schwarzen Bieres 4,5 Wenn wir uns auf unser Bild beziehen
, haben
wir dann eine weitere
Schicht Purpur, fünf Schichten Wasser, 12345 Dann haben wir eine
Wasserschicht , die
sich unter unserem Haus füllt Lass uns dort noch eine Schicht machen. Lasst uns unser Zuhause schnappen. Klicken Sie einfach auf ein Spray
und ziehen Sie die Maus darüber, sodass Sie alle drei auswählen können. Lass es uns platzieren. Oh, sieh dir das an. Wir scheinen dieses Problem zu haben.
Nun, was ist los? Wir tauschen hier unsere
Wasserfliesen aus. Das wollen wir nicht
tun. Wir müssen das tatsächlich
auf eine, andere Ebene zeichnen. Und ich werde einfach
weitermachen und das mit unserem Wasser
auffüllen. Bis zum Anfang
der letzten beiden Zeilen. Ich werde hier auf unseren
Home-Bereich klicken. Und wir
wollen sie nicht ersetzen, wir wollen darauf aufbauen. Sie werden feststellen, dass
wir hier auf der rechten Seite unserer Kachelkarten etwas
haben, der rechten Seite unserer Kachelkarten etwas
haben, auf dem Layer Null steht. Und wenn wir ein Drop-down-Menü haben, ist
dort nichts anderes. Was wir tun wollen, ist zu
unserem Inspektor unserer Kachelmap zu gehen , den Ebenenbereich zu
öffnen Neue Elemente hinzufügen zu
klicken. Jetzt haben wir tatsächlich wieder eine
zweite Ebene in den Kachelkarten, in der unsere
Startzeile ausgewählt ist. Wir können zur
Drop-down-Ebene gehen und auf Ebene eins klicken. Jetzt können wir tatsächlich direkt
darauf
zeichnen , ohne unser Finale zu
beeinflussen Damit haben wir
sieben geschafft. Nur um sicherzugehen, dass mir unsere Rose 1235 gut gefällt Wenn wir wieder auf „Nein“ klicken, ist
nichts großartig Hier ist, womit wir arbeiten. Wenn Sie sich erinnern, wenn wir
uns den Aufbau von Alpro ansehen, er
aussieht, haben wir
tatsächlich unseren Punktestand Information ist hier oben, in diesem leeren blauen Bereich,
diesem leeren Wasserraum, wir haben unsere Baumstämme, Schildkröten, die hinüberspringen und uns
helfen, hier rüber zu springen In diesen
kleinen weißen Bereichen zu Hause können wir
Punkte sammeln, indem wir unsere Frösche holen Lila ist sicher und unserer schwarzen Straße werden unsere
Autos erscheinen Ordnung,
unser Hintergrund ist jetzt einfach so
eingerichtet Ziemlich einfach, loszulegen. Die neue Kachelkarte ist wirklich nett, um schnell damit
loszulegen. Früher hatten wir keine Ebenen. Jetzt, wo wir das tun, ist viel einfacher,
solche Dinge
einzurichten. Ordnung, das ist
unser Hintergrund Lassen Sie uns weitermachen und zum nächsten Teil
übergehen.
5. Den Player erstellen: In Ordnung, lassen Sie uns weitermachen
und unseren Player erstellen. Aber bevor wir das tun, werde ich
weitermachen und das speichern. Es wird
S kontrollieren. Geh in meinen Frosch oder Halter und speichere meine
Szene ganz schnell. Ordnung, also für unseren Spieler wird
unser Spieler tatsächlich
seine eigene Szene haben , die wir einfügen. Also klicken wir
hier oben auf das Plus oder fügen eine neue Naht hinzu. Wir werden zu einem anderen wechseln, da dies ein Spieler ist, über den wir die Kontrolle haben
müssen. Das wird
ein Charakterkörper zwei
D sein . Das wurde früher als kinematischer Körper
bezeichnet In anderen Engines hört man vielleicht, dass die
Leute ihn als solchen bezeichnen, aber hier wird er jetzt Charakter-Körper zwei D genannt
. Jetzt dieser Charakterkörper, wir haben hier
dieses gelbe Dreieck,
das eine kleine Warnung gibt Es sagt uns nur, dass unser
Knoten keine Formen hat. Es kann mit nichts kollidieren. Es gibt
vorerst keine Kollision, das ist in Ordnung. Benutze das, um dort zu schweben. Was wir tun werden, ist, dass
wir hier einen, einen
weiteren Knoten hinzufügen werden. Und was wir
hinzufügen wollen, ist ein Sprite. Zwei D. Wir wollen
ein animiertes Sprite hinzufügen. Wir möchten, dass unser Sprite
animiert wird. Wir haben dafür zwei Frames. Lass uns weitermachen und
ein animiertes Sprite machen. Zwei D auf der rechten
Seite im Inspektor. Öffnen wir den
Animationsbereich im Vergleich zu Sprite-Frames. Lass uns darauf klicken und neue
Sprite-Frames erstellen. Dann lassen Sie uns diese
Sprite-Frames öffnen , indem wir einfach
darauf klicken Ordnung, lassen Sie uns
unsere Standardanimation haben
, und ich werde sie so umbenennen, dass sie einfach inaktiv ist Dann fügen wir hier unten
eine neue Animation mit diesem
kleinen Symbol hinzu. Ich werde das in Jump A Idle umbenennen
. Ausgewählt. Ich hole Proger Idle und G, Jump Wir werden Proger ID
einbauen,
dann unser springendes Symbol Proger, und jetzt sollten wir in der
Lage sein, zwischen den
beiden zu wechseln , wann immer wir gegen diese Gegner spielen
wollen Ordnung, wenn wir dort spielen, springen
wir, wir machen
unseren kleinen Hüpfsprung Sie werden vielleicht feststellen, dass das Sprite hier oben in unserem Renderer etwas verschwommen
ist Aber hier unten können wir sehen, dass es nett und
riskant sein soll Nun, um das zu beheben, können
wir weitermachen und einfach alle
unsere Sprites hier gleichzeitig auswählen unsere Sprites hier gleichzeitig auswählen Gehen Sie von unserem Dateisystem
auf die linke Seite, um zu der Import
kein Import sein wird .
Lassen Sie mich einfach weitermachen und
Ihnen mitteilen, wo sich dieser Teil befindet Ordnung, also wenn Sie zu
Ihren Projekteinstellungen gehen, wo ich direkt zu Ihren
Projekteinstellungen gehe und
den Bereich Rendern und
Textur hier in den
erweiterten Einstellungen finde den Bereich Rendern und
Textur hier in , oder
brauchen wir ihn dafür? Nein, dafür brauchen wir es nicht. Wir wollen hier einen
Standard-Texturfilter, ändern Sie ihn von
linear auf nächstliegend. Mach weiter und schließ
das und du wirst sehen, dass deine Sprites sehr scharf Wenn Sie solche
Pixelgrafiken erstellen möchten, ist
dies die Standardeinstellung, die Sie in Ihren
Projekteinstellungen
festlegen möchten Sie in Ihren
Projekteinstellungen
festlegen Und jetzt haben wir einen
schönen, scharfen Roggio. Das ist alles, was wir wirklich brauchen. Wir müssen uns vorerst keine Gedanken über die Kollision oder Erkennung oder
ähnliches machen. Darüber werden wir uns Gedanken machen, wenn
wir zu diesem Teil kommen. Also werde ich einfach
weitermachen und ha, um das zu speichern. Und ich rufe einfach
diesen Spieler an. Wenn ich jetzt in meine Hauptszene
gehe mein Knoten 2 D ausgewählt ist. Ich kann nicht auf dieses
Plus für einen neuen Knoten klicken, sondern auf die Kette daneben. Dadurch können wir
in einer Szene instanzieren, die für uns
bereits existiert. Das wird
unsere Spielerszene sein. Jetzt können wir es uns schnappen
und diesen kleinen Kerl reinbringen. Wir können spielen, wir können mit diesem kleinen Kerl
machen, was wir wollen. Schauen wir uns also an, was
unsere Transformation ist. Wir wissen, dass es sich um
Werte von 16172 handelt, wären es nicht 176,
wenn wir Werte von 16 Und ich werde einfach meinen kleinen Frosch
hochziehen. Und los geht's Seien Sie etwas
zentrierter damit. Jetzt habe ich meinen kleinen Frosch in meiner Hauptszene mit meinem Hintergrund
und er ist bereit zu gehen. In Ordnung, das
reicht für diesen. Wir haben unseren Spieler so weit
eingerichtet, wie wir
im Moment brauchen , bis wir zum nächsten
übergehen , wo wir uns mit dem Ausführen
einiger Spielerbewegungen befassen
werden.
6. Spielerbewegung: Ordnung, lassen Sie uns weitermachen
und wir werden
die Bewegung erstellen , damit unser kleiner
Frosch sich nach oben,
unten, links, Ende, rechts bewegen kann unten, links, Ende, rechts Zu Beginn benötigen wir
einige Eingaben. Wenn Sie nun die Pfeiltasten
verwenden möchten, dann gibt es „Ich runter“, „Ich links “
und „Rechts“ bereits, aber ich möchte WASD verwenden Also gehe ich zu meinem Projekt und gehe zu meinen Projekteinstellungen, und ich gehe in
den Eingabe-Mapper oben und füge eine neue Und ich gebe einfach links und rechts hinzufügen ein. Jetzt gehe
ich für jede
dieser Aktionen hier einfach auf
die rechte Seite und drücke die Plus-Taste nach oben. Ich werde
das Plus drücken. Ich werde einfach auf meiner Tastatur drücken. Ich werde dir zeigen, wie
das aussieht, was du von dort aus
sehen wirst. Mal sehen, das ist
dieses Fenster hier. Ich werde das
oben ansprechen. Bitteschön. Ich habe einfach die Taste gedrückt
und das haben wir. Wir drücken okay, wir gehen runter. Drücken Sie das Plus und drücken Sie erneut die Taste S. A links und D für rechts haben wir
jetzt oben, unten, links und rechts für unsere Steuerung. Wir können da schließen. Unser Spieler wird
ein Drehbuch benötigen. Und ich werde mir hier eine Notiz zu
meinem animierten Sprite beim Sprite machen Ich habe
das erste Sprite nicht losgeworden, also nehme ich einfach dieses
Sprite mit gespreizten Beinen und lege ein Skript auf die Seite
unseres Charakters, zwei
D in der Szene unserer Spielerszene, wir haben einfach so ein
leeres Jetzt werde
ich eine Funktion
namens Bewegung erstellen Das ist nur so,
damit wir alles sauber und organisiert
halten und all unsere Bewegungen
an einem Ort verwalten können. Wir werden hier Input
einholen, wir werden
die if-Anweisung
in derselben if-Anweisung verwenden , die
wir schon oft benutzt haben. Wenn wir dann auf
das Eingabeobjekt oder
die Eingabeklasse Input zugreifen wollen , dann wollen wir die Aktion überprüfen. Wir wollen mit der Veröffentlichung weitermachen. Gerade veröffentlicht oder einfach gedrückt. Beides wird speziell für
dieses Spiel funktionieren. Wenn wir gehen, ist Action gedrückt, dann ist das so, während die
Taste gedrückt gehalten wird. Einfach gedrückt und einfach
loslassen heißt, naja, einfach drücken ist, sobald die Taste aktiviert wird,
wenn man sie herunterdrückt. Und loslassen bedeutet, dass der
Codeblock ausgeführt wird, wenn
Sie Ihren Finger nach oben heben. Ich werde einfach
drücken, lass uns das versuchen. Ich werde den Knopf benutzen
und das ist eine Zeichenfolge, die hätte auftauchen
sollen Du automatisch,
das war ein Doppelpunkt. Also können wir reingehen
und den Codeblock erstellen. Wir werden nur zwei Dinge tun. Wir müssen unseren kleinen Stein bewegen, wir müssen
ihn auf dem Bildschirm nach oben bewegen. Und wir gehen um
einen Block nach oben und alles
ist in 16 Blöcke oder
16 Kacheln aufgeteilt . Also werden wir
unseren Frosch 16 Blocks nach oben bewegen. In diesem Fall werden
wir unsere Position herausfinden. Wenn es für dich etwas
sinnvoller ist, kannst
du Selbstposition sagen weil du dich
selbst bewegst, woran dieses Drehbuch gerade angehängt
ist. Das wird uns eine X- und
eine Y-Verordnung geben , der zwei
Zahlen zugeordnet sind Wenn wir auf den Körper unseres
Charakters klicken und in den Inspektor
unter Transformieren
schauen, sehen
Sie, dass wir ein
X und ein Y haben, und diese entsprechen der Position, an der sie sich auf dem Bildschirm befinden Wenn wir auf unsere Hauptszene klicken und zu unserem Charakterkörper gehen, werden
Sie sehen, dass die Position
in meinem Fall 169,2 33 ist. Hier
beginnen wir Und wir
addieren oder subtrahieren davon
entweder für das X oder das Y, um unsere Bewegungen zu erhalten,
da wir aufsteigen wollen Wenn wir
nach oben drücken, beeinflussen wir die Zahl, wir sagen Position Wir sind bei uns selbst, wir wollen
die Positionseigenschaft bekommen und dann wollen wir die Zahl davon auf dem Bildschirm
erscheint, wir müssen sie tatsächlich subtrahieren Also werden wir sagen, dass
Minus dem entspricht. Wir könnten sagen, das ist gleich
unserer Zahl für Position y, entspricht Position
y minus einer Zahl
, wobei unsere Zahl in diesem
Fall 16 sein wird Wenn wir es einfach
so lassen und unsere Szene ablaufen lassen würden. Nun, wie schade, dass sich
unser kleiner
Frosch nicht bewegt. Warum bewegt es sich
nicht? Hoffentlich hast du das oder verstanden, bevor ich die
Flugtaste drücke Wir rufen
unsere Bewegung nie irgendwohin, also
schauen wir auch nie nach irgendwas von dem Zeug Dafür werden wir es hier
einfach in
die Prozessfunktion einfügen. Bewegung und jetzt heißt
es. Ups. Zumindest wäre es das, wenn wir es
richtig buchstabieren könnten. Da haben wir's. Wenn wir versuchen, das jetzt auszuführen und die Aufwärtstaste drücken,
was für mich W ist können
Sie sehen, dass wir
weitermachen und
unsere 16 Blöcke gleichzeitig verschieben . Wir gewinnen. Wir haben da oben einen
kleinen Frosch Das Problem
ist natürlich, dass wir uns immer noch bewegen, aber wir können nicht rückwärts gehen Wir haben keine Animation
oder so. Lass uns unsere Animation dort zum
Laufen bringen. Wie spielen wir unsere Animation ab? Nun, wenn wir uns
unsere Spielerszene ansehen, können
wir anhand
unseres Skripts erkennen, wir dieser
einen Zeile leicht folgen können, nur eine Ebene bis zum
animierten Sprite zwei D. Holen
wir uns diesen Knoten Ich habe das schon früher gezeigt, dieses Dollarzeichen benutzt
habe.
Es wäre am einfachsten. Sobald Sie anfangen, animiertes Sprite zu tippen, wird
es angezeigt Denken Sie daran, dass es nur
animiertes Sprite Two D
ist, denn so heißt Wenn ich diese Banane benennen
und Banane sehr schlecht schreiben würde, müsste
ich das hier eingeben , um darauf zuzugreifen Ich setze
den Namen einfach wieder auf Deft zurück. Wir werden nur darauf zurückgreifen. Spiel, Spiel. Sie werden sehen
, dass die Animationen, die wir erstellt haben, auftauchen. Wir werden Jump benutzen. Wir versuchen das jetzt
nur mit dieser einen
Ausgabe unserer Reihe, hoppla,
wir müssen diese
Szene tatsächlich spielen und nicht unseren Spieler,
du kannst sehen, dass Ausgabe unserer Reihe, hoppla, wir müssen diese
Szene tatsächlich spielen und nicht unseren Spieler,
du kannst sehen, wir in unseren Sprung gehen, aber wir stecken in unserem Sprung Nun, das ist ein bisschen
enttäuschend. Wie können wir es reparieren? Wie
können wir zur Normalität zurückkehren? Nun, wir können es so einstellen, dass wir,
wenn unsere Animation abgeschlossen ist, zu unserem inaktiven Formular zurückkehren. Um das zu tun, müssen
wir auf das animierte
Sprite unseres Players
zugreifen Gehen Sie auf die rechte
Seite zum Knoten-Tab und wir werden ein Signal anschließen , dass diese Animation abgeschlossen Wenn wir einfach darauf doppelklicken, erscheint ein Pop-up, in dem
wir ein Signal
anschließen können. Wir
wählen einfach den zweiten Charakterkörper
aus, auf dem unser Skript läuft ,
und klicken auf die Verbindungstaste. Es wird alles gedrückt halten, um es mit
meinen Pfeiltasten
aufzurufen , sobald unsere Animation fertig ist. Die Wiedergabe
dieses Codeblocks wird ausgeführt. Was wir jetzt wollen,
ist,
dass wir in unseren Ruhezustand zurückkehren
wollen, in dem unser Frosch
einfach nur da sitzt. Das Gleiche.
Wir holen uns unser animiertes Sprite Two D, wir nennen es Play Das wird nutzlos sein,
wenn wir das versuchen. Nun, was machen wir nochmal, wenn wir die richtige Szene
spielen,
wie wir das versuchen. Jetzt sehen wir, dass wir jetzt
diesen kleinen Sprung haben , der erscheint, wenn wir
über das Wasser ziehen. Das ist großartig. Die Sache ist, dass unser Idol zu diesem Zeitpunkt
ständig spielen wird Unser Idol spielt und
dann ist es vorbei. Und weil es fertig ist, wird
es abgespielt, nein, das
wird kein wirkliches Problem sein Das könnte etwas sein
, das Sie in
Zukunft beachten sollten , um dieses Problem zu lösen. Wir können das tatsächlich mit einem If-Pick beheben
. Und wie Sie dort meine
kleine Ausgabe sehen können, habe ich die Dinge überprüft
und ich werde Ihnen zeigen wie das geht.
Ich werde das aufräumen. Wir müssen uns nur die animierten Sprites
ansehen. Willst du das Dollarzeichen da haben? Wenn animiertes Sprite,
zwei D-Animation. Nein, wie hieß es? Nun, wenn wir in
unser animiertes Sprite gehen und Sie darauf zugreifen
können,
wenn Sie einfach die Taste gedrückt halten
und hier in unserem Code
auf das animierte Sprite
Two D klicken , dann öffnet sich die
Dokumentationsseite für Hier ist, wonach wir suchen
. Holen Sie sich eine Animation Wir wollen Animationen bekommen. Wie Sie sehen, ist das
nicht aufgetaucht. Manchmal ist es
trotzdem nützlich,
sich die Dokumentation anzusehen ,
wenn das animierte Sprite
Two animiert Wenn wir uns das ansehen würden, würde die aktuelle Animation
der Sprite-Frames-Ressource bei diesem Wert geändert Bildzähler,
Frame-Fortschritt oder Reset. Aber wir wollen herausfinden was
diese Animation ist. Das bedeutet im Grunde, uns zurückzugeben, welche Animation gerade abgespielt wird
oder welche gerade ausgewählt ist. Wir werden also das
Doppelte Gleiche verwenden, weil wir vergleichen
wollen, was uns
zurückgegeben wird , und weil wir Jump schreiben
wollen Wenn wir dann im Leerlauf spielen, tippen
wir das einfach in einem an, sodass es sich in unserem Schloss
befinden könnte Jetzt
werden wir im Grunde überprüfen, wann unsere Animation fertig ist. Wenn die aktuelle Version Jump ist, dann spielen wir im Leerlauf. Wenn wir das ausführen, sind wir fertig. Wir haben unseren kleinen Boing. Es sieht genauso aus, aber wir
werden nicht ständig
die Leerlaufanimation
immer und immer wieder abspielen die Leerlaufanimation
immer und wenn die
Leerlaufanimation abgespielt Denken Sie daran, dass es einmal abgespielt wird
und dann ist es fertig. Es wiederholt sich nicht. Wenn bei dir zum Beispiel aus welchem Grund auch immer
eine Schleife läuft, dann mach weiter mit
deinem animierten Spray Und wenn es sich um eine Endlosschleife handelt,
kannst du unsere Maus hier sehen. Das liegt
daran, dass sie eingeschaltet ist. Du machst also einfach weiter und
klickst auf „Aus“, sodass
es weiß ist. Wenn es blau ist, dann ist es an. Wenn es weiß ist, ist es aus. Wenn unsere Animation beendet ist, wir
nach dem Sprung überprüfen, werden wir
nach dem Sprung überprüfen, ob unsere
aktuelle Animation Sprung ist. Wenn ja, spielen wir im Leerlauf, wenn der
Leerlauf beendet ist. Diese If-Aussage wird nicht
wahr sein , denn wenn
wir eine Animation erhalten, wird
sie inaktiv sein und nicht springen. Da das nicht mehr zutrifft, werden
wir nichts weiter
tun. Wir werden dieses Mal nicht immer wieder
im Leerlauf weiterspielen Es ist ein kleiner Unterschied,
eines dieser Dinge, die sich
im Backend befinden und die der Spieler
nie bemerken wird Wie ich schon sagte, in einem
kleinen Spiel wie diesem wird
das keinen großen Unterschied machen,
wenn überhaupt, der sich bemerkbar macht. Aber es lohnt sich, es für die Zukunft
zu wissen. Aber wenn du
immer größere Spiele machen willst. Ordnung, also lass uns
weitermachen und wir können jetzt unseren Button holen. Wenn wir das einfach kopieren und einfügen, können
wir L bekommen, wenn
wir statt eines , wenn wir unten statt oben
drücken wollen, wir plus 16 statt -16 wollen. Denn wenn
Minus
nach oben geht, dann bringt Plus uns runter Jetzt können wir also rauf
und runter gehen. Jetzt dreht sich unser kleiner
Frosch überhaupt nicht mehr um, was ein bisschen enttäuschend ist Aber wir können das leicht beheben , indem wir hier eine
weitere Zeile hinzufügen Wir können das tun, indem wir vor dem Sprung über
seine Rotation sprechen , wir können eine Selbdrotation erreichen. Wenn wir uns unseren Spieler ansehen, kehren
wir zu unserer Spielerszene zurück klicken im Inspektor auf den
Körper unseres Charakters. Wenn wir runterkommen, sehen wir, dass
wir hier eine Rotation haben. Die Drehung erfolgt im Bogenmaß und
nicht in Grad. Was wir tun können, ist zu
sagen, dass Rotation gleich ist. Wir können diese
eingebaute Funktion namens deg two Das könnte sich hier geändert haben. Das sieht so aus. Es sieht so aus, als ob es hier umbenannt
wurde, Grad zwei D, es sind jetzt die
Unterstriche drin Dann nehmen wir ein Argument
in Form von Abschlüssen. Wenn wir 180 sagen
, wäre das
eine vollständige Wende Wenn wir nach rechts abbiegen,
werden das 90 Grad sein. Wenn Sie links abbiegen, wir
-90 sein. So oder so, werden
wir
-90 sein. So oder so,
wir müssen auf positive
180 oder negative 180 Ich gehe hier einfach von 180 Grad aus. Diese Funktion wird diese 180 Grad
in Radiant
umrechnen , sodass sie unserer Drehung hier zugewiesen werden
können Nun, eine volle
Umdrehung im Bogenmaß ist 3,14 und daher
kommt Pi Das wäre hier
genauso, 180. Als ob wir das einfach kopieren würden. Sagen
wir, Rotation ist gleich
Pi geteilt durch vier, dann ergibt das eine Umdrehung Pi geteilt durch zwei, das ergibt die Hälfte
unserer Rotation
hier im Bogenmaß Wenn ich Ihnen zeigen würde, dass Pi
durch zwei geteilt ist, dann
teilen wir uns andersherum auf, vielleicht sind es etwas
mehr als zwei Ich selbst
verwende normalerweise kein Bogenmaß. Wir können sehen, geteilt durch vier. Wir haben diesen etwas
peinlichen Winkel. Es kann manchmal etwas umständlich sein ,
wenn es um
Radiant geht. Das ist ein Grund
, warum ich
lieber Grad als
Radiant verwende, nur
weil ich das etwas schneller bearbeiten kann Wie Sie sehen, los geht's.
Wir drehen das Gesicht nach unten um. Nur jetzt schauen wir nicht
wieder nach oben. Jetzt müssen wir
das in unserem Code korrigieren. Wir machen einfach
dasselbe, wenn wir nach oben drücken, wir setzen unsere Rotation auf Null,
wenn wir es abspielen würden. Jetzt geht's los. Jetzt können wir hochspringen
und wir können runter springen. Was ist jetzt, wenn wir nach links und rechts
springen wollen? Nun, wir können die
mit zwei weiteren LCs hier bekommen. Ich werde sie nur etwas
voneinander trennen, damit sie besser lesbar Los geht's. Ab unserem zweiten Teil werden
wir sagen, wenn die Aktion noch übrig ist, anstatt
den Y-Wert zu
ändern, werden
wir tatsächlich das X unserer Position ändern. Da X links und
rechts ist, müssen wir, wenn wir nach links gehen, hier -16
Grad bis Rot haben Nun, wir könnten das auf 270 setzen, nur um hier auf der
positiven Seite zu bleiben Was unser letztes L hier bedeutet. Wenn wir nach rechts drücken, ändern
wir die
X-Position statt der Y-Position, wir werden plus 16. Wenn wir uns nach rechts bewegen,
werden wir um 90
Grad gedreht. Wir machen weiter und versuchen das jetzt. Sollte sehen. Jetzt
können wir in alle vier Richtungen herumspringen,
wir können uns fortbewegen. Wenn dein Frosch an der richtigen Stelle platziert
ist, solltest
du in der
Lage sein, all
diese kleinen Heimziele hier zu landen . Kein Problem ohne rüber zu gehen. Bitteschön. Jetzt
wollen wir unsere Position behalten. Nun, auf dem Bildschirm
wäre nett. Über all
das können wir uns später Gedanken machen. Im Moment sind
wir nur in Bewegung
und das Fahrzeug wird
langsam langsam. Ich wollte nur, dass die Bewegung
in einem eigenen kleinen Bereich bleibt. Hier, da gehen wir. Wir können als
unsere eigene kleine froschige Boeing herumlaufen .
Boeing. Aber in Ordnung,
da hast du es. Wir können jetzt weitermachen und mit dem nächsten Abschnitt unseres Codes fortfahren. Ich denke, als Nächstes werden wir, ich denke, wir werden unsere Fahrzeuge
entwickeln und sie hier
über die Straße fahren lassen.
7. Fahrzeuge erstellen: Ordnung, heute
werden wir weitermachen und die
Fahrzeuge für die Überquerung entwickeln. Jetzt haben wir ein
paar verschiedene. Mal sehen, wie viele wir hier haben. In unseren Sprites haben
wir fünf verschiedene Autos Da haben wir's. Und einige von ihnen gehen nach links, andere
nach rechts. Und sie schauen bereits
in die Richtung, in die sie wollen. Das ist großartig. Alles, was wir tun müssen, ist
sie zu erstellen und sie
über unseren Bildschirm bewegen zu lassen. Ordnung, lassen Sie uns weitermachen und mit unserer
Plus-Schaltfläche hier oben eine neue Szene
erstellen. Für unsere Tabs
gehen wir zu einem anderen Knoten
und genau wie unser Spieler werden
wir hier den
Charakterkörper zwei D verwenden. Wir werden ihm einen Sprite geben. In diesem Fall, da wir keine Animationen dafür
haben, werden
wir einfach
ein normales Sprite zwei D verwenden, wir können weitermachen und ihm
eines der ersten Sprites zuweisen In diesem Fall
habe ich den kleinen Truck
ausgewählt, aber Sie können natürlich wählen,
welchen Sie möchten Insbesondere verwende ich
einen, der sich nach links bewegt. Im Moment ist
das erwähnenswert. Ich werde
diesen Namen von
Figur 2
D in Truck ändern . Ich werde das als
meine Truck-Szene speichern. Ich werde jetzt
etwas mehr brauchen. Wir werden keine Kollisionsform verwenden
, obwohl hier
irgendeine Art von Kollision
passieren kann. Weil
unser Frosch natürlich
irgendwie zerquetscht werden muss , wenn er getroffen wird Um mich darauf vorzubereiten, werde
ich
einen Bereich zwei D erstellen , der es mir
quasi ermöglicht, einen
vordefinierten Bereich zu haben, den ich überprüfen
kann, um den Bereich
mit Bereich zwei D auszuwählen Dort kann ich jetzt die Kollisionsform einfügen. Jetzt ist auf der Kollisionsform
dieses kleine Dreieck abgebildet, sodass wir eine
Kollisionsform mit Warnung ausgewählt haben. Wir bewegen uns nach rechts zu unserem Formbereich und
erstellen einen neuen. Das wird einfach
eine neue rechteckige Form sein. Jetzt verwenden wir keine
komplizierten Formen wie die Verwendung von Polygonen Verwenden Sie hier stattdessen ein Polygon mit Form mit einigen dieser
Grundformen Denn der Tempel, den Sie formen desto besser wird er
in Bezug auf die Leistung sein Je
komplizierter eine Kollision jedoch ist, desto genauer wird
sie sein. Es ist ein Gleichgewicht, das Sie selbst finden müssten. Aber in diesem Fall können
wir
zum Glück einfach diese
Rechtecke verwenden und die darauf reagieren,
vor allem, um
ein älteres Spiel wie dieses neu zu erstellen Ordnung, jetzt, wo wir
unsere Kollisionsform
wie diese haben , und
wenn Sie das nicht verstanden haben, stellen Sie einfach sicher,
dass Ihr Rechteck alles
abdeckt Jeder Teil des Trucks hier. Jetzt braucht unser Truck tatsächlich
ein Drehbuch. Ich werde eins
hinzufügen, und anstatt
es das Truck-Skript zu nennen, werde
ich es
das Fahrzeug-Skript nennen. Der Grund, warum
wir es
das Fahrzeug-Skript nennen werden,
ist, dass
wir dieses Skript
auf all unseren Fahrzeugen verwenden können
werden . Um das zu tun,
gehen wir jetzt zu einer Variablen. Was das für uns tun wird, dieses Export-Schlüsselwort wird es uns
ermöglichen,
innerhalb des Inspektors zu ändern. Lassen Sie uns mit dem
At-Zeichen-Export fortfahren und wir erstellen eine Variable und
wir nennen diese Richtung, es wird eine Ganzzahl sein. Standardmäßig können wir es
einfach auf Null oder auf eins senden. Ist in diesem Fall nicht wirklich
wichtig. Wenn Sie das speichern und Ihren LKW erneut
auswählen, sollten
Sie in Ihrem Inspektor auf
der rechten Seite
die Richtung sehen . In unserem Fall
müssen wir negativ
sein, weil wir
uns bewegen, bedeutet, dass wir in die
negative Richtung gehen. Ich habe einfach weitergemacht und
das auf minus eins gesetzt. Jetzt in der Prozessfunktion werden
wir sicherstellen, dass unser
Charakter korrekt ist, aber unser Truck bewegt sich. Um uns dann
bewegen zu können, brauchen wir
etwas, das man Moving
Slide oder Moving Collide nennt Beides funktioniert,
um Bewegung zu haben. In meinem Fall Skin Moving Slide. Das Verschieben von Code ist auch in
Ordnung. Definiert so ziemlich genau,
was passiert, wenn zwei Physikkörper genau dort
miteinander kollidieren Entweder schlagen sie
aufeinander und bleiben dort, oder sie können aneinander
entlang rutschen In unserem Fall ist
das nicht wirklich wichtig, da wir
die Gegend nur nutzen
werden, um festzustellen, ob unser Frosch vom Truck
angefahren wurde Jetzt haben wir eine bewegliche Folie. Wir können es jetzt nicht einfach abspielen, weil wir diese Bewegung immer noch
kontrollieren müssen. Ich werde hier eine weitere
Variable namens Geschwindigkeit haben, die ebenfalls eine Ganzzahl sein wird. Ich glaube. Ich werde das einrichten. Wir werden es jetzt mit acht versuchen. Wir werden sehen, wie schnell sich das bewegt. Das könnte ein
bisschen zu schnell sein. Ich werde es tatsächlich mit zwei versuchen. Jetzt, wo ich darüber nachdenke, werden
wir nur die Geschwindigkeit ändern und wir
wollen die X-Zahl ändern. Genau wie bei der Position
haben wir sowohl ein X als auch ein Y
, wenn es um Geschwindigkeit geht. Die Geschwindigkeit wird
unser Objekt steuern, das sich konsistent bewegt. Gehen wir ab 4 zur Geschwindigkeit über,
interessant, vielleicht das große V weil ich weiß, dass
es eine eingebaute gibt. Ich bin mir ziemlich sicher, es ist
niedrig, genau da. Ich muss da gerade einen Tippfehler
reingetan haben. Aber da haben wir's. Also können wir diesmal einfach Geschwindigkeit
x machen . Wir
werden Gleichwertiges sagen Wir werden nicht Minus oder Plus
sagen, weil das von unserer Richtung
abhängt, sagen wir Geschwindigkeit mal Richtung Wir werden uns
entlang der X-Achse bewegen, also
werden wir uns mit der Geschwindigkeit nach links und
rechts bewegen , die
momentan zwei mal Richtung ist. Im Moment sind wir bei minus eins. Es wird also zwei
mal minus eins sein und das wird uns eine negative
Zwei geben und wir sollten
uns nach links bewegen. Wir sind in den Inspektor gegangen und haben ihn auf einen positiven Wert
umgestellt. Dann
sollte das zwei mal eins sein. Bringen Sie eine positive Zwei und lassen Sie uns in
die richtige Richtung gehen. Ich setze
meins einfach wieder auf minus eins. Ich gehe zurück zu meiner
Hauptszene und
bringe einfach einen Truck rein, um
ihn mir anzusehen. Ich stelle es einfach hier hin. Spiel die Szene ab und
schau, ob sie sich bewegt. Wir können sehen, dass es sich bewegt, aber es bewegt sich viel zu langsam. Wir werden das
anpassen müssen. Gehen wir zurück zu acht. Vielleicht war acht gut. Versuch das. Acht ist nicht gut, aber
es ist viel besser. Mal sehen, wollen wir uns mit
16 Pixeln bewegen? 16 sieht gut aus, obwohl das so aussieht, als ob es ziemlich einfach sein
könnte. Vielleicht wollen wir das erhöhen. Denken Sie daran, dass wir
immer wieder darauf zurückkommen können, und da wir die
Geschwindigkeit für alle unsere Fahrzeuge verwenden, könnten
wir das leicht anpassen und optimieren, sobald wir tatsächlich
alle fünf Fahrspuren für Fahrzeuge belegt haben alle fünf Fahrspuren für Fahrzeuge belegt Mal sehen, 32
sieht hier besser aus.
Ich glaube, 32 ist der Punkt, an dem
ich
es belassen und später anpassen werde es belassen und später anpassen Vielleicht willst du auf 48 gehen oder ich glaube nicht, dass wir
in der Lage sein werden, auf etwas wie
64 zu kommen, aber man weiß nie Ich schätze, ich werde
einfach 32 als meine Basis verwenden. In Ordnung, wir haben also einen Truck
, der in eine Richtung fährt. Jetzt können wir auch unsere
anderen Fahrzeuge erstellen. Mal sehen, wir haben zwei weitere die sich nach links bewegen, und zwei
, die sich nach rechts bewegen. Mal sehen, was wir hier haben. Und wir werden nach links
gehen. Also werden wir diesen Vorgang so
ziemlich wiederholen und das
Fahrzeugskript für alle verwenden. Also gut, ich habe
weitergemacht und wie Sie sehen können habe
ich meine anderen
vier Autoszenen hier gedreht. Ich bin nur reingekommen und habe die
Kollisionsform
angepasst, falls ich den Sprite durch
ein anderes unserer Autos
ersetzen müsste den Sprite durch
ein anderes unserer Autos
ersetzen Und wenn nötig, probieren Sie die Richtung von
minus eins bis positiv ab, das steuert alle unsere Autos Und ich habe sie ungefähr dort
platziert,
wo sie hier sein würden, nur damit ich sie testen
und sie mir ansehen kann. Wie Sie sehen können, wenn wir damit fahren, fahren
unsere Autos weiter
und fahren über den Bildschirm in
die richtige
Richtung, ohne dass sie miteinander kollidieren. Fantastisch Jetzt brauchen wir nur noch
mehr Autos, die überspannen. Wir wollen diese Konstellationen nicht
platzieren, außer dass wir sie manuell
platzieren müssen. Dann müssen wir einfach diese riesige Liste
von Autos haben, von denen wir
keine Ahnung haben , wie lange es dauern wird
, bis sie spawnen Oder wie lange es
dauern wird, bis der Spieler
entweder keine Leben mehr hat
oder das Level abgeschlossen Wir werden Spawner für diese Autos
erstellen. , um das Fahrzeug zu In Ordnung, diese Spawner
sind im Grunde nur zu
einer bestimmten Zeit Wir könnten fünf
verschiedene Spawner haben wenn wir wollen, einen für jede Spur Mal sehen, ich glaube, das ist es,
was ich machen will. Ich glaube, ich werde
fünf verschiedene Sponsoren haben , so dass sie alle ihre eigenen Zeiten
haben können und wenn du wolltest, hättest du
einfach als Spawnlimit
ein Zeitlimit für alle Fahrzeuge festlegen ein Zeitlimit für alle Fahrzeuge Das ist auch völlig in Ordnung. Ich mache weiter und
erstelle eins und das
wird einfach ein einfaches No Two D sein Ich nenne es einfach Sp. Wollen wir hier
Sponsor eins nennen? Ja, sponsern Sie einen und
das wird meine
Top-Spawns hier oben kontrollieren und ich denke, ich werde das auch als
Basisstandort verwenden , also werde
ich mir einfach einen guten Platz sichern Und da das der Truck ist, bringe
ich ihn dorthin
zurück und das
zeigt mir, dass der Truck auf dieser Position
spawnt Er wird genau
dort auf meinem Spawn sein. Ich werde
ein neues Drehbuch erstellen. Das wird nur ein Spawn-Skript
sein. Nochmals, wir werden das für so ziemlich
alle unsere Spans verwenden,
die wir
hier erstellen Was müssen wir
tun? Nun, wir müssen eine bestimmte Zeit warten. Es wird diesen
Common da draußen löschen. So wie der
hier unten auf Zeile neun. In Ordnung, wir müssen also eine bestimmte Zeit
warten. Diese Zeit sollte zufällig sein, dann ,
basierend auf dem Spawn wir
,
basierend auf dem Spawn,
in unserem Fall den Truck beladen Ich mache weiter und mache hier
Variablen für meinen Truck. Das wird hier
eine Vorladung sein. Mr. meint, wir
laden die Szene einfach vorher. Auf diese Weise können wir es verwenden, wir können es jederzeit instanzieren. Also nehme ich einfach meinen Truck aus meinem Dateisystem
und ziehe ihn rein. Auf diese Weise haben wir den richtigen
Ort hier am Tatort. Damit zeige ich Ihnen nur
, was
das eine Fahrzeug hier ist, denn dann müssen wir
einfach
reinkommen und wir können das optimieren Ich zeige dir, wie wir exportieren können. Nun, auf diese Weise
können wir
dieses Skript tatsächlich für alles verwenden ,
anstatt
mehrere Skripte zu erstellen , nur wegen
eines Variablenunterschieds. Das werde ich dir zeigen. Aber lassen Sie uns
das zuerst zum Laufen bringen. Was wir tun werden,
wir werden
diesen Prozess überhaupt nicht anwenden . Wir werden tatsächlich eine Funktion namens
Spawnfahrzeug
erstellen .
Wir brauchen hier eine Zufallszahl. Lass uns weitermachen und die Zeit spät
anrufen. Nenn es einfach Wartezeit. Wir setzen einen Gleitkommawert und
setzen ihn,
mal sehen, auf eine zufällige
Ganzzahl, ohne uns zu irren Wir könnten einfach
so etwas machen und das würde funktionieren. Ich glaube nicht, dass wir
den Rand-Bereich verwenden müssen, obwohl ich mich darin
irren könnte . In
Ordnung, da haben wir's. Da ich das sicherheitshalber
noch einmal
überprüfen möchte , behalte
ich die Kontrolle. Klicke auf Randy und das öffnet
mir diese Seite. Und ja, ich habe das richtig gemacht,
indem ich Prozent 20 verwendet habe. In diesem Fall wird
uns ein GC
einen Wert zwischen 0,19% geben, uns ein GC
einen Wert zwischen 0,19% 100 ergibt uns 0-99 Und wenn
wir Prozent 100 plus eins machen, würde uns
das eine
Zahl von 1-100 geben. In meinem Fall, wenn ich drei mache, dann haben wir
eine Wartezeit Ich werde noch einen hinzufügen. Jetzt müssen wir
mindestens 1 Sekunde warten, und zwischen den Trucks werden
es 12-3 sein Wir können sehen, wie das aussieht Wir könnten das später immer noch
anpassen. Jetzt haben wir unsere Wartezeit, jetzt müssen wir tatsächlich so lange
warten. Wir sagen, warte, dafür
müssen wir den Baum holen. Das Schlüsselwort await bedeutet
hier, dass wir einfach darauf warten werden. In unserem Fall
wird es ein Timer sein, aber dieser
könnte auch darauf warten ein Signal gesendet wird. Aber im Moment
sagen wir, hol dir einen Baum, erschaffe Tim. Das wird
unsere Wartezeit hier sein. Unsere zufällige Wartezeit
, die wir haben, wir sind weg für das
Time-Out-Signal, das gesendet
wird, wenn unser Tim endet. Unsere wird auf einer
Zufallszahl basieren, einer zufälligen Anzahl von Sekunden. Ordnung, sobald das erledigt ist, können
wir eine Instanz unseres Trucks erstellen,
von unserem, wir sagen VT für Fahrzeug VI
, für Fahrzeug ist gleich,
in diesem Fall sagen
wir Truck, sollten es
aber in
Fahrzeug Truck instanziieren ändern und
dann fügen wir es zu Fahrzeug Truck instanziieren ändern und unserem Spawner-Selbst hinzu,
einem Kind, das es der Szene hinzufügt Alles klar, schauen
wir uns an, wie das jetzt funktioniert Das wird es nicht tun, weil
wir es nicht angerufen haben. Gehen wir hier zu unserer
Ready-Funktion und zu unserer
Spawn-Fahrzeug-Funktion, die wir erstellt haben Lass es uns jetzt versuchen. Da haben wir's. Da ist noch ein
Truck reingespawnt, und das werden wir nicht mehr haben
, weil wir nur auf einmal
laichen Was wir von dort aus tun können,
ist, nachdem wir ein Kind hinzugefügt haben, direkt nachdem wir den
Truck zu unserer Szene hinzugefügt haben, lassen
wir ihn sich
rekursiv selbst aufrufen Es wird
eine Endlosschleife verursachen. Es wird bleiben,
es wird ein Fahrzeug spawnen nichts tun
und dann
ein Fahrzeug spawnen Wenn es damit fertig ist, ein anderes Fahrzeug zu
spawnen, ist
es fertig, ein Fahrzeug zu spawnen
und es wird immer
eine Zufallszahl sein , jedes Mal, wenn wir zwischen den Spawns
warten müssen Wenn wir es uns jetzt
ansehen, können
wir sehen, dass sie in ihren Abständen ziemlich
einheitlich sind Und dann war das ein
viel größerer Abstand. Da haben wir einen sehr engen
Abstand. Es sieht so aus, als ob Prozent drei plus eins die kürzeste sein könnten,
die wir erreichen wollen, aber bitteschön.
Es liegt an dir. Das sind viele
nahe beieinander. Es liegt an dir, ob
du
das ein bisschen anpassen willst , ob du überhaupt damit spielen Und es liegt an Ihnen, wie
Sie sie dort verteilen möchten. Nun, der Grund, warum wir
seine Position
nicht festlegen müssen , ist, dass
wir es als
Kind zu meinem Spotter hinzufügen Und der Spotter ist genau hier, da der Truck hier
bei 00 Uhr steht Der Truck hier ist auf 00 Uhr
an seiner Position hier. Und wir können uns vorstellen, dass, wenn
wir zu Transport 00 fahren, es genau
so sein wird wie sein Mutterfahrzeug, das in diesem Fall ein Sponsor sein
wird. Mein Sponsor hier
ist , dass es an diesem Ort
spawnen wird, gerade außerhalb des Bildschirms. Nun, wie können wir dieses Skript so
ändern, ausgeführt wird, um es
für jedes unserer Fahrzeuge verwenden zu können Was wir tun müssen, damit das für all
unsere Sponsoren funktioniert, damit wir hier so wenig
Arbeit wie möglich haben. Nun, zunächst werde
ich meinen Variablennamen von
Lkw-Fahrzeug ändern , weil wir
ihn
jetzt für mehr als ein
Fahrzeug verwenden werden , nicht nur für den Lkw. Das heißt, wir
müssen ihn hier
unten in unserem Spawn von
Truck Instant auf
Vehicle Instanziate ändern hier
unten in unserem Spawn von Truck Instant auf
Vehicle Instanziate Wir möchten, dass diese
Variable in
unserem Inspektor verfügbar ist, damit wir
sie für jeden Knoten anpassen können Hier machen wir das mit Export signierte
AT. Was werden wir jetzt
hier exportieren? Nun, wir könnten es einfach so
lassen. Und das funktioniert nur, wenn wir in den Inspektor
schauen. Aber wenn du etwas konkreter werden willst, nennt man
das Pack gesehen . So
würdest du es exportieren. Dann könnten wir hier sogar einfach den Preload
löschen, wir haben nur ein Schild, unser Fahrzeug und deklariert
als Pack gesehen. Wenn wir jetzt hier auf unseren
Spawn und unsere Szene klicken, können
wir einfach das Fahrzeug öffnen und Neues Tempo sagen oder wir können laden Natürlich würden wir laden wollen. Aber um etwas
Zeit zu sparen, können wir einfach in unser Dateisystem
gehen, unseren Truck nehmen, ihn hineinziehen und dort ablegen. Wenn wir das ausführen, werden wir sehen unsere Trucks so erscheinen
, wie sie sollten, genau wie zuvor In Ordnung, perfekt. Wenn wir,
sagen wir, schauen wir mal, Auto eins fährt auch nach
links, nehmen wir Auto. Ersetze die Szene da drin
und sieh sie dir an. Da haben wir es.
Wir haben es hier mit einem anderen Fahrzeug zum Laufen gebracht. Wir müssen das nur
ändern. Das sind eine Menge Autos hintereinander. Auch hier kann ich
darauf zurückkommen, dass du die Dinge optimierst, aber da hast du es Ich mache weiter
und ersetze diesen wieder durch einen Lkw und
verhindere, dass Jetzt kann ich weitermachen und
mehr Spannen machen. Ich schon, wir machen Geschichte
und Mismatch. Das ist interessant. Ich
mache nichts mit Geschichte. Ich werde dort einfach Steuerung D benutzen. Und dieser wird von zwei gesponsert. Also werde ich einfach runterkommen und
sicherstellen, dass die Warteschlangen stehen , dass das Auto drei sein wird
. Ich
suche mein Auto drei, Szene und schleppe es rein. Mach weiter und sieh dir das an. Da haben wir's. Unsere
Trucks und unser Auto laichen in unseren unterschiedlichen
Intervallen. Fantastisch Wir können hier dasselbe
für unseren Hintern tun. Ich werde das noch
einmal duplizieren. Und ich
dupliziere das nur mit Steuerung D und ausgewähltem Spawner Und ich werde das hier für dieses Fahrzeug
runterholen hier für dieses Fahrzeug
runterholen Das ist nur, ich werde das Auto hier reinfahren, wir schauen uns um, wir sehen, all unsere Autos, die nach links
fahren alle richtig reinspawnen Fantastisch. Jetzt müssen wir
nur noch die beiden rechts rüber bringen.
Das Gleiche. Ich werde einfach meinen Spawn
hier
duplizieren und ihn einfach
auf die linke Seite ziehen Und dann passe ich es hier an. Unsere Position
sollte gut sein. Und das ist Auto, mein Auto Fc würde es noch
einmal
duplizieren und es hier zusammenfügen
für meine Car-2-Szene. Ordnung, jetzt sollte ich hier reinkommen und all diese
temporären Autos und Lastwagen
löschen
können . Wenn wir rennen, sollte es einwandfrei
funktionieren und all unsere
Fahrzeuge da drin Wir haben es jetzt. Wir können hier
mit unserem kleinen,
ja, wie wir sagen,
kleinen Frosch herumlaufen hier
mit unserem kleinen,
ja, wie wir sagen,
kleinen Frosch Da haben wir es jetzt. Wir brauchen nur eine Möglichkeit, über dieses Wasser zu springen,
damit wir
da reinkommen können , damit unser kleiner
Frosch zerquetscht Ich denke, wir kümmern uns um das
Quetschen. Nächstes Mal kriegen wir hier den Tod des
Spielers rein.
8. Spielertod und Respawn: Ordnung, also wie kriegen
wir
unseren kleinen Frosch dazu ,
wenn er von einem Auto angefahren wird Nun, als Erstes
habe ich
eine Kollisionsform zwei D hinzugefügt , um die Größe meines Frosches
abzudecken Wir werden das verwenden, um festzustellen,
ob Sie
von einem Auto angefahren wurden , in Kombination mit dem Bereich zwei D, der
sich auf unseren Fahrzeugen befindet In meinem animierten Sprite habe ich eine neue
Animation namens Death erstellt und den
Frog Dead Sprite Jetzt, wo wir das
auch an unserem Fahrzeug benötigen, müssen
wir hier eine Signalverbindung hinzufügen Und der, den wir
wollen, ist Body Entry. Wir könnten hier reinkommen und sie eins
nach dem anderen mit all
unseren Fahrzeugen
verbinden , oder wir könnten
ein wenig Zeit sparen und es
über den Code verbinden. Ich denke, das werde
ich hier tun, nur so haben wir
ein bisschen Zeit gespart. Schauen wir uns nun
an, wie wir
dieses Signal über den Code
statt über die Schnittstelle verbinden würden . Der einfachste Weg für
uns, dies einzurichten ist, wie Sie im Folgenden sehen, im Ready-Block hier, dass dieser Fehler nur darauf zurückzuführen ist,
dass wir diese Funktion
noch nicht erstellt haben. Wir sehen, dass wir uns unseren Bereich zwei
D schnappen , weil er das Signal
sendet, der Signalname,
der als Körper eingegeben wurde, Sie können ihn auf der rechten Seite sehen. Und wir werden dieses Signal mit der
Connect-Funktion verbinden. Dann erstellen wir ein sogenanntes Callable und geben einen Namen ein Und dieser Name wird der Name unserer Funktion
sein , die wir aufrufen wollen Spieler getroffen, Frosch getroffen. Du kannst damit weitermachen, so nenne
ich meins. Jetzt müssen wir
nur noch runterkommen und eine neue Funktion für Funko
erstellen Diese Funktion übergibt
auch ein Datenelement. Wenn wir uns das vom Körper eingegebene
Signal hier auf der
rechten Seite ansehen , sehen
wir, dass es durch den Körper fließt
und das ist ein Knoten zwei D, es wird ein
Zwei-D-Knoten irgendeines Typs sein. Wir müssen dieses
Argument in Knoten zwei
D setzen . Und das sollte nun
das Signal für alle
unsere Fahrzeuge verbinden . Und um das zu testen, können wir
weitermachen und die Karosserie drucken. Und wir werden sehen,
etwas, das ich
auch gemacht habe , ist, dass ich meinen Spieler
gewechselt habe. Ich habe meinen Spieler von
Character Body TD in Player umbenannt . Dann musste ich hier
in meine Hauptszene gehen und sie ersetzen, damit
der Name aktualisiert wurde. Wenn wir das jetzt überprüfen, sollten
wir jedes Mal
, wenn wir von einem Fahrzeug angefahren werden, eine Leiche ausdrucken lassen. Lassen Sie uns also die erste Spur testen. Ja. Spur zwei, ja,
Spur drei, richtig. Spur vier. Unsere letzte Spur, der
Truck. Los geht's. Alle unsere Fahrzeuge erkennen,
wenn wir getroffen
werden , und wir können sehen wir zu diesem Zeitpunkt eine Menge Fahrzeuge
da haben, das könnte eine gute Menge sein. Oder vielleicht wollt ihr
die Mindestspawnzahl zwischen ihnen erhöhen die Mindestspawnzahl zwischen ihnen Auch hier liegt es ganz bei
dir und wie du es
angehen willst , mach es mit deinem. Aber damit sind jetzt alle unsere
Fahrzeuge
miteinander verbunden und so eingerichtet, dass sie unseren kleinen Frosch
zerquetschen Der Grund, warum ich dir erzählt habe, dass ich meinen Charakter Body TD
gelesen habe. Damit der Spieler spielen kann, verwende
ich ein großes Is,
weil wir
diesen Namen in unserem Fahrzeugskript verwenden werden. Wir werden sagen ob und dann eine Quelle
durchziehen, Spieler. Wir wollen also sehen, ob sich diese Zeichenfolge in einer anderen Zeichenfolge
befindet. Und die Zeichenfolge, die wir überprüfen
wollen, ist der Körpername. Denken Sie daran, dass der Körper das Objekt ist , mit dem wir
gerade kollidiert sind, welcher Körper auch immer gerade in den Bereich
unseres Fahrzeugs eingedrungen Die Namenseigenschaft
wird
uns geben, was auch immer dieser Name hier ist, was in unserem Fall Player ist Mal sehen, ob unser Name Spieler
statt Körpername ist. Wir könnten einfach doppelt
gleich machen , wenn wir einen exakten Namen haben
wollen, es liegt ganz bei dir In diesem Fall sollte es nichts
beeinflussen. Wir beenden unsere Aussage
mit unserem Doppelpunkt. Gehen Sie zur nächsten Zeile runter. Jetzt können wir
unseren Code ausführen. Was wollen wir tun,
wenn unser Spieler es bekommt? Nun, wir werden bei unserem Spieler die
Todesfunktion aufrufen . Nun, diese Funktion
existiert noch nicht, also
müssen wir sie erstellen. Aber Körpertod, wenn Sie einen zusätzlichen Fall haben wollen. Sicherheit hier. Sie können sagen, wenn der Körper über eine Methode verfügt,
die Todeskette weitergeben kann, dann können wir den
Körpertod in einer weiteren anfassen. Wir können so vorgehen und
das wird einen Fehler vermeiden. Wenn wir
weitermachen und das ausführen würden, sehen
Sie, würden
wir hier keine Fehler haben. Weil wir im Grunde
sagen, okay, wir sagen, wenn wir hier
mit dem Spieler kollidieren, Spieler, wenn dieser Körper
diese Funktion hat, dann nenne ihn Im Moment hat er
diese Funktion nicht. Wenn Sie
diese zusätzliche
Sicherheitsebene
mithilfe dieser Methode einrichten
möchten, können Sie das sicherlich tun. Ich gehe jetzt in meinen
Player und erstelle diese Funktion Bunk Death. Wir geben damit keine
Argumente weiter. Was passiert,
wenn unser Spieler stirbt. Aber wir müssen
unsere Todesanimation abspielen damit wir unser Sprite
korrigieren können . Lass uns
weitermachen und das machen Animiertes Sprite Two, spiel Tod. Schauen wir uns das jetzt an. Was passiert, wenn wir von einem Fahrzeug
angefahren werden? Ein armer kleiner Frosch, der die Straße
überquert? Okay, wir sehen dich sterben und dann sind wir eins oder Sprite
der falsche Weg Es zeigt nicht so, wie es sollte. Korrigieren wir das. Danach stellen wir einfach die Rotation ein.
Und das haben wir
schon gemacht. Wenn wir nach oben drücken, fügen wir
das unserer Todesfunktion hinzu. Hier schauen wir uns an, dass es sich
jetzt richtig verhalten sollte. Wir sind in einer großartigen Position. Was Sie nicht sehen können,
ist,
dass ständig mit uns kollidiert werden, weil unsere Kollisionsform ständig
auf diese Autos trifft Und nicht nur das, wir
können auch in Bewegung bleiben, also können wir das Wesen nicht mitnehmen
und wir sind wieder am Leben,
wir haben einen unbesiegbaren Frosch. In Ordnung, ein Professor zur rechten Zeit. Lasst uns verhindern, dass unsere Kollision
passiert. Wir können das sehen,
und ich zeige dir , wenn wir
unseren Player-Hit eingeben werde
ich einfach weitermachen
und Quetschfrosch ausdrucken Sie können sehen, dass wir,
obwohl wir tot sind, immer noch zerquetscht,
zerquetscht werden Und wir werden weiter
zerquetscht werden , obwohl
wir schon tot sind Wir wollen nicht, dass das
passiert, weil es uns einfach weiterhin Leben
abziehen
könnte,
je nachdem, wie weit die Spawns
voneinander entfernt Lass uns weitermachen und
das bei unserem Spieler korrigieren. Dazu holen
wir uns
unsere Kollisionsform, die wir erstellt haben,
die Kollisionsform zwei D, die
wir unserem Spieler hinzugefügt haben Und dafür werden wir etwas
namens Deferred
verwenden namens Deferred Was das im Grunde bedeutet
, wenn wir uns das ansehen,
ist, dass der Aufruf der Methode
für das Objekt
während der Leerlaufzeit
immer Null zurückgibt, nicht das Ergebnis der Methode Da hast du's. Unser Schlüsselwort hier ist Anrufe
während der Leerlaufzeit. Es wird es also aufrufen
, wann immer wir es weitergeben,
wenn es die nächste
Gelegenheit dazu hat. Anstatt
zu versuchen,
es jetzt aufzurufen, wenn es vielleicht nicht
in wenn es die nächste
Gelegenheit dazu hat. Anstatt
zu versuchen,
es Anstatt
zu versuchen jetzt aufzurufen, wenn es vielleicht nicht Lage ist, Funktionen zu stempeln, wird
es dir sagen, das zu
tun, bevor wir es aufrufen. Sie müssen sie nicht löschen. Ich zeige
dir hier nur den Fehler. Wenn wir hier reinkommen und ich
sage, dass deaktiviert gleich wahr ist, werden
wir sehen, dass wir hier
auf einen Fehler stoßen Es verhindert nicht, dass unser
Spiel läuft. Mal sehen, wir wurden zweimal
gequetscht. Unsere Deaktivierung
funktioniert seit 12 nicht. Wenn wir in unseren Debugger gehen
und uns Fehler ansehen, wird uns das sagen, dass wir den Status nicht ändern
können, während beim Leeren von Abfragen Call Deferred
verwendet Es
sagt uns also ausdrücklich, dass wir das verwenden sollen, deshalb verwenden
wir hier Call Deferred wird
hier
eine Reihe von dem sein, was wir tun wollen In diesem Fall wird
es deaktiviert. Dass deaktiviert ist, braucht
ein zweites Argument und genau das haben wir gesagt, in unserem Fall wird es
auf true gesetzt. Wenn wir uns
das jetzt ansehen, ist dieser Fehler
weg und wir werden nur noch einmal gequetscht Da hast du's. Es wird
nicht mehr in unserem Code auftauchen, wenn Sie
Angst haben, dass der Anruf verschoben Wenn wir von
Fahrzeugen aus nächster Nähe angefahren werden, zum Beispiel wenn
es drei
hintereinander , können wir uns das
hier ansehen Es wurde bereits
deaktiviert, bevor uns
das nächste Fahrzeug
überhaupt berührt. In Ordnung, jetzt
können wir also tatsächlich hier sterben. Wir müssen uns ansehen,
wie wir uns zurückholen. Richtig. Jetzt sind wir nur noch ein
untötbarer Frosch , weil wir mit nichts
kollidieren können Also müssen wir das mit unserem Tod in Ordnung
bringen. Wir müssen eine Art
Respawn haben. Wir müssen sicherstellen,
dass wir uns nur
bewegen können , wenn wir am Leben sind Wir sollten dort etwas mehr
als beabsichtigt aushandeln. Alles klar? Wir müssen
verfolgen, ob unser Frosch
gelebt hat oder nicht. Wir können das mit einer
einfachen Funktion tun, die einfach prüft, ob er lebt oder ob er tot ist. Basierend auf dieser Variablen
können wir uns entweder bewegen oder nicht. Dafür werden
wir eine Reihe von Zuständen verwenden,
die eine Aufzählung sein werden, wie Sie hier
anhand des Beispiels sehen können. Wir können diese Aufzählungen verwenden, um bestimmte Daten zu
speichern. Ich nehme an, man könnte sagen, es ist im Grunde wie eine Liste von Optionen, aus denen wir auswählen können Es macht es einfacher,
Dinge zu überprüfen. Sie können dies sehen, wenn es um die Grundform
einer Zustandsmaschine
geht , die für Charaktere verwendet
wird. Zum Beispiel, wenn Sie
Grand Theft Auto
Five gespielt haben. Wenn Sie zu Fuß
unterwegs sind, haben
Sie andere
Steuerungen als in einem Fahrzeug. Das liegt daran, dass Sie zu Fuß sind. Die Kontrollen wären ein Staat. Schwimmen wäre ein anderer Staat. In einem Auto wäre ein Staat, in einem Flugzeug wäre es ein
anderer Staat und so weiter. Wir werden das nutzen, um zu wissen, wann wir am Leben sind und wann
unser Frosch zerquetscht wurde Um das zu erstellen
, verwenden
wir statt des Schlüsselworts Var Der Name der Aufzählung, die besagt, dass sie wie eine Zustandsmaschine
funktionieren wird, nenne
ich sie einfach State wird, nenne
ich sie einfach Und statt Gleichheit oder Doppelpunkt zu
verwenden, springen
wir einfach direkt
in die geschweiften Klammern Traditionell, so
wie ich es immer gesehen habe, werden
sie immer in Kapital stehen, also werde ich bis zur nächsten Zeile leben , Das sind unsere beiden Staaten Lebendig und Lebendig tot
werden hier der Standardstatus sein. Wir werden
eine neue Variable
namens Current State erstellen . Wir werden das einfach
als Staat deklarieren , als einen
unserer Staaten hier. Ordnung, jetzt
mit unserer Bewegung müssen wir nur noch
prüfen, ob der aktuelle Status gleich zwei
ist, dass der Zustand lebendig Und dann tippen Sie unsere Bewegung ein. Jetzt können wir uns nur bewegen
, wenn wir am Leben sind. Jetzt, wenn wir sterben,
müssen wir ihm sagen, dass unser jetziger Zustand
als tot gilt. Wenn wir das jetzt machen,
sollten wir nicht in der Lage sein, uns zu bewegen. Wenn wir sterben und
zerquetscht werden, ist es soweit. Wir wurden alle eingequetscht
und können uns nicht bewegen. Jetzt müssen wir nur
noch
weitermachen und den Respawn erstellen Lassen Sie uns eine Respawn-Funktion erstellen sobald wir hier Leben haben Hier
werden wir überprüfen ob der Spieler noch Leben übrig hat Wir werden das
nennen. In Ordnung, lassen Sie uns damit beginnen, wie wir reagieren? Wir müssen unsere
Kollision wieder zum Laufen bringen. Also müssen wir in unserer
Kollisionsform Deferred aufrufen in unserer
Kollisionsform Deferred Und anstatt
es auf deaktiviert zu setzen, müssen
wir es auf
false setzen , damit es nicht
mehr deaktiviert ist Wir müssen unsere Position, unsere
Selbstposition ändern und wir
müssen sie auf die Position zurücksetzen, in der
sich unsere Ausgangsposition im Moment befinden wird. Das ist 169,2 33. Ich werde diesen Wert einfach ganz
schnell in meine
Hauptszene
kopieren . Ich werde einen hinzufügen. Siehst du, wie sie ihn umbenannt haben? Hier. Hier gehen wir. Es wurde in D umbenannt, also gib mir nur 1 Sekunde. Das hole ich für dich auf. Da hast du's. Also
werden wir einen Marker zwei D verwenden. Ich werde
seine Transformation vorerst einstellen. Ich
füge einfach den Wert ein und setze ihn auf dieselbe Position
, an
der unser Frosch beginnt. Ich werde diesen
Spieler Spawn-Standort nennen. Wenn wir jetzt antworten, können wir sagen, dass die Position des
Selbstpunkts unserer entspricht. Spieler, der für uns nicht ausfüllen wird
. Ich muss es nur eingeben, Position des Spawn-Standorts des
Spielers Das sollte
ziemlich sofort passieren. Lassen Sie uns also weitermachen und zu unserem Prozess
übergehen Hier werden wir einen weiteren
Scheck erstellen,
LF, der aktuelle Status
entspricht dem Zustand tot. Wir können Respawn anrufen. Das sollte gleich am Anfang erscheinen ,
wo wir angefangen Wenn du getötet wirst,
scheinen wir das zu haben, was ist. Oh, das ist fair. Spawn-Standort der Spieler,
darauf
können wir nicht zugreifen, weil wir tatsächlich den Baum hochgehen müssen, um zu merken, wer unser Spieler ist, und der Spieler hat
keinen direkten
Zugriff auf den Standort dieses Hier müssen wir rauf gehen, dieser Linie
folgen und
einen hochgehen und dann bringt
uns das zu diesem Knotenpunkt zwei D. Und dann hat kein zweites D
Zugriff auf den Spawn eines Spielers Wir müssen auf dem
Weg nach oben gehen, das sind
ein paar Möglichkeiten, wie wir weitermachen
und Parent Get Node bekommen können Dieser Get-Node ist nur eine lange Form des
Schreibens dieses Dollarzeichens. Dann wäre darin eine Zeichenfolge oder der Pfad direkt
zu Playerspalocation etwas kurz
zu halten, können
wir alternativ auch einfach get node machen Wir können Dinge weitergeben. Wir können sagen, benutze einen Punkt,
was dem Schreiben von Selbst entspricht. Oder wir können zwei Punkte machen, was dem Get
Parent
entspricht , das wir gerade gelöscht haben. Und Sie können sehen, dass wir
viel sagen können, tun Sie dies mit dem Spawn-Standort des Elternspielers In Ordnung, das sollte das beheben. Jetzt, wo wir zerquetscht werden, sehen
Sie, wir kommen gleich wieder
zum Anfang zurück Wir können
immer noch nicht
weitermachen, weil wir unseren
aktuellen Status festlegen müssen Denken Sie daran, dass wir den aktuellen
Status nicht gleich dem aktuellen Status verschieben können. Und nicht nur das,
wir müssen
unsere Animationen wieder
zu unseren Idolen Wir werden unseren animierten Sprite dazu bringen, unseren Idol-Sprite
zu spielen. Stellen Sie es wieder auf den Normalzustand zurück,
wenn wir es ausführen. Jetzt können wir nicht wirklich sagen, wann wir eine Antwort bekommen. Was ich zuerst tun werde, ist
Calder zu verwenden und das nach allem anderen
abzulegen,
weil ich merke, dass nach allem anderen
abzulegen wir zweimal
gequetscht Also werden wir sehen, ob wir das reparieren
, wenn wir nur diese Linie verschieben. Tut es nicht. Okay, kein Problem. brauchen
wir
zum Beispiel nur einen kleinen Timer Danach brauchen
wir
zum Beispiel nur einen kleinen Timer. Was in Ordnung ist. Alles klar,
schauen wir mal, was haben wir gebraucht? Unser Totensymbol
funktioniert nicht allzu gut
, weil wir gestorben sind. Wir sind sofort wieder da. Wir können nichts sagen, was vor
sich geht. Was wir tun werden, ist
innerhalb dieses Respawns,
warten, wir tun, was wir getan haben,
bevor wir Get Tree benutzt haben
und diesen Timer erstellen Wir setzen ihn auf 1 Sekunde. Das fühlt sich nach einer langen Zeit an. Und das Timeout-Signal von
1 Sekunde mag sich hier in
einem
alten Spiel wie diesem Split wie eine lange Zeit anfühlen . Und dann antworten wir. Fantastisch, jetzt werden wir dort mehrfach
gequetscht, was ein bisschen bedauerlich ist Ich werde einfach hier
runterkommen und
einen weiteren kleinen Timer für 0,5 erstellen und ich werde sehen, womit ich durchkomme oder wie klein ich
das verkleinern kann, indem ich
0,5 teste, wir kommen damit durch . Ich werde es mit 0,2 versuchen. Ich kann mit 0,2 durchkommen.
Vielleicht können wir sogar mit
0,1
durchkommen , wenn wir hier diese wirklich
kurze Verzögerung haben Da haben wir's. Jetzt haben wir die eine Sekunde
, in der unser Todesbild auf dem Bildschirm
unserer armen kleinen
zerquetschten Bronchien zu sehen sein unserer armen kleinen
zerquetschten Bronchien Und dann passiert das Resp. Fantastisch. Nun, wenn du willst,
könntest du diese Zahl hier oben in
eine Variable setzen , um
Tim zu antworten, oder Antwortzeit. Und das wird deine Zeit
zwischen deinen Antworten sein. Was mich angeht, glaube ich, ich
werde es einfach bei eins belassen. Das ist kein Problem.
Ich glaube nicht, dass ich das
jemals
ändern möchte Nun, wenn du das hier merkst, als ich ging, wenn
ich mich hier hinsetze, ich vielleicht vom
Auto gequetscht, ohne Bußgeld, aber ich wurde dort gequetscht,
als ich zur Seite abgebogen Vielleicht möchte ich meine
Y-Position noch etwas anpassen. Vielleicht möchte ich meine
Y-Position dort etwas weiter anpassen. Aber das wird
darauf hinauslaufen, einfach mit
der Position herumzuspielen und
das nur ein bisschen mehr, aber keine Probleme Aber das reicht dafür. Wir haben jetzt unser Spieler-Death - und Respawn-System eingeführt Wir haben momentan keine Leben im
Gange, aber wir werden zu diesen Leben kommen,
wenn wir zu unserer Sektion kommen Aber Vorsicht, wir haben eine Menge Informationen
durchgesehen. Ich hoffe, du bist
bereit, mit
dem nächsten Abschnitt des Spiels fortzufahren. Das ist.
9. Wassertod: Ordnung, also machen wir es so , dass wir sterben, wenn
wir
ins Wasser springen und reagieren müssen. Nun, um das zu tun, könnten
wir das auf verschiedene Arten tun, aber der einfachste Weg, ich werde sagen, dass wir das tun können, da wir eine Kachelkarte verwenden,
ist, das auszunutzen und uns anhand
der Kachelkarte mitzuteilen, auf welcher
Kachel wir stehen. Wenn wir auf dem
Wasser stehen, werden wir sterben. Wenn nicht, wird es uns
gut gehen, das zu tun. Gehen wir zu
unserem Layer-Skript über. Auf der anderen Seite, wenn wir zu unserem Spielerskript
übergehen, benötigen wir
eine neue Variable, um
unsere Kachelkarte hier zu speichern. Jetzt müssen wir das nicht mehr ganz oben
setzen, aber wir müssen es auch nicht ständig in unserer Funktion
einstellen. Wir werden entweder alles machen lassen Sie uns das einfach machen und wir werden das
Schlüsselwort on ready verwenden. Das bedeutet nur, dass die
Variable, die wir erstellen werden, dieselbe wäre, als ob
wir sie hier bereit stellen würden. Wenn wir zum Beispiel sagen würden, dass
Zahl gleich Zehn
ist, wäre das dasselbe, als ob wir eine Zahl erstellen und sie
dann hier unten
im Ready-Block auf Zehn setzen Das ist alles auf Bereit
bedeutet, dass dies
nützlich ist , wenn wir
bestimmte Knoten
innerhalb unserer Szene erreichen
wollen , wenn wir
bestimmte Knoten
innerhalb unserer Szene In unserem Beispiel wollen wir diese
Kachelmap in die Finger bekommen. Hier
machen wir var tile map und setzen das auf den
gleichen Wert wie den übergeordneten Knoten Natürlich heißt es derzeit
nur Tile Map. Denken Sie jetzt daran, was
ich gesagt habe. Ich glaube, es war
im letzten Video. Anstatt hier
get parent zu verwenden, könnten
wir das in unserem get No
abkürzen, einfach um das gleiche
Äquivalent von get parent zu haben. Aber dann werde
ich das tun, nur um die Dinge wieder
etwas kürzer zu halten. In Ordnung, jetzt
haben wir also unsere Kachelkarte. Jetzt
wollen wir
überprüfen, auf welcher Kachel wir
stehen. Ich werde hier eine neue Funktion
erstellen. Ich werde
das als Check-Cell-ID bezeichnen. Das wird
uns eine leere Wendung geben. Das wird für uns bedeuten
, dass wir es
im Grunde verwenden werden , um zuerst die Position der Zelle zu ermitteln, auf der
wir stehen. Also
sagen wir „Bar Map Pause“, was
auf unsere Kachelkarte gesetzt wird. Lokal auf Karte. Und dann wird das eine Position
einnehmen, und diese Position
wird einfach
die Position unseres Spielers sein . Jetzt gibt uns Local to Map lediglich
eine Position zurück , die der Position der Zelle entspricht
, auf der wir stehen. Die Zellen wären jedes
dieser orangefarbenen Quadrate. Da wir
sofort hier stehen , wenn
das Spiel beginnt, würde
es uns sagen, welches Feld hier ist, sich dieses Feld befindet. Dann wird die nächste Variable, die
wir erstellen werden, im Grunde da
rein gehen und sagen,
okay, das ist mit dieser
Kachel gemacht. Also, was ist das für eine ID? Und es wird uns eine
zurückgeben, um diese ID zu bekommen, wir werden hier eine Variable erstellen. Das wird
nur eine Kachelkarte sein. Tile Map, ja, verkaufe Quell-ID. Dafür
braucht es nur zwei Argumente. Die erste wird die Ebene sein
, auf der sie sich befindet,
auf der sich Ebene Null befindet. Die zweite wird die Position
sein, die wir bereits von unserer
Karte erhalten haben, eine Variable hier. Diese ID sollte jetzt das sein,
worauf wir gerade stehen. Wenn wir reinkommen und
diese ID ausdrucken, machen wir einfach Scheck, Ausweis verkaufen. Innerhalb unseres Prozesses sehen
wir, dass sofort
einer für
den Mittelstreifen ausgedruckt wird, um ihn für die Straße
auszudrucken, und drei für das Wasser Diejenigen, die wir ausführen, können in der Ausgabe
einen Blick nach unten werfen,
wir sehen, dass einer für unseren
Median
ausgedruckt wird, zwei für unsere Straße Wenn ich es hier
bis zum Wasser schaffe, werden
wir wieder einen
für den Median haben Und dann drei, wenn
wir auf das Wasser treffen. Da haben wir's. Jetzt
wissen wir, dass das perfekt
funktioniert, auch wenn wir den ganzen Weg
hierher kommen, weil wir auf Schicht Null überprüft werden, wir gehen zu drei, das ist
unser Wasser. Nun, das wissen wir. Nun,
wir können jetzt, wenn D gleich
Drei ist, und hier würden
wir unseren Spieler töten. Dann komm rein und rufe hier unsere
Todesabteilung an. Wenn wir jetzt das
Wasser berühren, sollten wir sterben. Da haben wir's. Jetzt können wir sterben, wenn unser Spieler das Wasser
berührt. Und warte auf den Respawn. Nun, das ist ein, könnte ein bisschen anstrengend
sein, wenn wir es
ständig so überprüfen Egal, was der
nächstbeste Ort wäre, hier
nur anzurufen, wenn wir noch am Leben sind Aber noch besser ist, dass wir es
anrufen können , wann immer
wir uns tatsächlich bewegen. Also werde ich das hier einfach
zum Ende all
meiner Bewegungen hinzufügen . Wenn ich mich jetzt in eine beliebige Richtung
bewege werden
wir das nur überprüfen. Anstatt es so weit zu spammen. Gut, spring hoch, tot. Warte auf die Antwort.
Jetzt bewegen wir uns wieder. Ordnung, jetzt können
wir unseren Frosch im Wasser ertränken Und wir können unseren
Frosch von einem Auto zerquetschen lassen. In Ordnung, wir haben also
alle unsere Todesfälle überprüft. Jetzt müssen wir nur noch unsere Plattformen
zum
Laufen bringen und dann
unsere und dann kleinen Windpunkte am Ende ermitteln, indem wir an die richtigen Stellen
springen. Und dann richten Sie unser
Heads-Up-Display mit unserer Punktzahl ein. Dann denke ich, dass es fast fertig sein wird. Ich glaube nicht, dass uns
danach etwas entgeht. Könnte falsch sein. Aber da hast du es. Wir können jetzt unseren Frosch mit
dem Wasser abrunden und Sie wissen
jetzt, wie Sie die ID des Plättchens herausfinden können, auf dem
Ihr Spieler steht In Ordnung, um
es für diesen zu tun. Wir sehen uns
im nächsten Video.
10. Wasserplattformen: Ordnung, lassen Sie
uns
weitermachen und unsere Plattform einrichten. Sobald wir unsere
Plattform eingerichtet haben, das Einzige, was wir tun können oder
das Einzige, was uns ist
das Einzige, was wir tun können oder
das Einzige, was uns für diese Plattformen
noch übrig bleibt, einfach die Sprites
auszutauschen und
sie für
meine Plattform hier länger und
kürzer zu machen für
meine Plattform hier länger und
kürzer Ich nehme nur die Sprites, die wir hier
eingerichtet haben. Ich verwende das Protokoll für dieses Beispiel, das Ende in der Mitte und
das andere Ende,
Ende in der Mitte und Start Das heißt, ich
verwende
hier in meiner Hauptszene drei Sprites hier in meiner Hauptszene Die Wurzel meiner Szene hier ist ein Charakterkörper, den
ich in Plattform umbenannt habe Ich könnte es in Log
umbenennen, wenn ich wollte. Das hat einen Bereich zwei D mit einer Kollisionsform
, die mein Protokoll verdeckt. Hier habe ich
sowohl das eingetretene als auch das vom Körper
ausgehende Signal miteinander verbunden sowohl das eingetretene als auch das vom Körper
ausgehende Signal Sobald Sie
diese beiden Signale verbunden haben, sollte
das Skript auf Ihrer Plattform so aussehen Und wir sind bereit,
Informationen hinzuzufügen oder
alles hinzuzufügen. Mit der Art und Weise, wie
wir das machen werden, werden wir auch Dinge in unser Drehbuch aufnehmen. Der Großteil dieser Arbeit wird tatsächlich auf dem Drehbuch unserer
Spieler basieren. Lassen Sie uns vorerst
zu unserem Spieler-Skript gehen und ein paar Variablen
hinzufügen
, die wir verwenden werden. Zuerst wird es eine Plattform
sein, und das wird eine schlanke sein. Und das wird unserem Wasser nur
sagen oder mitteilen ob wir
sicher sind, weil wir uns auf einer Plattform befinden oder
nicht. Das ist die sogenannte
Todesanzeige. Wir werden
unsere aktuelle Plattform
oder Plattform bekommen und das ist ein Charakterkörper zwei
D, den wir weitergeben. Dann werden wir uns irgendwann daran machen. Senden Sie
es vorerst einfach, um zu wissen, dass Sie
eine Plattformrichtung benötigen eine Plattformrichtung ist ein Integer-Fehler, den
wir auf Null setzen werden,
obwohl es keine Rolle spielen sollte. Auch hier werden wir
Plattform, aktuelle Plattform
und Plattformrichtung als
unsere drei neuen Variablen
in unserem Player-Skript verwenden und Plattformrichtung als . Wir fahren
fort und fahren unserer Kontrollzellen-ID fort. Wir werden unsere Aussage ergänzen
und sagen, dass ID gleich drei ist, Plattform
gleich falsch ist Auf diese Weise sagen wir, wenn wir
im Wasser sind und wir uns
nicht auf einer Plattform befinden, dann töten wir den Spieler Da haben wir unsere
Bedingungen festgelegt. Lassen Sie uns das für unseren Spieler sehen. Wir werden auch,
solange wir am Leben sind, überprüfen , ob unsere aktuelle Plattform nicht gleich Null
ist, was sie nur ihr entspricht. Vorerst wird es ein
Objekt sein, das ihr zugewiesen wird. Sobald unser Spieler in unserem Logbuch
steht, sagen wir, die aktuelle Plattform
ist nicht gleich Null, dann können wir einfach weitermachen und unsere Position plus ist gleich 0 Also werden wir eine kleine Messe
machen. Wir müssen
hier unsere Klammern öffnen und schließen, weil wir die Reihenfolge der
Operationen verwenden
werden , wenn es um unsere
Mathematik geht Wir sagen
Plattformrichtung mal 16. Wir werden das entweder als
Plus Eins oder Minus verwenden , genau wie wir es
bei unseren Fahrzeugen getan haben. Und mit 16 multiplizieren. Wir bewegen uns entweder 16 nach links oder
16 nach rechts. Und wir werden das im Laufe der Zeit
tun, also werden wir das mit Delta
multiplizieren. Auf diese Weise sind wir nicht
framebasiert, sondern eher zeitbasiert. Das Einzige, was wir noch
tun müssen, ist, die Richtung unserer Plattform
festzulegen. Und das können wir über eine
Funktion tun, die wir wollen.
Ja, lass uns eine bestimmte Richtung einschlagen. Und das erfordert ein Argument
einer Ganzzahl und gibt nichts zurück. Alles, was das tun wird,
ist, dass er die Richtung
unserer Plattform gleich setzen wird wie. Ordnung, jetzt können
wir zu
unserem Plattform-Skript übergehen. Wir brauchen diesen fertigen Block nicht, wir können ihn
innerhalb unseres Prozesses löschen. wollen wir, dass unser Logbuch In meinem Fall wollen wir, dass unser Logbuch weiterläuft. Ich mache weiter
und mache Position plus gleich 16 mal Delta Dadurch wird es
ständig nach rechts verschoben, wenn wir eintreten,
wenn unser Spieler den Bereich betritt Also werden wir die
Plattform hier auf true setzen. Und wir werden hier
unsere aktuelle Plattform
auf unser Protokoll setzen . Meine Plattform hier.
Ich sage Body Platform und
setze das auf wahr. Jetzt sind wir auf der Plattform. Körper: Legos-Kurve. Plattform. Ja. Aktuelle Plattform entspricht L. Wenn der Körper austritt,
werden wir das Gegenteil tun Also setzen wir es statt auf True,
wir
setzen es auf Falsch
statt auf Stellen Sie es auf nein ein. Alles klar, was wir bis jetzt machen,
ist, dass unsere Front
auf den Baumstamm springt , der sich momentan ständig nach rechts
bewegt. Während dieses Neustarts
bewegt
sich unser Logbuch im Laufe der
Zeit um 16 nach rechts und das nicht auf Gehirnen Wenn unser Spieler jetzt den Bereich
unserer Plattform
betritt , auf dem er
stehen kann, setzen
wir die
Plattform-Variable für unseren Spieler auf true. Auf diese Weise überprüfen wir die Zellen-ID, um zu sehen,
ob wir auf der
Wasserplattform stehen , wahr und unser Spieler
nicht getötet wird. Dann setzen wir die Plattformvariable „
Kurve unseres Spielers für die aktuelle
Plattform auf „Ich“, den Körper des Charakters. Das bewegt sich und
steht für unsere Plattform. Auf dieser Grundlage können
wir unseren Charakter hierher verschieben. Die aktuelle Plattform ist
nicht gleich Null. Wenn wir uns auf einer aktuellen Plattform befinden, werden
wir unseren Frosch
in dieselbe Richtung und mit derselben
Geschwindigkeit bewegen . Das Letzte, was uns
noch bleibt, ist, diese Funktion, die wir
erstellt haben, Set Direction
aufzurufen. Body, set direction,
das benötigt eine Ganzzahl, die wir dann nach rechts
verschieben Wir verwenden eine positive Eins. Wenn wir nun die Plattform
zu unserer Szene hinzufügen
und sie ausführen, wie Sie sehen, gibt es unser Logbuch
und wenn wir darauf springen, oh, dann sterben wir. Es könnte sein, dass diese Wohnung
aktualisiert werden muss. Ein Moment da, ein
neuer, wieder rein. Geh da runter.
Gib Dad noch eine Chance. Okay, ich sterbe. Also müssen meine Signale
vielleicht wieder angeschlossen werden Ich trenne das und stelle die Verbindung wieder her und mache
dasselbe mit meinem Ausgang Trennen und
verbinden Sie meinen Körperausgang wieder und wir werden sehen
, ob das das Problem war Okay. Hey, ich glaube,
ich verstehe, was ich hier verpasst habe, und wir bekommen diese Information
etwas zu schnell. Bevor wir also
unsere F-Anweisung
in unserer Checkzellen-ID haben , verwende
ich einen Wartemodus
und mache das, was wir
zuvor mit dem Get
Tree Create-Timer gemacht haben . Und wir werden dort einfach
eine kleine Pose von 0,1 machen und das
Timeout-Signal bekommen. Das sollte das für uns beheben. Da haben wir's. Jetzt können wir auf unseren kleinen
Baumstamm
springen und es geht uns gut. Wir können darauf hin und
her springen und es gut und wir bewegen uns und
sobald wir abspringen, wir wieder auf
die andere Seite rennen , wenn
wir es noch wollen. Wenn wir ins Wasser springen, haben wir weitergemacht und sind gestorben. Ordnung, wie können wir das Drehbuch ein
bisschen besser
machen , denke ich. In gewisser Weise modular,
auf eine Art, die
benutzerfreundlicher sein wird , sodass wir ständig ändern
können,
ob wir zwei Sprites,
drei Sprites, ein Sprite haben ,
wie groß unsere Kollisionsform
ist, wie groß unsere Kollisionsform und all das trotzdem haben Ich denke auch, dass wir unsere
Richtung so festlegen können, dass sich einige
nach rechts bewegen und andere nach
rechts oder einige nach links bewegen Nun, wir werden
weitermachen und
eine Richtung mit einer
Ganzzahl exportieren , die Null ist. Standardmäßig haben wir das Wort
Bar da drin. Da haben wir's. Jetzt möchte ich auf meine Plattform
gehen. Ich kann das auf
eins statt auf Null ändern. Wir können eine Richtung vorgeben und sie hier weitergeben , wenn wir
Set Direction Plus Equals aufrufen Und wir könnten hier
dasselbe tun, wo wir Richtung mal 16
haben Wir können weitermachen und
nachschauen, ob alles noch funktioniert.
Wir haben nichts kaputt gemacht. Unser Schloss bewegt sich immer noch. Wir können drauf springen und okay, wir haben
also noch
nichts kaputt gemacht. Das ist großartig. Mal sehen, was brauchen wir noch? Nun, ich schätze
, das wäre es. Und wir können einfach weitermachen und all unsere
verschiedenen Plattformen einrichten oder erstellen, jetzt mit demselben Skript als wir einfach ein anderes erstellen, genau wie wir es mit unseren Trucks gemacht haben In Ordnung, ich bin gleich zurück. Warum ein paar davon erstellen? Ordnung, also habe ich
weitergemacht und auch
lange Schildkröten gemacht auch
lange Schildkröten und nur ein paar
hier in die Szene geworfen Und wie Sie sehen, fahren Sie mit diesem Baumstamm
fort, springen Sie zu den nächsten
Schildkröten,
springen Sie als Nächstes nach rechts,
hoch auf meine Schildkröte, springen Sie auf den Baumstamm
und ich bin bereit, in unseren
Windraum zu springen In Ordnung, unsere Plattformen funktionieren
auf jeden Fall einwandfrei. Jetzt ist großartig. Ich möchte wissen, dass ich dem
eingegebenen Körper Gewicht für 0,1
hinzugefügt habe , bevor ich die Plattform in unserem
Plattformskript
geändert habe. Ich möchte das jetzt zur
Kenntnis nehmen. Jetzt brauchen wir nur noch unsere Sponsoren. Alles klar, also lasst uns
weitermachen und sie erstellen. Wir werden sie effektiv herstellen, genau wie unsere
Lkw-Modelle hier. Wir werden weitermachen
und uns selbst holen oder ein D
hinzufügen, wir nennen es Plattform-Sponsor. Wir werden weitermachen und
anfangen, diese aufzustellen. Also ich habe einen da, ich habe einen da, ich habe
einen, sieht aus wie dort. Okay. Dieser Blick macht das sogar. Das ist eigentlich ein
komischer Ort. Ja, geh da hin. Und dann brauchen
wir ein paar für die
andere Seite, für unsere Hürden, übernimm es und eins
für deine Hürde In Ordnung. Also die sehen nach ein paar
guten Spawnpunkten aus. Diese sind etwas weiter
hinten. Die sind ein bisschen höher. Wir werden etwas
Ähnliches wie unseren Truck-Spawn haben. Ich mache weiter
und kopiere einfach unseren Truck. Mal sehen, werden die den gleichen unterschiedlichen
Namen haben, das Fahrzeug? Ziemlich viel. Wir könnten
wahrscheinlich damit durchkommen, einfach unser
Truck-Skript hier zu verwenden. Unsere Plattformen
würden Vehicle heißen, aber ich glaube, ich möchte eine andere
machen , weil mir die Wartezeit nicht
gefällt. Ich glaube nicht, dass das gut für die Plattformen
wäre. Ich werde das einfach als meine Basis
verwenden. Ich werde auf
meine Plattform klicken und dann hier
ein neues Skript hinzufügen hier
ein neues Skript Ich mache weiter und füge
einfach das Fahrzeugskript ein. Ich nenne diese Plattformen. Wir werden zur Plattform wechseln. Instanziieren Sie für die
Plattforminstanz selbst bei Kind Ich warte, ich warte,
sehen Sie, hier wird das
Problem ins Spiel kommen Mal sehen, wir gehen 1-2 und
fügen drei hinzu Wir werden sehen, wie das funktioniert. Dann werden wir das
von einem Spawnfahrzeug
auf eine Spawn-Plattform umstellen auf eine Spawn-Plattform Diese hier wird
unsere Plattformszene mit der Log-Szene sein unsere Plattformszene mit der Log-Szene Beim nächsten Mal geht
es wieder darum,
mach weiter und
ziehe einfach mein Skript nach oben und hänge es an alle meine Plattformen
an. Und zwei ist meine Log-Szene, drei ist die Log-Plattform. Und dann werden 45 mein sein. Ordnung, also wenn wir diese Plattformen jetzt
loswerden, verschiebe meinen Spieler so, dass
er unten damit das C oben sitzen kann. Mal sehen, ob die funktionieren. Ja, geh den ganzen Weg
rüber, da sind meine Schildkröten. Ja, es sieht so aus, als müssten wir diese Wartezeiten
ändern. Das wird
es
für unseren Spieler extrem einfach machen , es
einfach rüber zu schaffen. Aus diesem Grund wollten wir ein anderes Skript als
unser Truck
verwenden , weil
wir völlig andere
Wartezeiten für die Plattformen benötigen werden. In Ordnung, also
versuchen wir es mit plus zehn. Das gibt uns eine
Variation von 11,12 Sekunden. Oh, warum bin ich
zwischen diese Autos geraten? 11,12 Sekunden könnten in diesem Fall ein zu
kleiner Abstand sein. An dieser Stelle wollen wir nur
sehen, was hier am besten passt, vielleicht versuchen wir es mit 5.6 Ich springe den ganzen Weg rüber und wir werden sehen, wie dieser
Spread aussieht Aber an diesem Punkt passen
Sie einfach Ihre Zahlen an
, um zu sehen, was für Ihre Plattformen gut aussieht und was
für Ihre
Lkw gut aussieht Ich möchte nur sichergehen, dass
diese nicht die ganze
Zeit
vollständig
konsistent sind und es nicht so aussieht, als ob
sie es sind, was großartig ist Alternativ, wenn Sie
sie ein bisschen mehr fest codieren oder sie
zu einem Unterschied machen möchten, kommen Sie
speziell hierher
und warten Sie hier oben. Und wir machen es zu einem
Float und nicht zu einem Float. Alternativ
könntest du es
hier oben machen und diese
Zeile komplett löschen. Wenn Sie
einen bestimmten Betrag haben wollten, wollten
Sie die
Kontrolle darüber haben, wie
lange Sie
pro Responder genau gewartet Sie können es auf diese Weise machen, aber ich werde hier mit
dieser Randomisierung fortfahren Weißt du was, ich
werde da zehn Mal hingehen. Ich glaube, das reicht dafür. Denn jetzt
haben wir unsere Responder, wir haben unsere Plattformen Alles scheint in Betrieb zu sein .
Wir könnten es rüber
schaffen. Ich schätze, als Nächstes können
wir unseren Sieg erringen, unseren kleinen Sieg da oben wenn wir in
die richtige Zone springen. Mal sehen,
gefallen mir diese Zahlen? Und wir sind ins
Wasser gesprungen, wir sind gestorben. Fantastisch Ich glaube, diese
Zahlen gefallen mir zumindest vorerst. In Ordnung, das ist es. Wir sind fertig mit unserer
Plattformschaukel und damit, sie zu fahren. Als nächstes decken wir den
Bereich ab, in dem wir in
unsere Windzone springen und dort in
unserem kleinen Hausfrosch laichen In Ordnung, wir sehen
uns im nächsten.
11. Der Win Space: Ordnung, für die Windzone kannst
du sehen, dass ich hier eine neue Szene
habe. Und das ist nur ein
Bereich zwei D mit einer Kollisionsform und rechts zwei D, der nur meinen
Hausfrosch hier als Textur hat. Es ist standardmäßig ausgeschaltet oder sichtbar
ist deaktiviert. Das kannst du tun, indem du hier auf
den kleinen Augapfel klickst. Wind Space hat sowohl ein Drehbuch
als auch ein vom Körper eingegebenes Signal, das mit ihm verbunden ist.
Für das Drehbuch werden
wir
lediglich Body Wine auf true setzen Windzone ist eine neue Variable , die dem Körper des Spielers
hinzugefügt wurde. Der aktuelle Status wird auf den Körperstatus
gesetzt. Wenn wir hier einen neuen
Status hinzugefügt haben, haben
wir jetzt einen lebenden Toten. Und wenn wir dann nur noch unser Sprite zwei D bekommen, die Eigenschaft visible
bekommen, sie auf
unserem Player auf true
setzen, um Probleme zu vermeiden
und einen kleinen Bug zu beheben Ich habe genau hier gezogen,
LF, der aktuelle Status ist
gleich dem Zustand tot Ich habe unser Gewicht,
unser Gewicht von 1 Sekunde,
hierher gelegt und es aus
der Respawn-Funktion geholt , es war
früher hier oben Ich habe es einfach
rausgezogen und es
da oben in unseren Das sollte alles sein, was
wir jetzt tun müssen. Wir können in unseren
Rücken zu unserer Hauptszene gehen und unsere
Windzone importieren, unseren Windraum. Wir haben es einfach da drin gebissen. In jeden unserer kleinen Steckplätze. Möglicherweise müssen Sie einige
Tests durchführen, um sicherzustellen , dass Ihr Frosch ihn
nicht vorzeitig berührt, um
den Wind auszulösen Hier habe ich meins, alle meine
Bereiche abdeckt Wenn Sie
Kollisionszonen und all
diese Debug-Bereiche überprüfen möchten , gehen wir einfach zum Debug-Menü
oben Und du wirst
die Möglichkeit haben,
sichtbare Kollisionsformen anzuzeigen . Wenn
du das tust, wirst
du sehen, dass wir
hier all
unsere kleinen Kollisionsfelder für alles sehen können hier all
unsere kleinen Kollisionsfelder für Da haben wir's. Falls du es
versehentlich auslöst oder vielleicht
doch, aktiviere es Schau es dir selbst an. Sie werden sehen, wenn wir uns auf den Weg nach oben
machen, sollten
wir noch ein Logbuch haben. Da ist es. können wir unsere
Windmeldung auslösen , dass wir nicht tot Da unten können wir unsere
Windmeldung auslösen, dass wir nicht tot auf unserer
Konsole
ausgedruckt wurden. Wenn unser Zustand
unser aktueller Zustand ist,
Staat gewinnt, reagieren wir und setzen dann die
Windzone wieder auf Stürze zurück. Jetzt verwenden wir auch Windzone. Unten in unserer Zellen-ID haben wir hier eine weitere Bedingung hinzugefügt. Wenn ID gleich drei ist
und die Plattform falsch ist, wenn wir auf dem
Wasser sind, sind wir nicht auf der Plattform und unsere
Windzone ist nicht wahr. Oder du kannst sagen,
dass
Windzone gleich False ist, das wäre eine andere
Schreibweise. Dann können wir den Tod nennen. Wenn wir nicht in der Windzone sind, sind
wir nicht auf der Plattform
und wir sind auf dem Wasser. Dann töten wir unseren Frosch. Andernfalls sollte unser
Windstatus
ausgelöst werden und wir können einfach reagieren, ohne unseren Spieler zu
töten Ordnung. Der
Windpark ist dort sehr einfach,
sehr einfach zu machen. Nun, ob du
den Frosch hier aktiviert lässt, die ganze Zeit liegt bei dir. Wenn Sie möchten, könnten Sie
reinkommen und einen Timer-Knoten hinzufügen. Sie könnten hier reinkommen und
einen Timer hinzufügen und ihn dann auf,
ich weiß nicht, wir
sagen 5 Sekunden einstellen . Dann können wir reinkommen, oder besser gesagt,
wir können ihr Timeout-Signal bei
Timeout mit unserem
Windraum verbinden ,
wir setzen unser Sprite
Two D sichtbar auf False Gleich nachdem wir es auf wahr gestellt
haben, können wir mit der Zeit beginnen Wir können den Timer starten lassen. Wenn wir das so machen würden, was an Ihnen liegt, würde hier ein bisschen
Design ins Spiel kommen. Wie authentisch
willst du und wie individuell möchtest
du dein
Spiel gestalten usw. Also meine Schlösser und das
fängt an zu spawnen , also kann ich hier reinspringen Wir warten darauf, rüberzugehen. Wenn wir den Frosch von Tim er hier benutzen, wird
unser kleiner Hausfrosch vor dem Wind auftauchen. Dann nach ein paar Sekunden, und er wird verschwinden. Also siehst du es da oben, und
da ist es, es verschwindet. Wenn du so verschwinden wolltest , würdest
du es so machen. Wir können diesen
Timer einfach zu Ihrem Windbereich hinzufügen. Stellen Sie ihn im Inspektor so ein,
wie lang er sein soll. Starten Sie den Timer, nachdem Sie das Sprite so
eingestellt haben, dass es
sichtbar ist , wenn das
Timer abgelaufen ist. Stellen Sie es auf „Fallen In Ordnung, das
reicht für unseren Windraum. Und wir müssen nur einen Blick
auf unser Heads-Up-Display
oder unser HUD oder Gooey werfen
und uns überlegen, wie wir
ein Punktesystem erstellen Ordnung, das war's, und wir sehen uns
im nächsten Wir sind fast fertig damit uns selbst
einen Frogger-Klon zu
erstellen
12. Speicherleck beheben: In Ordnung, wir werden keine Funktionen
hinzufügen. Wir werden tatsächlich etwas reparieren,
was ein entscheidendes Requisit wäre, besonders in einem größeren Spiel Was wir jetzt haben, ist ein
Speicherleck in unserem Spiel. Wir haben das aus zwei Punkten,
technisch gesehen waren es ungefähr zehn. Aber schauen wir uns das mal an, wenn wir dieses Spiel
spielen
und ich das hier
rausholen werde, dann muss
ich die silbernen Jungs rauswerfen . Sie können sehen, wie alles
aus dem Bildschirm erscheint und sie kommen Schauen Sie sich
nur an, wie die Autos fahren, und die Plattformen
oben werden das Gleiche tun Sie werden weitermachen und sie werden für immer gehen Sie werden niemals aufhören. Dies wird als Speicherleck
bezeichnet. Alles zusammen, ich lasse es da stehen, nur damit wir es besser sehen
können. Aber wenn ich das pausiere und auf
den Remote-Tab hier
oben in unserem Szenenbaum klicke , der nur verfügbar ist, wenn
das Programm läuft. Wir drücken auf Remote und schauen uns all diese Autos
an, nur in einem Spawner, den
es immer noch gibt, obwohl wir wahrscheinlich
die meisten davon nicht benötigen Das Gleiche gilt für all die anderen
Spawner. Unsere Plattform, unsere
Plattform-Spawner sind nicht
schlecht, weil sie eine viel
langsamere Spawnrate haben langsamere Spawnrate Aber sie werden
für immer weitergehen und sie werden niemals
verschwinden Sie werden niemals aus dem Gedächtnis
befreit werden. Irgendwann wirst du
dieses winzige Spiel haben, das 128 GB
RAM beanspruchen
könnte, nur um es weiter zu spielen Es würde lange dauern, aber irgendwann
würde sich alles summieren Lassen Sie uns das Entscheidende beheben, ich glaube, wir nennen es einen Bug. Das ist für uns sehr einfach. Wir müssen nur eine
If-Anweisung in diese beiden
Skripte einfügen . Die Zahlen, die Sie
hier auswählen,
hängen natürlich von Ihrem Projekt ab . Aber nach dem, was ich
getestet habe und auf der Grundlage unserer Fensteransicht, eine Reihe von Zahlen, die
ich hier verwenden werde. Was wir
tun werden, ist, dass ich jetzt in meinem Plattformskript und in dem Prozess hier bin, ich werde nur überprüfen,
ob die globale Position Der Unterschied
zwischen und globalen Position besteht darin, dass wir hier auf unsere Plattform
gehen , das wird
zum Beispiel
unsere lokale Position sein , richtig? Also nur die Eigenschaft Position. Aber wenn wir in unserer
Hauptszene sind, wird
das vor allem anderen für
unsere lokale Position, die wir auf dem Bildschirm sehen
, verantwortlich sein ,
unabhängig davon, wer der Elternteil ist. Wenn wir uns zum Beispiel unseren Raum hier
ansehen, können
wir sehen, dass seine Position unserem Hauptbildschirm hier um
24.45 Uhr ist . Dies wird
eher ein globaler Raum sein ,
wohingegen wir, wenn wir hier hineingehen, unseren Windraum sehen können, unsere lokale Position
hier ist bei 00. Das sind zwei verschiedene Zahlen. Hoffentlich
macht das für Sie Sinn , warum wir hier die
globale Position verwenden. Natürlich wollen wir
die X-Eigenschaft ,
weil sie unsere linke und rechte Seite
kontrollieren wird. Wenn unser X größer als 436 ist, das ungefähr 100 Pixel
außerhalb des Bildschirms auf der rechten Seite,
je nachdem, wo sich
unsere Sponsoren befinden Das gibt immer noch genug
Spielraum, um darüber hinauszugehen. Wenn unsere globale Position
x größer als 4.436 ist oder unsere globale Position x
kleiner als minus 100 ist, bewegen
wir uns ungefähr 100 Pixel vom Bildschirm in linker
und rechter Wenn einer von beiden wahr ist, werden wir uns
nur selbst
befreien Ordnung, jetzt sollten wir
sehen, wie wir unsere Plattformen gestalten, gegenseitig
deaktivieren oder gegenseitig
aus unserem Speicher
löschen Das ist nur eine mögliche Lösung für so
etwas Eine andere Lösung, wenn Sie,
abhängig von Ihrem Spiel, zum Beispiel, wenn Sie so etwas wie eine Bullet-Hell
machen, etwas entscheiden
möchten, das als Objekt-Pooling bezeichnet wird Und wir können in einem zukünftigen Video über
Objektpooling sprechen. Ordnung, also
gehe ich runter zu meinem Platz hier, meinen Fahrzeugen Mal sehen, nach welchem
suchen wir hier in unserem Fahrzeug-Skript. Da haben wir's. Also nicht vor
Ort bei einem Fahrzeug-Skript. Und dasselbe, was
dem Prozess zugewiesen wurde, wird denselben Code
einfügen. Wenn die globale Unterstrichposition größer als 436 oder die globale
Unterstrichposition x ist, ist
es kleiner als die
negative Wenn ich das jetzt durchführe
und wir in der richtigen
Szene sind, unserer Hauptszene hier Ich mache weiter und mache eine kurze
Pause. Baue unseren abgelegenen Baum, wir können uns hier
unsere regulären Spawner ansehen , wo
die Autos stehen werden Hier ist mein Spielfenster
, um das herauszuholen. Wenn ich weitermache und das spielen lasse. Ordnung, hier spawnen
ein paar
Autonetze . Wir können das hier sehen Ich werde das
Fenster einfach nach rechts erweitern. Ich habe da einen Fehler. Ich habe mir wohl stattdessen Gato
geschnappt. Da hast du's. Sie
können sehen, dass sie sich sowohl in der Fernbedienung
als auch visuell dort befinden. Sobald Sie weit genug gegangen sind,
löschen sie sich
tatsächlich vollständig selbst. Jetzt werden alle unsere Objekte
verwaltet und wir können
potenziell nur so viele
oder so viele in unserer Szene
zu einem bestimmten Zeitpunkt haben . Sie können sehen, wie die Plattformen
oben dasselbe tun, dieselben Dinge passieren auf der linken Seite des Bildschirms. Was wir gerade nicht sehen können. Da haben wir es mit
dieser einfachen, technisch gesehen zwei Codezeilen. Wir haben unser Gedächtnis, unser Gedächtnis, ich verlasse gerade meinen
Verstand, Speicherleck. Es ist lustig, weil
wir über
Erinnerung sprechen , aber bitteschön. Damit haben wir
unser Problem mit dem Speicherleck behoben. Ich werde
dir hier ein Problem zeigen. Nicht wirklich ein Problem, aber nur um Ihnen
ein weiteres Beispiel zu zeigen, hier gehen wir zur Plattform. Wenn wir Position anstelle
der globalen Position verwendet
haben, sehen Sie hier
ein Beispiel. Wenn wir einen Blick darauf werfen, werden
Sie sehen, besonders bei den Schildkröten, dass die Schildkröten genau in
diesem Bereich hier
spawnen Alles klar? Schau sie dir an. Sie
kommen rein, wenn wir diese lokale
Position
nutzen, bitte. Sie sehen, sie
verschwinden viel zu früh. Sie kommen kaum auf den Bildschirm
und sie verschwinden. Sie kommen hierher
und sind weg. Deshalb müssen wir die globale Position
nutzen. Deshalb wollte ich Ihnen das nur
etwas
anschaulicher zeigen. Da, nicht redraw Q free, genau wie ich schon sagte, zerstört es
das Objekt
komplett und entfernt
es aus dem Speicher In Ordnung, also los geht's. So können wir den Speicher
reparieren. In Ordnung, als Nächstes gehen wir
zum Punktestand und zum HUD über,
fügen Spielerleben hinzu
und so weiter fügen Spielerleben hinzu
und so
13. Punktesystem: Ordnung, im heutigen Video werden
wir weitermachen
und das Punktesystem hinzufügen. Wie Sie hier sehen können,
sind dies die Regeln, an die wir uns halten. Zehn Punkte für jeden Schritt, 50 Punkte für jedes
Prog, das reinkommt, und 1.000 Punkte für jedes
Mal, wenn wir fünf Procs Das müssen wir berücksichtigen
, wenn wir das tun. Ich beginne mit der
Erstellung eines globalen Skripts, auch bekannt als Singleton
oder Autoload-Skript Dafür klicke ich einfach
mit der rechten Maustaste in mein Dateisystem und
erstelle ein neues Skript Und ich nenne das, ich werde es
einfach halten und global agieren. Um das zu aktivieren, gehen wir
in unsere Projekteinstellungen. Mal sehen, haben wir das gerade
aufgenommen? Tun wir. Wir gehen, es könnte ein
bisschen groß sein. Da haben wir's. Und wir gehen zum Autolite, unserem globalen Skript Es wird standardmäßig den Namen global
haben, du könntest ihn ändern, aber ich verstehe nicht, warum wir ihn hinzufügen
müssen. Und da haben wir's. Jetzt können wir dieses
Skript an einer beliebigen Stelle in
unserem Code verwenden .
Ich denke, hier
werden wir unsere Punktzahl halten. Dort werden
wir unsere Punktzahl halten. Wenn wir das schließen, können
wir jetzt
unser globales Skript öffnen , indem wir
darauf doppelklicken , um
Ihnen ein Beispiel zu geben. Hier können wir runterkommen,
wir können hier eine weitere Funktion
namens print score erstellen. Ich habe
hier oben eine Variable namens Score. Es ist eine Ganzzahl, die
besagt, dass du 50 hast. Der Sinn
dieser Funktion besteht einfach darin, die Schule
so zu drucken, dass sie global ist. Ich könnte hier auf das Drehbuch meines
Spielers eingehen. Ich könnte einfach den Namen
schreiben, den wir für die Zeit hatten, als ich gegangen bin
, der Global
für die Hauptstadt hieß. Dann könnten wir die Funktion verwenden, die wir gerade erstellt haben, Partitur drucken. Wenn wir das dann ausführen, sehen wir die Punktzahl
hier in unserer Ausgabe ausgedruckt. Ein globales Skript
enthält Variablen und Funktionen, die wir in unserem Spiel
ändern und verwenden können, in jedem Skript zu jedem Zeitpunkt. Lass uns einfach weitermachen und
wir können all
das Zeug entfernen und die Punktzahl standardmäßig
auf Null setzen. Wir werden weitermachen
und eine Funktion
namens Update Score haben . Alles, was wir hier tun werden, ist, unsere Punktzahl
auszudrucken. Werden wir in diesem Video auf
dem Bildschirm angezeigt? Jetzt speichern wir die
Anzeige auf dem Bildschirm für den Zeitpunkt, an dem wir anfangen, das HUD zu
verdecken Hier werden wir einfach
weitermachen und die Partitur ausdrucken. Wenn das passiert, verwendet Update Score den neuen Betrag, um den We do Score plus
den
neuen Betrag zu addieren do Score plus
den , den wir tun können Nun, lassen Sie uns zuerst sicherstellen
, dass das Zeug funktioniert. Jedes Mal, wenn
wir springen, bekommen wir zehn Punkte. Alles, was wir tun
müssen, ist, dies in unsere Bewegung und
all unsere Figuren einzubeziehen. Also machen wir ein globales Update,
aktualisieren den Punktestand, weil
wir ihn noch nicht gespeichert haben. Aktualisiere den Punktestand und
gib zehn Punkte ab. Und wir machen weiter und
kopieren das in all unsere Bewegungen und machen
weiter und springen ins Spiel. Und während wir weitermachen, sollten wir sehen ständig
zehn Punkte hinzugefügt werden. Los geht's, 1030, 4050,
6070, 8090, 10110 usw. Das funktioniert also mit all unseren Knöpfen.
Fantastisch. Wir können unsere
Punkte einfach so sammeln. Die Punkte hier sind großartig. Ich habe einfach weitergemacht und die anderen Ausdrucke
losgeworden. Sind sie falsch? Nur
um das zu klären, mache es dir ein bisschen einfacher wir da reinrennen und herumrennen, können
Sie in
unserer Ausgabe sehen, dass
unsere Zahl
jedes Mal steigt, wenn wir uns bewegen. Da haben wir's. Es
funktioniert fantastisch. Jetzt müssen wir auch
verfolgen, wie viele Frösche wir insgesamt Frösche. Klingt nicht nach
dem Betrag, den wir wollen Wir nennen es Kombifrösche. Ich weiß es nicht.
Nennen wir ihn den Multifrosch. Multi Frog, das ist eine
Ganzzahl, beginnt
jedes Mal bei Null , wenn du
zum Multi-Frog etwas hinzufügst. In Ordnung, wir machen
Multi-Frog plus gleich Eins. Ich erinnere mich, dass
wir mit
jeder Fünferkombination 1.000 Punkte bekommen.
Hier gehen wir hin. Multifrosch weniger als fünf. Dann tippe ich einfach hier auf
diese Zeile. Dann machen wir einfach
Punkteplus gleich neuer Summe. wir Punkte plus gleich
1.000 machen , bekommen wir 1.000.
Wenn wir fünf drin haben, ist
das nur möglich, wenn
wir in einen Punktebereich kommen Wir können unsere Mehrfäule nicht
vergrößern, sondern unseren Windraum
gehen und in unseren Körper eindringen Hier werden wir
diese Zahl erhöhen. Wir werden global sein:
Multi-Frosch plus ist gleich eins. Und wir werden es einfach genau da
draufkleben,
in unserem Windraum Dann werden wir
unser Update auch als globalen Update-Punktestand bezeichnen . Und wir werden
50 Punkte bestehen, weil wir einen Frosch drin haben, weil wir
unseren Multi-Frog-Wert erhöhen bevor wir unseren Punktestand aktualisieren. Also aktualisieren wir unseren
Multifrosch um eins. Dann werden wir
im Grunde prüfen, ob das unser fünfter Frosch
ist oder ob das nicht unser fünfter Frosch ist, dann machen wir das. Wir fügen einfach die 50 hinzu. Andernfalls fügen wir 1.000 hinzu
und dann müssen wir Multi Frog tatsächlich wieder
auf Null
setzen , weil das zurückgesetzt werden
muss. Mal sehen, ob das funktioniert. In Ordnung, wir sind
den ganzen Weg hier oben. Lass uns
weitermachen und in die Zone gehen. Wir sind jetzt im Logbuch und warten darauf, dass diese Schildkröten an
kleinen
Schildkröten vorbeikommen, auf dem
Schildkrötenfrosch in den Schildkröten Wir werden also 290 haben. Wir springen hier drauf. Jetzt gehen wir in die Zone, wo wir bis 340 springen
sollten. sind wir auf 350 gestiegen, weil wir uns
gleichzeitig bewegt haben.
Wir müssen uns daran erinnern, dass
wir unsere zehn Punkte bekommen haben. Mach diesen Frosch oder arbeite so. Es ist tatsächlich eine lange
Zeit seit dem Teller vergangen, also bin ich mir da nicht hundertprozentig sicher. Wenn das der Fall ist, können wir
zur Lösung dieses Problems natürlich einfach 40
hinzufügen und dann wird das
plus zehn von unserem Sprung da rein gezählt . Wenn wir weitermachen
und das einspringen würden, würde es
jetzt wie plus
50 aussehen, zu denen ich, wie gesagt, nicht sicher bin, ob es den eigentlichen Sprung
oder das eigentliche Spiel
zählt . Vielleicht ist es etwas, das
wir uns ansehen können. Vielleicht können Sie das einfach
Ihrer persönlichen Entscheidung
überlassen, ob Sie
zulassen wollen, dass Froggy gestorben ist
oder nicht zulassen wollen, dass Froggy gestorben ist Sagte, ich scheine einen
Brad Frog zu haben, los geht's. Scheint ein kleines Problem bekommen
zu haben an eine seltsame Stelle
gesprungen Jetzt geht es meinem kleinen Kittel gut. Jetzt sind wir um 05:50 Uhr,
also bei unserem nächsten Job sind
wir bei 600 Da hast du's. Es liegt an dir, ob du hier 40 oder 50 machen willst
. Was im Grunde darauf ankommt,
ob du das als deine Hauptsache
zählen willst oder nicht , zähle diese Zehn als
deine Hauptsache. Und ich erinnere mich nur daran, dass wir wahrscheinlich
fünf Frösche reinbringen
sollten , um das
tatsächlich zu testen Ich könnte weitermachen und das Video hier
in diesem Teil einfach
vorspulen das Video hier , damit
wir fünf reinbekommen Ordnung, ich habe es
durchgemacht und meinen Loop mehrmals gemacht, fünf Medikamente, und dann sind wir auf 4.800 Punkte gekommen Fantastisch. Scheint
einwandfrei zu funktionieren. Unser Punktesystem funktioniert. Wir haben unser Plus 40 oder 50 bekommen,
je nachdem, wie Sie gesendet haben, ob Sie die zusätzlichen Schritte als
Teil Ihrer 50
zählen oder ob Sie weitere 50 machen
möchten. Darüber hinaus haben wir
unsere zehn Punkte pro Schritt. Hier haben wir jedes Mal unser Plus von 1.000, wenn wir fünf Multifrösche
bekommen Jedes Mal, wenn wir
fünf dieser Frösche retten, unser Punktestand berechnet. Ich schätze, als Nächstes können wir
uns einfach ansehen, wie das
angezeigt wird, und
anfangen, den Kopf hochzuziehen Hugo ist fertig eingerichtet.
14. Spiel-HUD-Score: Ordnung, lasst uns
weitermachen und heute damit beginnen,
das Game Hood für
unser Spiel zu erstellen heute damit beginnen,
das Game Hood für
unser Spiel Wir machen
weiter und zeigen
den Punktestand einfach hier auf unserem Bildschirm an. Dafür bin ich einfach zu meinem No TD
gegangen und habe eine Canvas-Ebene hinzugefügt. Wenn ich hier reinkomme, ist die
Leinwandebene das, wonach
wir suchen,
nicht die Leinwandebene, die auf Leinwand gewachsen ist . Die Leinwandebene wird
im Grunde
alles sein, was unserem Spiel an erster Stelle steht, egal wo
es sich in unserer Szene befindet. Das ist also, wie Sie sich
vorstellen können, der
Ort, an dem all Ihre
heißen Elemente landen. Wenn du
beispielsweise Dark Soles spielst, befinden
sich deine vier Quadranten hier unten links Wenn du zum Beispiel Sky Rim
spielst, deine drei Balken für Gesundheit,
Ausdauer und Mana werden
deine drei Balken für Gesundheit,
Ausdauer und Mana
unten angezeigt, und Damit wir den Punktestand
hier auf meiner Canvas-Ebene machen können
, die ich in
Guy I Stanford Graphical
User Interface umbenannt habe , die ich in
Guy I Stanford Graphical
User Interface umbenannt Guy I Stanford Graphical
User Ich habe weitergemacht und zwei Labels
hinzugefügt, zwei nur normale Labels hier. Und ich habe es Score-Label genannt, es enthält
nur das Wort
Punktzahl und Punktetext , der
nur fünf Nullen hat Jetzt war der Text von
beiden zu groß
für dieses Projekt Bei beiden ging ich
in den Inspektor
runter und das Thema
überschreibt die Bindungsgröße Mein Score Tech hat Größe zehn und das
Score-Etikett hat Größe 12. Jetzt fällt Ihnen vielleicht auf
, dass ich unten
einen zusätzlichen schwarzen Balken habe. Ich ging zu den Projekteinstellungen
und im Anzeigefenster habe ich
meine Viewport-Höhe aktualisiert, 240-256 Da Du kannst es dort sehen. Also habe ich zusätzliche 16 Pixel hinzugefügt,
damit ich das Schwarz
am unteren Rand hinzufügen kann , weil dort unsere Gesundheitsleiste am Ende unten sein wird, oder unsere Lebensleiste
im nächsten Video. Ordnung, sobald wir
unsere beiden Beschriftungen hier auf unserer
Canvas-Ebene für die Partitur haben , können
Sie nicht herausfinden,
wo Sie den Text dafür
ändern Wählen Sie einfach Ihr Label aus
und im
Inspektor oben sehen Sie dort den
Abschnitt für Text Geben Sie die Punktzahl für eine ein und geben fünf Nullen für die andere ein. Das gibt uns eine gute Vorstellung davon viel Speicherplatz
wir benötigen werden Ordnung,
damit das funktioniert,
müssen wir nur noch eine Zeile
zu unserem globalen Skript hier hinzufügen , außerhalb unseres und
unseres LS-Blocks. Außerhalb dieser beiden. Unabhängig davon, wie
viele Punkte wir hinzufügen, benötigen
wir unsere
Punkte-Textbeschriftung. Stellen Sie den Text so ein, dass
unsere Schule tatsächlich angezeigt wird, da wir
aus unserem globalen Skript stammen. Wenn ich das
für einen Moment ausführe und dann einfach posiere, wechsle ich zu Remote
Global is here. Es hat auf nichts
Zugriff. Wir müssen tatsächlich einmal den Baum
hochgehen, um an Wurzel zu
kommen, und dann runter zu unseren zwei D kommen, dann runter zu unserem klebrigen Von dort aus können wir
unseren Punkte-Text abrufen , da wir
rauf und dann runter gehen müssen , können wir
weitermachen und einfach den Knoten abrufen Und denken Sie daran, dass dies
eine Zeichenfolge als Argument benötigt. Und wie Sie sehen können, könnten wir einfach den ganzen Pfad schreiben, nur Roth, in diesem Fall zwei D. Aber selbst dann, da wir
nur bis zu einer Ebene hochgehen, ist
es immer noch schneller, wenn
wir nur zwei Punkte machen nur um eins hochzugehen, und dann
kommen wir runter zu unserem Knoten zwei D. Von dort aus
greifen wir auf unser Y zu, wir bekommen unseren Punktetext,
falls du dich das fragst. Wir folgen nur
dieser weißen Linie von unserer globalen Seite hier, wo
wir diesen Code schreiben. Wir haben unsere zwei Punkte, was dem
Schreiben von Eltern entspricht. Wir gehen also eins bis zur Wurzel hoch. Dann folgen
wir einfach jeder Haltestelle
mit dieser weißen Linie. Wir sehen, dass diese weiße
Linie nach unten geht und dann Punkte sammelt. Keine zwei D, da haben
wir geschrieben. Wir folgen der Linie wieder nach unten, halten an und zeigen auf das Y. Das schreiben
wir für den nächsten Stopp Dann kommen wir runter und
es zeigt endlich
in unseren Punktetext .
Und wir beenden es dort. Wann immer Sie sich in
Delts befinden,
klicken Sie einfach auf den Knoten, nach dem
Sie suchen Folgen Sie einfach dieser
weißen Linie, um Ihren Pfad im Punktetext Richtig, dieses Objekt vom Typ Label, wir werden Zugriff auf
die Texteigenschaft des Objekts erhalten. Lass mich das Spiel einfach
von deinem Bildschirm entfernen. Ich habe einfach rübergeschaut und
gesehen, dass es bedeckt war. Auch hier verwenden wir zwei Punkte.
Genauso wie Get Parent. Das bringt uns
bis zum Wurzelknoten und wir folgen
einfach diesen weißen Linien
, bis Knoten zwei
Punkte runter. D bedeutet Punkte nach unten, dann kommt es auf
Punkte im Punktetext an. Und wir folgen diesem
Pfad hier bis zum Ende. Wir wollen die Texteigenschaft
davon haben und das werden wir festlegen. Wir werden
es auf unsere Punktzahl einstellen. Aber wenn wir das einfach tun, werden
all diese Nullen
verschwinden Wie Sie sehen, können wir
in dieser Hinsicht nicht wirklich viel an der Punktzahl ändern.
Was wir tun werden, ist sie in
eine Zeichenfolge mit STR und
dann zwei Klammern umzuwandeln eine Zeichenfolge mit STR und .
Darin
können wir unsere Punktzahl schreiben Diese Punktzahl wird jetzt wie eine Zeichenfolge und nicht wie eine
Ganzzahl
behandelt Jetzt können wir Pad machen, und wir können es mit Nullen auffüllen Wir geben die Nummer fünf weiter. Wir werden fünf Ziffern haben,
wie wir hier sehen, 12345. Wir werden also diese 50 Steckplätze
haben. Unser Punktestand wird sich ändern, aber auch wenn
dort nur zehn stehen, werden
uns trotzdem
alle fünf dieser Slots visuell
zur Verfügung stehen. Es wird genauso aussehen
wie in einer Spielhalle. Und in einem typischen Punktesystem. Wenn wir das
jetzt spielen , können wir unseren
Punktestand dort oben sehen. Wenn wir hier vorbeischauen, sollten
wir sehen, dass unser Punktestand entsprechend
steigt. Das sind eine Menge Autos da oben. Da haben wir's. Lass uns
das lange verfolgen. Los geht's. Holen wir uns
ein paar Punkte. Reite auf dem Baumstamm, reite auf den
Schildkröten, reite auf dem Baumstamm. Und wir können auf den Schildkröten reiten, dem Baumstamm
reiten und frei nach Hause springen Ordnung, unser Punktesystem
scheint also einwandfrei zu funktionieren Es wird korrekt angezeigt. Es ist fantastisch. Ordnung, das Letzte, was
wir in diesem Moment tun müssen, ist, naja, in diesem Video, nichts. Aber im nächsten Video
werden wir weitermachen und unser Leben so
einrichten , dass
wir ein Leben verlieren, wenn wir sterben. Und das wird
sich visuell auf dem
Bildschirm widerspiegeln , indem gezeigt wird, wie viele
Leben uns tatsächlich noch übrig sind.
15. Spiel-HUD lebt: In Ordnung, lassen Sie uns weitermachen
und jetzt unser Leben hinzufügen. Unser Leben wird hier höchstens
sechs Leben haben. Und wir werden zu
unserer klebrigen Leinwandschicht übergehen. Wir werden einen neuen Knoten hinzufügen,
ich weiß, dass er nicht sichtbar ist Nur 2 Sekunden. Da hast du's. Wir werden nach
dem Wort Textur suchen. Wir suchen nach dem
Textur-Fortschrittsbalken. In Ordnung. Ich werde
meinen in Lives Bar umbenennen. Ich werde
im Inspektor
zum Abschnitt „Texturen“ wechseln zum Abschnitt „Texturen“ , um den Fortschritt
zu überprüfen. Ich gehe über die
Gesundheitsleiste und in diesen Slot. Setze den Maximalwert
im Inspektor erneut auf sechs. Ich werde meinen
aktuellen Wert auf sechs setzen. Jetzt solltest du sie sehen. Ich nehme diesen
kleinen orangefarbenen Griff und ziehe ihn hoch, damit er
nur Platz einnimmt, den wir brauchen. Ich werde
ihn direkt nach
unten in diesen
leeren schwarzen Raum bringen . Die werden wie unser Leben
funktionieren. Sie werden sehen, wenn wir die Werte
6-5
anpassen , wird alles gleichmäßig aufgeteilt, sodass wir leicht feststellen können,
wie viele Leben wir noch haben Die Sechs
wird natürlich
unser Standard sein und wir
werden das jedes Mal anpassen müssen , wenn wir in meiner Welt
sterben Auch hier
wäre Game Manager vielleicht sinnvoller für einen Namen, aber vorerst belassen wir
es dabei Wir werden standardmäßig zu
Leben sechs übergehen. Ich werde
eine weitere Funktion erstellen, Update Lives, Nothing. Und wir werden den gespeicherten
Pfad einschlagen. Statt eines Punkte-Textes werden
wir Leben
weit bringen und wir werden hier auf
die Werteigenschaft zugreifen , die
wir im Inspektor sehen können. Wir sagen
plus gleicher Betrag. Der Betrag wird ein
Parameter sein, den wir übergeben , der ein
Ende bedeutet, wenn wir ein Leben verlieren Wir werden eine
negative Zahl dazu addieren, wodurch es auf fünf
sinkt. Dies gibt uns auch die
Möglichkeit, in
Zukunft Leben hinzuzufügen , indem wir einfach ein
positives hinzufügen, um ein Leben zu gewinnen. Aber wenn wir das aktualisieren,
müssen wir auch unser Leben auf den neuesten Stand bringen. Das Gleiche plus ist
gleich Betrag. Jetzt können wir zu unserem Spieler gehen und unserem Tod suchen Da ist er beim Tod. Wir müssen auch auf
unser globales Skript zugreifen. Aktualisiere Leben und gib ein
negatives ein. Das sollte reichen. Sehr einfache, kleine Sache, die zu
tun ist. Wenn wir jetzt auf dem Bildschirm sterben, sollten
wir ein Leben verlieren und wir sollten sehen, dass unsere
Lebensleiste da unten auf fünf
herunterfällt. Ich muss das hochziehen, weil
ihr da den
Boden nicht sehen könnt. Da hast du's. Mal sehen, ob wir auf fünf
sinken. Da haben wir's. Wir haben uns getrennt. Da bin ich auf den hinteren Teil des Autos gestoßen. Ich habe es mir angesehen
und du sammelst nur
Punkte, wenn du bei Frogger
weitermachst Wir verlieren auch ein Leben, wenn wir
ins Wasser gehen. Wir können das auf Wunsch
aktualisieren. Wenn Sie möchten, dass es
etwas genauer ist. Wir
aktualisieren den Punktestand nur, wenn wir links und rechts
drücken.
Dadurch erhalten wir keine Punkte. Das einzige Vorwärtsdrücken wird es
tun, was Sinn macht,
denn das sind eine Menge Punkte, die Sie sehr schnell sammeln könnten
. Wo sind meine Logs? Da sind sie jetzt,
wir reiten auf den Schildkröten. Der Schildkröte wird zum Verhängnis. Ich wollte den Baumstamm holen, aber ich hatte das Gefühl, dass ich ihn verpassen
würde, also blieb ich hier
auf dem Baumstamm springen, und dann springen wir auf
diese Schildkröten und schaffen es frei nach Hause. Auf
diesem Baumstamm sind wir In Ordnung, großartig. Da haben wir's wieder. Wir
können den Aufzug verlieren. Cool. Unser Live-System funktioniert. Es wird visuell auf dem Bildschirm aktualisiert. Wir haben die Möglichkeit,
in Zukunft mehr Leben hinzuzufügen. In Ordnung, ich schätze, das
reicht für diesen Abschnitt. Sofern wir nicht live hinzufügen wollen wenn wir zur Schule kommen, wollen
wir das tun. In Ordnung. Wenn du in der Lage sein willst,
zusätzliche Leben zu gewinnen, wenn du
eine bestimmte Anzahl an Punkten erreichst , werden wir
Folgendes tun. Wir werden in
unserem Update-Punktestand
eine Variable namens
Multiplikator erstellen unserem Update-Punktestand
eine Variable namens
Multiplikator Wir werden hier
einen neuen Check durchführen. Wir sagen Punktzahl geteilt
durch Punktzahl geteilt durch, wir können sagen 10.000, wenn Sie wollen
, wenn unser Multiplikator
größer oder gleich eins ist, dann
werden wir hier unser Leben erweitern Also müssten wir Leben machen,
normalerweise würden wir
sagen, dass plus gleich eins ist. Aber da wir es auf sechs begrenzen wollen
, werden wir
eigentlich sagen
, dass Leben gleich Und wir werden diese
Funktion namens Clamp verwenden. Mit Clamp können
Sie hier drei Argumente angeben. Das erste Argument ist das, was Sie hinzufügen würden,
anstatt dass plus gleich eins ist Unser erstes Argument hier
wird eins sein. Dann
wird das nächste Argument das Minimum und das
Maximum sein , sodass dieser Wert das Minimum
sein kann .
Er könnte Null sein. Unser Leben wird
niemals unter Null fallen. Hier ist die maximale Zahl
, die wir haben können, sechs, also wird es nie eine
höhere Zahl als sechs sein. So funktioniert das Klemmen hier. Wir können Update
Lives mit einem nennen, richtig, also haben
wir noch eine
Plus-Eins , um dem hinzuzufügen, was wir eigentlich einfach innerhalb
unserer Update-Lebensdauer
nach unten bewegen und eine durch eine Halterung
ersetzen können innerhalb
unserer Update-Lebensdauer
nach unten . Dann könnten wir wahrscheinlich
damit davonkommen,
nichts drin zu haben , es
nicht einzurichten. wir
es einfach runter, Update lebt auf E. Dann
werden wir unseren
Multiplikator erhöhen wollen plus gleich eins Und der Grund, warum wir
das tun wollen , ist, dass wir, wenn wir es nicht tun, ständig
ein Leben dazugewinnen werden , weil unser Punktestand
immer teilbar sein wird Sobald wir ein Leben gewonnen haben, werden wir
jedes Mal, wenn
wir umziehen, es weiter gewinnen. Das wollen wir ändern. Wenn wir
alle 10.000 Punkte ein Leben bekommen, dann kommen wir auf
10.000 10.000 mal eins ist
immer noch 10.000, dann das nächste Mal 10.000 mal zwei, wir brauchen 20.000 Punkte,
um ein neues Leben zu bekommen. Und dann sind es
30.040 und so weiter. Wenn wir
das jetzt mit nur dem erledigen würden, könnten wir sehen, ob wir reinlaufen und ein Leben verlieren,
vielleicht sogar zwei vielleicht sogar Jetzt müssen wir uns auf den Weg
machen und den ganzen Verkehr
durchqueren. Wir müssen uns auf den
Weg zu diesem Baumstamm machen. Dann können wir noch einmal auf dem
Schildkröten-Logbuch reiten, zu den Schildkröten
wechseln,
warten, bis das Logbuch hier oben ist, und wenn unsere Punktzahl hoch genug
wäre, sollten
wir 10.000 bekommen was ich
jetzt, wo ich darüber nachdenke, nicht geändert habe Das ist ein bisschen
enttäuschend, aber wir können das
ganz schnell überprüfen, indem wir einfach
in unseren Windbereich gehen und sagen, hey, wir gewinnen 20.000.
Wenn wir
es jetzt überprüfen würden, um für
alle 10.020 Punkte zu sammeln , sollte
das nichts bringen. Es sollte
uns nur das eine Leben geben,
was in Ordnung ist, weil man niemals 20.001 Hunde bekommen
sollte Wie dem auch sei, Sie sollten höchstens
1.000 auf einmal
bekommen . Was Sie sehen, während wir gehen, bumm, wir sind fast da Wir sollten sehen, dass unser Leben am
niedrigsten ist, plus eins. Da haben wir's. Unser
Leben hat also zugenommen. Also gut, unser
Leben funktioniert jetzt. Ich mache
weiter und setze das wieder auf 40 Punkte zurück. Wir wollen sichergehen, dass
wir das Spiel beenden können. Das wird sein. Ich schätze, innerhalb unserer
weltweiten Aktualisierungs-Leben werden
wir
weitermachen und uns das ansehen. Lassen Sie uns zufällig
einen negativen Wert annehmen. Nein, wird es nicht. Das ist perfekt. Darüber müssen wir uns
keine Sorgen machen. Wir könnten sagen, wenn Leben, müssten wir das
eigentlich nicht schon, weil wir es hier
einrichten. Wir haben vorher nachgesehen. Wir sagen also, wenn Leben weniger als Null sind,
wäre
es eigentlich schon Null. Nehmen wir an, wir haben null Leben
übrig, dann sterben wir, oder? Wir bestehen gerade noch ein
negatives. Wir sagen, wenn unsere
Leben bereits Null sind, dann würden
wir sagen, das Spiel ist vorbei, aber wir laden
die Szene einfach in ein brandneues Spiel um die Szene einfach in ein brandneues Spiel Wenn unser Leben nicht
schon Null ist, dann werden wir hier runter
kommen und unser Leben
abziehen Dafür benutzen wir einfach Get Three Reload Currency und das ist genauso, als ob wir die Szene gerade erst gestartet
hätten Das, wenn wir schreiben unsere Leben nicht zurückgesetzt werden, wahrscheinlich weil
sie nicht
auf Global zurückgesetzt werden. Finden wir es heraus. Schauen wir uns das an und
schauen wir uns an,
wie wir das debuggen,
sagen wir print live und wir werden
sehen, ob das zurückgesetzt Wir werden breit gequetscht. Wir machen uns nie wieder fertig und es setzt sich
ständig von selbst zurück In Ordnung, also
anstatt es fertig zu haben, drucken
wir es hier unten aus. Ich versuche herauszufinden, warum
wir ständig hier sind. Es wird nach zwei zurückgesetzt, wie geht es uns 6-0 In Ordnung Ich bin mir nicht sicher warum, aber
die Klammer scheint den Bruch verursacht zu haben, was daran liegt, dass es nach
dem , was
ich sagen konnte,
keinen wirklichen Grund dafür gibt, dass es von
sechs Leben auf Null hätte springen
sollen sechs Leben auf Null Aber das ist in Ordnung. Ich habe es einfach wieder auf Leben plus gleich Betrag
umgestellt, wenn wir das Spiel starten und
schauen, ob wir nacheinander
Leben
durchspielen oder wieder verlieren können nacheinander
Leben
durchspielen oder wieder verlieren Sobald wir
drei Leben auf eins reduziert haben, gehen wir
hier ins Wasser Wenn wir getroffen werden, haben wir kein Leben mehr. Als Nächstes ist das Spiel vorbei und unser
Spiel wird zurückgesetzt. Da haben wir es, wir haben
einen Reset unseres Spiels. Wir laufen schnell drüber, wir können wieder Leben
verlieren, aber bitteschön.
Wir haben diesen Reset. Wir verlieren jetzt Leben und werden entsprechend auf dem
Bildschirm angezeigt. Wenn unsere Lebenspunkte zu niedrig sind, setzen
wir das
Spiel komplett zurück und beginnen von vorne.
Außerdem gewinnen wir jedes
Mal Leben hinzu, wenn wir 10.000 Münzen erhalten.
16. Timer und Bonus: In Ordnung, lassen wir unseren Tim
Er jetzt unserem Mann auf die Spur kommen. Ich habe hier unten gerade ein anderes
Label hinzugefügt, mit dem Wort Zeit mit Überschreibung, Schriftgröße auf 12. Ich habe dann einen
Textur-Fortschrittsbalken, genau wie wir es
mit unserem Leben hier gemacht haben. Ich habe den Füllmodus so geändert, dass rechts nach links statt
von links nach rechts ist. Ich werde
es hier umbenennen, Tim Bar. Mein Maximalwert 30, mein aktueller Wert 30. Alles andere
ist gleich geblieben. Ich habe Nine Patch
Stretch aktiviert, damit ich diesen Riegel so
ausdehnen
kann, dass er jede Form, Länge und Breite hat, die ich möchte. Und ich benutze einfach den
Timer und den habe ich hier, ich ziehe ihn einfach als Fortschrittsbalken aus
der Fortschrittstextur rein. Da hast du's. Ich
strecke es einfach aus und lege es da hin für
etwas, das gut aussieht. Ich habe auch einen Timer
, den ich hier hinzugefügt habe, mit einem Skript für meinen
Mann und dem
Timeout-Signal hier, das damit verbunden ist. Das ist es, was wir uns hier
ansehen. Was wir jedes Mal tun müssen, dieses Mal oder manchmal.
Standardmäßig ist der Timer auf
1 Sekunde eingestellt, was in Ordnung ist. Das wollen wir. Was
wir tun wollen, wenn wir unsere Zeit oder unseren
Balken bekommen
wollen und wir müssen
eins vom Wert abziehen, wir können einfach weitermachen und
es mit unserem Dollarzeichen abholen Hier hast du es, da
das von
unserem Typ kommt . Wert minus eins ist gleich eins Wenn wir uns das
jetzt ansehen und das ausführen würden , müssten
wir jetzt sehen, dass unser
Timer abläuft. Wunderschön. Das ist
genau das, was wir wollen. Jetzt müssen wir das überprüfen. Wir müssen überprüfen, ob
unser Timerbalkenwert Null erreicht hat. Wenn ja, muss unser
kleiner Frosch leider sterben. So ist es halt,
wenn unser Timer abläuft. Lass uns weitermachen und unseren F-Knoten
holen. Denkt daran,
dass wir hier sind, also müssen wir einen für unseren Knoten
hochgehen, zwei D, dann wieder runter kommen, Spieler. Und wir werden einfach
unsere Todesfunktion darauf aufrufen. Ups. Und das sollte zwei Gleiche
sein, weil es ein Vergleich ist,
wenn wir es durchführen wollen Wenn unsere Zeit abgelaufen ist, sollte
unser kleiner Frosch einfach platzen und wir verlieren ein Leben auf Warte einfach eine
Minute, bis der Timer abläuft. Jetzt, wo dieser Timer
auf 30 Sekunden
läuft, sehe ich, dass meine Plattformen
oben
etwas schneller sein müssen oder zumindest
eine etwas geringere Verzögerung haben läuft, sehe ich, dass meine Plattformen
oben
etwas schneller sein müssen müssen. Ich denke, Geschwindigkeit könnte die bessere Option
sein, als die Verzögerung zu
ändern.
Aber da haben wir's. Ein kleiner Frosch ist gestorben. Und es stirbt ständig,
das ist nicht toll. Wir müssen das tatsächlich zurücksetzen. Sobald es Null erreicht hat
und unser Frosch stirbt, setzen
wir unsere Timer-Leiste Holen wir uns die Timer-Leiste und
setzen ihren Wert wieder auf 30. Wir können eine
brandneue Leiste ausfüllen lassen. Nun, das ist nicht das einzige Mal
, dass es zurückgesetzt werden muss, es muss auch zurückgesetzt werden, wenn
wir das Ziel erreichen Wir werden
weitermachen und den Knoten um eins
hochfahren lassen, unseren Gooey holen und dann unsere Timer-Leiste holen
und den Wert wieder auf 30 setzen Bevor ich das teste, werde
ich hier auf
meine Plattform eingehen Ich werde das auf
32 ändern und die Geschwindigkeit verdoppeln. Das heißt, ich muss zu
meinem Player gehen und das anpassen. Nun ja, wenn wir hier sind,
32 sollte es jetzt
zumindest schneller gehen und ich
hoffe, dass ich
weitermachen kann, ohne etwas zu verpassen. Da sind die Schildkröten. Wir brauchen ein paar Logs. Danke. Loggen. Ich weiß nicht, ob
ich es schaffe. Ich werde es nicht schaffen. Ich werde meinen Frosch verlieren. Auf Wiedersehen für eine Umarmung. Ich wusste es kaum. Siehst du, das wird
ein bisschen schwierig Wird unsere Zeit
zurückgesetzt oder nicht, wenn wir spritzen? Das ist nicht der Fall, also
müssen wir das
auch für unseren Player einstellen auch für unseren Player Wo sterben wir? Da ist unser Tod genau dort. Und wir antworten. Okay, ja, lassen Sie uns das hier noch
einmal näher erläutern. Wir gehen nach oben und kehren
dann zu unserer Timer-Leiste zurück und setzen
den Wert wieder auf 30. Auf diese Weise wird das zurückgesetzt, wenn wir
sterben. Ich glaube, ich werde Que Respawn
ändern, den
Spawner-Value-Platform-Spawn . Ich entferne die Plus Sechs. Mal sehen, wie das jetzt aussieht, da wir völlig neue Zahlen haben. Okay, das sieht gut aus. Vielleicht können wir das jetzt
tatsächlich schaffen. Da haben wir's. Wir haben
es bei unserem Timer-Reset geschafft. Und wenn wir sterben, unser
Timer. Also auch zurücksetzen. Fantastisch. Ich kann sehen dass ich da drinnen noch ein bisschen
Auftrieb brauche. Mein Minimum, ich werde
3 Sekunden machen , nur weil ich ziemlich viele Überschneidungen
gesehen habe,
als ich dort durchgelaufen bin. Aber wir haben gesehen, dass der Timer jetzt einwandfrei
funktioniert. Jetzt hast du es, oder zumindest solltest
du
einen Bonus bekommen , was die Punkte angeht,
je nachdem, wie viel Zeit noch übrig
ist, wenn du Punkte erzielst. Wir werden weitermachen und das auch
umsetzen. Ich muss mich nur
mit dem Multiplikator
reaktivieren mit dem Multiplikator Ich weiß, es ist ein Vielfaches
der Zeit, die noch übrig ist Also gib mir
eine Sekunde. In Ordnung. Es ist das Zehnfache der
verbleibenden Zeit. Mal sehen, wann wir in unseren Windbereich kommen Bevor wir ihn zurücksetzen, müssen
wir den
Punktestand hier noch einmal aktualisieren. Wir werden 40 hinzufügen, aber
dann werden wir auch das
hinzufügen, was hier noch übrig ist. Wir werden sagen,
lassen Sie uns das hier in eine
eigene Variable setzen. Wir nennen es Tortenbonus. Zehn Bonus. Tortenbonus. Natürlich möchte ich es zehnmal auf
diesen Wert schicken ,
bevor wir es zurücksetzen. Jetzt, bei unserem zweiten Update
, stehen wir hier für einen Zeitbonus. In Ordnung, jetzt sollten wir unseren Zeitbonus da drin
haben. Also je schneller
wir da rüber kommen, desto größer ist der Bonus, den
wir bekommen, bis zu einem Maximum plus 300 Punkte. Hypothetisch gesehen, ich meine,
Sie werden
es nicht in 300 oder 30 Sekunden schaffen , weil
es bei 30 beginnt Ich werde es vielleicht gar nicht schaffen. Könnte in der Nähe sein. Ich hab's. Aber du siehst, ich habe
190 Punkte dafür bekommen. In Ordnung, da haben wir's. Wir haben den Timer da drin, genauso wie die Todesfälle,
wenn der Timer abgelaufen ist, und den Punktebonus wenn wir noch Zeit haben oder übrig sind und wir es bis zum Ende schaffen. In Ordnung, das ist es also. Ich denke, das könnte es
sein. Oder Frosch. Ich glaube nicht, dass ich hier etwas
vergesse. Wenn das das Ende von Frog ist,
herzlichen Glückwunsch, du hast es
bis zum Ende geschafft, das ist unglaublich Ich hoffe ihr habt viel gelernt. Wir haben
während dieses Projekts viele Dinge besprochen. Variablen funktionieren mit
vielen verschiedenen Skripten, aber wir haben
dieses Spiel aus den 80ern komplett neu erstellt. Und das Tolle an
diesen alten Spielen ist, dass
sie ein ziemlich
einfaches Konzept haben,
aber vor allem, wenn Sie
neu im Programmieren sind, können Sie viel von diesen Spielen
lernen Ordnung. Pass auf dich auf. Habt einen
schönen Abend und wir
sehen uns nächste Woche. Was? Ich gehe jetzt in eine Woche. Oh Mann, Woche vier
wird lustig. Wir haben da drin eine Menge Dinge
zu besprechen.
17. Frogger Audio: Alles in allem, wir werden zuerst
das Audio hinzufügen. Also das wird
unser Hüpfen zählen, wenn wir
die Hintergrundmusik bewegen und unsere Todesgeräusche In Ordnung für unsere
Hintergrundmusik. Wir können hier einfach zu
unserer Hauptszene gehen. Wählen Sie unseren Stammknoten aus
, der unser Knoten zwei D ist. Fahren Sie fort und drücken Sie das
Plus oder fügen Sie einen neuen Knoten hinzu. Und was wir
hinzufügen werden, ist dieser Audio-Stream-Player hier. Dann gehen wir
in unseren Sound-Ordner, holen uns die Musik drei, ziehen sie hinein und stellen sicher, dass
Sie die automatische Wiedergabe einschalten. Auf diese Weise müssen wir
kein Drehbuch verschwenden und Code
schreiben, um es abzuspielen. Es fängt einfach von selbst an. Nun, Warnung, das könnte beim Starten
etwas laut sein. Wenn Sie hier nur den
Ton für die Musik einstellen möchten, können
Sie die Lautstärke
ändern. D, B hier, je niedriger du es stellst, desto leiser wird es. Null ist die Standardeinstellung für alle Wenn Sie jedoch die Musik
für Ihr gesamtes Audio auf einmal leiser stellen möchten , können
Sie unten auf einen kleinen
Audio-Tab klicken unten auf einen kleinen
Audio-Tab Und hier ist
dein gesamter Audiobus. Wir haben den Master hier Wenn Sie Audioeinstellungen
und Spiele
geändert haben , bevor Sie es bemerken, haben
wir den Master-Slider.
Das ist es, was das hier ist. Wir können die Lautstärke
ändern , wie wir möchten. Wenn Sie
einen anderen Audiobus hinzufügen möchten, können
Sie
Ihre Soundeffekte
und Musik separat anpassen . Wir können hier einfach auf
den Bus hinzufügen klicken. Wir benennen das einfach in
Musik um . Jetzt, wo unser
Audio-Stream-Player ausgewählt ist, werden
Sie es im
Busbereich hier im Inspektor feststellen. Wir haben
hier jetzt ein Musikstück aus dem Drop-down-Menü. Diese Musik wird zuerst durch dieses Audiostück übertragen
und dann wird sie wieder ausgegeben. Sie wird dem Master übergeben, wie Sie es erwarten würden.
Stimmt. Es liegt also an dir,
was du tun willst. Ich mache weiter
und senke meine Musik auf vielleicht 0,6. Ich bin mir nicht sicher. Ich werde
dafür sorgen, dass
ihr das auch hören könnt. Hoffentlich tut das niemandem in den Ohren
weh. Ich drücke auf
Play und finde es heraus. In Ordnung. Also scheint es
leiser zu sein als ich, also gehe ich davon aus,
dass das okay ist Aber wenn du willst, kannst du es
immer etwas weiter senken. Ich glaube, ich nehme hier minus zehn. Jetzt
wird der Rest unseres Sounds tatsächlich auf unserem Player
sein. Weil unser Spieler das getan hat, hat
der Spieler das
Springen unseres Spielers. Das andere
Bedürfnis nach Soundeffekten, unser anderer Tod. Der Plunk, der
Squish und der Hot. Wir gehen
rüber zu unseren Spielern. Gleiche. Wir werden auch einen Audio-Stream-Player
für sie hinzufügen. Wir werden keinen anderen Inspektor
anfassen,
es sei denn, Sie möchten einen Audiobus für
Soundeffekte
hinzufügen und dann
den Bus dort speziell ändern. Das liegt ganz bei Ihnen und ist wiederum
eine persönliche Präferenz. Aber sobald du einen
Audio-Stream-Player zu deiner Spieler-Szene
hinzugefügt hast , können
wir uns mit deinem
Player-Skript befassen. Was wir tun
müssen, ist
den Audiostream einzustellen , indem die Audiodatei
laden
und sie dann tatsächlich abspielen. Was ich tun werde,
ist, zuerst zu
unserer Todesveranstaltung zu gehen , und da wird
ein Ausweis übergeben. D wird
offensichtlich eine Ganzzahl sein , weil wir eine Zwei oder Drei
bekommen werden. Also rufe ich eine
Ganzzahl auf und setze sie standardmäßig auf zwei. Der Grund, warum ich
zwei verwende, ist, wenn wir zu
unserer Kachelkarte zurückkehren und
sie uns ansehen, unsere Straße ist ID zwei. Standardmäßig sollte es unsere
Straße sein. Es sollte ein Quetsch Was ich
hier tun werde, ist, dass unser unser Audio-Stream-Player Stream-Immobilie überall in der Stream-Immobilie streamen Du bist auf unserem Player,
richtig, dem Stream hier. Und wir
setzen ihn gleich und wir rufen Load
offene und geschlossene Klammern Und hier drinnen
wird es der Pfad
zu unserer Datei sein , zwei wird
unser Standard sein, das wird unser Squish sein Also hole ich mir
Squash, Squash. Winken Sie aus unserem
Sounds-Ordner heraus und ziehen Sie ihn dort hinein. Auf diese Weise muss
ich es nicht aufschreiben. der nächsten Zeile sagen
wir, wenn ID gleich 33 ist,
denken Sie daran, unser Wasser zu sein. Wenn wir sterben und
es auf dem Wasser ist, dann werden wir
das Gleiche tun wie in
der vorherigen Leitung
und unseren Strom einstellen. Und lade eine neue Datei ein,
diesmal einen Satz Squash. Wir werden in Plunk laden. Abgesehen von
dieser WF-Anweisung werden wir
nur unseren Stream abspielen Also
sagen wir
Audiostream-Player abspielen, einfach so. Wenn wir jetzt weitermachen und uns auf der Straße zerquetschen, sollten
wir einen Soundeffekt haben Und wenn wir ins
Wasser springen, sollten wir noch einen haben. Okay, vorerst mache ich einfach
weiter und schalte die automatische Wiedergabe der
Musik aus, damit wir zuhören können Wenn wir ins
Wasser springen und von einem Auto angefahren werden. Okay, wir haben auf beiden das gleiche
Audio abgespielt. Nun, das ist ein
bisschen interessant. Warum ist das so? Nun, offenbar wir
für drei Personen keinen Ausweis ab. Es
werden niemals drei sein. Der Grund dafür ist, dass
wir
runtergehen und den Ausweis überprüfen und verkaufen müssen. Wir überprüfen tatsächlich,
ob unser Frosch ertrinkt, das müssen wir in unseren Tod
weitergeben Nun, es ist kein Fehler aufgetreten,
weil wir ihm gesagt
haben, dass, wenn wir nichts
hineingeben,
was standardmäßig der Fall war dass, wenn wir nichts
hineingeben, , aber da wir
speziell eine ID von drei wollen, wenn wir im
Wasser sind, müssen wir
sicherstellen , dass wir sie hier unten in
unserer Funktion zur Überprüfung der Zellen-ID weitergeben unserer Funktion zur Überprüfung der Zellen-ID Wenn wir es jetzt tun würden,
müssten wir unser Plunk im Wasser haben und auf
der Straße
zerquetscht werden Da haben wir's. Wir wissen, ob das einwandfrei
funktioniert. Jetzt müssen
wir nur noch hüpfen. Dafür
wird das einfach oben in
unserer Bewegung sein, wo
wir unseren Audiostream überprüfen
und einstellen können , dass der Stream Audiostream-Players dem
Laden entspricht Und riskieren, dass wir uns unseren
Soundeffekt schnappen und ihn da
reinziehen In der nächsten Zeile können
wir einfach unseren
Audio-Stream-Player abspielen. Wir können das in
jeden Tastendruck hier kopieren. Wenn es ausgefallen ist, können wir das tun. Bum, es ist übrig. Und wenn es jetzt ist, wenn wir es spielen,
sollten wir herumspringen können. Gehen wir in unsere
Hauptszene und versuchen, dass nach unten gedrücktes Wasser
genauso
angezeigt werden kann , wie das Grundwasser, runter, runter, runter,
runter, runter, runter. Fantastisch. Jetzt müssen
wir nur noch die Musik auf unserem
Audio-Stream-Player für die Hauptszene,
Autoplay, wieder einschalten, einfach so wieder
einschalten Wir haben das
Frogger-Spiel komplett mit Audio und
Gameplay Ich wurde dort von der Rückseite des
Autos angefahren. Aber da hast du's. Wir haben Sound hinzugefügt, und jetzt fühlt sich unser Spiel
viel vollständiger an. Es gibt nichts anderes, was
wir hier wirklich tun können. Sie können gerne mehr
hinzufügen. Sie können versuchen, Abholungen hinzuzufügen. Sie können neue Sounds finden
und sie ersetzen. Vielleicht, wenn du
deine eigenen Sprites erstellen und
diese verwenden möchtest , um sie ein wenig zu verändern, macht das etwas
individueller für dich Oder wenn du es
einfach als
dein eigenes kleines
Arcade-Remake behalten willst, ist das auch großartig Aber das reicht für diesen. Passt auf
euch auf und macht euch gut, packt
euch auf den Rücken. Wir haben Frogger abgeschlossen. Ich denke, wir werden nächste Woche
anfangen, über einige
der Unterschiede und
Gemeinsamkeiten zwischen
zwei D und drei D zu sprechen der Unterschiede und
Gemeinsamkeiten zwischen und uns
damit zu befassen