Lerne Spiele zu erstellen, indem du Frogger erstellst | Michael Mcguire | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Lerne Spiele zu erstellen, indem du Frogger erstellst

teacher avatar Michael Mcguire, Author | Programmer

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Frogger-Intro

      0:59

    • 2.

      Kein Setup herunterladen

      3:06

    • 3.

      Was wir machen

      2:01

    • 4.

      Den Hintergrund erstellen

      9:10

    • 5.

      Den Player erstellen

      6:02

    • 6.

      Spielerbewegung

      20:07

    • 7.

      Fahrzeuge erstellen

      25:47

    • 8.

      Tod und Respawn des Spielers

      23:33

    • 9.

      Wassertod

      7:44

    • 10.

      Wasserplattformen

      21:56

    • 11.

      Der Win Space

      6:59

    • 12.

      Speicherleck beheben

      9:56

    • 13.

      Punktesystem

      13:06

    • 14.

      Spiel HUD Score

      8:19

    • 15.

      Spiel HUD lebt

      15:25

    • 16.

      Timer und Bonus

      10:48

    • 17.

      Frogger Audio

      10:28

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

141

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Begib dich auf eine spannende Reise in die Welt der Spieleentwicklung mit unserem umfassenden Skillshare-Kurs „Lerne Spiele zu entwickeln, indem du Frogger mit Godot Engine erstellst.“ Wenn du jemals davon geträumt hast, deine eigenen Videospiele zu entwickeln, ist dieser Kurs dein Tor, um diese Träume in die Realität zu verwandeln.

In diesem praktischen Kurs wirst du tief in die faszinierende Welt der Spieleentwicklung mit der leistungsstarken und benutzerfreundlichen Godot Engine eintauchen. Egal, ob du ein kompletter Anfänger bist oder bereits Erfahrung hast, unsere erfahrenen Trainer führen dich Schritt für Schritt durch den gesamten Spieleentwicklungsprozess und sorgen dafür, dass du dir das Wissen und die Fähigkeiten aneignest, die du brauchst, um deine eigene Version des klassischen Arcade-Spiels Frogger zu erstellen.

Wichtige Highlights:

  1. Einführung in die Godot Engine: Mache dich mit der Godot Engine vertraut, einer vielseitigen Open-Source-Spiele-Engine, und lerne, wie du deine Entwicklungsumgebung einrichtest.

  2. Grundlagen des Spieldesigns: Verstehe die Grundprinzipien des Spieldesigns, einschließlich Gameplay-Mechaniken, Level-Design und Benutzeroberfläche.

  3. Programmieren mit GDScript: Lerne die Grundlagen von GDScript, Godots leicht zu erlernender Skriptsprache, und verwende sie zur Erstellung von Spiellogik, zur Handhabung von Spielereingaben und zur Verwaltung von Spielzuständen.

  4. 2D-Grafik und Animation: Lerne, wie du 2D-Spielfiguren und -objekte, einschließlich des berühmten Frogger-Froschs, sowie Hindernisse und Umgebungen entwirfst und animierst.

  5. Sound und Musik: Tauche ein in die Welt des Audiodesigns und füge Hintergrundmusik, Soundeffekte und Feedback hinzu, um das gesamte Spielerlebnis zu verbessern.

  6. Level Creation: Meistere Level-Design-Techniken, während du herausfordernde und visuell ansprechende Levels für dein Frogger-Spiel erstellst.


    Am Ende dieses Kurses hast du nicht nur dein eigenes von Frogger inspiriertes Spiel erstellt, sondern auch wertvolle Fähigkeiten und Einblicke erworben, die du auf eine Vielzahl von Spieleentwicklungsprojekten anwenden kannst.
    Begleite uns und erwecke deine Träume der Spieleentwicklung mit dem Kurs Learn to Make Games by Making Frogger mit Godot Engine auf Skillshare zum Leben!

Triff deine:n Kursleiter:in

Teacher Profile Image

Michael Mcguire

Author | Programmer

Kursleiter:in
Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

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