Das Godot Bootcamp | Michael Mcguire | Skillshare

Playback-Geschwindigkeit


1.0x


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

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.

      Einführung in den Kurs

      7:47

    • 2.

      Download und Einrichtung

      8:55

    • 3.

      03 Drucken zur Ausgabe hinzugefügter Bilder

      14:53

    • 4.

      04 Variablen

      10:22

    • 5.

      05 Saiten

      12:25

    • 6.

      06 Ganzzahlen und Floats

      10:42

    • 7.

      07 Konstanten und Kommentare

      7:29

    • 8.

      08 Listen

      10:22

    • 9.

      09 Hinzufügen und Entfernen

      10:28

    • 10.

      10 Schieben und Sortieren

      6:58

    • 11.

      11 für Loop

      10:18

    • 12.

      12 Bereich

      5:40

    • 13.

      13 Gleichstellung

      13:50

    • 14.

      14 falls sonst noch Elif

      11:02

    • 15.

      15 Wörterbücher

      16:54

    • 16.

      Eingaben abholen

      17:17

    • 17.

      17 Zeiträume

      8:03

    • 18.

      18 Funktionen und Argumente

      7:59

    • 19.

      19 Funktionsalias

      8:14

    • 20.

      20 Klassen

      12:46

    • 21.

      Was wir machen werden(ausgefülltes Feld)

      2:01

    • 22.

      Erstellen des Storybooks

      8:05

    • 23.

      Erstellen der Schnittstelle

      12:35

    • 24.

      Story auswählen und den Player auffordern

      24:53

    • 25.

      Beenden und erneutes Spielen

      16:07

    • 26.

      Was wir machen werden(ausgefülltes Feld)

      2:01

    • 27.

      Tilemap im Vergleich zu neuer Tilemap-Ebene

      5:30

    • 28.

      Den Hintergrund erstellen

      9:10

    • 29.

      Erstellen des Players

      6:02

    • 30.

      Spielerbewegung

      20:07

    • 31.

      Erstellen der Fahrzeuge

      25:47

    • 32.

      Tod und Wiederaufleben des Spielers

      23:33

    • 33.

      Wassertod

      7:44

    • 34.

      Wasserplattformen

      21:56

    • 35.

      Der Gewinnerbereich

      6:59

    • 36.

      Speicherlecks behoben

      9:56

    • 37.

      Bewertungssystem

      13:06

    • 38.

      Spiel HUD-Punktzahl

      8:19

    • 39.

      Spiel HUD Lives

      15:25

    • 40.

      Timer und Bonus

      10:48

    • 41.

      Frogger-Audio

      10:28

    • 42.

      Umstieg von der Arbeit in 2D auf 3D

      6:03

    • 43.

      Verstehen der Unterschiede zwischen 2D und 3D

      4:12

    • 44.

      Ähnlichkeiten zwischen 2D und 3D

      6:37

    • 45.

      Materialien

      14:48

    • 46.

      Beleuchtung

      17:15

    • 47.

      3D-Ressourcen

      4:33

    • 48.

      Rasterkarten

      15:53

    • 49.

      Erstellen des Players

      7:10

    • 50.

      Spielerbewegung

      8:05

    • 51.

      Fahrzeug erstellen

      20:27

    • 52.

      Tod und Wiederaufleben des Spielers

      11:41

    • 53.

      Wassertod

      7:04

    • 54.

      Wasserplattformen

      25:46

    • 55.

      Speicherlecks beheben

      4:51

    • 56.

      Platz gewinnen

      9:36

    • 57.

      Score-GUI und Timer

      19:37

    • 58.

      Was ist eine API

      4:04

    • 59.

      Verwenden einer API

      5:07

    • 60.

      Skript-Setup

      6:44

    • 61.

      API-Aufrufe durchführen

      15:10

    • 62.

      RapidAPI Python zu GDScript

      19:14

    • 63.

      Was sind WebSockets(gefüllter Raum)

      4:53

    • 64.

      Herstellen einer Verbindung

      14:20

    • 65.

      Senden von Daten mit WebSockets

      7:46

    • 66.

      Was unterscheidet die Desktop-Entwicklung?

      4:32

    • 67.

      Anker

      5:36

    • 68.

      Suchlayout

      10:52

    • 69.

      Ergebnislayout

      8:02

    • 70.

      Durchführen einer Suche

      26:20

    • 71.

      Miniaturansichten, Titel, Genres

      22:42

    • 72.

      AnimePage

      27:52

    • 73.

      Schriftarten

      8:42

    • 74.

      Benutzerdefinierte Motive

      14:53

    • 75.

      Mehrere Fenster

      5:13

    • 76.

      Menüleisten

      18:08

    • 77.

      Was sind Partikel

      3:29

    • 78.

      Erstellen eines 2D-Feuers

      15:50

    • 79.

      Erstellen eines 3D-Feuers

      14:15

    • 80.

      Wie man einen Mechaniker codiert

      3:53

    • 81.

      Schwerkraft und Springen

      10:58

    • 82.

      Speichern und Laden von Dateien

      27:52

    • 83.

      Auslöser und Pedale

      6:35

    • 84.

      Controller-Schwingungen

      3:26

  • --
  • 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.

451

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Willkommen beim Godot Bootcamp, wo Sie sich auf eine umfassende Reise begeben, um die Spieleentwicklung zu meistern und leistungsstarke GUI-basierte Desktop-Software mit der vielseitigen Godot-Spiel-Engine zu erstellen. Ganz gleich, ob Sie Anfänger oder erfahrener Entwickler sind, dieser umfassende Kurs vermittelt Ihnen die Fähigkeiten und Kenntnisse, die Sie benötigen, um in der Welt der interaktiven Softwareentwicklung herausragend zu sein.

Godot ist eine hoch angesehene Spiele-Engine, die für ihre Flexibilität und robuste Funktionen bekannt ist. In diesem Bootcamp werden Sie tief in die Fähigkeiten von Godot eintauchen und Techniken zur Entwicklung von 2D- und 3D-Spielen kennenlernen. Vom Entwurf fesselnder Gameplay-Mechaniken bis hin zur Implementierung atemberaubender visueller Effekte lernen Sie die Besonderheiten der Spieleentwicklung mit Godot kennen.

Aber das ist noch nicht alles – dieses Bootcamp geht weit über die Spieleentwicklung hinaus. Wir werden uns auch mit GUI-basierten Desktop-Software befassen. Sie erfahren, wie Sie benutzerfreundliche Schnittstellen erstellen, interaktive Anwendungen erstellen und APIs und Websockets für Echtzeitnetzwerke nutzen.

Was dieses Bootcamp auszeichnet, ist sein praxisorientierter und projektorientierter Ansatz. Während des gesamten Kurses werden Sie an Quizfragen, praktischen Projekten und gemeinschaftlichen Gruppenarbeiten teilnehmen, die es Ihnen ermöglichen, Ihr neu erworbenes Wissen anzuwenden und ein Portfolio beeindruckender Projekte zu entwickeln.

Am Ende dieses Bootcamps beherrschen Sie die Programmiersprache GDScript und sind in der Verwendung des umfangreichen Toolsets von Godot vertraut. Ganz gleich, ob Sie Indie-Spiele erstellen, eine Karriere in der Spieleentwicklung anstreben oder intuitive Desktop-Anwendungen erstellen möchten, das Godot Bootcamp ermöglicht es Ihnen, Ihre Ideen in die Realität umzusetzen.

Was du lernen wirst:

  • Die Godot-Spiel-Engine und deren Funktionen für die Spieleentwicklung nutzen

  • Tauche ein in GDScript, Godots intuitive Skriptsprache, um Spielmechaniken und Interaktionen zu entwickeln

  • Erstellen Sie mithilfe von Sprite-Manipulationen, Animationen und Kollisionserkennung fesselnde 2D-Spiele

  • Entdecken Sie die Welt der 3D-Spieleentwicklung, einschließlich der Erstellung von Szenen, Beleuchtung und Charaktersteuerung

  • Entwickeln Sie leistungsstarke GUI-basierte Desktop-Software mit intuitiven Schnittstellen und interaktiven Elementen

  • Nutzung von APIs und Websockets zur Implementierung von Echtzeit-Netzwerkfunktionen

  • Sammeln Sie praktische Erfahrungen durch Quizfragen und Projekte

  • Greifen Sie auf eine Fülle von Ressourcen, Tutorials und eine unterstützende Community von Mitschülern zu


Ganz gleich, ob Sie ein leidenschaftlicher Gamer, aufstrebender Entwickler oder Technik-Enthusiast sind, das Godot Bootcamp vermittelt Ihnen das Wissen und die Fähigkeiten, die Sie benötigen, um im dynamischen Bereich der Spieleentwicklung und GUI-basierten Softwareentwicklung herausragend zu sein.

Melden Sie sich jetzt an und begeben Sie sich auf eine aufregende Reise, um ein kompetenter Godot-Entwickler zu werden!


* Frogger-Assets sind an die Projektseite angehängt
** Jede Version nach Godot 4.0 sollte funktionieren.

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. Einführung in den Kurs: Hallo und willkommen im Got to Boot Camp. Ich bin Mike Maguire und werde während des gesamten Kurses Ihr Lehrer sein In unserem ersten Video hier gehen wir auf alles ein, was wir in diesem Kurs behandeln werden. Dabei geht es hauptsächlich um die Spieleentwicklung innerhalb der GoTo-Game-Engine Wir werden uns jedoch auch mit der Softwareentwicklung befassen , bei Sie Ihre eigenen Desktop-Anwendungen erstellen Dinge wie APIs und Websites konzentrieren und dafür sorgen, dass alles miteinander kommuniziert Und all diese Dinge können jederzeit zurückgespielt und innerhalb der Spiele selbst verwendet werden , sodass wir am Ende des Tages immer noch alles als Teil der Spieleentwicklung betrachten können Ende des Tages immer noch alles als Teil der Spieleentwicklung betrachten Werfen wir einen Blick auf den Überblick über die Goto-Game-Engine Nun, Goto ist eine leistungsstarke und vielseitige Spiele-Engine, die eine Vielzahl von Funktionen und Tools bietet eine Vielzahl von Funktionen und , die für die Spieleentwicklung sehr nützlich sind Ein Beispiel dafür ist zum Beispiel die Stoffphysik Nehmen wir an, du möchtest einem Charakter einen Umhang machen. In Goto könnten Sie das in etwa einer Minute einrichten, wohingegen es bei anderen Engines viel länger dauern würde, es bei anderen Engines viel länger dauern würde bis die Stoffphysik und das Ganze funktionieren Das ist also ein Vorteil, den wir hätten, wenn wir ein Drei-D-Spiel entwickeln würden , das Dinge wie Umhänge, Umhänge und alles andere beinhaltet, für das Stoffphysik erforderlich Es handelt sich um eine Open-Source-Engine, was bedeutet, dass sie hervorragend zu verwenden ist und über eine große Entwickler-Community verfügt , die zu ihrem Wachstum beiträgt Nun, ich betone den kostenlosen Teil weil einige Leute sagen, dass Unity kostenlos ist, und zumindest zum jetzigen Zeitpunkt ist es nicht kostenlos. Es gibt eine persönliche Version , die Sie bis zu einem bestimmten Punkt nutzen dürfen , sobald Sie einen bestimmten Umsatz erzielt haben oder wenn Sie bestimmte Funktionen möchten, müssen Sie dann bezahlen. Ich würde Unity also nicht als komplett kostenlos betrachten, andere Engines, die die Leute in Betracht ziehen, wie etwa Unreal Sie nehmen einen Teil Ihrer Tantiemen in Anspruch, also zahlen Sie zwar nicht im Voraus, aber auf lange Und dann haben wir andere Engines wie GameMaker, die, glaube ich , jetzt auf Abonnementbasis sind GOTO ist also von Anfang bis Ende völlig kostenlos. Sie müssen nie für etwas bezahlen. GOTO unterstützt auch die Entwicklung von Zwei-D - und Drei-D-Spielen Dadurch eignet es sich natürlich für eine Vielzahl von Projekten Es wird Sie nicht in Ihren Möglichkeiten einschränken oder die Dinge extrem erschweren, zum Beispiel wieder, bei GameMaker handelt es sich um eine TD-Engine Und wenn du drei D machen willst, wäre es eine große Nervensäge , ihn dazu zu zwingen , denn dafür ist es nicht GoTo ist sowohl für TD als auch für Three D gedacht, Sie werden also keine Schmerzen haben , wenn es darum geht Sie müssen sich nur Gedanken darüber machen nehme an, Sie müssen sich nur Gedanken darüber machen, wie Sie Ihre Spiele erstellen Ordnung. Schauen wir uns nun die Vorteile der Verwendung von Gato Lassen Sie uns nun einige der wichtigsten Vorteile der Verwendung von Goto für Ihre Spieleentwicklungsprojekte untersuchen wichtigsten Vorteile der Verwendung von Goto für Ihre Spieleentwicklungsprojekte GoTo verfügt über eine benutzerfreundliche Oberfläche, die es auch Anfängern leicht macht , zu navigieren und mit ihr zu arbeiten Es bietet einen visuellen Editor , mit dem Sie Spielszenen erstellen und Objekte manipulieren und Ihre Spielelogik einrichten können, ohne viel Code schreiben zu müssen Und hier kommt GD Script ins Spiel, wo es sehr anfängerfreundlich und ziemlich einfach zu erlernen ist. Das knotenbasierte System von Goto vereinfacht die Erstellung und Organisation all Ihrer Spielobjekte macht es dadurch äußerst intuitiv und effizient Schauen wir uns die Gatto-Communities und Ressourcen an. Gatos-Community ist lebendig und unterstützt Entwickler aus der ganzen Welt, die ihr Wissen und ihre Erfahrungen teilen Es gibt verschiedene Online-Foren, Websites und Social-Media-Gruppen in denen Sie sich mit anderen Gato-Benutzern verbinden, Fragen stellen und sich inspirieren lassen können , Fragen stellen und sich inspirieren Eine dieser wichtigsten befindet sich auf der Gato-Website selbst. Es gibt ein Forum speziell für Leute, in denen sie Fragen stellen und Hilfe bei allem erhalten können, bei dem sie nicht weiterkommen, egal ob es sich um eine Anfängerfrage oder etwas Fortgeschritteneres Darüber hinaus bietet Gato umfangreiche Dokumentationen und Tutorials, die derzeit fast überall verfügbar sind . So können Sie leicht Antworten auf Fragen finden, nach denen Sie suchen , und die Ihnen beim Erlernen neuer Techniken helfen Nun, was genau wirst du in diesem Kurs lernen? In diesem Kurs behandeln wir eine Vielzahl von Themen, die Ihnen helfen sollen, sich mit der Goto-Engine vertraut zu machen, um Anwendungen zu erstellen Sie lernen die Programmiersprache GD Script kennen, die für die Entwicklung von Spielmechaniken und Interaktionen unverzichtbar ist und unsere wichtigste Skriptsprache sein wird Der Grund, warum wir GD Script einem Programm wie C Sharp vorziehen werden, ist, dass GD Script derzeit eine bessere Unterstützung bietet, obwohl C Sharp auch ziemlich gut wird, was ist, dass GD Script derzeit eine bessere Unterstützung bietet, obwohl C Sharp auch ziemlich gut wird die Unterstützung angeht Aber GDScript hat auch glaube ich, ein besseres Verständnis für die Engine-API selbst, und es ist auch für Anfänger viel einfacher, sich auch für Anfänger viel einfacher damit vertraut zu machen und damit zu beginnen Wir werden uns sowohl mit der Entwicklung von Zwei-D- als auch mit Drei-D-Spielen befassen, einschließlich Natürlich werden wir uns mit Neuerungen, Kollisionserkennung, der Arbeit mit Partikeln und vielem mehr Kollisionserkennung, befassen Sie sammeln auch Erfahrung in der Erstellung einer Desktop-Software auf Basis von Goey oder einer grafischen Benutzeroberfläche mithilfe von Goto und lernen, APIs zu nutzen und Verwendung von Web-Sockets für Netzwerke in Echtzeit zu integrieren In Ordnung. Herzlichen Glückwunsch zum Abschluss der Einführung die Goto-Game-Engine im nächsten Video Wir werden uns mit GD-Skript, der Skriptsprache, die wir in Goto verwenden werden, befassen der Skriptsprache, die wir in Goto verwenden werden und uns mit etwas Code vertraut machen Denken Sie daran, dass die Gatto-Community immer da ist, um Sie zu unterstützen, und ich bin hier, um Sie bei jedem Schritt zu begleiten Lassen Sie uns gemeinsam in die spannende Welt der Spieleentwicklung eintauchen gemeinsam in die spannende Welt der Spieleentwicklung 2. Download und Einrichtung: Willkommen zukünftiger Entwickler. Wenn wir Dinge mit der Goto-Engine entwickeln wollen , entweder Videospiele oder Desktop-Software, brauchen wir als Erstes die Goto-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 Gato von der offiziellen Website hier herunterladen Gato von der offiziellen Website hier Gehen Sie einfach zu Goto Engine.org, wie wir es hier sehen, genau hier auf dem Bildschirm. Und sobald Sie hier sind, sehen Sie den Download-Bereich oben auf unserem Bildschirm Neben zwei Download-Schaltflächen in der Mitte haben wir das LTS, das ist Three Point X und das neueste, das ist 4.1 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 jedoch diese 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. In Ordnung, das ist also die stabile Version 4.1, die gerade herausgekommen ist. Sie können also entweder auf die Schaltfläche „Neueste Version herunterladen“ oder oben auf die Registerkarte „Herunterladen“ Beide bringen Sie hier zu diesem Bildschirm. Ordnung, also um weiterzumachen und das herunterzuladen, werden wir alles brauchen, da wir die GD-Skriptprogrammiersprache verwenden werden. Alles, was wir brauchen, ist die Standardversion hier mit dem blauen Knopf. 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 aufrufen , das für die Verwendung erforderlich ist, sowie vorzugsweise externe Programme, in sowie vorzugsweise die Sie Ihren Code schreiben können Und es sind einfach eine Menge zusätzlicher Dinge, die wir nicht benötigen, wenn wir diesen Kurs absolvieren Wenn Sie es also von der Website herunterladen möchten, können Sie dort für 4.1 in der Standardversion einfach auf die Goto-Engine-Schaltfläche klicken dort für 4.1 in der Standardversion einfach auf die Nun, es gibt eine zweite Möglichkeit , das zu bekommen, und das wäre von Steam Sie können zu Steam kommen und es von dort herunterladen, wenn Sie möchten. Und das wird uns standardmäßig die Standardversion geben . In der Steam-Version ist die.net-Version nicht verfügbar. Sie müssen sich jedoch keine Sorgen machen, dass es zu Verwechslungen kommt, wenn Sie es von Steam herunterladen Ordnung, wenn Sie es also von Steam beziehen, können Sie einfach auf die Play-Taste klicken Oder wenn Sie es von der Website beziehen, erhalten Sie eine Zip-Datei, und alles, was Sie tun müssen, ist sie einfach zu extrahieren und Sie können einfach weitermachen und die Anwendung ausführen Ordnung. Wenn Sie weitermachen und es ausführen, wird Ihnen ein Bildschirm angezeigt, wie Sie ihn hier sehen. Und alles, was wir tun werden, ist natürlich, dass Sie all diese Projekte und Dinge nicht auf Ihrer Seite haben werden. Aber alles, was wir tun werden, ist, hier einfach auf die Schaltfläche „Neues Projekt“ zu klicken. Und das sollte dir ein neues Fenster geben , das genauso erscheint, wie du es hier siehst. Und alles, was Sie tun müssen, ist zu entscheiden , wo Sie das Projekt im Laufe des Kurses platzieren möchten, indem Sie auf Durchsuchen klicken, entscheiden, wo Sie das Projekt klicken, entscheiden platzieren möchten, und ihm einen Namen geben Dafür nenne ich das einfach Boots Bootcamp Zu diesem Zweck gehe ich zurück und nenne es dann Goto Boot Camp, und ich werde einfach auf Ordner erstellen klicken, weil es sich hier in einem leeren Ordner befinden muss Und da hast du's. Wir sehen, dass wir einen schönen kleinen grünen Scheck hier einen schönen kleinen grünen Scheck haben, der anzeigt, dass alles in Ordnung ist. Wir haben dann drei Rendermodi: Forward Plus, Mobile und Kompatibilität. Die Kompatibilität wird als OpenGL verwendet. Wie Sie anhand der hier aufgeführten Punkte sehen können, hat jede Version ihre eigenen Vor- und Nachteile In den meisten Fällen werden Sie jedoch mit Board Plus arbeiten. Es sei denn, Sie tun etwas Sie erstellen eine mobile Version oder so, dann sollten Sie hier natürlich die mobile Option verwenden. Und wenn Sie an einer Version arbeiten, die im Internet Ihres Tools oder Ihrer alten Hardware bereitgestellt werden soll , dann würden Sie Kompatibilität verwenden. Ich mache einfach weiter und lasse „Weiter “ und hier ausgewählt, und wir können einfach auf Erstellen und Bearbeiten klicken, und schon wird das Projekt erstellt und geöffnet Das wird also nur einen Moment dauern. In Ordnung. Sie werden dann hier mit dem folgenden Bildschirm begrüßt, und wir sind jetzt im Motor und bereit uns an die Arbeit zu machen. Um Ihnen nun einen kurzen Überblick zu geben, unten links haben wir unten links das Gallesystem, in dem all unsere Biles, Skripte, Spielressourcen usw. gespeichert werden hier auf der linken Seite weitermachen, haben wir den Hier würden wir, nun ja, die visuelle Darstellung unserer Projekte visuell ausarbeiten nun ja, die visuelle Darstellung unserer Projekte Hier ist ein Import-Tab. Wenn Sie also aus irgendeinem Grund ein Objekt erneut importieren müssen , können Sie dies von dort aus tun Wenn wir auf die rechte Seite gehen, haben wir den Inspektor, was sehr wichtig sein wird Wir werden während des gesamten Kurses ziemlich viel da drin sein. Wir haben den Knotenbereich , der es uns ermöglicht, einige eingebaute Signale miteinander zu verbinden, und wir haben eine Historie, die wir noch einmal durchgehen können. Oben drüber haben wir ein paar Knöpfe. Wir haben hier einen Play-Button, und dient dazu, das Projekt auszuführen. Dadurch wird die Standardszene durchgespielt , als ob sie durch Ausführen der ausführbaren Datei geöffnet durch Ausführen der ausführbaren Datei nachdem das Spiel exportiert wurde. In den meisten Fällen werden Sie sehen, dass ich hier die Option Aktuelle Szene ausführen“ wähle, hier die Option „Aktuelle Szene ausführen“ wähle, und dann wird die aktuelle Szene ausgeführt, die ich ausgewählt habe, anstatt das gesamte Projekt auszuführen. In der Mitte befindet sich zum Beispiel diese Registerkarte mit der Aufschrift „Leer“. Wenn ich hier etwas gebaut habe auf die aktuelle Run-Szene geklickt habe, wird das, was in diesem Tab läuft, ausgeführt , unabhängig davon, auf was meine anderen Einstellungen eingestellt sind. In der Mitte werden Sie das sehen, wo wir unsere zwei D oder drei D oder Skripte haben , und die Asset-Bibliothek, in der Sie hineinkommen können und vielleicht Tools oder neue Ergänzungen zur Engine finden , Dinge wie solche, die Ihnen in Zukunft helfen oder Ihr Leben ein wenig einfacher machen könnten . Je nachdem, was Sie gerade tun, also denken Sie daran, dass die Asset-Bibliothek sehr hilfreich, sehr nützlich sein kann. Und natürlich können Sie sie jederzeit verwenden, um sich den Code anzusehen und zu versuchen, daraus zu lernen. In Ordnung? Wir haben die Engine heruntergeladen. Wir haben es am Laufen. Ich würde sagen, wir haben es installiert, aber es ist nicht wirklich installiert, oder? Wir haben es einfach irgendwie entpackt und geöffnet. Und wir haben ein neues Projekt erstellt und sind bereit, und sind bereit diese Sprache von GD Script kennenzulernen 3. 03 Drucken bis zur Ausgabe hinzugefügter Bilder: Ordnung. Nun, da wir unser Projekt erstellt haben, um Ihnen hier einen kurzen Überblick über die Benutzeroberfläche zu geben. Auf der linken Seite haben wir standardmäßig die Szenenhierarchie. Das sind also unsere Szenen und wie die aktuelle Szene oder Ebene aussieht, wie Sie sie sich ansehen könnten, so wie Sie sie sich ansehen könnten, wenn Sie Spiele entwickeln, und darunter haben wir unser Dateisystem, und das ist unsere Ordnerstruktur und all die Dateien, die wir in unserem Projekt haben. Hier werden wir also sehen, dass unsere gespeicherten Szenen, unsere Skripte, alle Texturen oder anderen Ressourcen , die wir in unserem Projekt haben , die wir in unserem Projekt haben, hier unten angezeigt werden. Ganz rechts haben wir den Inspektor, und hier werden wir die Eigenschaften der einzelnen Elemente in unserer Szene sehen . Ganz unten haben wir unseren Shader-Editor. Wir haben unsere Animations-Timeline, unseren Audio-Bus, um etwas zu mischen Wir haben unseren Debugger, um alle Fehler zu beheben, die wir benötigen, und wir haben unsere Ausgabekonsole , die wir uns ansehen können, und wir werden in diesem Kurs sehr nützlich Und natürlich, genau in der Mitte, haben wir unser großes Und standardmäßig können Sie sehen, dass wir den Bereich mit drei D platzieren Und an der Spitze werden wir einfach zu zwei D übergehen , weil das alles ist, was wir dafür brauchen. Wenn wir einfach herauszoomen, werden Sie dieses blaue Feld bemerken. Das entspricht im Wesentlichen der Größe unseres Fensters. Wenn Sie das nun ändern möchten, können Sie einfach zu den Projekteinstellungen gehen . Und das wird nicht abgeholt, so sieht es aus. Mal sehen, ob ich das einschalten kann. Da haben wir's. Also alles, was wir hier tun werden, wenn Sie die Größe Ihres Fensters dort ändern wollen , gehen wir einfach runter und sehen uns Anzeige und Fenster und Breite und Höhe des gehen wir einfach runter und sehen uns Anzeige und Fenster und Breite und Darstellungsfensters Da ist, was du ändern kannst. Und du siehst, hier gibt es nicht viele Einstellungen, aber wenn wir zu weit fortgeschritten sind, bekommen wir viel mehr Optionen, die du dir ansehen kannst, wie zum Beispiel eine hohe Bildwiederholfrequenz, und es sieht so aus, als ob hier die hohe DPI aktiviert ist. Ich weiß, dass es einen Energiesparmodus mit hoher DPI gibt. Es gibt hier also einige Optionen , die Sie sich ansehen können. Aber im Moment brauchen wir die erweiterten Einstellungen nicht wirklich. Ich wollte dich nur auf die Breite und Höhe hier hinweisen . Ich mache weiter und ändere meine Zahl einfach auf 12 80 mal 720, nur um eine schöne runde und normale Zahl zu bekommen , und das Fenster ist völlig in Ordnung Wir müssen nicht mit dem Minimieren beginnen, wir müssen nicht mit dem Maximieren beginnen Und am Anfang wird es sich nicht einmal lohnen, wirklich darauf zu achten. Für den ersten guten Teil davon. Aber da haben wir's. Ich werde einen Wert von 12 80 mal 720 einstellen. Und wenn Sie darauf einstellen, werden Sie vielleicht feststellen, dass sich das blaue Rechteck ändert. Vielleicht nicht. Und das liegt nur daran, dass es sich nur um eine wirklich kleine, winzige Änderung handelt. Aber ja, alles innerhalb dieses blauen Rechtecks wird auf Ihrem Bildschirm angezeigt. Um uns den Einstieg zu erleichtern, mache ich einfach weiter und wähle in der Szene auf der linken Seite die Benutzeroberfläche aus, und das gibt uns standardmäßig einen Kontrollknoten. Wenn wir wollten, könnten wir auf einen anderen Knoten klicken und all die verschiedenen Dinge sehen , die wir hinzufügen können, und hier einfach die Steuerung auswählen. Wir können alle Benutzeroberflächenknoten sehen , die der Steuerung innewohnen. Es steuert Anker, Abstand, Anpassung, Position und Größe im Verhältnis zum übergeordneten Element Im Allgemeinen können wir jedoch feststellen, dass die Steuerung für eine Benutzeroberfläche verwendet wird Und das werden wir hier feststellen: Alles, was mit der Benutzeroberfläche zu tun , wird grün gefärbt sein. Ordnung, also wählen wir das aus und klicken dort auf Erstellen oder klicken auf die Schaltfläche für die Benutzeroberfläche. In jedem Fall werden Sie zu demselben Bildschirm oder demselben Ergebnis gelangen. Und damit haben wir eine Szene, zu der wir unser Skript hinzufügen können, sodass wir tatsächlich mit dem Code beginnen können , eine Szene , die wir abspielen können, damit wir sehen können, wie unser Code ausgeführt wird, und eine Szene, die wir speichern müssen. Ehrlich gesagt, also werde ich weitermachen und Kontrollpunkt C TSCM, das ist in Ordnung. Mach einfach weiter und speichere es dort. Und ich füge mein erstes Drehbuch hinzu. Jetzt nenne ich das Drucken , weil wir hier zunächst einmal darauf eingehen werden. Drucken. Die Sprache ist im GD-Skript, erweiterte Steuerung, Vorlagen sind nicht standardmäßig aktiviert. Wir könnten einfach leer wählen, weil wir sowieso alles darin löschen werden , also lassen wir das Objekt leer und erstellen. Ordnung, alles, was wir hier oben sehen , ist die erweiterte Kontrolle Und das heißt nur , dass das aus unserer Control-Klasse kommt , und was auch immer erweitert wird, ist die Art von Knoten, an den das Skript angehängt werden muss Da es also an einen Kontrollknoten angehängt ist, muss es die Kontrolle erweitern. Also geh da einfach ein bisschen runter. Wir werden einen erstellen, wir werden weitermachen und Bunk Underscore eingeben. Bereit? Am Ende habe ich eine Kühlbox reingeschmissen. Drücken Sie die Eingabetaste und geben Sie einfach das Wort Pass ein. Jetzt können wir den Fehler beheben , der dort auftritt. Aber das, was wir gerade hier eingegeben haben, ist nur ein Stück Code , der entfernt wurde, weil wir ein leeres Skript erstellt haben Und ich kann Ihnen das auch hier zeigen. Wenn Sie es also andersherum machen, lösche ich das Skript und entnehme es der Steuerung. Und wenn ich wieder ein Skript hinzufüge, können Sie einfach auf die Folie Steuerung klicken und oben auf die Skriptschaltfläche klicken oder mit der rechten Maustaste auf Steuerung klicken, und Sie sollten in der Lage sein, es hinzuzufügen. Und ich merke, dass das dort nicht erscheint. Das ist in Ordnung. Du kannst wissen, was gut ist, weil du es gut kannst, du siehst es auf deiner Seite. Aber wenn wir einen Node-Dolon als Standard wählen würden, die Vorlage, wenn sie an unser Skript angehängt , erinnere ich mich hoffentlich daran und ich werde ein Bild hier auf den Bildschirm stellen , falls ihr etwas verwirrt seid. Sie auf Erstellen klicken, wird Ihnen dieser Bildschirm hier angezeigt, und alles, was wir getan haben als wir einen leeren erstellt haben, ist, dass wir das alles gelöscht haben und diesen Abschnitt einfach erneut eingegeben Das ist alles, was wir getan haben. Der Grund, warum wir diesen Unterstrich hier verwenden werden, ist dass alles innerhalb dieses Blocks hier, was im Moment nur das Wort Pass ist, ausgeführt wird , sobald das Steuerelement hier die Szene betritt, was von Anfang an bereits Teil der Szene ist Es wird also ausgeführt, sobald wir auf die Play-Taste drücken. Und was Sie hier lernen werden, ist, dass wir die verschiedenen Möglichkeiten kennenlernen werden die verschiedenen Möglichkeiten kennenlernen , wie wir es tatsächlich auf der AR Console ausdrucken können. Und warum möchtest du das vielleicht tun? Nun, Sie können das verwenden, um sich selbst einige Informationen zu geben. Sie können dies verwenden, um zu versuchen, einige kleine Fehler zu debuggen Und was noch wichtiger ist: Dinge, die Sie hier ausdrucken, können tatsächlich in Ihre Logs aufgenommen werden Also deine Logs, wenn du in der Vergangenheit schon einmal Probleme mit einem Spiel oder einer Software hattest und auf einem Formular gepostet hast, wirst du vielleicht feststellen, dass die Leute dich bitten, dein Logbuch zu posten. Nun, das ist es , wonach sie fragen. Also lass uns weitermachen und uns darauf einlassen. Und die gängigste oder einfachste Art , wie wir das Wort eingeben, drucken, öffnen und schließen ein Paar Klammern, und zwischen diesen Klammern können wir ein Paar doppelte Anführungszeichen oder einfache Anführungszeichen verwenden spielt keine Rolle, aber womit auch immer es anfängt, es muss enden Wenn wir hier einfache Anführungszeichen haben, können Sie das Wort nicht eingeben, wie Sie es dort sehen, weil wir ein Problem haben dem das T nicht enthalten ist, und im Grunde hört es hier bei diesem Apostroph auf, dem einfachen Anführungszeichen, und dann geht es nach dem weiter. Also in diesem Fall, wenn wir so etwas drin haben wollen, müssten wir doppelte Anführungszeichen setzen für den Anfang und den Anfang, tippen Sie das nicht richtig ein. Sie können also beide verwenden, aber je nachdem, was Sie schreiben, kann es Sie einschränken Also das Erste, was wir hier eintippen werden, ist Hello World. Nun, das ist ein Grundpfeiler beim Erlernen einer Programmiersprache, die wir auf der Konsole Hello World ausdrucken Es ist also so etwas wie ein Übergangsritus. Es ist etwas, das jeder tut, wenn er eine Sprache zum ersten Mal erlebt. Alles klar. Also kannst du hierher kommen und entweder den Play-Button hier oben drücken. Mit dem kleinen Klöppel, und das wird die aktuelle Szene abspielen Oder Sie können diesen Play-Button hier oben drücken. Ich sage Run Project. Und wenn Sie auf „Projekt ausführen“ klicken, wird ein Bildschirm angezeigt, auf dem Sie Ihre Hauptszene auswählen In diesem Fall verwenden wir die Szene, die wir bereits haben Sie können also einfach auf die Option Aktuelle auswählen klicken und sie wird ausgeführt. Sie werden feststellen, dass sich ein Fenster öffnet. Hoffentlich ohne Probleme. Und Sie werden unten in der Konsole hier unten sehen , dass wir Hello World ausgedruckt haben. Wir haben also bereits gelernt , wie man auf der Konsole ausdruckt. also zumindest Sie haben jetzt also zumindest Ihre erste Bewerbung. Es ist keine sehr spannende Anwendung, aber es ist etwas, das Sie erstellt haben und das funktioniert. Wenn wir in diesem Kurs drucken, dann ist das wahrscheinlich die Methode, die ich verwenden werde, aber es gibt noch ein paar andere Dinge, die es wert sind , hier erwähnt zu werden. Und eines davon ist das Drucken mit zwei Ts. Und was das im Grunde bewirken wird, ist, dass ein Tab zwischen Objekten platziert wird . Wenn uns das gefällt und wir unsere Objekte durch ein Komma trennen und dann weitermachen und das abspielen, werden Sie in der Ausgabe sehen, dass das jetzt Leerzeichen für Tabulatorzeichen zwischen unseren Wörtern ist Wenn wir zwei verschiedene Objekte wie dieses haben, können wir das am Ende drucken, ein T und ein S, und das wird einfach ein Leerzeichen zwischen jedem Objekt einfügen , genau wie am Anfang, wo wir Hello World als ein Stück hatten Hello World als ein Stück Jetzt haben wir auch Drucker mit TWORs und das ist eigentlich, ich nenne es Drucker, aber es ist eher ein Druckfehler Und wenn wir das ausführen, werden Sie feststellen , dass das in unserer Konsole tatsächlich rot erscheint und dort ein kleiner roter Das können wir also verwenden, wenn wir einen Fehler in der Konsole anzeigen möchten einen Fehler in der Konsole Es gibt etwas , das wir sehen können. Und da es rot und der Rest unseres Textes weiß ist, können wir sofort darauf zugreifen. Und damit haben wir hier nur noch eine letzte Option, und das ist Print Raw. Wenn wir das tun, werden Sie hier in der Konsolenausgabe nichts sehen . Aber was das macht, ist, dass das tatsächlich im Konsolenfenster ausgedruckt wird ausgedruckt , das hinter den Kulissen läuft und trotzdem in unseren Logs landen sollte. Das sollte für das Drucken reichen, da wir all diese Druckmethoden hier anwenden können. Also nochmal, wir haben Druck, wie wir ihn hier sehen. Wir haben zwei Ts gedruckt. Bum. Ist da. Und beachten Sie, dass Sie kein Leerzeichen hinter dem Komma haben müssen, aber es sieht einfach besser aus. Es ist irgendwie etwas Standardmäßiges, was die Leute am Ende tun. Aber ich gehe, wir haben Fingerabdrücke mit einem S. Und los geht's. Mach weiter und tippe Bett ein. Was haben wir sonst noch? Wir haben einen Drucker, der Ihre eigenen Fehler ausdruckt. Und wir hatten Rohdruck. Es gibt also natürlich all die verschiedenen Möglichkeiten, wie wir auf der Konsole drucken können , abzüglich von Print Raw, was für uns nur nützlich wäre , wenn wir zu unserem Log gehen würden. Aber da haben wir's. Es gibt all die verschiedenen Möglichkeiten, wie wir drucken können, und das reicht für diese Lektion hier. Und beim nächsten Mal werden wir weitermachen und uns einigen Variablen und/oder Mathematik befassen. 4. 04 Variablen: Ordnung. Und in dieser Lektion werden wir weitermachen und anfangen, über Variablen zu sprechen Und wenn wir Zeit haben, werden wir uns der Mathematik zuwenden. Also Variablen. Was sind sie? Nun, sie sind etwas, das wir verwenden können , um jedes beliebige Datenelement darzustellen. Also, wie wir es zuvor hatten, als wir ein Datenelement hatten, das gesetzt war und ein Paar von Anführungszeichen unterschrieben , können wir das auf eine Variable setzen , was zum Beispiel sehr nützlich wäre, hatte, können wir das auf eine Variable setzen, was zum Beispiel sehr nützlich wäre, wenn wir einen wirklich langen Satz hätten und wir einfach ein Wort oder einen Buchstaben eingeben könnten, und das könnte genau dasselbe bedeuten. Eine Variable ist also ein Etikett , das Sie verwenden können, um Daten zu speichern , wie wir sie zuvor mit Hello World gedruckt haben. Lassen Sie uns also weitermachen und das zu einem Skript hinzufügen. Lassen Sie uns also ein wenig Kontrolle schaffen. Ich werde hier ein Skript hinzufügen. Und ich werde weitermachen und das einfach so nennen. Lassen Sie uns weitermachen und wir nennen es Variablen. Und klicken Sie auf Erstellen. Und die einzige, die wir hier brauchen werden , ist natürlich unsere Ready-Funktion. Und ja. Ordnung, also machen wir weiter und setzen einfach den Typ Pass wieder rein Und unsere Variablen werden genau hier oben stehen. Um also eine Variable zu erstellen, müssen wir nur VAR VAR für Variable eingeben. Fügen Sie dort ein Leerzeichen ein und wir können hier tippen, wann immer wir wollen. Und das wird der Name unserer Variablen sein. Also, was wir da reinschreiben werden, nennen wir es eine Begrüßung, richtig? Und das ist zumindest alles , was wir tun müssen. Wir können es später zuweisen , wenn wir wollen. Nun, wir werden es tatsächlich genau hier oben zuweisen. Also werden wir einfach Gleichwertiges sagen. Also sagen wir, Begrüßung ist gleich, und wir können unsere beiden Anführungszeichen setzen, und du kannst Hallo neues W jetzt sagen, wir haben hier einen kleinen Satz, aber wir können ihn überall einfügen, wo wir das Wort Begrüßung hinsetzen Wenn wir also weitermachen und unsere variable Begrüßung ausdrucken und das ausführen, werden Sie hier unten in unserem Outbook sehen, dass wir die Begrüßung erhalten, die wir oben eingegeben haben. Jetzt können Sie hier tippen, wann immer Sie möchten. Du kannst es so lange machen, wie du willst. Und all das wird durch dieses einzigartige Wort repräsentiert Und wenn wir noch weiter gehen wollten, könnten wir es einfach zu einem einzelnen Buchstaben wie G machen und das noch einmal machen Und wie Sie sehen können , steht ein Buchstabe für all das Nun, für die Zwecke einer Variablen, besonders für diejenigen, die hier ganz oben stehen, ist die Verwendung eines solchen Buchstabens eine schreckliche Benennung, weil jemand reinkommt und sich das anschaut. Sie können sehen, dass ist die Verwendung eines solchen Buchstabens eine schreckliche Benennung, weil jemand reinkommt es eine Variable namens G gibt, aber sie es eine Variable namens G gibt, sagt Ihnen nicht, was sie ist. Und eine Variable sollte dir genau sagen, was sie ist, und so wenig Kontext wie möglich haben. Also belassen wir es bei der Begrüßung , denn genau das ist es, was hier vor sich geht. Wir haben eine Begrüßung, die gerade stattfindet, oder? Ich kontrolliere nur, um zu speichern. Jetzt läuft unser erstes Programm und jetzt verwenden wir Variablen. Jetzt wird jede Variable irgendeine Art von Daten haben , die mit ihr verbunden sind. Dies wird normalerweise als Wert bezeichnet. Jetzt spielt es keine Rolle, um welche Art von Daten es sich handelt. Ich kann immer als Wert bezeichnet werden. In unserem Fall ist Begrüßung also der Variablenname und Hello New World ist unser Wert. Einer der Vorteile, die wir dadurch haben, ist, dass es etwas mehr Arbeit bedeutet. Aber nehmen wir an, wir kommen hierher und möchten diesen Satz oder diese Begrüßung in unserem gesamten Code immer und immer wieder verwenden diesen Satz oder diese Begrüßung . Können Sie sich vorstellen , hierher kommen und all diese Dinge bearbeiten zu müssen, wenn Sie eine Änderung an Ihrer Begrüßung vornehmen möchten , dann kommen Sie hierher und bearbeiten Sie alle diese Dinge nacheinander. Nun, mit der Variablen können wir das einfach hier oben machen. Also statt Hallo, neue Welt, sagen wir Hallo und willkommen beim World-Programm. Und weil wir hier eine Variable verwenden, haben wir diese Phrase in all diesen Codezeilen auf einmal geändert . Nun, wie ich schon sagte, wenn wir das eine nach der anderen durchgehen würden, wäre das extrem nervig. Wie ich bereits erwähnt habe, könnten wir das früher oder später festlegen, und wir können es auch überschreiben Also sagen wir Begrüßung, das ist unser Variablenname, und wir sagen gleich, ich sage, das ist mein neuer Wert Wir werden also sehen, dass das obere Gitter das ist, was hier oben steht Aber danach werden wir ändern, was diese Variable bedeutet Wir ändern den Wert und drucken dann unseren neuen Wert aus. Wenn wir weitermachen und das spielen, ist es soweit. Das kannst du dort sehen. Wir können es also oben ändern, was Sie idealerweise tun sollten, wenn Sie können, oder Sie können es zu einem späteren Zeitpunkt weiter unten in Ihrem Skript ändern . Sie können es ändern oder mit etwas völlig anderem unterschreiben . Ordnung. Das gibt uns hier unseren schnellen Überblick über Variablen. Was ich Ihnen hier sagen werde , ist, dass es ein paar Namen gibt, ein paar Regeln, die Sie befolgen sollten , wenn es um die Benennung Ihrer Variablen geht. Nun, bei diesen Regeln handelt es sich normalerweise um einen Variablennamen. Eine Variable kann mit Buchstaben, Zahlen und Unterstrichen benannt werden , wobei im Variablennamen keine Leerzeichen verwendet werden dürfen Die Sprache erlaubt es Ihnen einfach nicht , das zu tun, und Sie können Ihren Variablennamen nicht mit einer Zahl beginnen Das sollten Sie dabei im Hinterkopf behalten. Vermeiden Sie es auch, Schlüsselwörter oder Funktionsnamen zu verwenden Schlüsselwörter oder Funktionsnamen , die bereits in der Sprache existieren, da Sie sonst eine Fehlermeldung erhalten. Und du wirst lernen, wenn du durchgehst , was ein Schlüsselwort ist und was nicht. Und ein Schlüsselwort wäre dort so etwas wie VAR oder variabel. Jetzt fragen Sie sich vielleicht, wann so etwas in eine Situation kommen könnte. Aber was wäre, wenn Sie wollten , dass eine Variable namens pass für das Passwort steht ? Was Sie bei der Erstellung des Skripts gesehen das ist eigentlich schon eine Sache, also können wir das nicht tun. Und zu guter Letzt sollte ein Variablenname kurz, aber gleichzeitig aussagekräftig für die Daten sein , die er enthält Als Beispiel wäre es viel angemessener und akzeptabler, Variable namens Namenslänge zu haben eine als etwas wie die Länge meines Namens Nun, sie vermitteln beide dieselben Informationen, aber einer von ihnen ist viel kürzer, er ist prägnanter und wird insgesamt als besserer Variablenname angesehen Okay, etwas, das ebenfalls erwähnenswert ist, wenn es um unsere Variablenfehler geht, ist zu beachten , dass das alles in Kleinbuchstaben geschrieben ist Wenn wir irgendwas davon zu irgendeinem Zeitpunkt als Großbuchstaben hatten , wie Sie sehen, würden wir von da oben eine Fehlermeldung bekommen, und wir sehen nur, dass die Benotung mit würden wir von da oben eine Fehlermeldung bekommen, und wir sehen nur, dass die Benotung mit einem großen G im aktuellen Gültigkeitsbereich nicht deklariert ist Das heißt also, es sieht so aus, als würden wir versuchen, eine Variable zu verwenden, aber diese Variable existiert nicht wird sich also definitiv lohnen, auf die Großschreibung zu achten, insbesondere auf die Ordnung, das werde ich hier beenden, um einen kurzen Blick auf Variablen zu werfen Und im nächsten werden wir uns einige dieser verschiedenen Datentypen ansehen Wir werden nämlich anfangen, uns Zeichenketten anzusehen. 5. 05 Saiten: In Ordnung. Heute schauen wir uns Saiten an. Zeichenketten sind eine Art von Daten. Also lass uns weitermachen und einsteigen. Ich habe hier nur ein neues Skript erstellt , natürlich für Zeichenketten, die sich speziell auf diese Lektion beziehen Als Programmierer sind wir beide definiert und sammeln einige Daten zum Speichern, wie Sie bereits bei unseren Variablen gesehen haben, und es ist hilfreich, wenn wir die verschiedenen Datentypen klassifizieren können die verschiedenen Datentypen Nun, der Typ, den wir verwendet haben , wurde als Zeichenfolge bezeichnet Und eine Zeichenfolge ist alles, was zwischen zwei Anführungszeichen steht, seien es die doppelten Anführungszeichen oder die einfachen Anführungszeichen, die wir bereits erwähnt haben. Unsere Hello- oder besser gesagt unsere Begrüßungsvariable , die wir verwendet haben, enthielt also unsere Begrüßungsvariable , die wir ein Datenelement, und diese Daten können aufgrund ihres Typs als Zeichenfolge klassifiziert werden. Ordnung. Wenn Sie also eine Variable zuweisen, empfiehlt es sich, auch den Variablentyp zuzuweisen, um den es sich handelt Und wenn wir weitermachen und einen Blick darauf werfen, also wenn wir zurückkommen und einen schlechten Gruß haben, setzen wir das wie zuvor auf Hallo neue Welt Wir können das tatsächlich auf zwei verschiedene Arten festlegen. Wir können also einen Doppelpunkt hinter unseren Variablennamen setzen und den Datentyp eingeben wir suchen, bei dem es sich um eine Zeichenfolge handeln kann. Und Sie können sehen, dass dies eine Möglichkeit ist , sie als Zeichenfolge zu klassifizieren Jetzt können wir alternativ den Walross-Operator verwenden, bei dem einen Doppelpunkt direkt neben dem Gleichheitszeichen handelt Wir haben einen Doppelpunkt, der gleich ist. Und das bedeutet, dass wir es benoten und es diesem Datenelement zuordnen werden diesem Datenelement zuordnen Und als welche Art von Daten das auch sein mag , wir werden sie auch klassifizieren Also klassifizieren wir es sowohl nach diesem Datenelement als auch nach dem Typ dieser Daten und setzen es diesen Daten gleich Es gibt also zwei verschiedene Möglichkeiten, dies zu tun, und es wird dringend empfohlen, dies zu tun Natürlich müssen Sie das in dieser Sprache nicht, aber vor allem bei viel größeren Projekten wird das ein bisschen die Leistung verbessern, da Sie alle Dinge im Voraus klassifizieren können Okay, was wir hier machen können, ist jede Klasse, in diesem Fall, eine Zeichenfolge da, wie Sie gesehen haben, als ich sie abgetippt habe, und sie hat sich zu einer eher grünen Farbe geändert Alles hier hat einen anderen Fall. Also werde ich weitermachen und eine neue Variable erstellen und ihr einen Namen mit einem N geben, weil alle Kleinbuchstaben bereits vergeben sind. Also werde ich sagen, Name ist gleich, ich möchte einfach weitermachen und meinen Namen da eintragen Und denken Sie daran, wir wollen es trotzdem klassifizieren. Also werde ich hier den Walrus-Operator verwenden. Also werde ich sagen, Doppelpunkt ist gleich. Also, für alles gibt es eine Reihe von Methoden. Wenn ich also hier meinen Namen oder meine Variable eintippe und einen Punkt mache, können Sie sehen, dass all diese verschiedenen Dinge auftauchen, sind alles Dinge, die sich auf eine Zeichenfolge beziehen. Und das, was wir uns jetzt genauer ansehen werden, heißt Capitalize Wenn wir reinkommen und einfach Punkt groß schreiben, können wir sehen, dass das Jetzt ist es blau. Wir haben da eine offene und eine geschlossene Klammer drin, und unser Fehler hier ist weg von dem, wo wir dort gewartet haben Wenn wir das nun in eine Print-Anweisung einschließen und abspielen, werden wir innerhalb unserer Ausgabe feststellen, dass hinter jedem Leerzeichen alles Großbuchstaben steht Selbst wenn ich das alles in Kleinbuchstaben mache, wie Sie hier sehen, und wir das erneut ausführen, können Sie sehen, dass es immer noch mit reinkommt Nun ist Großschreibung etwas, das Sie für Dinge wie Namen und Titel verwenden sollten , wie Sie Nun, bei dem Namen großschreiben, sind Sie vielleicht ein wenig zu der Annahme verleitet, dass dadurch alles in Großbuchstaben umgewandelt wird, aber das ist dadurch alles in Großbuchstaben umgewandelt wird, aber Und hier macht Python das irgendwie besser, weil sie es Titel nennen, was meiner Meinung nach passender ist. In diesem Fall. Aber so oder so, Sie stellen fest , dass Großschreibung so funktioniert. Und genauso können wir alles in Großbuchstaben und alles in Kleinbuchstaben schreiben Alles, was wir hier tun müssen, ist, anstatt Großbuchstaben aufzurufen, Sie können sagen, dass wir zwei Unterstriche in Großbuchstaben verwenden können Und wenn wir das ausführen, werden wir alle Hauptstädte haben. Da fehlt eine Klammer, was uns unser Fehler unten gesagt uns unser Fehler unten gesagt Wenn wir jetzt einen Blick darauf werfen, sehen wir, dass alles jetzt in Großbuchstaben geschrieben ist Und wenn wir das andersherum machen würden, also wenn wir nur Großbuchstaben haben also wenn wir nur Großbuchstaben haben und wir mit unseren offenen und geschlossenen Klammern den unteren Wert unterstreichen würden, wäre jetzt alles in Kleinbuchstaben geschrieben So können wir Dinge groß schreiben. Für Dinge wie Titel und Namen. Wir könnten alles in Großbuchstaben schreiben und wir können alles in Kleinbuchstaben umwandeln. Mit Zeichenketten können wir diese nun auch zusammenfügen, und wir können etwas verwenden , das als Platzhalter angesehen Also kommen wir zum Beispiel wieder rein. Es wird Control Z oder Control Z drücken , bis wir hier alle Kleinbuchstaben haben. Nehmen wir zum Beispiel an, wir möchten eine Begrüßung ausdrucken Wir möchten Hallo sagen. Willkommen beim Programmieren, und wir möchten den Namen hier eintragen. Aber wir wollen auch einbauen. Wir wollen, dass der Name dynamisch ist. Wir wissen also möglicherweise nicht, wie der Name lautet , oder wir sollten wissen was er ist, wenn wir an diesem Punkt angelangt sind. Aber am Anfang wissen wir vielleicht nicht, was es ist. Nun, das könnte daran liegen, dass unser Benutzer keine Eingabe gemacht hat, uns nicht gesagt hat, was es ist. Oder es ist einfach etwas, das wir nicht haben und das wir später ändern können. Aber alles, was wir tun werden, ist Prozentzeichen und Kleinbuchstaben S zu , was wir tun werden, ist Prozentzeichen und Kleinbuchstaben S Das ist ein Platzhalter für eine Zeichenfolge, und alles, was wir tun müssen, ist außerhalb der Anführungszeichen, aber innerhalb unserer Klammern machen wir immer noch ein Prozent und wir könnten hier unseren Variablennamen eingeben , der einfach Name mit N ist. Und wenn wir das ausführen, können wir sehen, dass das eingefügt wird wobei dieser Prozentsatz S dem Wert unseres Variablennamens oder dem Wert unserer Variablen entspricht. Das ändert sich jetzt leicht nach oben. Wenn Sie mehrere Variablen verwenden möchten, sagen wir, erstellen Sie eine weitere. Und wir sagen, nennen wir es Job und wir setzen das auf Feature, und wir sagen: Hallo, willkommen bei der Programmierung von Prozent S. Du bist ein Prozent. Nun, Sie denken vielleicht , wir könnten einfach noch einen solchen Job machen, oder Sie denken vielleicht, dass wir da drin einfach noch einen Prozent-Job machen Aber in Wirklichkeit haben wir hier unser Prozentzeichen und verwenden eckige Klammern. Hier drinnen können wir all unsere Variablennamen hier platzieren, getrennt durch ein Komma, in der Reihenfolge, in der sie erscheinen sollen Wenn wir das ausführen, können wir sehen, dass alles ausgefüllt wird, und Sie möchten sicherstellen, dass Sie das falsch eingeben, denn auch hier gilt: Die Reihenfolge, in der Sie es hier eingeben , ist die Reihenfolge, in der der Satz eingefügt wird in der der Satz Und das macht offensichtlich keinen Sinn. Willkommen bei Program Teacher. Es klingt nicht richtig. Also behalte das einfach im Hinterkopf. Ich bedenke auch, dass du mehrere Dinge hier hast, Beispiel ob wir so vorgehen, richtig? Wenn wir zu viele Variablen aufgelistet haben , ist das völlig in Ordnung. Wir werden auf keine Probleme stoßen. Das einzige Mal, dass wir auf ein Problem stoßen werden, ist, wenn Sie nicht genug haben. Dann wird unser Fehler auftreten. Ich nehme an, sie haben hier keine Fehler mehr. Was siehst du? Ich weiß, da wird es einfach nicht als Fehler angezeigt. Was ich erwartet hatte. Aber hier in der Konsole heißt es eher, dass nicht genug Argumente zum Formatieren einer Zeichenfolge oder zum Formatieren einer Zeichenfolge angegeben sind. Es sagt uns also , dass wir hier nicht genug Argumente haben , die eigentlich eher als Fehler hätten erscheinen sollen. Aber Sie können sehen, dass es auftaucht. Bring sie einfach wieder in die richtige Reihenfolge. Wenn Sie also Informationen eingeben , stellen einfach sicher, dass Sie genügend Informationen haben und dass Sie sie in der richtigen Reihenfolge eingeben. Nun, ich sage, alternativ könnten Sie das auch auf andere Weise ausfüllen. Es nimmt jedoch mehr Platz ein, sieht unübersichtlicher aus und ist zu lesen. Und damit sprechen wir im Grunde davon, diese Ergänzung im Grunde davon, diese Ordnung, also so, bumm, nochmal, damit wir so etwas machen können. Und Sie sehen, Sie können es so machen, aber es sah etwas problematischer aus oder sah nicht so gut aus, aber Sie können es auf jeden Fall so machen. Und mir fehlt ein Leerzeichen zwischen dort und hier. Und Sie werden sehen, wenn wir das ausdrucken , erhalten wir dasselbe Ergebnis. Das sind also zwei verschiedene Möglichkeiten, wie Sie Ihre Variablen innerhalb Ihrer Zeichenketten verwenden können. Ordnung. Also das reicht für Saiten. Wir werden weitermachen und uns Nächstes einige andere Variablentypen ansehen. 6. 06 Ganzzahlen und Schweber: In Ordnung. Heute werden wir uns die Zahlen ansehen, wie Sie wahrscheinlich an meinem Drehbuchnamen erkennen können Dort? Jetzt können Zahlen in der Programmierung in zwei verschiedene Kategorien unterteilt werden . Nun, Zahlen in der Programmierung, oder besser gesagt, sie werden beim Programmieren für alle möglichen Dinge verwendet , wie zum Beispiel Punktezählung, verschiedene Arten von Spielmechaniken, Algorithmen, die Visualisierung verschiedener Daten, verschiedene Arten von Spielmechaniken, Algorithmen, die Visualisierung verschiedener Daten, einige der Dinge, die Sie sich angesehen haben, sind Kunst oder Shader, die vielleicht alle nur aus Mathematik stammen Nun, diese Zahlen werden entweder Ganzzahl oder als Gleitkommazahl bezeichnet Nun kann ein Float auch als reelle Zahl bezeichnet werden. Wenn Sie also jemals jemanden über reelle Zahlen sprechen hören, spricht er wahrscheinlich über Fließkommazahlen. Lass uns weitermachen und mit ganzen Zahlen beginnen. Ganzzahlen sind eine ganze Zahl. Nun, ihre Klasse, wenn Sie eine Variable erstellen möchten, sagen wir bInum, wenn Sie dafür eine Variable erstellen möchten, eine Ganzzahl, sie wird einfach auf INT gekürzt Das ist es. Und ein Float wird genauso klassifiziert wie Float in Kleinbuchstaben In Ordnung. Also, wenn Sie eine Variable erstellen wollen, das sind die zwei Möglichkeiten, wie wir das machen, und ich werde hier einfach eine weitere erstellen , nur damit sie hier oben stehen. Du kannst sie dir also immer ansehen. Wenn wir jetzt Dinge ausdrucken, können wir Zahlen ausdrucken. Wenn wir hier also fünf eingeben, das ausdrucken, können wir sehen, dass fünf in unserer Konsole erscheint. Was vielleicht ein bisschen anders ist, ist, dass wir hier tatsächlich rechnen können. Wenn wir also fünf sagen, das zehn, und vielleicht möchten wir da ein Leerzeichen einfügen, es etwas lesbarer zu machen. Schau es dir an. Das wird unsere Gesamtzahl von 15 hier ausdrucken. Wir können also tatsächlich eine Teilmenge der Mathematik innerhalb dieser Berechnungen durchführen. Und das können wir mit Addition machen. Wir können es mit Multiplikation machen. Wir können es mit Subtraktion machen. Und natürlich können wir das mit Division machen , wie Sie dort sehen können Und Sie sehen, Division hat uns in diesem Fall einen Debugger gegeben, und das liegt daran, dass die Integer-Division in einen Dezimalteil umgewandelt wird Das Dezimalherz wird verworfen. Das läuft also nicht ungleichmäßig ab. Das gibt uns tatsächlich einen Float zurück . Und da wir zwei ganze Zahlen dividieren, haben wir das eigentlich nicht verstanden Wir haben also Null bekommen, aber danach haben wir nichts mehr bekommen. Und genau das sagt uns dieser Fehler dort im Debugger Und dazu kommen wir gleich, wenn wir hier auf Floats eingehen Was wir aber auch tun können, ist, dass wir tatsächlich Exponenten und Quadratwurzeln unterstützen Hier können wir zum Beispiel P verwenden, was uns eine Potenzzahl, etwas anderes oder einen Exponenten gibt etwas anderes oder einen Exponenten Wenn wir also zwei sagen, geben wir ein Tama ein. Wie Sie dort sehen, haben wir unsere Basiszahl, gefolgt von unserem Exponenten Wenn wir zwei zur Potenz sagen, nehmen wir fünf. In Ordnung? Wir halten uns an die Regeln der Exponenten, wir haben zwei mal zwei mal zwei mal zwei mal zwei Das würde uns also zwei mal zwei geben, das ist vier mal zwei, das ist acht, mal zwei, das ist 16, mal zwei ist 32. Wenn wir das also ausführen, sollten wir als Ergebnis 32 bekommen. Da haben wir's. Wir sehen also , dass wir Exponenten herausrechnen Ebenso können wir mit SQRT auch die Quadratwurzel von etwas ermitteln, und hier ist die gleiche Situation gegeben Ähnliche Situation. Wir geben eine Nummer weiter. In diesem Fall werden wir mit 32 auskommen. Und wir geben es weiter. Wir werden sehen, welche Zeiten uns 30 geben werden oder ja, welche Zeiten selbst uns 32 geben würden. Was ist die Quadratwurzel davon? Und wir sehen, das gibt uns hier einen Platz. 5.6 5685, 42, 4942, drei, acht. Das ist eine lange Zahl, aber wenn Sie diese Zahl mit sich selbst oder mit sich selbst multiplizieren, erhalten Sie 32. Wie Sie sehen, haben wir ihr eine Ganzzahl gegeben und wir haben einen Fluss zurückbekommen. Und mit der Quadratwurzel ist das mit Exponenten sicherlich möglich , das wird nicht passieren, es sei denn , wir verwenden zunächst eine Gleitkommazahl Und wie Sie sehen können, erwartet die Quadratwurzel eine Gleitkommazahl für das erste Argument Aus diesem Grund wird dies im Wesentlichen in einen Float umgewandelt, was mit 32.0 identisch wäre In diesem Fall. Jetzt können Sie hier jede beliebige Kombination von Mathematik verwenden , also können Sie jede Kombination verwenden all diese zusammen zu verwenden. Nehmen wir zum Beispiel an, wir haben fünf plus drei in Klammern zur Potenz von 7/3 und subtrahieren dann neun Egal, ob wir das Bett benutzen, Fräulein, den Körper, Fräulein PEMDS, auch immer die Reihenfolge der Bedienung beigebracht wurde, wir schauen uns unsere Klammern oder Klammern an Das sind Klammern. Ich weiß nicht, warum manche Stellen Klammern nur Klammern nennen Also in diesem Fall werden wir zuerst hier hineinschauen Dann schauen wir uns die Exponenten an. Also das Erste, was wir machen werden, ist unsere Mathematik hier. Also drei hoch sieben. Und dann müssen wir das tun, was in den Klammern steht. Dann müssen wir es durch drei teilen, richtig? Denn als nächstes kommt unsere Multiplikation und Division. In diesem Fall haben wir nur Division, also werden wir das durch drei teilen Damit haben wir jetzt fünf plus unser Ergebnis hier, und dann subtrahieren wir neun und addieren die Subtraktion könnte zur gleichen Zeit durchgeführt werden , einfach von links nach rechts Und wenn Sie all diese Berechnungen durchführen, erhalten Sie eine Ausgabe von Ordnung. Also ist es egal. Die Reihenfolge, in der wir das gut machen, die Reihenfolge, in der wir es eingeben. Die Reihenfolge wird auf die richtige Art und Weise ausgeführt, und wir können alles kombinieren. Im Grunde können Sie hier alle mathematischen Formeln verwenden. Ordnung, wenn wir uns jetzt die Floats ansehen, habe ich gesagt, dass wir fünf minus zehn Wenn wir also zu dieser Situation zurückkehren, hatten wir fünf minus zehn, hatten wir fünf minus zehn, und wir machen das und wir haben einen kleinen Debugger, tut mir leid, nicht minus Und wir haben einen kleinen Debugger, der sagt: Hey, das ist der Float und alles, was auf Null steht, wird weggelassen Und was ist, wenn wir das wollen? Nun, wir müssen eines davon in einen Float umwandeln. Also müssen wir entweder eine solide Zahl wie diese haben. Wir können 0,0 für eine von ihnen machen. Und du siehst jetzt, dass wir tatsächlich unsere Dezimalzahl bekommen können. Oder was wir tun können, ist Punkt zu machen und sie haben das immer noch? Nein, tun sie nicht. Erscheint nicht. Wir können also einfach das Wort Lot eingeben und eine unserer Zahlen in Klammern setzen das Wort Lot eingeben und eine unserer Zahlen in Klammern Das wird unsere Zehn in einen Float umwandeln. Also können wir es auch so machen. Wenn wir nicht unbedingt wissen , welche Zahl eingegeben wird, falls das Sinn macht. Wenn Sie also einen Benutzer haben, der Zahlen eingibt, wissen Sie nicht unbedingt, ob es sich dabei um eine Ganzzahl oder eine Gleitkommazahl handelt , die der Benutzer eingibt. Also können wir es einfach zu dem Zeitpunkt konvertieren, oder? So würden wir das Problem dort beheben. Wir konvertieren einfach einen von ihnen in einen Flow. Im Code wird nun jede Zahl, die einen Dezimalpunkt hat, als Fluss bezeichnet. Und wir verwenden diesen Begriff in den meisten, wenn nicht allen Programmiersprachen, wie ich bereits erwähnt habe Sie können als reelle Zahl bezeichnet werden. Und alle Sprachen müssen sorgfältig entworfen werden , um diese Dezimalzahlen richtig zu verwalten. Als Benutzer, der nur die Sprache verwendet, müssen Sie sich natürlich keine Gedanken darüber machen, wie die Sprache damit umgeht. Wisse einfach, dass damit umgegangen wird. Und solange die Sprache damit gut zurechtkommt, ist das alles, worüber Sie sich Gedanken machen müssen. Nun, wir können jeden der mathematischen Ausdrücke, die wir uns bereits angesehen haben, auch mit Gleitkommazahlen machen. Sie sind nicht ausschließlich auf ganze Zahlen beschränkt. Und wie Sie bei unserer 5/10 gesehen haben und wir eine Zahl in eine Gleitkommazahl umgewandelt haben, können Sie Ganzzahlen und Gleitkommazahlen gleichzeitig verwenden Gleitkommazahlen gleichzeitig verwenden 7. 07 Konstanten und Kommentare: Ordnung. Bevor wir weitermachen, möchte ich über eine spezielle Variable namens Konstanten sprechen , und ich möchte über Kommentare sprechen Nun, das sind kleine Themen, also werde ich sie einfach beide hier in einem Video behandeln, und das sollte nur ein paar Minuten dauern Eine Konstante unterscheidet sich von einer Variablen. Sie erinnern sich, als ich sagte , dass wir ändern könnten, was eine Variable ist, oder wir können ihren Wert jederzeit ändern. Nun, eine Konstante ist eine spezielle Variable, und diese spezielle Variable kann ihren Wert nicht ändern , wenn sie einmal gesetzt ist. Wenn dieser Wert einmal gesetzt ist, kann er also nie mehr geändert werden, und er ist einfach das, was er ist. Wenn Sie also versuchen, ihn später zu ändern, sollten wir auf einen Fehler stoßen , der in unserem Code erscheint. Und wir können weitermachen und uns das ansehen. Und alles, was wir tun müssen, um eine sogenannte Konstante anstelle einer typischen Variablen zu erstellen , ist, CONST anstelle von VAR Und wie Sie sehen , tauchen da unten einige Popups auf Mach dir darüber keine Sorgen. Aber ständig können wir anrufen. Und wieder, wenn wir es MOM nennen und sehen, wir haben hier immer noch einen Fehler weil es erwartet, dass ich die Konstante auf etwas setze. Wenn ich das also auf fünf setze, Pool in gleich fünf, sieh mal, jetzt ist der Fehler weg, die Konstante wurde gesetzt Nun, das Problem hier ist nicht wirklich ein Problem, aber wenn wir hierher kommen, versuchen wir, meine Zahl auf eine andere Zahl zu setzen, mal sehen, ob der Fehler ist, er ist. mal sehen, ob der Fehler ist, er ist Da ist es. Sie sehen also, dass Sie einer Konstante keinen neuen Wert zuweisen können. Ist das, was da unten auftaucht. Und das sehen wir in Zeile sieben, Ziffer fünf. Eins, zwei, drei, vier, fünf, also am Ende unseres Variablennamens, weil wir versuchen, ihn am Ende des Namens zu setzen , was Sinn macht. So stellst du die Dinge hier ein. Also werden wir uns diesen Fehler einfallen lassen. Sie möchten also nur Dinge mit Zustimmung verwenden, die nicht geändert werden sollen. Wenn Sie beispielsweise ein Spiel oder eine Anwendung erstellen, die über eine Online-Verbindung zwischen Benutzern verfügt, werden Sie dies wahrscheinlich auf eine maximale Anzahl von Benutzern oder eine maximale Anzahl von Spielern für jeden Ihrer Server festlegen Benutzern oder eine maximale Anzahl . Sie möchten Konstanten also nur für Dinge verwenden , die niemals geändert werden Führen Sie die Leitung wieder rein, klären Sie die Probleme . Nun ein Kommentar. Ein Kommentar kann sowohl gut als auch schlecht sein. Sie sind also nicht ausschließlich auf die eine oder andere Weise. Es hängt nur davon ab , wann Sie sie verwenden sollten und wann nicht. Kommentare sind wie kleine Notizen, die Sie sich selbst hinterlassen können, um zu erklären, was dem Code vor sich geht, warum Sie etwas auf in dem Code vor sich geht, warum Sie etwas auf eine bestimmte Weise gemacht haben oder was auch immer Sie sonst noch benötigen. Nun, ein Kommentar ist gerade auf dem Bildschirm, und Sie haben ihn die ganze Zeit gesehen. Kommentare können für alle zukünftigen Entwickler nützlich sein , die sich einen Code ansehen müssen , den jemand anderes gemacht hat, oder vielleicht haben Sie einmal daran gearbeitet und dann kommt jemand anderes, um sich das anzusehen. Und ein Kommentar, wie gesagt, er ist bereits auf dem Bildschirm und hat diesen, Sie kennen ihn vielleicht als Hashtag-Symbol, oder wenn Sie etwas älter sind, kennen Sie ihn vielleicht als Pfundsymbol Und wir richten es direkt darüber , wo wir unseren Unterstrich bereit haben Wir haben diesen Hashtag und er heißt aufgerufen, wenn der Knoten den Szenenbaum zum ersten Mal betritt Nun, da ihm das Hashtag-Symbol vorangestellt ist, handelt es einen Kommentar in dieser In einigen Sprachen müssen Sie jetzt möglicherweise den doppelten Schrägstrich verwenden, um Kommentar zu erstellen Aber im GD-Skript haben wir dort nur unser kleines Hashtag-Symbol Jetzt können Sie dies auch verwenden, um eine Codezeile auszukommentieren. Und der Grund, warum wir das tun können , ist, dass alles , was einen Kommentar enthält, bei der Ausführung des Codes übersprungen wird Also, wenn wir drucken und ausdrucken, denken Sie bitte an die Zahl, wenn wir weitermachen und das versuchen, wird es wie erwartet ausgedruckt Wir können aber auch diesen kleinen Hashtag hier platzieren und er wird auskommentiert. Jetzt beschwert es sich nur , weil wir nach unserer Bereitschaftsfunktion hier nichts mehr haben , also mache ich einfach weiter und lege den Pass wieder hinein Und jetzt siehst du, es wird nicht gedruckt, weil es übersprungen wird. Was ist, wenn wir eine Menge Code haben Vielleicht probieren wir Dinge aus. Es funktioniert nicht. Ich möchte ein paar verschiedene Methoden ausprobieren, aber wir wollen den Versuch, den wir bereits versucht haben, nicht unbedingt loswerden . Nun, wir können tatsächlich große Codeabschnitte mit einer Tastenkombination kommentieren . Und um das zu tun , müssen wir nur alle gewünschten Teile hervorheben Sagen wir, wir wollen das, wir wollen das Ende am Anfang behalten das Ende am Anfang Alles, was wir tun müssen, ist diese Teile zu markieren und K zu drücken. Nun, wenn Sie zurück wollen, das könnte Command K sein Ich weiß, dass sie für viele ihrer Abkürzungen lieber Command statt Control verwenden . Im Allgemeinen funktioniert Control K nicht. Versuchen Sie es mit Befehl K. Aber das ist alles, was wir tun müssen, und das ist das Auskommentieren des gesamten Abschnitts Wenn wir nun alle markieren und erneut Strg K drücken, können wir alle gleichzeitig auskommentieren Und in Ordnung, es gibt also Kommentare und wie sie funktionieren. Später werden wir mehr oder weniger gegen Ende dieses Kurses über einen sauberen Code sprechen . Dort werden wir etwas genauer darauf eingehen, wann Sie Kommentare verwenden sollten und wann nicht Was sind gute Kommentare, was sind schlechte Kommentare. Aber im Moment sind das Kommentare, und das sind Konstanten Ich wollte dich nur darüber informieren. Und wir werden weitermachen. Wir sehen uns im nächsten. 8. 08 Listen: Ordnung. Lass uns weitermachen und uns eine Liste ansehen. Ein anderer Name für diese ist ebenfalls Array ARRAY, aber am häufigsten, zumindest aus meinen Erfahrungen, als Liste bezeichnet . Was ist also eine Liste? Eine Liste ist eine gesammelte Gruppe von Elementen , die in einer bestimmten Reihenfolge angeordnet werden, und Sie können eine Liste erstellen, die einen beliebigen Typ oder eine beliebige Kombination verschiedener Daten enthält beliebigen Typ oder eine beliebige Kombination verschiedener Daten Wir können also ganze Zahlen und Gleitkommazahlen und Zeichenketten einer Liste zusammenfassen Jetzt muss Ihre Liste nicht mehr verwandt sein. Die Elemente müssen nicht miteinander verwandt sein. Es wäre jedoch sinnvoll, wenn sie es wären. Denk darüber nach, ob wir verschiedene Arten von Pizzen hätten, oder? Und für jede dieser verschiedenen Pizzasorten gab es eine Liste mit Belägen Und dann hatten sie noch ein anderes zufälliges Element drauf. Sie hatten, wer es gemacht hat oder wer diesen bestimmten Typ herstellt. Es ist nicht wirklich verwandt, also gibt es für Sie wahrscheinlich einen besseren Weg, mit einer solchen Situation umzugehen. Aber Listen werden durch ihre eckigen Klammern gekennzeichnet, genau wie bei der Verwendung unserer Variablen innerhalb unserer Zeichenketten mit diesen Platzhaltern, eine Liste von eckigen Klammern umgeben ist Und diese eckigen Klammern, jedes Element ist durch ein Komma getrennt Schauen wir uns also eine Liste mit Lebensmitteln an. Lass uns einkaufen gehen. Wir haben unsere eckigen Klammern, und los geht's Oder, weißt du was, lass uns einfach ins Singular gehen. Wir nehmen Tomaten, Essiggurken. Drops und Brötchen. Okay, also wenn wir das ausdrucken würden , wenn wir diese Lebensmittel ausdrucken würden, werden Sie sehen, dass wir da unten eckige Klammern in unserer Ausgabe haben werden da unten eckige Klammern Sie wollen die eckigen Klammern wahrscheinlich nicht. Sie wollen diese Art von Ausgabe wahrscheinlich nicht. Möglicherweise suchen Sie nach einem einzelnen Artikel. Nun, schauen wir uns an, wie wir auf einzelne Artikel aus dieser Liste zugreifen können. Um auf ein Element oder einen Eintrag in der Liste zuzugreifen, müssen wir GD Script nur die Indexposition des Elements mitteilen , nach dem wir suchen. Wenn wir also weitermachen und das ausdrucken, also wenn wir Lebensmittel einkaufen, setzen wir danach ein Paar eckige Klammern und wir können jetzt eine Zahl eingeben Und diese Zahlen werden tatsächlich bei Null beginnen. Obwohl wir also eins, zwei, drei, vier zählen , fängt ein Computer bei Null an. Also Tomate wird Null sein, Essiggurken eins, Ketchup zwei und Brötchen drei Also, wenn wir Lebensmittel auf Null setzen und das ausdrucken, sehen wir, dass wir da Tomaten reinbekommen Wenn wir Reihenshootings machen, holen wir uns Essiggurken. Wenn wir zum Beispiel nicht mehr in der richtigen Reihenfolge sind, weil wir eins, zwei, drei, vier Artikel zählen , dann sagen wir, okay, wir wollen Artikel Nummer vier, bekommen wir einen Fehler, weil vier eigentlich der fünfte Artikel wäre Was wir also wirklich wollen drei, um den letzten Artikel dorthin zu bekommen, oder Brötchen, wenn Sie den falschen Artikel bekommen, stellen Sie einfach sicher den Indexwert und nicht die Artikelnummer wählen. Ich habe einige Leute gesehen, die sich dadurch verwirren ließen oder durch diese Verwechselung verwirrt Da es sich in diesem Fall um Zeichenketten handelt, können wir Dinge verwenden, die wir zuvor gelernt haben. Wir können also zum Beispiel zwei Großbuchstaben verwenden und erhalten einen Großbuchstaben. Hoppla. Los geht's Wie du dort sehen kannst. Wir können auch reduzieren, groß schreiben und all das Mal sehen, wenn wir das hier reinstellen, bekommen wir eine gute Aber du kannst all die normalen Sachen sehen, die wir da drin haben, mit allen Also können wir unsere Groß - oder Kleinschreibung machen. Was ist nun, wenn Sie alles auf einen bestimmten Typ beschränken möchten? Das auf eine Liste wie diese zu setzen, wäre gleichbedeutend damit wäre gleichbedeutend es auf ein Array zu setzen, was in Ordnung ist. Ein Array kann alle verschiedenen Arten von Elementen enthalten. Aber wenn Sie es noch weiter eingrenzen wollen oder vielleicht nur die etwas höhere Leistung herausholen wollen, was wir tun können, wenn wir es als Array deklarieren, geben wir es tatsächlich so Wir geben ihm die eckigen Klammern und im Inneren erklären wir, welcher Typ hier drin sein kann In diesem Fall sind meine also alle Zeichenketten. Also werde ich eine Schnur für das Innere verwenden. Und was das hier bedeutet, das Element mit den eckigen Klammern fest und dann wieder die eckigen Klammern, Theta dicht neben unserer Deklaration eines Arrays, teilt unserem Skript oder Code mit, dass hier nur eine Zeichenfolge enthalten sein kann Wenn wir also eine Zahl eingeben, eine Ganzzahl, erhalten wir eine Fehlermeldung Auf diese Weise können wir unsere Liste auf einen bestimmten Typ eingrenzen und nur das geringfügige Mehr an Leistung, dieses kleine Extra herausholen nur das geringfügige Mehr . Aber auch hier gilt: Wenn Sie nicht an etwas arbeiten , das eher ein großes Projekt ist, werden Sie es wahrscheinlich nicht bemerken. Daher ist es in Ordnung, es einfach ein normales Array zu nennen oder das Walrus zu verwenden Nun, etwas, das ich vorher nicht erwähnt habe , ist, dass wir, wenn wir uns Zeichenketten ansehen, tatsächlich die Länge ermitteln können Wenn wir also Licht bekommen, bekommen wir tatsächlich die Länge dieses Zeichens oder dieses Gegenstands. In diesem Fall nehmen wir also Index drei, das sind Brötchen. Wir wollen die Länge, und das ergibt vier, weil wir vier Zeichen haben, B, U und S. Was nun anders ist, ist eine Zeichenfolge Sie können auch auf den Index einer Zeichenfolge zugreifen. Wenn wir also hierher kommen und nach dem ersten Index dieser Zeichenfolge fragen würden , würden wir den Buchstaben U bekommen , weil jedes Zeichen seinen eigenen Index innerhalb der Zeichenfolge hat. B ist also Null, U ist eins, N ist zwei und S ist drei. Wir greifen also auf das dritte Element zu. Wir gehen in unsere Einkäufe, ermitteln den dritten Indexwert und wir erhalten den dritten Indexwert dieses Artikels Hoffentlich macht das Sinn und ist nicht zu Aber wenn Sie automatisch nur die Vorder- oder Rückseite einer Liste wollen , können wir tatsächlich den Index mit einem negativen Wert ermitteln. Dadurch erhalten wir immer den letzten Eintrag in der Liste , in diesem Fall also Brötchen Aber alternativ können wir das auch auf unserer Einkaufsliste machen, Sie können einfach einen Punkt auf der Vorderseite setzen Du bekommst den ersten Artikel, das wäre Tomate. Oh. Wir brauchen dort noch eine Klammer Wir können Dot Front für Tomato und Dot Bat nennen Wir bekommen den letzten Punkt auf der Liste. Wenn Sie also keinen Index verwenden möchten, können Sie einfach Dot Front oder Dot Back aufrufen , wenn Sie das erste oder letzte Element abrufen möchten. Nun, da es sich in diesem Fall alles um Zeichenketten handelt , denken Sie daran, dass wir sie immer noch innerhalb eines Satzes verwenden können. Also werden wir sagen, Schatz, wir brauchen immer noch welche, und wir verwenden unsere Prozentsätze und damit unseren Spieler und jetzt können wir einfach weitermachen und hier einfügen, was wir brauchen Also können wir weitermachen und den ersten Platzhalter durch Lebensmittel ersetzen und das nennen wir Index Lassen Sie uns mit Index zwei beginnen, und dann können wir Let's go with capitalize aufrufen Wenn wir das jetzt ausdrucken, fehlt mir am Ende eine Klammer Geh. Jetzt können wir unsere Aussage hier sehen. Unser Artikel wird eingefügt und er wird großgeschrieben Wir haben also ein großes K für den Anfang, was gut funktionieren würde wenn wir zum Beispiel eine Liste von Marken hätten Und natürlich können Sie dies tun und auch mehrere Elemente eingeben . Ordnung, das reicht für die Einführung in die Listen hier. werden wir mit einigen weiteren Funktionen fortfahren Im nächsten Video werden wir mit einigen weiteren Funktionen fortfahren. 9. 09 Hinzufügen und Entfernen: Okay, wir werden weiterhin dasselbe Skript für dieses Skript verwenden, da wir immer noch über Listen sprechen, und wir werden einfach darüber sprechen, wie wir hinzufügen können. Wir werden weitermachen und darüber sprechen, wie wir Elemente zu unserer Liste hinzufügen können das zu tun, schauen wir uns das an, und die meisten Listen können sein, dass die meisten Listen, die wir erstellen, dynamisch sind, oder? Das heißt, sie können geändert werden. Wir verwenden Variablen. Wir schaffen es nicht bei einer Konstante. Offensichtlich kann eine Konstante nicht geändert werden. Und die meisten von denen , die wir erstellen werden, werden Zivar sein, was dynamisch sein wird, was bedeutet, dass wir Elemente zu dieser Liste hinzufügen und daraus entfernen können Elemente zu dieser Liste hinzufügen und daraus entfernen Nun könntest du zum Beispiel eine Liste verwenden, um nachzuverfolgen welche Quests ein Spieler in einem Spiel hat Daher müssen Sie in der Lage sein, neue hinzuzufügen und solche zu entfernen, sobald sie abgeschlossen sind In Bezug auf die Daten können wir eine Liste für registrierte Benutzer verwenden. Der einfachste Weg für uns , einer Liste etwas hinzuzufügen, besteht darin, die Methode append aufzurufen Wenn wir also einkaufen gehen, können wir einen Stift so aufrufen, dass Punkt anhängen, und dann wird alles, was wir hier eingeben, zu unserer Liste hinzugefügt Also, wenn wir weitermachen und etwas hinzufügen, lass uns ein paar Pringles nehmen Wir tippen das ein. Lass uns weitermachen und unsere Lebensmittel vorher und nachher ausdrucken Und wir können den Unterschied erkennen, bevor und nachdem es der Liste hinzugefügt wurde Und Sie sehen, ein Stift fügt ein Element zur Liste und fügt es am Ende der Liste hinzu. Es wird also enden oder es wird an das Ende der Liste gesetzt. Jetzt können wir mit einem Stift einfach und schnell Elemente zu einer dynamischen Liste hinzufügen, was fantastisch ist. Und das bedeutet, dass wir auch mit einer leeren Liste beginnen können. Wenn wir also hier reinkommen, werde ich das einfach auskommentieren, damit wir hier mit dem gleichen weitermachen können. Und wir werden das einfach zu einer leeren Liste machen. Wenn wir nun mit diesem Z beginnen, können wir mit etwas Leerem beginnen und etwas hinzufügen. Das wird auch funktionieren. Das ist genauso einfach. Und es ist üblich, eine solche Liste zu erstellen, sodass wir nicht immer wissen, welche Daten wir hinzufügen müssen, bis das Programm ausgeführt wird. Manchmal haben wir eine festgelegte Liste von Optionen, und manchmal werden wir sie vielleicht in Zukunft erweitern. Es ist also immer gut zu wissen, wie wir etwas hinzufügen können. Was ist nun, wenn wir etwas in eine Liste einfügen wollen? Wir wollen es nicht am Ende hinzufügen, aber wir wollen es einfügen. Nun, anstatt ein Element zu einer Liste hinzuzufügen, müssen wir möglicherweise ein Element in eine Liste einfügen. Und um ein Element in eine Liste einzufügen , sind zwei Parameter erforderlich. Und das bedeutet nur zwei Dinge, die wir weitergeben. Wenn wir also einen Stift machen und hier ein Objekt hineinlegen, wäre das ein Parameter. Und wenn wir ein Objekt einfügen, benötigt es zwei dieser Parameter. Also zurück zu unserer alten Liste hier , sichern Sie sie einfach. Da haben wir's. Und die Position der ersten ist die erste Position und die zweite der Wert. Also machen wir weiter und rufen hier Insert auf, und wir können sehen. Das erste, was wir eingeben , ist die Position. Nehmen wir an, wir wollen es auf Position zwei setzen , in Index zwei. Im Moment ist Index zwei also Ketchup. Also wollen wir etwas zwischen Essiggurken und Ketchup legen zwischen Essiggurken und Also werden wir Essiggurken essen, unser neues Produkt, und Also, nachdem wir unseren Index eingegeben haben, ein Koma gesetzt haben und wir unsere neue Variable oder, Entschuldigung, unseren neuen Artikel eingegeben haben, den ich wieder Pringles nennen werde Und wenn wir das drucken, können wir sehen, dass Pringles zwischen Essiggurken und Ketchup gesetzt wurde Ich wurde als Index Nummer zwei eingefügt. Wir können also nicht nur am Ende etwas hinzufügen, sondern wir können auch ein Element an einer bestimmten Stelle in unserer Liste einfügen . Wenn nun ein neuer Eintrag in eine Liste an unserer Fallposition eingefügt wird , wird einer unserer Artikel dazwischen gesetzt, naja, in unserem Fall zwei und drei, und wir haben einen brandneuen Eintrag. Fantastisch. Nun, die Tatsache dass wir zu einer Liste etwas hinzufügen und in eine Liste einfügen können, ist großartig. Aber was ist, wenn wir einen Artikel aus Ihrer Liste entfernen müssen? Nun, das können wir ganz einfach machen. Alles, was wir tun müssen, ist dot remove aufzurufen. Und in diesem Fall, mit dem neuen System, bezieht es sich auf remove at Und wir machen einfach weiter und geben den Index weiter, richtig? Also, wenn wir jetzt zwei bestehen, bestehen wir auch zwei. Dadurch wird Ketchup entfernt, also nehmen wir nur Tomaten, Essiggurken und Brötchen Das sollten wir haben, wenn wir das jetzt machen. Also da hast du's. Wir haben den Artikel an Index zwei entfernt. Das Entfernen von Elementen ist also ziemlich einfach, wie Sie dort sehen können. Nun, es wird Fälle geben, in denen Sie Sie einen Artikel kaufen und ihn gleichzeitig entfernen möchten. Und wir könnten das in mehreren Codezeilen machen, müssen es aber nicht weil wir das tatsächlich herausnehmen können. Und ich sage Pop, weil das der Name dieser beiden Methoden ist , die wir hier lernen werden, und das heißt Pop Front und Pop Back. Wenn wir also Pop, Underscore, Front machen und Sie sehen, wenn wir hier wieder Lebensmittel drucken, wird der erste Artikel Aber das entfernt es nicht nur, ähnlich wie beim Entfernen, Entfernen, das wir gerade ähnlich wie beim Entfernen, Entfernen, das wir Dadurch wird aber auch der vordere Artikel zurückgegeben. Wenn wir das also in einer Variablen speichern und dieses Element aufrufen würden , würde das tatsächlich das zurückgeben, und das erste Element in unserer Liste, dem es sich um unsere Tomate handelt, die entfernt wird , wird dem Element zugewiesen. Wenn wir also den Artikel danach drucken, bekommen wir die Tomate. Und es ist das gleiche Konzept. Wenn wir von hinten auftauchen, holen wir uns den letzten Gegenstand, nämlich Brötchen Gegenstände werden also gleich Brötchen sein. Also gut, es wird weitermachen und uns dort anschreien Also, was Sie wollen, ist, weil es nicht implizieren kann, was der Typ ist, wir müssten ihn manuell deklarieren, so wie folgt Es gibt also Situationen in denen Sie mit dieser automatischen abgeleiteten Deklaration nicht zurechtkommen werden dieser automatischen abgeleiteten Deklaration Und du wirst es selbst machen müssen. Dies ist einer der wenigen Fälle, in denen Sie dies tun müssten , wenn Sie sich für diesen Weg entscheiden, was Sie wahrscheinlich tun sollten. Nochmal, nur etwas, an das man sich gewöhnen muss. Auf diese Weise können Sie immer die maximale Leistung erzielen , die Ihnen zur Verfügung steht. Auf diese Weise, wenn Sie den Umfang der Optimierungen reduzieren , die Sie später vornehmen müssten. Und das Letzte, was wir uns in diesem Video ansehen werden, ist, dass wir uns ansehen werden, wie wir ein Objekt löschen können, obwohl wir nicht wissen , wo es sich auf unserer Liste befindet. Wenn ich einfach wieder unsere Lebensmittel ausdrucken würde unsere Lebensmittel ausdrucken und wir diese Variable nicht mehr benötigen Was wir tun werden, ist, Punktezeitalter zu nennen. Und dafür können wir eigentlich einfach den Wert eingeben. Also können wir reinkommen und Keto sagen. Denken Sie also daran, dass bei Federn Groß- und Kleinschreibung unterschieden wird Ein kleines K wird also nicht dasselbe sein wie ein Großbuchstabe Für uns sieht es jedoch genauso aus, oder wir würden es als dasselbe betrachten Im Code gibt es zwei völlig verschiedene Dinge. Wenn wir also Erase aufrufen und einfach den tatsächlichen Wert übergeben, können wir reingehen und sehen , dass er gelöscht wird, egal wo er sich in unserer Zeile befindet. Nun denken Sie vielleicht, was ist, wenn wir mehrere Werte haben, die identisch sind, und wir Erase aufrufen? Nun, es wird nur die erste Instanz löschen oder auslöschen, auf die es stößt, also wird es durchgehen und sagen, entspricht das dem, wonach wir suchen? Nein. Ist das, nein. Ist das ja und löschen. Und es wird dort aufhören. Wenn Sie also mehrere löschen wollten, müssten Sie den Vorgang zum aktuellen Zeitpunkt fortsetzen. Wir werden einen besseren Weg finden , wenn Sie alle Instanzen eines bestimmten Werts löschen möchten. Aber im Moment wird nur ein Element entfernt. In Ordnung, das reicht für die heutige Lektion oder diese Lektion. Wir müssen nur ein bisschen mehr über Listen lernen , bevor wir weitermachen können. Also kommt noch eine Lektion. 10. 10 Verschieben und Sortieren: In unserer letzten Lektion zum Thema Listen werden wir uns mit den Push-Methoden befassen und uns damit befassen, wie wir unsere Liste organisieren und die Länge unserer Liste ermitteln können . Bei der Push-Methode gibt es zwei davon. Sie ermöglichen es uns, den Inhalt der Liste zu ändern. Es gibt vorne schieben und hinten schieben. Beide verwenden ein Argument und das ist ein Wert. Wenn Sie jetzt Push Front verwenden, wird unser Wert an den Anfang der Liste hinzugefügt, so als ob Sie Insert bei Index Null verwenden würden. Ebenso wird unser Wert, wenn wir Push Back verwenden, am Ende der Liste hinzugefügt, ähnlich wie wenn wir append verwenden Wenn wir uns das also ansehen, können wir dann unsere Einkäufe nehmen und wir können Pushfront verwenden, und wir fügen Und wenn wir uns das jetzt ansehen, werden Pringles ganz oben auf unserer Liste stehen Und genauso könnten wir Push Back verwenden , um es an das Ende unserer Liste zu Nun, ich persönlich verwende normalerweise einfach einen Pend, wenn ich will, ganz hinten auf der Liste Aber wir haben die Alternative Pushback , es in das hintere Ende zu legen, natürlich vorne zu drücken, anstatt es in Deck Zero einzufügen So einfach sind die Push-Methoden. Es ist kein neues Konzept. Es sind nur zwei weitere Methoden, die Sie als alternative Methode vorstellen können. Wenn es nun um die Organisation unserer Liste geht, können Sie feststellen, dass unsere Listen in den meisten Fällen in einer unvorhersehbaren Reihenfolge erstellt werden, unsere Listen in den meisten Fällen in einer unvorhersehbaren Reihenfolge erstellt werden unser Programm ausgeführt wird und wenn wir Dinge hinzufügen. Und Sie können diese Reihenfolge nicht immer kontrollieren, vor allem, wenn Sie den Benutzer eine Reihe von Elementen eingeben lassen. Und aus diesem Grund wird das Problem wirklich unvermeidlich . Aber wir haben Glück Innerhalb von GD Script können wir unsere Liste mit einer einfachen Methode namens SRT sortieren unsere Liste mit einer einfachen Methode namens SRT Jetzt beginnt SRT damit, unsere Liste in alphabetischer Reihenfolge zu sortieren , und das gilt auch für Zahlen Es wird in der Reihenfolge unserer Zahlen ablaufen. Nun, es lohnt sich zu wissen, dass Zahlen in anderen Sprachen hier aufgenommen werden. Zahlen wie eine Liste, die eins, drei und 025 oder 025 enthält , würden in der Reihenfolge 1025 und drei sortiert, wohingegen im GD-Skript hier 025 und 25 als exakt dieselbe Zahl gelesen werden, wodurch unsere Sortierung etwas genauer als in anderen Sprachen Ordnung, schauen wir uns an , ob wir sortieren ausführen, und dann drucken wir es erneut. Danach können wir es uns ansehen und wir können das normale Aussehen sehen, und dann haben wir ein sortiertes Aussehen , das hier ins Spiel kommt. Nun, das passt auch zu unseren Zahlen. Was passiert also, wenn uns Zahlen wie diese laufen und wir versuchen, sie zu sortieren Nun, sehen Sie, wir werden hier auf den Fehler stoßen. Weil es für die Sortierung, die wir gelöst haben, nicht wirklich kompatibel ist. Was wir in diesem Fall also brauchen würden ist, dass wir hier zwei separate Listen haben könnten. Wir nennen das taub. Wir machen eins, 95, drei, 287. Und wenn wir das sortieren würden, wir sehen, dass all unsere Zahlen so sortiert werden wie wir es erwarten würden. Also eins, zwei, drei, 87, 95. Wir können also eine Liste von Zahlen und eine Liste von Zeichenketten sortieren, aber wir können keine Liste sortieren, die Zahlen und Zeichenketten enthält. Also brauchen wir eine Liste, die das eine oder das andere ist. Wenn wir eine Liste haben, die beide enthält, dann haben wir ein gewisses Problem. Wir müssen einfach akzeptieren , dass wir sie nicht sortieren können, und vielleicht sollten wir zurückgehen und überdenken, wie wir unsere Listen organisieren, die wir benötigen Nun, was wir hier auch haben , ist, dass wir uns die Länge einer Liste ansehen können Nun, Länge, wenn wir die Länge haben, gibt uns das tatsächlich eine Zahl zurück. Und wenn es um eine Liste geht, heißt das eigentlich Größe. Wenn wir die Größe hier ausdrucken, sehen wir, dass wir eine Zahl bekommen. In diesem Fall sagt er uns fünf. Denken Sie daran, dass wir den Index Null, Eins, Zwei, Drei, Vier haben , aber die Anzahl der Elemente, die wir haben, ist eins , zwei, drei, vier, fünf. Und da uns das zurückgegeben wird, können wir es tatsächlich in einer Variablen speichern , und wir nennen es List. Wir sollten es wahrscheinlich Listengröße nennen. Aber los geht's. Und dann ist es natürlich wie jede andere Variable, und wir können weitermachen und es einfach aufrufen. Wenn Sie aus irgendeinem Grund die Größe einer Liste benötigen und es eine ganze Reihe von Gründen gibt, auf die Sie während Ihrer Reise stoßen werden , müssen Sie die Größe der Liste kennen , während sich Ihre Liste dynamisch ändern kann. Okay, das deckt alles ab, was wir hier mit der Liste besprechen werden Wir sind jetzt mit der Liste fertig und werden weitermachen Wir werden weiterhin unsere Listen verwenden, aber wir werden jetzt oder in der nächsten Lektion ein völlig anderes Thema behandeln . Ordnung. Passen Sie auf sich auf Und wenn du zurückgehen musst, sieh dir das an. Der Listenabschnitt hier hatte eine Menge Dinge zu besprechen. 11. 11 für Loop: Jetzt wissen wir, wie wir unsere Liste erstellen, bearbeiten, zu ihnen hinzufügen, aus ihnen entfernen und bestimmte Elemente aus unserer Liste entfernen. Jetzt können wir uns einen anderen Funktionsumfang ansehen, anderen grundlegenden Begriff der Codierung. Wir werden über das sprechen, Wir werden über das sprechen was als Vierschleife bezeichnet wird. Nun kommt es oft vor, dass Sie für jedes Element in Ihrer Liste dieselbe Aktion ausführen müssen jedes Element in Ihrer Liste dieselbe Aktion ausführen Wenn wir zum Beispiel all unsere Artikel auflisten wollten, müssten wir reinkommen und all diese Dinge ausdrucken, oder? Also lass uns weitermachen. Komm rein, Lebensmittel, und wir brauchen Index Null, und wir werden das einfach runterschreiben Eins, zwei, drei und wir können den Editor entfernen. Sie werden Index eins, Index zwei und Index drei sagen. Normalerweise müssten wir also so etwas durchgehen und tun, wenn wir sie alle auflisten wollten. Also, das ist anstrengend. Es ist unnötig oder nimmt unnötig viel Platz ein. Bis wir sie alle durchgegangen sind und ehrlich gesagt, wenn wir uns den Code ansehen, ist es kein sehr attraktiver Code, wenn man sieht, dass immer und immer wieder dasselbe passiert Wenn Sie jedoch dieselbe Aktion für jedes Element in einer Liste ausführen möchten , verwenden wir eine sogenannte For-Schleife. also unsere Einkaufsliste da oben ansehen, können wir sehen, dass sie voller Artikel ist, und wenn wir etwas hinzufügen, müssen wir eine weitere gedruckte Erklärung hinzufügen, noch eine, noch eine Jedes Mal, wenn wir es entfernen, müssen wir Zeilen herausziehen oder löschen Es ist mühsam, es ist nervig, es zu pflegen. Aber wir sind in der Lage, diesen Prozess innerhalb dieser vier Kreisläufe zu automatisieren . Wenn wir also Dinge so ausdrucken wollen , wie wir sie hier sehen, müssen wir das nur ganz schnell auskommentieren. Wie wir sagen, oder, und du merkst, dass sich die Farbe ändern wird . Wir haben hier ein Schlüsselwort. Und der nächste Punkt hier ist, dass Sie so ziemlich jede Variable verwenden können , die Sie hier verwenden möchten. Das ist eine völlig neue. Wenn Sie etwas tun möchten, das Ihnen hilft, die Dinge übersichtlich zu halten, können Sie Item verwenden, aber eine beliebte Abkürzung ist einfach die Verwendung von I und I steht für Nun haben wir über Variablen gesprochen und darüber, wie dein Name für die Person sprechen soll. Du solltest schon beim Betrachten genau wissen, was es ist Und es ist üblich geworden, I zu verwenden , um für ein Element zu stehen. Sobald Sie mit dem Programmieren angefangen haben, werden Sie erkennen, was das ist. Und wenn eine Variable nur an einer Stelle verwendet werden soll , wie zum Beispiel in dieser einen Schleife, ist es in Ordnung, wenn Ihre Variable auf diese Weise gekürzt wird. Aber wenn wir weitermachen, also haben wir vier, wir haben eine Variable, die unsere Artikel auf vier I oder vier Artikel, wir sagen N, Lebensmittel, darstellt unsere Artikel auf vier I oder vier Artikel, wir sagen N, Lebensmittel, Das heißt, jedes Mal, wenn wir den Codeblock , den wir hier aufschreiben, durchgehen und ausführen, werde ich gleich Tomate sein, und dann werde ich gleich Essiggurken sein, dann werde ich Ketchup sein und dann werde ich Brötchen und dann werde ich Am Ende unserer For-Schleife können wir also einen Doppelpunkt setzen, die Eingabetaste drücken und zur nächsten Zeile weitergehen Jetzt fällt Ihnen auf, dass wir jetzt um zwei Ebenen eingerückt sind. Dies ist das erste Mal, dass wir eine neue Ebene einrücken müssen. Stellen Sie also sicher, dass Ihr Einzug korrekt Beim Codieren in einigen Sprachen verwenden sie geschweifte Klammern, aber in Sprachen wie Python und GD-Skript verwenden wir die Einrückungsmethode Und ich habe einige Leute gesehen, die Fehler gemacht haben oder mir gesagt haben, dass etwas nicht funktioniert, wenn ihr Problem letztendlich darin besteht, dass sie nicht genug eingerückt sind oder immer noch eingerückt sind und dann rückwärts kommen Fehler gemacht haben oder mir gesagt haben, dass etwas nicht funktioniert, wenn ihr Problem letztendlich darin besteht , dass sie nicht genug eingerückt sind oder immer noch eingerückt sind und dann wieder herauskommen Behalte das also im Auge. Und lass uns gehen. Also für Artikel in Lebensmitteln Wir wollen doch nur unsere Lebensmittel drucken, unsere Lebensmittel drucken Wir wollen nur diesen Artikel drucken. Und das ist alles. Das ist alles, was wir tun müssen, drucken, I als Artikel weitergeben. Das ist alles, was wir tun müssen, und wir werden das gleiche Ergebnis erzielen, wie Sie es hier sehen . Der Unterschied besteht darin, dass wir weitermachen und so viele Artikel zu dieser Liste hinzufügen können, wie wir möchten. Also können wir so reinkommen und gehen. Auch hier siehst du, wie viele Artikel wir haben, das wird langsam lächerlich. Und das passiert, wenn wir anfangen weitere Artikel zu unserer Liste hinzuzufügen oder anzuhängen Und Sie sehen, ich muss meinen Code überhaupt nicht ändern, und sie werden alle ausgedruckt Kein Problem. So, als ob wir sie alle löschen würden. Und plötzlich sind es nur noch zwei. Wir haben nur die beiden ausgedruckt, wir haben keine Probleme. War zurück mit dieser Druckeinrichtung, wir werden Probleme haben, denn zu diesem Zeitpunkt, als wir all diese Artikel drin hatten, hätten wir reinkommen und eine Menge mehr Druckabrechnungen oder was auch immer wir mit jedem Eintrag machen wollen, erstellen eine Menge mehr Druckabrechnungen oder müssen. Und jetzt, wo wir bei zwei sind, müssten wir reinkommen und unseren Code ändern und die unteren beiden Zeilen hier entfernen. Wann immer Sie also denselben Code für mehrere Elemente innerhalb einer Liste ausführen möchten , verwenden wir dafür eine Vierschleife. Ordnung. Hoffentlich ist das klar. Innerhalb unserer vier Schleifen ist unser erstes Element hier eine Variable, allgemein als I bezeichnet wird, aber Sie können sie so machen, wie Sie wollen. Steht für Gegenstände. Also werden wir für jeden Artikel in Lebensmitteln diesen Artikel drucken Also werde ich der Tomate ebenbürtig sein. Und wenn wir es dann ausgedruckt haben, werde ich weitermachen und zu Essiggurken werden, und dann drucken wir es aus, und dann geht es weiter zum nächsten Artikel und so weiter . Hinterlegen Sie das einfach hier. Da haben wir's. Was ist nun, wenn wir etwas tun wollen, nachdem diese vier Schleifen abgeschlossen sind? Nun, wir werden die Eingabetaste drücken , um zur nächsten Zeile zu gelangen. Und Sie sehen, dass wir immer noch zwei Zeilen eingerückt sind. Nun, was wir tun können, ist, Shift gedrückt zu halten und die Tabulatortaste zu drücken, denke ich, auf Outdent, richtig Wir gehen eine Ebene zurück, oder du drückst einfach einmal die Taste „Zurück zur Basis“ und wir bringen dich auch eine Stufe zurück Und jetzt können Sie sehen, dass das Karat hier in einer Linie mit den vier Schlaufen steht. Das heißt, wir sind draußen. Also können wir jetzt weitermachen und sagen, vier Schleifen sind abgeschlossen, und wir werden sehen, dass das erst passiert, wenn alles andere gedruckt ist. Wenn Sie also etwas außerhalb der vier Schleifen machen möchten, stellen Sie einfach sicher, dass Sie Ihren Einzug eine Ebene nach hinten ziehen Um Fehler zu vermeiden, stellen Sie nun sicher, dass alles so ist, wie ich es gesagt habe, und stellen Sie sicher, dass Ihre Schreibweise korrekt ist Ein großes G für Lebensmittel und ein kleines G für Lebensmittel. Aber für uns sind sie dasselbe. Beides sind Lebensmittel. Sie sind, was den Code angeht, in diesem Fall zwei sehr unterschiedliche Elemente oder zwei verschiedene Variablen, und dasselbe gilt zwei sehr unterschiedliche Elemente in diesem Fall zwei sehr unterschiedliche Elemente oder zwei verschiedene Variablen, für unser Ich dort Also sagen wir vier I zum kleinen I, wir können nicht mit Großbuchstaben I drucken. Es wird nicht wissen, was das ist Und von da an werden wir Fehler haben. Und dann natürlich unsere Einrückungsstufen, die wir gerade überprüft haben. Alles klar? Also das vervollständigt das, vier Grundschleifen und ihre Prinzipien angeht. Jetzt könnten Sie dasselbe tun, wenn wir hier eine Reihe von Zahlen hätten. Wenn wir hier reinkommen würden, kannst du reinkommen. Gib einfach ein paar Zahlen ein. Oh, dieses Minimum Also, wenn wir das für I und Minum tun, werde ich für die Zahlen drei stehen und dann 675 und dann 23 Da wir jetzt Zahlen haben, können wir damit auch rechnen, also ich plus 100 sagen Halte die Dinge einfach. Und da haben wir's. Wir können jetzt 103, 775, 123 und 167 ausgedruckt sehen 775, 123 und 167 Und danach unsere gedruckte Erklärung die uns mitteilt, dass die vier Schleifen abgeschlossen sind Wenn Sie also keine Zeichenfolge haben und etwas Ähnliches haben, könnten Sie etwas rechnen. Sie haben Zahlen. Natürlich können Sie Zeichenketten, wenn Sie das wirklich wollen, in einen Platzhalter einfügen, wenn Sie das immer wieder tun möchten Ordnung. Das gibt einen kurzen Überblick darüber was eine Vierschleife ist und wie wir sie verwenden können. 12. 12 Bereich: Etwas, mit dem wir einen Vier-Loop-Modus verwenden können. Normalerweise, wenn wir etwas vielleicht eine bestimmte Anzahl von Malen machen wollen , aber wir brauchen keine Liste. Wir wollen nicht eine festgelegte Anzahl von Listen oder eine festgelegte Liste von Elementen durchgehen , wir wollen etwas nur eine bestimmte Anzahl von Malen tun . Nun, hier kommen Dinge wie Reichweite ins Spiel. Jetzt können wir Range verwenden, um alle Zahlen zwischen einer Reihe von Werten zu ermitteln, wenn wir möchten. Und dafür müssten ein paar Argumente eingegeben werden. Wenn wir uns die Reichweite ansehen, können wir sehen, dass das, naja , in diesem Fall momentan nur drei Punkte hat. Aber das erste Argument wird die niedrigere Zahl sein. Wenn ich also zehn sage, dann braucht es ein zweites Argument, das die höhere Zahl wäre, also sagen wir 20. Das würde uns also einen Bereich von 10 bis 20 geben , also lassen Sie uns das in Form von sagen wir 44, sagen wir, N für Nummer vier N im Bereich ausdrucken wir, N für Nummer vier N im Bereich Und lassen Sie uns N drucken und sehen, was wir bekommen. Nun, wenn wir es uns ansehen, sehen wir, dass wir zehn, 11, 12, 13, 14, 15, 16, 17, 18 und 19 haben 13, 14, 15, 16, . Sie bekommen also nicht die letzte Zahl , die hier ausgedruckt ist, denn wenn wir einmal da sind, wenn Sie sich das vorstellen können, wenn N gleich 20 wäre und 20 nicht 10-20 ist Es ist 20. Es wird also nicht gedruckt und die vier Schleifen enden. Jetzt können wir auch hier reinkommen und eine Spanne von was angeben, wenn wir eine Bandbreite von nur 20 angeben? Drucken wir das aus? Was bekommen wir? Nun, wir haben das Gleiche. Wir steigen nur auf 19, aber wir fangen bei Null an. Wenn ich also etwas 20 Mal machen wollte, könnte ich die Zahl 20 eingeben und es würde passieren. Das liegt einfach daran, dass wir mit unserem Index bei Null beginnen, bei Null anfangen und nicht bei Eins zählen. Auf diese Weise können wir also einen bestimmten Zahlenbereich durchgehen entweder von Null bis zu einer Zahl oder alle Zahlen zwischen einem bestimmten Bereich. Jetzt können Sie dies tun, wenn Sie eine bestimmte Aktion wiederholen möchten. Sie könnten dies tun, wenn Sie möchten, oder es wiederholen, je nachdem, wie umfangreich Ihre Liste ist, oder? Weil wir jetzt wissen , wie wir die Länge ermitteln können , indem wir size aufrufen. Alles, was dir eine Nummer zurückgeben kann , können wir hier eingeben. Das ist wirklich alles, wofür Range da ist, uns alle Zahlen innerhalb eines festgelegten Rings zu geben uns alle Zahlen und dann führt uns die Viererschleife durch. Eine Sache, die wir damit machen können, ist zum Beispiel, schauen wir uns das an und wir könnten es ausdrucken, oder besser gesagt, lassen Sie uns weitermachen und eine Variable erstellen. Wir können hier eine ganz neue Liste erstellen. Also nennen wir dieses Quadrat und setzen es einer leeren Liste gleich. Und was wir tun könnten, ist, dass wir dann einen quadratischen Stift machen könnten, damit wir etwas zu unserer Liste hinzufügen können. Und was wir hinzufügen werden, wäre ein exponentieller Wert Also wollen wir alle quadrierten Zahlen addieren. Die Zahlen 0-20 sind also alle quadriert. Also würden wir das in ein Posh setzen, um Exponenten zu machen. Also sage ich N für die Zahl, die wir hier haben. Mit der Potenz von Zwei. Und wir wollen die Innenseite bedrucken? Nein, wir drucken auf der Außenseite. Wir machen weiter und drucken quadratisch. Ordnung. Also haben wir eine leere Liste für den Anfang. Wir werden jede Zahl von 0 bis 20 durchgehen und dann die Quadratur machen Also werden wir Null zum Quadrat sagen. Was auch immer das ist, was wir dieser Liste hinzufügen werden Wird sagen, eins zum Quadrat, das ist gleich, zwei Quadrat wird reinkommen, drei zum Quadrat Wenn wir uns jetzt unsere Liste ansehen, können Sie sehen, dass wir Null, Eins, Vier, Neun, 16, 25 usw. haben , bis hin 361 Range ist also eine Möglichkeit, einige Zahlen zu einer Liste hinzuzufügen oder eine Liste zu erstellen auf etwas basiert , das bereits existiert Also bereits vorhandener Wert. Also gut. Also das ist ungefähr alles, was wir damit wirklich machen können. Es gibt also vier Schleifen und wie wir sie mit einer Liste verwenden können. Und es gibt vier Schleifen und wie wir sie mit Range verwenden, um eine Reihe von Anweisungen oder einen Code für eine bestimmte Anzahl von Malen zu wiederholen . 13. 13 Gleichberechtigung: Oh, der Kern jedes Schecks. sehr wichtiger Teil der Codierung wird also die if-Anweisung sein. Und das sind die Dinge , die wir im täglichen Leben durchmachen würden , wenn wir überprüfen, ob das passiert, und dann machen wir das. Sonst machen wir das, oder? Verwenden Sie zum Beispiel einfach Ihren Computer dort. Wenn Sie im Editor sind und K drücken, K auf dem Bildschirm angezeigt. Stimmt das? Wenn wir die Rücktaste drücken, löschen wir das vorherige Zeichen Das ist die allgemeine Vorstellung davon, wie eine if-Anweisung funktioniert. Nun, eine If-Aussage überprüft immer, ob etwas wahr ist, oder? Wenn wir also K drücken, was wir getan haben, haben wir es gedrückt, was bedeutet, dass das jetzt wahr ist. Dann war die Antwort, K auf den Bildschirm zu bringen. Um diese Prüfungen zu erhalten, müssen wir also if-Anweisungen mit einer sogenannten Gleichheitsprüfung verwenden . einer Gleichheitsprüfung wird nun im Grunde geprüft, ob zwei Elemente identisch sind. Und wir können ganz einfach überprüfen, ob zwei Artikel identisch sind. Wir kommen rein und machen einen Druck. Wir können sagen, fünf ist gleich fünf, oder? Wir können das tun, und wenn wir es ausdrucken, werden wir das Wort wahr bekommen Denken Sie jetzt daran, wenn wir eine Gleichheitsprüfung durchführen, dass das hier ein Zwei-Gleichheits-Zeichen sein Zwei-Gleichheits-Zeichen Wenn also fünf gleich fünf ist, also wenn fünf und fünf gleich sind , werden wir es schaffen Wenn wir nun überprüfen, ob fünf gleich sechs ist, bekommen wir eine falsche Antwort, weil fünf und sechs nicht dasselbe sind. Das sind zwei verschiedene Dinge. Und das gilt auch für das Drucken. Das kommt auf unsere früheren Aussagen zurück. Wenn wir also eine Tomate mit einem Großbuchstaben haben und wir prüfen, ob das Tomate mit einem Kleinbuchstaben entspricht und wir das ausdrucken, werden wir falsch denn obwohl es für uns dasselbe Wort ist, weil eins ein großes T hat und eins ein Kleinbuchstabencode ist es als zwei verschiedene Dinge betrachtet Sie müssten also beide groß geschrieben werden, um wahr zu sein. Das ist also alles, was der Gleichheitscheck ist. Es geht darum, zu überprüfen, ob das stimmt oder ob diese beiden Dinge identisch sind, dann können wir etwas tun. Also lass uns weitermachen und reinspringen, richtig? Wir können sagen ob, und dann kannst du es eintippen. Also, wenn wir unsere Tomaten nochmal machen, Tomate. Doppelt ist gleich Tomate Und dann beenden wir das mit einem Doppelpunkt und gehen ein, um mit der nächsten Zeile fortzufahren Jetzt sind wir also um einen Block eingerückt. Also, was auch immer wir hier reinschreiben, es wird passieren wenn diese beiden wahr sind, oder Wenn diese Bedingung wahr ist, machen wir das. Was wir tun werden, ist, einfach eine Zeichenfolge zu drucken. Diese beiden sind wahr. Wenn wir das also drucken würden, starten wir es und wir stellen fest, dass starten wir es und wir es nicht gedruckt wird, weil im weiteren Verlauf T und das kleine T einen Unterschied machen , also sind sie nicht wahr Aber wenn wir dort ein apt-T hinzufügen, dann wird dieser eingezogene Block Wie Sie sehen, sind diese beiden Punkte wahr und wurden jetzt ausgedruckt. Neben der Gleichheitsprüfung können wir jetzt auch eine Ungleichheitsprüfung durchführen. Und in diesem Jahr, wo wir einen Groß - und einen Kleinbuchstaben haben, denken Sie daran, dass wir zwei Kleinbuchstaben verwenden können Wenn wir also in diesem Fall sehen wollen, ob diese beiden identisch sind, können wir sagen, ob der Großbuchstabe Tomate dem Kleinbuchstaben einer Tomate entspricht, Großbuchstaben oder Wahr, was auch der Fall wäre, weil der erste Buchstabe groß geschrieben wird , dann werden diese beiden wieder als wahr der erste Buchstabe groß geschrieben wird , dann werden diese beiden Als Alternative können wir aber auch die Ungleichheit nutzen Und damit können wir Ausrufezeichen gleichsetzen. Und das bedeutet nicht gleich. Das Ausrufezeichen bedeutet also nicht. Also wenn Tomate nicht gleich Tomate ist, was bedeutet, dass wir prüfen, ob diese beiden Dinge unterschiedlich sind , dann ist es wahr, und wir gehen rein und hier unseren Code ein, oder den eingerückten Als Alternative könnten wir das Wort auch am Anfang eingeben, nicht Also, wenn nicht, Tomate gleich Tomate. Und das würde uns dasselbe geben, als wenn wir sagen würden, dass Tomate nicht gleich Tomate Sie können also entweder das Wort schreiben oder das Ausrufezeichen vor dem Gleichheitszeichen verwenden , wenn Sie das überprüfen möchten Wir werden oft überprüfen , ob zwei Dinge einander nicht gleichwertig sind , um unterschiedliche Dinge zu erreichen Nun, wir haben uns das ein bisschen mit Zahlen angesehen. Aber was wir tun können, ist, dass wir, wenn Sie sich an die Zeit in Mathe erinnern, in der wir mehr als und weniger als das hatten, überprüfen und verwenden mussten. Wir können das auch hier im Code verwenden. Also können wir zum Beispiel sagen, ob wir wieder zu unseren fünf gleich sechs gegangen sind und wir gleich ausdrucken werden? Ist fünf gleich sechs? Nein, natürlich nicht. Aber wir können fragen, ob fünf weniger als oder gleich sechs ist. Und dann können wir unsere Blockpille nehmen, offensichtlich gleich steht, was stimmt, und die gibt es da draußen, um es etwas genauer zu machen , oder? Also, wenn fünf weniger als sechs ist, weniger als oder gleich. Beachten Sie das. Es könnten also sechs sein, verglichen mit sechs, und es würde trotzdem wahr werden. Wenn wir dagegen nur das Kleiner-als-Zeichen hätten, wäre es falsch, denn sechs ist nicht weniger als sechs, sechs ist sechs. Wir können also „weniger als“, „ kleiner als“ oder „gleich“, größer als“, „Leser als“ oder „gleich“, gleich“ und „ungleich“ verwenden. Ich weiß, das sind eine Menge Gleichheitszeichen und Symbole , an die Sie sich erinnern sollten, aber hoffentlich können Sie diese Art von Schecks im Hinterkopf behalten. Und wir können das S verwenden, wenn wir sagen würden, sagen wir, jemand geht den Laden und möchte Alkohol kaufen. Nehmen wir an, es ist 19 für das Alter dort, um Alkohol zu kaufen. Und natürlich müssen Sie Ihren Ausweis vorzeigen und Ihr Alter nachweisen, richtig? Und wenn wir dieses Szenario programmieren würden, würde sich der Kassierer den Ausweis ansehen und eine Gleichheitsprüfung durchführen Sie werden sehen, ob die Person vor ihnen, wenn sie 19 oder älter ist, größer oder gleich 19 ist, dann werden größer oder gleich 19 ist, wir als wahr zurückkommen und den Verkauf durchführen Wenn sie als unter zurückkämen, oder? Wenn der Scheck also als falsch zurückkäme , würden Sie ihn ihnen natürlich nicht verkaufen. Und das ist der Weg , von dem ich weiß, dass einige dieser Spieler auch bei Videospielen gegangen sind. Wenn also ein Spiel mit M für Erwachsene bewertet wird, ist das, glaube ich, eine Bewertung von 17. Und dann werden wir überprüfen, ob die Person 17 Jahre oder älter, mindestens 17 Jahre alt ist , das Spiel verkaufen, wenn nicht, den Verkauf ablehnen. sind also zwei Beispiele dafür wie sich diese Art von Ob- und Gleichheitskontrollen quasi auf das reale Leben in diesen realen Situationen übertragen lässt. Jetzt, wo wir uns mit einem Problem befasst haben, können wir auch zwei Bedingungen gleichzeitig behandeln. Wir können also sagen, dass sechs weniger als sechs ist, und etwas anderes zu sagen, und fünf ist größer als zwei, also wissen wir, dass eine davon wahr ist, oder? Wir wissen, dass sechs nicht weniger als sechs ist, aber wir wissen, dass fünf definitiv größer als zwei ist. Wenn wir das also ausdrucken würden, werden wir sehen, es wird nicht wahr, es passiert nichts. Wir kommen nicht zu diesem Block. Und der Grund dafür ist, dass beide Aussagen wahr sein müssen, weil wir und verwenden. Also muss dieses Stück wahr sein, und dieses Stück muss wahr sein. Wenn wir das also auf fünf reduzieren würden, sollten wir sagen, wenn fünf weniger als sechs und fünf größer als zwei ist , wird es wieder wahr. Sie können also mehrere Bedingungen haben, und es muss nicht bei zwei aufhören, oder? Sie können reinkommen und eine dritte Bedingung hinzufügen, eine vierte Bedingung, eine fünfte Bedingung. Das sollten Sie wahrscheinlich nicht tun, sobald wir so viele Bedingungen haben, aber der Punkt ist, dass Sie es könnten. Sie können so viele Bedingungen haben, wie Sie möchten. Nun, was wir auch tun können, ist, dass wir nicht überprüfen müssen ob eine dieser Bedingungen sich ändert, weniger als sechs, wir müssen nicht überprüfen, ob beide zutreffen Wir können den Operator or verwenden. Und das wird im Grunde prüfen, ob das wahr ist oder ob das wahr ist. Bedingung eins ist wahr oder Bedingung zwei ist wahr, dann dringen wir in unseren Codeblock vor. Wir brauchen also nur eine Instanz , die wahr ist, wenn wir O verwenden. Wenn wir und verwenden , müssen alle Instanzen wahr sein. Nun, was wichtig ist, ist, wenn Sie die Wörter und zusätzlich zu oder nicht aufschreiben möchten , können wir tatsächlich zwei vertikale Pfeifen verwenden, um oder wir können zwei Ampersand verwenden , um das Wort darzustellen und welchen Weg Sie auch wählen, es wird wieder Ihre persönliche Präferenz sein, ob Sie die Ampersand oder die Pfeifen oder die Parisanden und Pfeifen verwenden oder einfach das Wort ausschreiben. Es wird nichts ändern. Und soweit ich weiß, beeinträchtigt es die Leistung in keiner Weise. Es sind nur zwei Möglichkeiten , dasselbe zu tun. Letztlich kommen diese also entweder als wahr oder falsch zurück. Letztlich haben wir es also damit zu tun, oder? Also überprüfen wir im Grunde, ob das stimmt. Also, wenn das wahr ist, drucken wir es natürlich aus, oder? Das ist letztendlich das, was wir tun. Aber wenn wir die Ungleichheit überprüfen, prüfen wir, ob etwas falsch ist, oder? Also sagen wir, wenn das nicht der Fall ist, wenn sie nicht gleich sind, dann stimmt das, und wir gehen zu unserem Blog über. In Ordnung. Hoffentlich hat das dort Sinn gemacht. Da drin gab es eine Menge Dinge zum Herumjonglieren Wenn du etwas verwirrt bist, geh zurück und sieh es dir noch einmal an. Aber das reicht für unsere Gleichheits Ungleichheitskontrollen. Ein boolescher Wert ist hier nur das Ergebnis, entweder wahr oder falsch Und mal sehen, das beinhaltet, dass wir auch mehrere Bedingungen durchgegangen sind, entweder durch und oder durch die Verwendung von oder Und wir haben Zahlen verglichen. Wir haben mehr als weniger als gleich bis ungleich. Wir sind hier viel rüber gegangen. Also werde ich es für diesen Abschnitt tun und wir werden weitermachen unsere I-Aussagen hier fortsetzen. 14. 14 if else elif: Ordnung. Also sind wir kurz auf die if-Aussagen eingegangen , weil wir das brauchten, um die Eigenschaften, Gleichheits- und Ungleichheitsprüfungen und all das zu nutzen . Lassen Sie uns also etwas näher auf die I-Aussage eingehen. Nun, bei I-Anweisungen werden Sie feststellen, dass wir im Abschnitt mit den Bedingungen , den wir gerade durchgemacht haben , unseren Code natürlich mit I beginnen , weil wir überprüfen wollen, ob etwas wahr ist. Die if-Anweisung sagt also, wenn das wahr ist, fahren Sie fort und gehen Sie zu meinem Codeblock. Also, das ist eine Bedingung, die dir sagt, ob etwas wahr oder falsch ist, im Grunde und ziemlich gut, folgt immer dem Schlüsselwort I oder es folgt immer darauf. Ich glaube, ich habe das etwas seltsam formuliert. Unser Scheck steht immer hinter dem Schlüsselwort I. Genau wie bei der Überprüfung mehrere Bedingungen wahr sind, ob mehrere Bedingungen wahr sind, können wir das in unseren if-Anweisungen verwenden, so wie wir es zuvor mit Zeichenketten überprüft haben. Aber einer der Hauptunterschiede ist, dass es sich um einen Block von If-Anweisungen handelt, die etwas kompliziert werden können , wenn wir eine Reihe von Prüfungen haben, die verwendet werden, wie Sie gesehen haben, als wir und setzen konnten, hinzufügen und wir könnten einfach immer mehr Bedingungen und wir könnten Os verwenden, um weiterzumachen Wir haben so ziemlich eine unbegrenzte Anzahl von Bedingungen, die wir überprüfen könnten Und wir können eine Bedingung verwenden, jede Bedingung mit I-Anweisung. Wenn wir uns also die einfache Wenn-Aussage ansehen , wie wir es zuvor getan haben, sagen wir: Wenn Tomate gleich Tomate ist, dann würden wir sagen, dass es wahr ist, oder Solange sie beide exakt gleich buchstabiert wurden , mit Großbuchstaben und all dem Aber was ist, wenn wir alles fangen wollen , oder? Was ist, wenn wir wollen, lass uns sehen. Lassen Sie uns eine Variable namens NUM erstellen. Wir setzen sie auf sechs. Wenn ich bereit bin, sagen wir drinnen, wir sagen, ob Zahl größer oder gleich sechs ist. Richtig. Colon und wir sagen, mach weiter und drucke da rein. Ha, es ist besser. Und wenn wir das ausdrucken, werden wir sehen, okay , dann kommt er zurück. Es ist größer oder gleich sechs. Wenn wir jedoch sagen, ob es größer oder gleich sieben ist, wird nichts passieren. Aber in einigen Fällen möchten Sie vielleicht , dass dadurch etwas passiert. Und hier kommt der Else-Block ins Spiel. Ich werde das einfach senken. Also sonst, gefolgt von einem Doppelpunkt, das ist alles, was wir da eingeben müssen. Wir sagen, wenn all die obigen Prüfungen falsch sind, keine davon wahr ist, dann wird sich der Else-Block darum kümmern. Also können wir hier reinkommen und das ausdrucken, ich habe da ein Leerzeichen, sagen wir das ausdrucken, , das ist nicht größer. Und wir können weitermachen und unsere Schecks bekommen. Also, jetzt werden wir wirklich verstehen, dass es nicht besser ist , oder wir werden die Antwort bekommen. Das ist größer. Also, unabhängig davon, ob es wahr oder falsch ist, wir werden irgendeine Art von Antwort haben, irgendeine Art von Aktion, und Sie könnten weitermachen und denken: Okay, nun, Sie können einfach weitermachen, von unten, ein anderes Wenn, ein anderes Wenn und noch einmal ob, und Sie können all diese verschiedenen Überprüfungen durchführen. Aber das Problem ist, ob all das wahr ist, zum Beispiel, wenn wir das auf vier ändern , dieses eins auf drei, dieses eins, zwei, wenn wir diese ändern, wollen wir eigentlich den anderen Weg gehen. Wenn wir sagen, wenn diese sieben, acht und neun sind , also wenn sie größer als sechs sind, da es sich um ZF-Schecks handelt, werden all diese so ausgeführt, wie Sie hier sehen, sie liefen für Num, Sieben, Acht, Neun. Sie wurden alle wieder wahr, also wurden sie alle ausgelöst. Was ist jedoch, wenn wir nur eines davon benötigen? Was ist, wenn wir nur wollen, dass der erste wahr ist, um ihn auszulösen Und wenn das dann ausgelöst wird, keine der anderen Bedingungen überprüft. Nun, hier kommt ein anderes Schlüsselwort ins Spiel, und hier ist das Sonst-Wenn. Es ist also eine Art Kombination aus dem Ich und dem Anderen zusammen, und wir nennen es einfach LF. Also, wenn wir reinkommen und sagen, ob für diese. Ich meine, wenn das wahr ist, dann machen wir das. Wenn nicht, dann überprüfen wir, ob das wahr ist, tun das, sonst, ob das wahr ist, sonst, ob das wahr ist, und wenn all das fehlschlägt, bleibt uns nur die else-Aussage ob das wahr ist, tun das, sonst, ob das wahr ist, sonst, ob das wahr ist, und wenn all das fehlschlägt, bleibt uns übrig. Wenn wir das jetzt machen würden, könnten Sie sehen, dass die erste Aussage hier oben wahr wird, und dann kommen wir nie zu diesen. Und das können wir erkennen, wenn wir hier reinkommen und einfach ein paar Ausrufezeichen einbauen, damit wir es unterscheiden können Wir können sehen, dass das erste als wahr erkannt wird, und dann überspringen wir alle anderen, weil wir sie nicht überprüfen müssen Wir prüfen also nicht, ob all diese Dinge einzeln wahr sind. Es kann also Situationen geben , in denen Sie mehrere, mehrere, wenn auch für sich genommen, Checks verwenden möchten mehrere, mehrere, wenn auch für sich genommen, Checks Aber oft wirst du wahrscheinlich eher ein Ich anderes wenn oder ein Wenn anders haben ein Ich anderes wenn oder ein Wenn anders Eine Art Kette, die weitergeht, wie wir es hier sehen. Nun, das kann die Dinge manchmal wirklich etwas kompliziert machen, wenn wir darauf eingehen. Wenn wir uns hier also ein Beispiel ansehen, sind wir fertig. In Ordnung, wir haben also alle unsere Schecks hier. Also wähle ich einfach eine Zufallszahl für das Alter bis 15 aus. Also werden wir überprüfen, ob das Alter unter 13 Jahren liegt. Also gut, wir gehen davon es vielleicht Kinopreise gibt, oder? Also kommen wir rein, wir sagen, ich bin 13, es wird dieser Preis sein, wenn es 13-64 ist, also es ist mehr als 13, weniger als 64, es ist dieser Preis, und wenn es über 64 ist , machen wir diesen Preis Und dann haben wir hier eine Aussage, dass er nicht gültig ist, was nur für den Fall ist, alles zu fangen Wir sollten niemals eine solche Situation haben. Lass uns gehen. Wir haben also 15. Wir können es selbst durchmachen. Wir sagen, es sind nicht weniger als 13. Also überspringe das. Wir gehen zu unserem zweiten Scheck. Das Alter ist älter als 13 und weniger als 64 Jahre. Ja, 15 ist. Also sollten wir es zurückbekommen. Der Preis ist 14 50€ Wenn du das spielst, können wir sehen , dass wir genau das bekommen. Es gibt also ein Beispiel für eine Art von „Wenn, Sonst Wenn und Sonst“. Also nochmal, das Beispiel da wäre etwas wie vielleicht ein Kino mit unterschiedlichen Ticketpreisen je nach Alter der Person , die eine Eintrittskarte benötigt. Jetzt können wir auch diese If-Anweisungen verwenden und sie werden quasi mit unseren vier Anweisungen oder 44 Loops zusammengeführt, und wir können Dinge chatten, wie zum Beispiel , wir sagen, wir haben unsere Einkäufe Stimmt das? Müsli. Ketchup. Es kann jedoch sein, dass wir einen Scheck auf vergriffene Artikel stellen. Vielleicht entwickeln Sie gerade eine Anwendung, die nachverfolgt, welche Artikel ausverkauft und auf Lager sind. Wenn ein Artikel nicht vorrätig ist, werden sie hier angezeigt. Also werden wir sagen, dieser Laden hat keinen Milchvorrat mehr, oder? Also sagen wir, wir haben keine Milch, aber wir wollen das überprüfen. Also wollen wir unsere Einkaufsliste durchgehen. Also wollen wir das für mich sagen, oder? Für Artikel in Lebensmitteln, genau wie wir es zuvor in der Rubrik Vier Luke getan haben Und wir möchten sehen, ob dieser Artikel bei uns ausverkauft ist. Also das Ganze so zusammenstellen , dass wir vier Artikel in Lebensmitteln haben Wir wollen überprüfen, ob ich nicht vorrätig bin. Wenn Sie hier eingeben, wird überprüft, ob der Artikel dort enthalten ist. Also, wenn Müsli auf dieser Liste steht, machen wir den nächsten Codeblock. Und wenn nicht, werden wir weitermachen. Also werden wir sagen, wir werden drucken und wir werden hier alles zusammenbringen. Wir sagen, Prozent S ist ausverkauft. Und dann geben wir einfach den Prozentsatz I ein, um unseren Artikel an unsere Zeichenfolge zu übergeben. Wenn wir das Ganze zusammenfügen, sehen wir, dass das einzige, was es auslöst, Milch ist , weil Milch tatsächlich auf unserer Liste der ausverkauften Produkte steht. Sie können also sehen, wie schnell wir beginnen, die Dinge zusammenzufügen. Wir drucken auf unserer Konsole aus, wir fügen Variablen in unsere Zeichenketten Wir überprüfen anhand von I-Checks, ob etwas stimmt, und wir laufen in vier Schleifen durch, um alles durchzugehen, was sich in unseren Einkäufen befindet Gehen Sie alles in unserer Liste durch. Okay, das sollte hier alles abdecken , bis hin zu den If-Checks und ob, sonst, ob, sonst, sowie hoffentlich einige Beispiele um die Dinge etwas klarer zu machen und zu sehen, wie das alles zusammenpasst 15. 15 Wörterbücher: A in Ordnung. Leute, heute schauen wir uns Wörterbücher an Nun, wir sprechen natürlich nicht über die Art, die Sie aufgreifen, diese Art von Wort und eine damit verbundene Definition, aber Sie könnten ein Wörterbuch verwenden, um ein Wörterbuch zu erstellen Und ein Wörterbuch hat eine ziemlich gute Beziehung zu dem, was ein Wörterbuch kodiert. Der Grund dafür ist, dass sie so funktionieren, dass sie ein Schlüssel-Wert-Paar haben. In Bezug auf ein normales Wörterbuch hätten wir also das Wort als Schlüssel, und dann wäre die Definition der Wert. Wörterbücher sind also ein Datensatz, der alle Datentypen enthalten kann, über die wir bis zu diesem Zeitpunkt gesprochen haben, einschließlich anderer Wörterbücher Ein Wörterbuch kann eine Reihe verwandter Informationen an einem Ort speichern , z. B. Spiel- oder Programmeinstellungen oder Informationen über Ein Wörterbuch kann leicht identifiziert werden, da alle Daten, all ihre Daten, in geschweifte Klammern gesetzt werden, im Gegensatz zu einer Liste, die eckige Klammern verwendet Schauen wir uns also an, wie diese Wörterbücher In Ordnung. Also, wenn wir hier oben sind, werden wir eine neue Variable erstellen. Ich nenne es M-Wörterbuch. Und natürlich werden wir das so einstellen, einem Paar lockiger Zahnspangen entspricht Nun, das funktioniert so, dass wir weitermachen und reingehen können, damit es schöner aussieht Und wir machen ein Schlüssel-Wert-Paar. Also sagen wir zum Beispiel Schlüssel eins und dann machen wir einen Doppelpunkt und dann den Wert. Also gehen wir zu meinem Wert und wenn Sie einen anderen einfügen möchten, setzen wir ein Komma, und wir können Dropdown bis zur nächsten Zeile eingeben , und wir können Taste zwei machen Da haben wir's. Das ist mein neuer Wert. Und so weiter auf der ganzen Liste. Nun, der Name unseres Wörterbuchs kann beliebig sein, genau wie eine normale Variable. Aber sobald wir in unsere geschweiften Klammern geraten sind, können Sie sehen, dass wir eine Zeichenfolge haben, und diese erste Zeichenfolge hier ist unser Schlüssel Sie können dies natürlich benennen, wie Sie möchten, aber ähnlich wie bei Variablen sollte klar sein, auf welche Daten es sich bezieht Es sollte also eine Art Indikator dafür haben worauf sich der Wert bezieht. Das könnte zum Beispiel vielleicht in einem Wetterwörterbuch sein. Ein Schlüssel könnte Temperatur oder Temperatur sein, und dann wäre der Wert die tatsächliche Zahl. In Ordnung. Ein Beispiel dafür, wenn Sie Einstellungen vornehmen, könnte ein Audio- und ein Grafikwörterbuch sein. Nun folgt auf Ihren Schlüssel, wie Sie dort sehen können , ein Doppelpunkt und dann Ihre Daten. Ihre Daten hier sind das, was wir als Wert bezeichnen, und sie werden ähnlich wie eine Liste mit einem Index von Null behandelt , sofern das Sinn macht, da dies Ihr erster Wert ist. Nun, wir könnten weitermachen und das in verschiedenen Situationen oder auf verschiedene Arten nennen verschiedenen Situationen oder , wie wir es tatsächlich nennen können. Ich schätze, wir können sogar verschiedene Datentypen darin haben. Wir könnten da eine Liste als einen unserer Werte haben. Wenn wir hier also den Index Null haben wollen, geben wir ihn, geben uns unseren Namen, kehren mit Jim und Index eins Ja zurück. Wir drehen uns wie unsere Gesundheit. Also, wenn es uns leid tut, ein Wörterbuch im Wörterbuch, was wir hier machen können, oder? Also sagen wir, das ist der Name, und das wäre, als er zurückmelden und beim nächsten haben wir Gesundheit, und wir sagen 100. Also in einer Situation wie dieser, das sind Indizes , die herkommen Jetzt müssen wir natürlich keine Indizes verwenden. Wir könnten Namen einfach vollständig aufschreiben , wenn es um Wörterbücher geht , was immer nett ist Denken Sie nur daran, dass jeder Schlüssel durch ein eigenes Komma getrennt werden muss , dass jeder Schlüssel durch ein eigenes Komma getrennt werden Lassen Sie uns also weitermachen und hier weiter lesen und uns ansehen, wie wir auf ein Wörterbuch zugreifen können Alles klar? Also, wenn wir auf unser Wörterbuch zugreifen, drucken wir es natürlich aus. Und was wir uns ansehen werden, ist natürlich, dass wir mein Wörterbuch ausdrucken werden, mein Wörterbuch ausdrucken werden, und wir könnten es einfach so ausdrucken. Aber wenn wir es eingrenzen wollen, schauen wir uns das natürlich an. Es wird also ausgedruckt, wir bekommen Schlüssel eins und dann bekommen wir Schlüssel zwei, und dann kommen sie in eine weitere lockige Klammer für den anderen Satz Also können wir entweder Schlüssel eins oder Schlüssel zwei hier bekommen. Wenn wir nun Schlüssel eins haben wollen, können wir einfach geschweifte Klammern direkt daneben setzen können wir einfach geschweifte Klammern , ähnlich wie bei einem Array Nur wir können weitermachen und Schlüssel eins eingeben. Und wie Sie hier sehen, werden wir das Ergebnis bekommen , Schlüssel eins da unten. Und das Gleiche. Wenn wir K zwei machen, holen wir uns das neue Wörterbuch , das Kit in der Hand hält. Was passiert nun, wenn wir hier Null für unser Wörterbuch verwenden ? Versuche darauf zuzugreifen. Wir werden auf diese Situation stoßen , weil wir die Grenzen dieses Wörterbuchs Es gibt also verschiedene Situationen für so etwas Wir könnten zum Beispiel in mein Wörterbuch gehen, oder? Auch hier können wir Punkttasten und so etwas machen . Dies wird einfach alle unsere Schlüssel abrufen und sie als Array zurückgeben, also wird dies eine Liste all unserer Schlüssel sein. Und dann können wir unsere eckigen Klammern setzen und eine Null hineinsetzen. Also könnten wir so etwas machen, und das würde funktionieren, obwohl es sicherlich viel länger ist, als es sein muss. Und ich weiß, mit drei würde das gelegentlich auch funktionieren. Du könntest einfach Taste eins anklicken. Ja, da hast du's. Also kannst du einfach Punkt machen und den Schlüsselwert hier eingeben. Also können wir zwei machen, und das K Two geht in eine andere eigene Liste, tut mir leid, in ein anderes eigenes Wörterbuch. Also könnten wir dann gehen und noch einen Punkt machen. Also können wir mein Dictionary.k2 Punkt machen, ich sage Gesundheit. Und wie Sie sehen, ist unser Ergebnis 100. Es gibt also verschiedene Möglichkeiten, wie wir tatsächlich auf den Inhalt unseres Wörterbuchs zugreifen können, sei es, indem wir eine verschiedene Möglichkeiten, wie wir tatsächlich auf den Inhalt unseres Wörterbuchs zugreifen können , Log-Methode indem wir eine Liste unserer Schlüssel abrufen und einen Index eingeben, einfach den gewünschten Schlüssel als Zeichenfolge übergeben oder eine Punktmethode wie diese verwenden, ähnlich einem Funktions - oder Methodenaufruf. Wenn wir nun Wörterbücher innerhalb von Wörterbüchern haben, haben Sie im Wesentlichen gesehen, was wir hier mit dotqt dot HeL machen werden. Nur Sie können über unsere eckigen Klammern darauf zugreifen. Also können wir Schlüssel zwei machen. Und direkt daneben machen wir einfach noch einen Satz eckiger Klammern. Das heißt, wir können es auch einfach so ausschreiben, dass jede Taste, die nach unten geht, ein oder zwei Paare eckiger Klammern hat die nach unten geht, ein oder zwei Paare eckiger Klammern hat. So können wir also auf unsere Wörterbücher und die Seite der Wörterbücher zugreifen unsere Wörterbücher und die Seite der Wörterbücher Es kann ein bisschen verwirrend sein, also hoffe ich, dass das klar genug war, zumindest wenn nicht die Erklärung mit der eigentlichen Demonstration , mit der wir es hier in Gebrauch sehen Jetzt können Wörterbücher auch alle anderen Datentypen enthalten alle anderen Datentypen Sie könnten also eine Liste darin haben. Sie könnten Zahlen haben, weißt du, Ganzzahlen, Gleitkommazahlen, Zeichenketten, Wörterbücher und Nebenwörterbücher Wir haben also diesen ganzen Wildbestand, und der Zugriff darauf hängt natürlich von den Methoden ab, die wir Ihnen dort gezeigt haben, und je nachdem, um welche Art von Daten es sich handelt, werden Sie natürlich, wenn der Wert ein Array sein soll, auf die darin enthaltenen Werte zugreifen wie auf Werte Nun, was ist, wenn wir es in unser Wörterbuch aufnehmen wollen, oder? Also haben wir mein Wörterbuch dort. Lass uns weitermachen und ein neues erstellen. Wir nennen das Colors, haben die Fortsetzung eines leeren Wörterbuches Gib mir die Fehler für da unten , weil wir sie nicht ausgefüllt haben Nun, was tun wir, um hier einige Daten zu übergeben einige Daten zu , wenn wir einen neuen Eintrag in unser Wörterbuch aufnehmen wollen? Nun, wir können einfach zu unseren Farben gehen und dann machen wir weiter und geben einen Schlüssel weiter, als ob wir versuchen würden, darauf zuzugreifen. Also nennen wir das, entscheiden wir uns für kühle oder kalte Farben, und dann setzen wir das einfach auf den Wert, den wir wollen. Also nehmen wir ein blaues. Wenn wir jetzt unsere Farben drucken, sollten wir sehen, dass Blau der Wert ist, hier ein Zeichenkettenwert des Schlüssels cool. Also sollten wir das hier in unserem Farbenwörterbuch sehen . Und da haben wir es. Das können wir genau dort sehen. Es ist also so einfach, Sie fügen es hinzu, und das sollte auch für ein Array funktionieren . Wenn wir hier also nur eine Liste haben und sie ausdrucken, wie Sie sehen, funktioniert es genauso, wie Sie sich vorstellen können, dass es genauso funktioniert, auch wenn wir hier verschiedene Arten von Datensätzen erstellen. Also da hast du's. Das ist einfach genug für uns. Wir rufen es einfach auf und setzen dann ein und das funktioniert genauso, wenn Sie dies auch zurücksetzen oder ändern möchten. Also, wenn du den Schlüssel darin ändern willst, wenn du herkommst und diese Bücher änderst. Also zuerst werden es diese Zahlen sein, und dann werden wir es auf Rot umstellen und es erneut ausdrucken. Wie Sie sehen, können Sie Schlüssel hinzufügen und Schlüssel überschreiben, indem Sie dasselbe Format verwenden Etwas kompliziert wird es nun, wenn Sie dem Wörterbuch ein Wörterbuch hinzufügen möchten dem Wörterbuch ein Wörterbuch hinzufügen Ziehen wir das einfach raus? Mal sehen, ob das jetzt funktioniert, indem wir das eintippen. Also sagen wir, dass ich fertig bin. Also gut, wir sagen hier Wert. Und mal sehen, ob das funktioniert. Ordnung, cool. Also können wir genauso einfach Wörterbücher auf diese Weise erstellen Fantastisch. Also muss ich dafür keine Art von Umgehungslösung durchgehen Perfekt. In Ordnung, also los geht's. So können wir unserem Wörterbuch etwas hinzufügen und die Schlüssel überschreiben Jetzt können wir uns ansehen, wie wir unsere Wörterbücher in einer Schleife durchgehen ansehen, wie wir unsere Wörterbücher in einer Schleife durchgehen Es ist also offensichtlich, dass Wörterbücher hier etwas anders sein werden Also werden wir wieder Mein Wörterbuch verwenden, und wir werden tatsächlich eine Viererschleife laufen lassen , damit wir es durchgehen können Wir wollen also vier Schlüssel machen und normalerweise verwenden wir vier Schlüssel in meinem Wörterbuch. An diesem Punkt werden wir also Schlüssel eins und Schlüssel zwei bekommen. Das werden wir durchgehen. Und wenn wir das einfach ausdrucken, P drucken. Sie können sehen, dass wir uns die Schlüssel eins und zwei ausdrucken lassen. Wenn wir noch weiter in das Innere gehen wollen, können wir nach dem Wert suchen, sagen wir, in Key, wir können den Wert ausdrucken und wir können sehen, was wir dort bekommen, indem wir zwei Schichten tiefer gehen. Oh, los geht's. Mein Fehler. Mein Wörterbuch und die gleichen geschweiften Klammern. Da haben wir's Das wollen wir tun, und wir werden den Wert auf diese Weise ausdrucken. Und da haben wir's. Also sehen wir Schlüssel eins, Name, Gesundheit und Schlüssel zwei. Nun, in dieser Situation, da wir hier eine Zeichenfolge haben , wurden alle Zeichen einzeln ausgedruckt, was Sie hier sehen, wenn sie vertikal ist. Und Zeichen enthalten Leerzeichen. Das ist alles, was wir da haben. Wie Sie sehen, haben wir nach Schlüssel und Wörterbuch gesucht, also haben wir Schlüssel eins bekommen. Und was wir dann hier machen , wir wiederholen den Wert und drucken all diese Buchstaben einzeln aus, und dann drucken wir den Schlüsselnamen. Deshalb haben wir das und dann den Schlüssel eins. Und dann gehen wir zu Schlüssel zwei und drucken den nächsten aus. Also Name und Gesundheit, und dann drucken wir auf Schlüssel zwei. Sie können also sehen, wie wir diese Wörterbücher durchgehen und Sie können weiter gehen oder Sie können einen bestimmten Satz von Wörterbüchern durchgehen Sie können also sehen, wie wir diese Wörterbücher in einer Schleife durchgehen . In Ordnung. Das ist also alles, was Sie wissen müssen, um Elemente Ihres Wörterbuchs zu verwenden und darauf zuzugreifen . Also das reicht für hier. Als Nächstes werden wir uns ansehen, wie wir Eingaben vom Benutzer erhalten, und wir werden uns mit weiteren Loops befassen. 16. Eingaben abholen: Ordnung, ich wurde darauf aufmerksam gemacht, dass offenbar Eingaben im Sprachteil fehlen Also machen wir weiter und ich werde zeigen, wie man das ganz schnell macht Ich werde nur eine Benutzerschnittstelle erstellen. Ich werde für meine neue Szene einfach auf Control klicken. Ich mache weiter und benenne das um. Ich werde es nennen. Lass uns einen Eingangstest machen. Ich mache weiter und speichere es mit Controls, Testpunkt TSN ein. Das ist in Ordnung Und ich werde ein Drehbuch hinzufügen. Großartig. Und ich werde einfach all diese anderen Abschnitte , die wir dafür nicht benötigen, oder? Also, in meinem Fall ich ein Steuerelement, aber in Ihrem Fall könnte es sein, dass Sie den Körper eines Charakters um zwei D erweitern , wenn es darum geht, Spieler für Spiele oder so etwas zu erstellen , Spieler für Spiele oder so etwas . Es spielt keine große Rolle, was es erweitert, weil Sie praktisch jeden Knotentyp hinzufügen oder Eingaben von diesem annehmen können . Richtig. Nun, was ich tun werde: Ja, wir werden es einfach in gedruckter Form bestätigen Es gibt also ein paar Möglichkeiten , wie wir Input bekommen können. Und eine der wichtigsten Methoden , wie Sie viele Leute sehen werden ist, sich in einem Funk-Underscore-Prozess zu befinden, oder es wird ein Funk-Physik-Prozess sein Das sind zwei verschiedene Punkte im Bild. Beim physikalischen Prozess sollten Sie alles platzieren, was mit Physik zu tun hat. Also so etwas wie das Bewegen deines Players. Da Sie sich wahrscheinlich mit Dingen wie Kollisionen und anderen physikalischen Dingen befassen müssen , sollten Sie das wahrscheinlich im Physik-Prozess am Frame tun Physik-Prozess am Frame Und der Prozess hier oben ist wahrscheinlich der Ort, an dem viele andere Dinge in Ihren Projekten ablaufen werden, aber normalerweise möchten Sie versuchen dies so klar wie möglich zu halten Nun, eine weitere Situation , die Sie vielleicht gebraucht sehen , ist eine weitere Funktion namens Eingabe. Und unbehandelte Eingabe, und unsere letzte ist unbehandelte Tasteneingabe Nun, es gibt ein paar kleine Änderungen Handhabung angeht. Mal sehen, ob ich hier nur die Maus drüber halte. Je nachdem, welche Version von Gudo ihr habt, werdet ihr das vielleicht sehen oder auch nicht Wenn du die Pop-ups und deine Version nicht siehst, solltest du einfach die Taste gedrückt halten und auf die Funktion klicken können und du wirst dieselben Informationen erhalten Sie lesen hier über einige dieser Unterschiede bei unbehandelten Tasteneingaben, unbehandelten Eingaben usw. Aber die unteren drei hier sind speziell für Eingaben gedacht. Und dann werden Sie hier oben kontinuierlichere Dinge haben, wie zum Beispiel vorwärts gedrückt zu halten, um sich zu bewegen. Alles klar? Also werde ich die unbehandelten loswerden. Wir werden es dafür nicht brauchen. Ich wollte Sie nur darauf hinweisen , dass diese eine Option sind, die Sie hier verwenden können. Ich werde das loswerden. Möchte ich das loswerden? Nein. Das übernehme ich aus meinem Beispiel. Und ich werde den physikalischen Prozess loswerden , nur weil ich keine Charaktere bewegen oder irgendetwas tun werde , das auf Physik basiert. Und ich zeige es dir hier. Der einfachste Weg für uns, einige Eingaben zu machen , ist if input, und diese Eingabeklasse enthält alle verfügbaren Eingaben, entweder eingebaut oder solche, die Sie der Eingabe-Map hinzufügen. Also sagen wir, ich gebe Punkt ein. Wir können „Ich“ sagen und Sie können hier sehen, alles, was gedrückt wird, so ist, als würden Sie zu einem Hauptmenü gelangen und sagen, dass Sie eine beliebige Taste drücken würden. Wenn Sie also eine Taste drücken, wird dies ausgelöst. Abgesehen von einem Hauptmenü bin ich mir nicht sicher, wo Sie das einbauen könnten, aber wenn Sie es benötigen, ist etwas gedrückt, das für Sie da ist ? Und wir werden weitermachen und es testen. Also sagen wir, ich gebe etwas ein, das gedrückt und mit der Tabulatortaste eingegeben wird , wir sagen, etwas drucken, wenn wir buchstabieren können , die Rechtschreibung ist manchmal schwierig , etwas gedrückt, und ich mache weiter und klicke auf Aktuelle Szene ausführen Siehst du, während wir hier sitzen, nehmen wir uns einfach eine Sekunde Zeit, um zu rennen. Da ist es. Wenn ich eine Taste auf meiner Tastatur drücke, drücke ich J, etwas drücken und es wird tatsächlich fünfmal ausgelöst , wobei es genau an der richtigen Stelle im Prozess ist. Wenn ich L drücke, sind wir fertig. Wir können sehen, dass die Zahlen steigen. Wenn ich den Stapel los werde, siehst du jedes Mal, wenn ich hier Knöpfe drücke, unsere Nummer hier unten in der Ecke. Ausfüllen, oder? Also auch nur reinklicken, weil das eine Eingabe ist, das ist schon etwas. Linksklick, Rechtsklick, irgendeine dieser Tasten auf der Tastatur, richtig? Arbeite immer. All diese Dinge werden ausgelöst, weil alles ausgelöst werden kann. Es ist alles, was gedrückt wird. Also, welche anderen Optionen haben wir? Wir haben ist, und wir haben Aktion gerade gedrückt, Aktion gerade ausgelöst, Aktion gedrückt. Und dann haben wir etwas Freude. Diese Joy-Buttons werden also natürlich deine Controller sein, oder? Also wird es dich nach einem Gerät fragen und dann wird es dich nach einem Joy-Button fragen. Nun, ich habe keinen Controller-Stecker, aber das ist, dass Sie etwas Spezielles für Controller tun können , was wir hier nicht tun werden, aber es ist etwas, auf das wir hinweisen müssen, genau wie wir die Tastenbeschriftung, den Tastendruck, die physische Taste, die Maustaste haben Tastendruck, die physische Taste, die Maustaste Sie können also sehen, dass Sie hier eine ganze Menge Dinge haben können Also lass uns mit dem Einfachen weitermachen, dem Einfachen. Sagen wir, tut mir leid, nimm einfach einen Drink. Okay. Also, wenn Eingabe Aktion ist, einfach gedrückt. Nun, Sie werden offensichtlich nicht viele davon haben. Sie werden wahrscheinlich viele dieser UI-Buttons hier unten sehen . Einige dieser Benutzeroberflächen, außer ich glaube, dass dies standardmäßig die Eingabetaste ist. Und Sie sehen, wir übergeben eine Reihe von Aktionen. Ja, also machen wir weiter und fügen das ein. Und jetzt werden Sie sehen, wenn ich es jetzt starte . Denken Sie daran, dass die Aktion gedrückt ist. Wenn ich also die Taste gedrückt halte, halte ich sie gedrückt, sie wird nur einmal gedrückt, oder? Es taucht nur einmal auf. Kein Problem. Und ich lasse los, nichts passiert. Jetzt können wir ein anderes System einrichten, sodass wir sagen können, wenn der Eingabepunkt Aktion ist, wir können Release sagen. Wir werden hier dieselbe Taste verwenden. Ich akzeptiere, und wir werden weitermachen und drucken und wir werden etwas veröffentlichen. Wir haben gedrückt und gerade losgelassen, und wir verwenden für beide die Enter-Taste. Wenn ich also diese Taste drücke, wird angezeigt, dass etwas gedrückt wurde. Wenn ich es gedrückt halte, passiert nichts. Und sobald ich den Schlüssel abhob , löste sich etwas. Je nachdem, was Sie tun, möchten Sie vielleicht, dass etwas bei der Druckausgabe passiert, oder Sie möchten vielleicht, dass etwas bei der Veröffentlichung passiert. Jetzt gibt es alternativ eine weitere Option , die Sie dort gesehen haben. Es wird so sein, wenn die Eingabe Aktion ist, drücken Sie, also nicht einfach drücken, sondern drücken. Und ich sage, ich akzeptiere. Großartig. Also können wir den Unterschied hier sehen. Drucken. Das wird ausgelöst, wenn etwas gedrückt gehalten wird. Also etwas hielt fest. Also, du wirst sehen, ich werde es drücken. Wir werden sehen, wie unser Etwas gedrückt wird. Ich werde es für einen Moment gedrückt halten, also werden wir in dieser Ausgabekonsole eine Spam-Nachricht mit etwas gedrückt halten, etwas gedrückt halten sehen dieser Ausgabekonsole eine Spam-Nachricht mit etwas gedrückt . Und wenn ich dann veröffentliche, werden wir sehen, dass etwas veröffentlicht wird. Richtig? Ich habe das nur für einen Moment gemacht. Ich habe das hochgezogen. Wir können sehen, wie etwas gedrückt wurde und dann etwas, das die ganze Zeit gedrückt wurde. Und dann löste sich etwas , als ich den Knopf abhob. Sie sehen, du hast drei verschiedene Situationen , die du hier nutzen kannst. Und je nachdem, welche Art von System Sie verwenden, welche Art von Eingaben Sie machen, können Sie jede davon für Ihren Zweck verwenden. Nun, ich habe erwähnt, dass wir auch Taste, sagen wir, Taste drücken haben. Und dann wird dafür ein Tastencode benötigt. In unserem Fall wird das, was wir jetzt gemacht haben die Eingabetaste drücken, richtig. Und wir werden einfach weitermachen und Enter drucken, drücken. Und wir überprüfen das, wir halten es gedrückt und wir können sehen, dass wir das bekommen. Wir werden also nicht einfach gedrückt und einfach losgelassen , wenn es um Tasten geht. Also behalte das im Hinterkopf. Also, wenn du hier deine eigenen Aktionen einrichten willst , werde ich das einfach bestätigen. Mehr. Da haben wir's. So wie ich akzeptiere, wie wir es hier getan haben. Wir werden das im Gaming-Teil machen. Aber du gehst einfach zu den Projekteinstellungen, gehst zu Input Map und dann kannst du eine neue Aktion hinzufügen. Vergewissere dich, dass du hier im richtigen Feld bist. Ich sage neu, wir machen weiter und nennen das Testaktion. Sie auf die Schaltfläche Hinzufügen. Wenn ich jetzt hier unten nach unten scrolle, kann ich auf dieses Plus-Symbol und eine beliebige Schaltfläche platzieren. Nehmen wir an, ich drücke die K-Taste, richtig? Ich habe auf Okay geklickt. Ich kann hier reinkommen und sagen, ich habe Aktion gedrückt, Aktion testen. Jetzt führe ich das aus. Jetzt, wenn ich die K-Taste drücke, etwas gedrückt, das ausgelöst wird. So einfach ist das Hinzufügen neuer Eingaben zu Ihrem Projekt. Und es gibt noch ein paar andere Dinge, auf die Sie sich einlassen könnten. Also werden oder sie werden spezifischere Dinge wie Aktionswort haben , Dinge wie Aktionsstärke Aktionsstärke werden wir also die tatsächlichen Zahlen ermitteln Also Eingabe, Aktionsstärke abrufen. Und wenn wir es uns ansehen, wir sehen, ob wir Schläge bekommen Wir werden eine Zahl zurückbekommen, 0-1. Und so viel oder wie fest eine Taste gedrückt gehalten wird Auf einer Tastatur ist es also im Grunde Null oder Eins, oder? Entweder drücken oder nicht. Wenn Sie es jedoch mit Controllern zu tun haben, können Sie hier Dinge erstellen , z. B. eine Taste halb gedrückt halten , um zu zielen, und sie ganz nach unten drücken, um zu schießen Zum Beispiel gab es einige alte Spiele , die ein solches System damit hatten Metal Gear Solid hatte die Stelle, an der man drücken würde , ich glaube, es war die quadratische Taste in den alten Spielen. Man drückte, um zu zielen, und man drückte die Taste ganz oder ließ los, um zu schießen. Und durch Aktionsstärke würden wir das tatsächlich erreichen. Ordnung, es gibt also viele Optionen, die Sie verwenden können, um Feedback zu erhalten, aber ich habe Ihnen die wichtigsten Optionen gezeigt , wie Sie damit umgehen Und ich habe hier immer noch Eingaben eingerichtet, und das liegt daran, dass ein Event Input Event alles ist Das könnte also ein Mausklick sein, könnte ein Tastaturklick sein. Es könnte einfach sein, die Maus auf dem Bildschirm zu bewegen , weil Mausbewegungen ein Eingabeereignis sind, oder? Also wenn ich einfach weitermachen und die Veranstaltung hier drucken würde. Und du schaust es dir an. Siehst du, wenn ich das bewege, kannst du sehen, dass Mausbewegungen eine Menge Dinge mit sich bringen. Die relative Position, Sie haben Stift und Druck und Neigungen, oder wenn Sie Tablet-Unterstützung wollen hast du verstanden. Du hast die Geschwindigkeit , also wie schnell sich die Maus bewegt. Ordnung. Zeig mir den Button-Index Linksklick wird also Index eins sein, Rechtsklick ist Index zwei. Wenn Sie also etwas wie Eingabe verwenden möchten, müssen Sie es eingrenzen. Also würden wir zum Beispiel so etwas wie VR machen sagen wir, ein Ereignis ist ein Eingabeereignis. Wir können also Taste sagen, wenn du möchtest, dass es eine Tastatur ist, JoyPad-Tasten Wenn Sie möchten, dass es sich um eine Taste, eine Ereignisaktion, eine Maus, eine Maustaste, eine Mausbewegung, eine Bildschirmbewegung, Bildschirmbewegung oder eine Bildschirmberührung Dies sind Dinge, die Sie zum Beispiel verwenden würden, um eine Touchscreen-Schaltfläche zu erstellen. Eingabeereignis, Tastenkürzel. Sie haben also all diese Dinge hier drin, aber sagen wir einfach Eingabeereignis. Lass uns gehen. Geben Sie den Event-Key ein. Und dann können wir sagen, dass ar EV gleich Ereignis als Eingabeereignisschlüssel Und lassen Sie uns EV drucken und sehen, was wir von hier bekommen Wir sehen, dass hier nichts passiert. Und sobald ich eine Taste auf der Tastatur drücke, können wir sehen, dass wir jetzt Tasten bekommen, oder? Wir bekommen die Schlüsselcodes Wir bekommen die Mods, egal ob es physisch ist, den Standort, ob es gedrückt ist, und natürlich Echo, welches Echo natürlich wahr ist, wenn die Taste gedrückt gehalten wird Wir haben jetzt also diese Eingabe-Event-Tasten. Ordnung. Also jetzt können wir weitermachen und sagen, ich drücke EV, richtig? Also, ob die Taste gedrückt wird und wir das Wort hier verwenden können, oder Sie können zwei Ampersand verwenden und einfach erweitert Also überprüfen wir, ob beide Bedingungen erfüllt sind und EVP-Code P ED entspricht Und ich kann weitermachen und etwas wie D, E ausdrucken , drücken. Wenn ich jetzt eine andere Taste auf der Tastatur hätte, würde nichts passieren, aber sobald ich die D-Taste drücke , bekommen wir das bestätigt Also, wenn du es wirklich willst, könntest du einfach hier reinkommen und innerhalb deiner Eingabe einfach sagen, ich gebe Aktion ein, drücken, Film Das alles kannst du hier machen. Aber wenn wir ein Event bekommen, können Sie es genauso gut nutzen, und das sind die Situationen, die Sie jetzt machen können, wenn Sie das Event genauso nutzen wollen wie die Action hier. Ordnung. Wenn wir wollen, können wir sagen, ob Ereignis ein Ereignis ist und ob Ereignis Aktion ist, drücken Sie, und jetzt können wir weitermachen und etwas auswählen , für das wir eine Testaktion hatten. Ich kann mich nicht wirklich erinnern , was Testaktion war. Davon werde ich mir keine Vorstellung machen. Aber ich sage Action Press. Ich weiß nicht mehr, was das war. Ich glaube, es war der KK. Ich hoffe ich habe recht. Ich drück drauf und wir sehen Action Press. Ordnung. Also los geht's Also haben wir das, was für uns funktioniert. Also gut, ich hoffe, das gibt dir eine ziemlich gute Vorstellung davon wie wir Feedback vom Spieler bekommen können. Es gibt noch andere kleine Möglichkeiten. Wenn wir zum Beispiel ein Textfeld auf dem Bildschirm hätten, könnten wir die Texteigenschaft daraus übernehmen. Und ich glaube, wenn ich mich recht erinnere, werden wir das in unserem ersten Projekt sehen. Ordnung, ich hoffe, dass dadurch jegliche Verwirrung ausgeräumt wird, und hoffentlich verstehst du einige der Möglichkeiten, wie wir Feedback vom Spieler erhalten können 17. 17-When-Loops: In Ordnung, schauen wir uns While Loops an. Nun, wir haben in der Vergangenheit schon einmal eine Viererschleife verwendet, und jetzt haben wir eine zweite Art von Schleife. Und in einer Viererschleife werden wir, wie Sie sich erinnern, eine Reihe von Elementen durchlaufen , die sich in etwas anderem befinden, unabhängig davon, ob es sich um einen Zahlenbereich oder eine Liste handelt. Eine Wile-Schleife ist etwas , das für immer wiederholt wird , solange eine bestimmte Bedingung erfüllt ist Schauen wir uns also an, wie wir eine Wile-Schleife verwenden können In diesem Fall werden wir es verwenden , um hochzuzählen. Ordnung, also lass uns weitermachen und Ich werde MyNUM speichern erstellen und Ich werde MyNUM speichern das standardmäßig auf Null setzen Und wir werden sagen , dass Wile BiNum kleiner oder gleich fünf ist Wir werden einfach MyNUM ausdrucken. Und an diesem Punkt, wenn wir weitermachen und das versuchen, wird unsere Schleife stecken bleiben und das ganze Programm wird abstürzen Wir werden auf dem Begrüßungsbildschirm hängen bleiben. Und wie Sie in der Ausgabekonsole dort unten sehen können, geht es einfach auf Spam Null, weil das alles ist, was es tun kann. Und tatsächlich wird es nicht einmal geschlossen, also muss ich oben auf die Stopptaste drücken. Bei einem Wile Loop ist es also gefährlich, darin stecken zu Man muss jederzeit eine Möglichkeit haben , auszusteigen. Wenn kein Ausgang codiert ist, stürzt du ab. Nun, es gibt viele Möglichkeiten, einen Exit durchzuführen, und in diesem Fall prüfen wir, ob M NUM kleiner oder gleich fünf ist. Der einfachste Weg, dies zu beheben, besteht darin, diese Aussage so zu erstellen, dass sie falsch wird. Jetzt können wir das tun, indem einfach M NUM auf sechs setzen, wodurch es kaputt geht. Wir werden nicht hochzählen, aber es wird kaputt gehen. Es wird aus der Schleife ausbrechen. Aber was wir lieber wollen da wir eine Wildschleife verwenden, können wir davon ausgehen, dass wir hochzählen wollen , also rufen wir einfach MyNum auf, sagen wir, plus ist gleich eins Nun, das ist genau dasselbe, als würde man sagen, dass M NUM gleich MyNUM plus eins ist. Es ist nur eine kürzere Art , es zu schreiben, indem plus gleich eins Wenn wir es jetzt ausführen, werden wir sehen, dass es von Null, Eins, Zwei, Drei, Vier, Fünf zählt Eins, Zwei, Drei, Vier, , und wenn wir dann bei sechs sind, wird das nicht mehr unseren Bedingungen entsprechen Das wird dazu führen, dass unsere Bedingung als falsch zurückkehrt, und wir werden aus dieser Schleife ausbrechen. Das ist also eine Möglichkeit und ziemlich solider Weg, sie zu durchbrechen. Dies ist jedoch nicht der einzige Weg, um durchzubrechen. Wie Sie gesehen haben, haben wir den Absturz verursacht, als wir nur eine Drucknummer hatten . Aber was wir tun können, ist dass wir hier tatsächlich ein Schlüsselwort namens Brake verwenden können. Und das wird die Schleife durchbrechen, egal was passiert, egal ob die Bedingung wahr oder falsch ist, es wird einfach aus dieser Schleife ausbrechen, wie Sie dort sehen. Auch wenn Null definitiv weniger als eine Fünf ist, können wir, weil wir dieses Schlüsselwort verwenden, aus dieser Schleife ausbrechen, unabhängig davon, ob die Bedingung wahr oder falsch war. Jetzt können wir While-Schleifen für Dinge wie Wörterbücher und Listen und Listen verwenden Dinge wie Wörterbücher und Listen und Listen Also werden wir weitermachen und einen Blick darauf werfen. Also sagen wir Wile, neue Nutzer. Das heißt nur, solange sich Benutzer in dieser Liste befinden und sie nicht leer ist, wird sie als wahr zurückgegeben Und sobald die Liste leer ist, wird sie als falsch zurückgegeben. Was wir also innerhalb dieser Schleife tun werden , da wir sagen können, dass unser aktueller Benutzer unseren neuen Benutzern entspricht , Punkt POP, und wir können vorne auftauchen. Und wir machen einfach weiter und drucken es dort aus. Benutzer verifizieren, und wir können unser Prozent S eingeben und einfach unseren aktuellen Benutzer weitergeben Ordnung. Wenn wir das jetzt überprüfen, können wir sehen, dass wir es schaffen werden. Und wenn alles beendet ist oder wenn Sie alle Namen rausgeholt haben, ist das jetzt falsch und wir brechen aus dieser Schleife aus Und Sie können unten in der Ausgabe sehen, wir diese Aussage für jeden Benutzer ausdrucken , den wir herausgeholt haben. Wenn Sie nun Dinge aus einer Schleife entfernen möchten, können wir das sicherlich auch auf sehr einfache Weise tun Und das gilt natürlich nicht nur für das Entfernen von Dingen, sondern wir schauen uns unsere Tiere dort an und wir können sehen, dass wir dort dreimal Echsen haben Was wir also für einen weiteren Kontoauszug hier tun können , ist, dass wir sagen können, falls es Echse ist, los geht's Oder Wildeidechse bei Tieren. Solange die Echse dort einer der Schlüssel zum Inneren der Tiere ist, wird das so weitergehen Wenn Sie sich daran erinnern, was ich früher oder früher gesagt habe, als wir uns Listen angesehen haben, sagte ich: Wenn Sie mehrere Elemente auf Ihrer Liste hätten die Sie loswerden wollten, die beispielsweise Duplikate Wenn Sie mehrere Elemente auf Ihrer Liste hätten, die Sie loswerden wollten, die beispielsweise Duplikate wären, müssten Sie sie ständig entfernen oder löschen aufrufen , die Sie loswerden wollten, die beispielsweise Duplikate wären, müssten Sie sie ständig bis sie alle Nun, da wir über Woloops Bescheid wissen, können wir einfach nachschauen ob sich Echsen Und obwohl es bei Tieren eine Echse gibt, werden wir sie entfernen . So einfach, wir rufen einfach Animals Dot an. Entferne es, nicht entferne es. Was du Erase Lezard nennst. Siehst du, wir werden weitermachen und danach Tiere drucken Jedes Mal, wenn wir es entfernen, schauen wir es uns an. Und wir sehen, dass wir jetzt zwei Echsen haben. Wir haben mit drei angefangen. Dann fügen wir eine Echse hinzu, und dann haben wir keine Echsen Sie können also sehen, dass dies eine einfache Methode ist zu durchlaufen eine Schleife zu durchlaufen und sagen, alle Duplikate zu entfernen Ordnung, damit wird geklärt, was Wile Loops sind und wie wir sie in verschiedenen Szenarien verwenden können 18. 18 Funktionen und Argumente: Lassen Sie uns weitermachen und zu den Funktionen übergehen. Nun, Funktionen, wir haben bereits zwei davon gesehen und verwendet. Wir haben Process und Ready bisher während des gesamten Kurses verwendet . Sie können jedoch Ihre eigenen Funktionen vollständig erstellen. Und als Beispiel können wir eine haben, die ungefähr so aussieht, wie Sie es hier sehen. Wir könnten also eine sogenannte Begrüßung haben, die Sie zu allem, was wir tun, willkommen heißt , oder? Bücher, wenn wir das richtig buchstabieren können. Jetzt werden Sie feststellen, dass all diese Dinge etwas gemeinsam haben. Nun, wenn Sie sich all das ansehen, werden Sie einige Ähnlichkeiten feststellen, und Sie werden sehen, dass die Grundstruktur dies die Grundstruktur war , die wir die ganze Zeit verwendet haben, und diese bilden die Grundstruktur jeder Funktion, die Sie jemals schreiben werden. In der ersten Zeile beginnen wir mit dem Schlüsselwort Bunk FNC, das GDScript mitteilt, dass wir eine Funktion definieren oder erstellen möchten Darauf folgt ein weiteres Wort oder eine Reihe von Wörtern, aber wir dürfen keine Leerzeichen darin haben dann ein Paar Klammern vorangestellt werden, und das erzeugt eine Funktion Natürlich müssen wir es mit einem Doppelpunkt beenden und dann in die nächste Zeile gehen und die Tabulatortaste drücken Nun, mit dieser zweiten Zeile beginnt der Code, den wir innerhalb unserer Funktion schreiben oder ausführen möchten, und natürlich werden wir nur innerhalb unserer Funktion ausführen. Wenn wir das jetzt ausführen würden , würde nichts passieren. Aber was wir tun können, ist , in den Bereitschaftsmodus zu gehen, sodass wir , wenn dieses Skript geladen ist, wir gerade erstellt haben, tatsächlich Greeting aufrufen können die Funktion, die wir gerade erstellt haben, tatsächlich Greeting aufrufen können. Und das bedeutet, dass die Funktion immer dann ausgelöst wird, wenn Ready ausgelöst wird. Obwohl wir nicht alles in die Ready-Funktion schreiben müssen , können wir alles in separate Einzelfunktionen organisieren und diese aufrufen. Das wird dazu beitragen, dass unser Code sauberer und schöner aussieht. Und Ihr Funktionsname sollte den gleichen Mustern folgen, ich nehme an, Sie sollten sagen, wie Ihre Variablen Also habe ich mir zum Beispiel angesehen, dass Ihre Variablen möglichst kürzer und gut definiert sein sollten und Ihnen genau sagen sollten, gut definiert sein sollten und Ihnen genau sagen welche Daten sie enthalten. Nun, eine Funktion sollte genau das auch tun. Eine Funktion sollte genau das enthalten oder Ihnen sagen , was in der Funktion vor sich geht , indem Sie einfach den Namen lesen. Und nicht nur das, eine Funktion sollte auch nur eine Sache und nur eine Sache tun. Diese Funktion sollte darin nicht vier verschiedene Dinge tun. Jetzt sind wir einige dieser Funktionen, die Argumente oder Parameter verwendet haben , durchgegangen oder haben sie verwendet. Einige davon entfernen das und löschen die an denen wir weitere Informationen hinzufügen müssen. Nun, das können wir auch mit unseren Funktionen tun. Nehmen wir an, wir möchten ein Programm erstellen, das jemanden willkommen heißt. Wir haben das schon einmal gemacht. Wir haben unsere Prozente gemacht. Wir haben das reingetan Aber anstatt oben eine Variable zu erstellen, werden wir eine direkt in den Klammern unserer Funktionen erstellen in den Klammern unserer Funktionen Jetzt könnten wir es einfach so belassen und es wird jeden Datentyp annehmen, aber wir können auch angeben, um welche Art von Daten es sich handeln muss Wir können sogar noch einen Schritt weiter gehen und es angeben oder deklarieren sowie ihm einen Standardparameter geben. Wenn nun etwas einen Standardparameter hat, bedeutet das, dass es optional ist. Wir müssen kein Argument angeben, wenn wir die Funktion hier aufrufen und fertig sind. Wir müssen hier nichts eingeben, und wenn wir nichts eingeben, wird ihm der Standardparameter zugewiesen. Wenn wir hier jedoch etwas eingeben, wird es überschrieben Lassen Sie uns also weitermachen und ihm den Standardwert Bob geben. Und wir können weitermachen und prozentuale Benutzerzahlen hinzufügen. Bis, wir wissen, was wir ausfüllen müssen. Und du wirst sehen, wenn wir nur Begrüßung anrufen und nichts reinschreiben, bekommen wir Willkommen Bob. Aber wenn wir weitermachen und hier etwas eintippen wie, lass uns mit Jim gehen. Und das tippen wir ein. Siehst du, wir heißen willkommen Jim Jim kommt rein und überschreibt die vordefinierte Standardeinstellung von Bob Was passiert nun, wenn wir versuchen, etwas einzufügen, das irrelevant ist? Also setzen wir es auf Null. Was wir uns ansehen, EC, wir bekommen sofort einen Fehler, und es sagt uns, dass es eine Zeichenfolge sein sollte, kein Int. Und das ist der Vorteil , den Sie haben werden, wenn Sie deklarieren, welcher Variablentyp es sein soll Wenn wir das nicht hätten und einfach, Hey, user gleich Bob wäre, könnten wir es jetzt überschreiben Und wir sagen, willkommen Null, was keinen Sinn ergibt, wenn Sie bestimmte Daten für Ihre Funktion benötigen , werden Sie wahrscheinlich auch benötigen, dass es sich Sie wahrscheinlich auch benötigen um einen bestimmten Typ Genau wie bei Variablen ist es also eine gute Idee, wenn Sie genau angeben, welche Art von Informationen Sie angeben oder Ihren Argumenttyp deklarieren Auch wenn Sie jetzt keinen Standard festlegen möchten, sollten Sie beachten, dass wir hier mehrere Argumente haben können, und hier beginnen Positionen wichtig zu werden. Wir haben das also schon einmal gemacht, wo wir Initiator oder Name und Job hatten Also, wenn wir hier ein Komma machen, um es zu trennen, und wir könnten Job da reinschreiben und wir fügen einfach eine Zeichenfolge ein Und wieder können wir weitermachen und wir können sie in beliebiger Reihenfolge aufrufen , wenn es darum geht, sie in unserem Ausdruck auszufüllen , als ob es normale Variablen wären, und Sie werden diesen Fehler hier wahrscheinlich bemerken Nun, funktionell gesehen ist an dem Code hier nichts falsch Aber was es Ihnen sagt , müssen Sie im Hinterkopf behalten, und das heißt, alles, was einen Standardparameter hat, muss am Ende stehen, weil alle optionalen Parameter am Ende Ihrer Argumentliste Es ist einfach so, wie es im GD-Skript ist. Sie müssen also alle obligatorischen im Voraus und dann die optionalen am Ende angeben Sie sehen also, alles, was wir gemacht haben, war einfach Job und Benutzer zu wechseln, und jetzt haben wir keine Fehler mehr, obwohl es funktionell dasselbe ist Ordnung, das reicht für unsere kurze Einführung hier in Funktionen und Argumente, auch bekannt als Parameter, die wir unsere kurze Einführung hier in Funktionen und Argumente, auch bekannt als Parameter, auch bekannt als Parameter In Ordnung, das reicht für unsere kurze Einführung hier in Funktionen und Argumente, auch bekannt als Parameter, die wir hier ausfüllen müssen. Außerdem zeigen wir Ihnen unsere Standardwerte oder wie man Standardwerte zuweist und die Reihenfolge, in der all diese Dinge sein müssen 19. 19 Alias für Funktionen: Ordnung, lassen Sie uns also alles zusammenstellen , was wir zu diesem Zeitpunkt vorhaben Also lass uns weitermachen und ich öffne die Eingabe, die wir zuvor gemacht haben , indem ich einfach auf das Skript in meinem Dateisystem doppelklicke auf das Skript in meinem Dateisystem Und ich werde weitermachen und mir alles schnappen, was ich hier bereit hatte. Und wir könnten es bereit halten. Aber was wir stattdessen tun werden, ist das alles in eine brandneue Funktion zu integrieren , die wir erstellen werden. Und ich werde meinen Process Text nennen. Text verarbeiten. Da unten rein und los geht's. Und jetzt können wir einfach sagen , dass wir bereit sind. Ordnung, jetzt haben wir also unsere Funktion innerhalb des Prozesstextes. Und für das, was ich tun werde, entschuldige ich mich. Das werden wir dort nicht tun. Das wird in unserem Ready-Bereich sein. Textprozess wird tatsächlich in einer separaten Phase durchgeführt, und dazu wird ein Argument benötigt das wir als neuen Text aufrufen können, und wir weisen ihm einen Standardparameter von nichts zu. Ordnung. Jetzt markiere ich sie einfach, halte die Alt-Taste gedrückt und bewege sie mit der Aufwärtspfeiltaste nach oben. Ordnung, also im Prozesstext wollen wir diesen Text so nehmen, wollen wir wie er eingegeben wurde, und wir können ihn überprüfen, ähnlich wie wir es hier in dem Prozess hier gemacht haben Also werde ich einfach weitermachen und das, was wir in der Eingabe hatten, kopieren und es hier in unseren Prozesstext verschieben Schnappen Sie sich diese und ziehen Sie sie zurück, indem Umschalttaste gedrückt halten und die Tabulatortaste drücken. Nun, wir können das so schnell wie möglich beibehalten, aber ich werde es in Q ändern. Also, wenn mein Text Q entspricht und wir das Textfeld überhaupt nicht benötigen, weil wir unsere neue Texteigenschaft verwenden werden Jetzt werden wir also ein Stück Text in unsere Prozesstextfunktion übergeben ein Stück Text in unsere Prozesstextfunktion Und wir werden prüfen, ob der neue Text Q ist, dann werden wir Quit aufrufen, genau wie wir es in unserer Eingabe getan haben, und wir werden eine Variable namens My Name erstellen , falls es keine gibt. Und wir werden das dem neuen Text zuweisen , den wir an dieses Argument oder an diese Funktion als Argument übergeben. Und dann können wir es wieder ausfüllen, genau wie wir es mit unserer Eingabe getan haben. Wir machen hier nichts Ausgefallenes. Gehen wir zu Wir müssen unseren Input einholen. Gehen wir also zu unserem Prozess und machen unsere if-Anweisung, also sagen wir, ich gebe Actin ein und wir machen einfach mit Release weiter Und wir nehmen die Eingabetaste. Wenn Sie jetzt angeben, wenn Sie hier keine Aktion haben, könnten Sie die Benutzeroberfläche verwenden, außer ich glaube, es ist eine Standardbenutzeroberfläche, ist eine Standardbenutzeroberfläche da sie entweder die Leertaste oder die Eingabetaste oder die Eingabetaste ist. Wenn Sie jedoch noch keine im Eingabebereich erstellt haben, gehen Sie einfach zu den Projekt - und Projekteinstellungen, gehen Sie oben auf die Registerkarte Eingabekarte fügen Sie eine neue Aktion namens Mind Enter hinzu. Und dann, nachdem du sie hinzugefügt hast, siehst du neben dieser Aktion eine Plus-Schaltfläche. Sie können darauf klicken und die gewünschte Taste oder Schaltfläche auswählen . Alles, was wir hier tun werden, wenn wir die Entropie freigeben , ist einfach unseren Prozesstext aufzurufen, und wir können dieses Textfeld , das wir hatten, tatsächlich übergeben Also lasst uns weitermachen und das Textfeld nehmen und uns die Texteigenschaft von holen Jetzt werden Sie sehen, sobald wir hier oben sind, können wir weitermachen und alles eingeben , was wir wollen. Und es wird genauso ausgefüllt, wie wir zuvor im Eingabebereich getan haben. Das alles funktioniert also genauso und im Grunde ist es dasselbe. Aber wie Sie sehen können, ist das alles, was wir jetzt brauchen, wenn wir das aufschreiben. Wir haben die I-Taste gedrückt, um diese Funktion auszuführen. Es ist viel kürzer, es ist viel sauberer und schöner anzusehen Und vor allem können wir diese Funktion überall verwenden, wo wir sie benötigen, sodass wir nicht immer und immer wieder denselben Code schreiben immer und immer wieder denselben Code Wenn Sie nun einen langen Code haben, oder entschuldigen Sie, keinen langen Code, einen langen Funktionsnamen , für den Sie sich einfach keinen besseren Namen vorstellen können, können wir tatsächlich einen Alias für diesen Namen erstellen. Nun, ein Alias ist so etwas wie ein Stand-In, oder? Also können wir diesen Kurznamen nehmen und er wird für diese Funktion stehen. Es wird also diesen langen Namen repräsentieren, so wie es eine Variable tut. Wir haben einen kurzen Namen und er steht für diese große Datenmenge. Das wird also ein Variablenname sein , der eine ganze Funktion repräsentiert. Okay, also lass uns weitermachen und hier oben in unserem Skript können wir weitermachen und eine Variable erstellen Ich werde das Alias nennen. Und was Sie damit gleichsetzen werden, ist, dass wir das einfach auf den Namen unserer Funktion setzen können. In Ordnung, einfach so vorgehen und es wird funktionieren. Also, wenn wir hier runterkommen und Enter drücken, können wir weitermachen und Alias Punkt, Paul, machen, und dann ist innerhalb dieser Klammern das, was wir weitergeben wollen Das wäre also unser Textfeld und unsere Texteigenschaft davon Du wirst sehen, ob wir weitermachen und das überprüfen. Bum, alles funktioniert genauso wie vorher. Es ist nur ein bisschen kürzer und wir verwenden einen Alias. Wenn Sie nun alternativ vielleicht einen Alias für eine Funktion erstellen möchten, die sich in einem anderen Skript befindet , zu einem völlig anderen Thema , wird die Alternative dazu ähnlich sein. Also werde ich auch einen Alias erstellen, und dieser wird Callable genannt Und Callable ist Psychofunktion, oder? Der einzige Unterschied besteht also darin wir, wenn wir sie als Callable erstellen, dort tatsächlich zwei Argumente hinzufügen müssen Das erste ist also, wo sich die Funktion befindet. In diesem Fall ist es also auf demselben Skript wie der Vertrieb. Also können wir „Ich“ sagen. Wenn das jedoch, sagen wir, in unserem Textfeld wäre, dann würden wir unser Dollar-Textfeld Cel verwenden. Da es sich aber um dasselbe Skript handelt, können wir self eingeben, und dann benötigt es ein zweites Argument, das, wie Sie sehen, ein Methoden- oder Funktionsname in Form einer Zeichenfolge ist. Also würden wir weitermachen und es so eingeben. Und jetzt können Sie sehen, dass wir genau das Gleiche tun können, was wir für alias to.com getan haben , und unsere Kunst weitergeben Da hast du's. Das sind also nur zwei Möglichkeiten, wie wir einen Alias für eine Funktion erstellen können . 20. 20 Kurse: Was ist die Klasse und wie können wir eine erstellen? Wir haben also schon Klassen benutzt. Wir haben sie einfach nicht als Klassen bezeichnet . Wir haben sie Objekt genannt. Und die Zeilenbearbeitung hier, das ist eine Klasse, und alle Klassen, die existieren, haben hier die Form von Knoten. Sie können also die verschiedenen Klassen durchstöbern und sich diese ansehen. Und es gibt sogar einige Klassen , die nicht in dieser Liste enthalten sind, wie zum Beispiel JSON, auf die wir noch eingehen werden, wenn es darum geht , wie man verschiedene Dateitypen speichert und lädt. Aber das ist es, was wir tun, oder? Sie rufen eine Klasse auf und rufen neu auf, um eine neue Instanz der Klasse zu erstellen . Nun, im Fall einer Zeilenbearbeitung haben wir etwas Grafisches, aber im Fall von etwas wie JSON, wo wir nichts Grafisches haben, aber wir haben Dinge, die wir verwenden können. Und das werden wir in unserem nächsten Abschnitt sehen, wir werden uns auch mit regulären Ausdrücken befassen. Lassen Sie uns also weitermachen und uns eine Vorstellung davon geben , wie dieses Zeug funktioniert. Lass uns weitermachen und wir werden unsere eigene Klasse gründen. Diesmal klicke ich einfach mit der rechten Maustaste in mein Dateisystem und wähle Neues Skript aus. In diesem Fall erben wir von, ja, wir können von Node erben. Das ist in Ordnung. Und ich werde es meinen PET-Kurs nennen und kostenlos zuschlagen. Und jetzt werde ich es finden und doppelklicken, damit wir es öffnen können. Und ich werde alles darin löschen , bis auf unsere Erweiterungen oben. Nun, um eine neue Klasse zu erstellen, brauchen wir eigentlich nichts von dem Zeug, das wir vorher hatten. Was wir tun werden, ist Klassennamen mit einem Leerzeichen zu unterstreichen, und wir können den Namen dieser Klasse eingeben, wie wir wollen Also, um beim Namen des Skripts zu bleiben, werde ich es PET nennen und das wird unsere PET-Klasse sein Jetzt fügen Sie hier ein zweites Argument in Form einer Zeichenfolge hinzu, und das wäre ein Pfad zu einem Bild in Ihrem Projekt. Ein Symbol, und dieses Symbol wird hier tatsächlich angezeigt, ähnlich wie die Steuerung hier einen kleinen Kreis hat, einen grünen Kreis. Ihre Funktion wird dieses Symbol ersetzen. Ordnung. Also innerhalb von Pet werden wir hier einige Variablen erstellen können, richtig? Also Savar-Name, richtig. Und das entspricht einer leeren Zeichenfolge. Wir werden unser Haustier in unserem Alter haben. Und dann wird es standardmäßig einfach auf Null gesetzt, und wir können den Typ haben , der auf eine Zeichenfolge gesetzt wird. Nun, da das eine eigene Klasse sein wird , wäre es schön, wenn wir Möglichkeiten hätten einige dieser Dinge zu ändern. Also können wir weitermachen und eine Funktion namens Name erstellen . Geh. Und ich gebe dem neue Namen, damit wir Konflikte vermeiden können. Das und wir machen diese Funktion namens Change Name. Wir gehen. Jetzt haben wir das und wir können dasselbe für unser Alter und alles andere tun . Also können wir reinkommen und unseren Funk wie in einem normalen Drehbuch schreiben oder einfach so, wie wir es normalerweise in einem Drehbuch mit verändertem Alter tun. Wir werden ein neues Zeitalter einläuten und einfach einstellen Wir haben diese beiden Blackbird Ja. Also wollen wir Alter gleich New Age setzen. Und wir können dasselbe mit PET machen, mit t würdest du den Typ ändern, was nicht wirklich Sinn machen würde , es sei denn, du hast ein wirklich seltsames Tier, das ändern kann, um welche Art von Kreatur es sich handelt, ich denke, so etwas wie das Gleiche bei Pokemon Lassen Sie uns also weitermachen und einen Typ verwenden, der dem neuen Typ entspricht. Und wir können feststellen, welche das sind. Ich sage Zeichenfolge und so, wir haben keine Probleme damit, Dinge weiterzugeben. Und jetzt, wo wir das haben, werde ich mit der Close-Out-Funktionsklasse weitermachen. Wir wollen hier ein neues Skript zu einem Steuerelement hinzufügen. Klassentest. In Ordnung. Also, was wir tun werden, ist innerhalb unserer hübschen Funktion. Wir können jetzt weitermachen und eine neue Variable namens PET erstellen und diese auf PET dot new setzen. Und jetzt haben wir Zugriff auf all unsere Funktionen, also können wir sagen, PET, mach einen Punkt. Und jetzt können Sie sehen, wir haben den Altersnamen, den Typ, das Änderungsalter, den Änderungsnamen, den Änderungstyp und dann all die Standardfunktionen , die wir auf einem typischen Knoten haben würden , den wir erweitern. Wenn wir wollen, können wir jetzt ausdrucken , dass das mein Lieblings-Prozent-S ist . Er ist ein Prozent S und ist Prozent S. Prozent S und ist Prozent Und jetzt können wir das ganz einfach ausfüllen. Was wir hier haben. Also die ersten Sachen von PET sind Namen. Ich sage Etname, gefüttert von Pet Dot Type und Pet Dot H. Jetzt wird das ein bisschen lang Sie bemerken diese hellen Linien hier im Editor und dann eine viel härtere Linie hier. Versuchen Sie, diese Linien nach Möglichkeit nicht zu überschreiten. Und was wir tun können, ist einfach die Eingabetaste zu drücken, dann wird es dort nicht angezeigt. Ist es auf der Oro? Also, was wir tun können, ist so etwas wie das hier und alles in einer Zeile zu organisieren. Wir können alles so übersichtlich halten, und wenn wir schreiben oder wenn wir das starten, erstellen wir ein neues Haustier, aber wir werden es nicht zum Baum hinzufügen, weil wir das in diesem Fall nicht müssen, weil wir nur auf dessen Eigenschaften zugreifen wollen, oder? Und wir können etwas erschaffen. Das ist mein Haustier. Wir haben diesen Satz und füllen der Grundlage der Informationen aus, die wir dort haben , die Standardwerte sind alle leer, bis auf die Null Der Satz sieht also immer noch ein bisschen komisch aus. Aber bevor wir diesen Druck machen, können wir Pet Dot Change aufrufen. Verwenden wir zum Beispiel Name, und wir können einen Namen übergeben. Also sagen wir Billy. Und jetzt können Sie sehen, dass das hier in unserer Ausgabekonsole angezeigt wird. Und wir können dasselbe mit Alter und Typ machen. Wenn wir jedoch so etwas zur Pflicht machen, dann wird es etwas nervig sein, wenn andere Benutzer das konsequent tun müssen . Was wir dort also tatsächlich tun ist, dass wir eine Int-Funktion aufrufen können, und das ist etwas, das in alle Klassen eingebaut ist. Also Funk unterstreicht INIT, öffnet und schließt unsere Und hier können wir eine festgelegte Liste von Parametern haben , die wir eingeben müssen Und das sind alles Dinge, die standardmäßig gesetzt werden , sobald unsere Klasse erstellt wurde. Also machen wir weiter und geben weiter , ich sage einen neuen Namen. Und dann machen wir New Age und New, richtig? Und dann werden wir nur sagen, dass Name gleich neuem Namen ist. Wir werden sagen, Alter ist gleich, gleich New Age, und Typ ist gleich New Type. Wenn wir jetzt zu unserem Testskript zurückkehren, werden Sie feststellen, dass wir einen Fehler haben. Zumindest sollte ein Fehler auftauchen. Los geht's Und das liegt daran, dass wir jetzt Argumente haben müssen. Also innerhalb von new inside of the new call hier sind das alle Parameter, die wir für unsere int-Funktion ausfüllen müssen. Also brauchen wir einen Namen, ein Alter und einen Typ. Und wieder können wir sie nach den Typen deine Zeichenfolge und Zeichenfolge nennen , du siehst, wenn wir jetzt hier reinkommen , wir müssen das ausfüllen, also lass uns weitermachen, damit wir dort einen Namen eingeben können. Sagen wir Fledermäuse. Unser zweites Argument ist unser Alter, das wir in zwei Zahlen angeben können. Und dann brauchten wir einen Typ. Sagen wir Hund. In Ordnung. Lass uns weitermachen. Wir können das ausführen. Und jetzt sehen wir, was alles eingebaut wird. Das ist mein Haustier Bax. Er hat einen Hund und ist 2 Jahre alt Jetzt wird das alles ausgefüllt. Wir fassen das zusammen, weil wir das nicht tun müssen. Wir müssen nicht drei verschiedene Funktionen aufschreiben , um das von unserem Haustier zu ändern das von unserem Haustier Stattdessen fügen wir einfach alles in unsere oder unsere initialisierte Funktion ein, die in allen Klassen neu erstellt wird Richtig. Ich hoffe, das gibt Ihnen eine Vorstellung davon, was Klassen sind und wie wir sie erstellen können und wie wir sie wirklich in unserem Code verwenden können. eine Klasse kann für jedes Skript zugegriffen werden , oder besser gesagt, Sie können aus einem beliebigen Skript eine neue Instanz dieser Klasse erstellen. Und Sie könnten eine Klasse nur erstellen, um über einige Dienstprogramme zu verfügen , mit denen Sie Zeit sparen können. Ich bringe es einfach in ein Hilfsprogramm und rufe einige spezifische Funktionen auf, die du vielleicht überall brauchst, oder du könntest es verwenden, um ein Objekt zu erstellen, wie in diesem Fall eine Tierklasse oder, wenn du ein Spiel erstellst, vielleicht eine Feindklasse, und dann hätte dieser Feind seine eigene Gesundheit , seinen eigenen Angriff und seine eigenen Informationen. 21. Was wir machen werden (Platz ausfüllen): Ordnung, diese Woche werden wir Dinge noch ein bisschen aufpeppen und nicht nur von etwas Text ausgehen, 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 Das gibt uns jetzt die Möglichkeit, mit einem Zwei-D-Player-Controller zu arbeiten Kollisionen. Vielleicht werden wir uns mit einigen Partikeln befassen Wir können mit ein paar Spawnern arbeiten. Und wie ihr seht, falls ihr Frogger noch nie gespielt habt oder noch nie davon gehört habt, seht ihr hier, dass wir mit der Benutzeroberfläche für das Heads-up-Display arbeiten werden mit der Benutzeroberfläche für Wir haben Punkte, die wir im Auge behalten müssen. Finde dort für eine Sekunde meine Maus. Aber nicht nur das, wir werden auch sehen, ob es das hier zeigen wird ? Okay, wir haben also eine bestimmte Anzahl von Fröschen pro Spieler. Offensichtlich müssen wir keine Münzen hineinwerfen. Aber das ist im Grunde das Spiel hier. Wir haben also zwei kleine Sicherheitszonen in diesem kleinen lila Bereich. Wir haben eine Straße in der Mitte mit fünf Fahrspuren, die sich abwechselnd hin und her bewegen. Und wenn der Frosch von einem dieser Autos angefahren wird, sterben sie 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 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 Frogger, falls Sie es noch nie gespielt oder davon gehört 22. Das Storybook erstellen: Ordnung, willkommen, alle zusammen. Und heute werden wir mit der Entwicklung unseres allerersten Spiels beginnen Was wir heute erstellen werden, ist eigentlich das Märchenbuch für unser MadisGame Und dieses Märchenbuch wird all unsere Geschichten sowie die Anweisungen enthalten , nach denen wir den Spieler fragen werden Wenn Sie möchten, können Sie das jetzt in einem völlig neuen Projekt erstellen das jetzt in einem völlig neuen Ich werde einfach weitermachen und unsere kleinen Beispiele hier löschen , die wir verwendet haben. Als du die Sprache hier gelernt hast, du sie einfach ausgewählt und gelöscht. Auf diese Weise kann ich eine neue Seite aufschlagen. Und da ich all unsere Projekte in diesem einen Projekt hier speichern werde , werde ich einfach weitermachen und einen neuen Ordner erstellen und ihn MDLibs nennen Auch hier würde ich empfehlen, dass Sie ein komplett neues Projekt erstellen Auf diese Weise können Sie alles einzeln exportieren. In Ordnung, also haben wir weitergemacht und wir haben das. Wir haben unseren MADIPSFolder für Ihr Projekt. Und ich werde einfach weitermachen und auf meinen Ordner klicken. Wenn Sie ein neues Projekt starten, können Sie einfach mit der rechten Maustaste in eine leere Stelle klicken. Und ich werde ein neues Skript erstellen. Ich werde hier ein Drehbuch erstellen, und ich werde einfach diesen Bilderbuchkurs aufrufen und auf Preate klicken Ordnung. Jetzt kann ich weitermachen und meins ist nicht meinen Ordner gefallen, weil ich auf die Außenseite geklickt habe, also werde ich einfach mit der rechten Maustaste klicken und es an die gewünschte Stelle verschieben Und ich habe es hier in meinem Ordner, oder? Ich werde das öffnen. Wir können Nein verlängern, das ist in Ordnung. Wir werden nichts davon benötigen, weil dieser Kurs nur einige Informationen für uns bereithalten wird. Also werde ich weitermachen und ein Märchenbuch mit Klassennamen einbauen, und dafür werden wir Erweiterungen benötigen Nein, ich glaube nicht, dass wir es sind. Also werde ich weitermachen und das alles verschieben , damit wir hier einen kompletten Neuanfang haben. Ordnung, also hier werden wir unsere Geschichten erstellen, und unsere Geschichten werden in einer Variablen gespeichert , die vom Typ „Wörterbuch“ ist Ordnung, also werde ich eine Variable namens Stories erstellen namens Stories Und das wird ein Wörterbuch sein. Und weil es ein Wörterbuch ist, werde ich die Eingabetaste drücken, um es zu öffnen. Denken Sie daran, dass das Wörterbuch durch die geschweiften Klammern gekennzeichnet ist, die unsere Informationen hier umgeben Und für diese kann ich einfach Geschichte eins und einen Doppelpunkt sagen , das Und dafür brauchen wir jetzt einen Wert. Und dieser Wert wird auch ein Wörterbuch sein , weil wir hier in der Geschichte zwei Informationen benötigen werden. Wir werden die eigentliche Geschichte benötigen. A und das wird vorerst nur eine leere Zeichenfolge sein. Und dann wird es auch einen für unsere Requisiten geben. Und das wird nur ein Array sein. Also werden wir hier eckige Klammern haben. Und das ist die Vorlage, die wir für all unsere Geschichten verwenden werden. Wir werden also Geschichte eins, Geschichte zwei, Geschichte drei, Geschichte vier usw. haben Geschichte zwei, Geschichte drei, . Und alles, was wir tun werden, ist , weiterzumachen und das einzubauen Was die Geschichte angeht, werden wir zum Beispiel sagen, mal sehen, was wir hier einfügen wollen. Ordnung, also habe ich weitergemacht und hier meine kleine Geschichte geschrieben. Also eines Tages das Prozent S. Jetzt ist Prozent S nur ein Platzhalter für eine beliebige Zeichenfolge Und wir können das später durch das ersetzen was auch immer der Benutzer eingibt Dieses Prozent S wird sich in diesem Fall also wie ein leeres Blatt in unserer Geschichte verhalten. Also ging eines Tages die Leere in die Leere, um eine Quest zu erhalten. Diese Quest bestand darin, zu Blank zu gehen, um ihn zurückzuholen, richtig? Wir haben diese kleine Geschichte hier und da haben wir sie. Wenn Sie die Geschichte in mehrere Zeilen aufteilen möchten, können wir das ganz einfach tun. Wenn wir das tun, indem wir unseren Schrägstrich hier am Ende und dann in der nächsten Zeile haben, haben wir ein Plus Es wird diese Zeichenfolge zu dieser Zeichenfolge hinzufügen, und jetzt können wir alles zusammen an einem Ort haben Aber nicht nur das, es ist auch viel einfacher zu erkennen, wenn alles inline oder auf einer Website wie dieser ist. Also habe ich das nur zu Testzwecken mit einem Int ausgedruckt das nur zu Testzwecken mit einem Int , nur um sicherzugehen , dass es keine Probleme gibt, keine seltsamen Bugs. Da haben wir's. Wir sind bereit. Nun, für unsere Eingabeaufforderungen werden das Zeichenketten innerhalb dieses Arrays innerhalb dieser Liste Und während wir eines Tages die Leere durchgehen. Dieses Leerzeichen macht also Sinn, wenn es ein Substantiv ist, also können wir weitermachen und einfach das Substantiv eingeben. Und was kommt als Nächstes? Ging ins Leere, also wird das ein Ort sein. Unser nächster, der eine Quest erhält. Diese Quest sollte in die Richtung gehen , zu der wir gehen sollten, und das wird ein weiterer Ort sein, an dem wir etwas zurückholen können. Das wäre nur ein anderes Substantiv. Alles klar? Also so werden wir im Grunde mit unseren Eingabeaufforderungen arbeiten Also gehen wir durch. Wir haben ein Substantiv, dann einen Ort, dann einen anderen Ort und dann ein Substantiv, und das füllt alle unsere Optionen hier aus. Das wird uns genug Dinge geben, um unsere Lücken zu füllen. Und alles, was wir jetzt für weitere Geschichten tun müssen , ist, hier am Ende ein Komma zu setzen, eine neue Zeile zu wechseln, ein Duplikat von dem einzufügen, in eine neue Zeile zu wechseln, ein Duplikat von dem einzufügen, was wir gerade hatten, Geschichte eins zu Geschichte zwei zu ändern Und jetzt können wir weitermachen und eine weitere Geschichte mit einigen weiteren Eingabeaufforderungen erstellen , und wir können das einfach immer wieder tun Damit wir ein schönes, vollständiges Bilderbuch verwenden können. In Ordnung, wir haben hier also eine zweite kleine Geschichte. Eines Morgens ging D Baker zu Ich ging zu Blank U in den Laden. Zu seiner Überraschung blieb dort jedoch eine Leere stehen. Nun, ich habe mit dem Verb Substantiv und Pronow weitergemacht , aber jetzt, wenn ich darüber nachdenke, Pronomen wahrscheinlich keinen Sinn, weil wir bereits gesagt haben, dass es ein Er ist, Sein Laden, seine Überraschung. Also werde ich es einfach wieder so ändern, dass es nur noch ein Substantiv ist, also hör auf, Blaine zu sein Und du kannst einfach weitermachen und so viele lustige kleine Geschichten wie möglich schreiben und dein Märchenbuch wirklich füllen Und sobald Sie Ihr Märchenbuch vollständig erstellt und fertig haben , können wir mit dem nächsten Abschnitt fortfahren und mit der Erstellung der Oberfläche beginnen , mit der unser Benutzer interagieren Und dann werden wir tatsächlich damit beginnen, den Code zu erstellen und dafür zu sorgen, dass alles funktioniert 23. Erstelle die Schnittstelle: Ordnung, also lasst uns weitermachen und beginnen, das Interface zu erstellen, das wir In Ordnung, also lasst uns weitermachen und damit beginnen, das Interface zu erstellen, das wir benötigen, damit unser Spieler das Spiel tatsächlich spielen Im Moment haben wir hier nur eine leere Szene und wir werden eine neue brauchen Also lass uns sehen, was wir wollen? Nun, der Spieler muss in der Lage sein, etwas Text einzugeben, genau für die angezeigten Eingabeaufforderungen. Wir müssen dem Benutzer natürlich Text auf dem Bildschirm anzeigen Benutzer natürlich Text auf dem Bildschirm damit er weiß, welche Eingabeaufforderungen er benötigt, auch die Geschichte am Ende lesen Und wir können weitermachen und dort auch einen Button einbauen. Auf diese Weise kann der Benutzer, wenn er nicht die Eingabetaste drücken möchte, auf die Schaltfläche klicken und trotzdem seinen Text einreichen. Das sind also drei Dinge , die wir hier mindestens benötigen werden. Also lass uns weitermachen. Wir können erstellen Ich mache weiter und klicke hier im Bereich Stammknoten erstellen auf der linken Seite auf Benutzeroberfläche , und das gibt uns einen Kontrollknoten, mit dem wir uns starten können. In Ordnung. Und ich werde es in Maine umbenennen, da dies die Hauptquelle für unser Spiel sein wird. Ich drücke diese kleine Plus-Schaltfläche direkt darüber, wenn Main ausgewählt ist, und das wird mich auffordern, einen neuen Knoten zu erstellen. Jetzt machst du hier einfach all die verschiedenen Objekte , die wir erstellen könnten. Und denken Sie daran, wir können das auch im Code machen. Wir machen einfach, wir gehen zum Beispiel in die Steuerung. Und du weißt, ich werde einfach weitermachen und suchen. Ich suche danach. Das Äquivalent dazu, das auszuwählen und es hier hinzuzufügen, wäre das Gleiche, als hätten wir hier ein Skript auf unserer Hauptseite, und wir sagten nur Zeile bearbeiten Punkt neu, und dann fügen wir es der Szene hinzu. Das ist genau das Gleiche wie das, was wir gerade gemacht haben, nur dass wir die Dinge visuell machen, nur weil es am Ende des Tages schneller sein wird . Und wenn wir die Werkzeuge haben, um die Produktion zu beschleunigen, können wir sie genauso gut nutzen. Ich mache weiter und schnappe mir den kleinen orangefarbenen Griff hier strecke ihn aus Und ich mache weiter und solange das ausgewählt ist, gehe ich zum oberen Bildschirmrand Klicken Sie. Da haben wir's. Dieses kleine Symbol neben dem Anker, und Sie erhalten ein Popup für Anker-Presets Und ich wähle einfach die aus , die sich in der Mitte meines Bildschirms Da haben wir's. Auf diese Weise weiß ich, dass mein Textfeld immer genau in der Mitte sein wird. In Ordnung. Also, dieses Objekt hat eine Reihe von Eigenschaften, oder Sie können es auch als Variablen bezeichnen, richtig, die sich auf diesen befinden, auf die wir zugreifen können Und einer davon ist Platzhaltertext. Und das können wir sehen, wenn wir einen Blick auf die rechte Seite des Inspektors Wir können den Platzhaltertext hier sehen. Jetzt können wir hier weitermachen und unseren Benutzern so eine Vorstellung davon geben , was sie eingeben sollen So wie Sie auf eine Website gehen und dort möglicherweise E-Mail und in diesem Feld Passwort stehen. Also sagen wir „ Eingabeaufforderung abschicken“, Punkt, Punkt. Auf diese Weise weiß unser Benutzer, dass er hier seine Aufforderung einreicht. Und ich werde weitermachen und meine Zeilenbearbeitung in Benutzer umbenennen , den Sie Benutzereingabe nennen möchten? Nein, nennen wir es Eingabeaufforderung, Sie möchten Text, Eingabeaufforderungsfeld . Sofortige Einreichung. Los geht's, denn wir reichen unsere Schrift hier ein oder nicht Fonti Prompt, sorry Also werde ich damit weitermachen und einfach Prompt Submission nennen Nun, ich habe erwähnt, dass ich eine Schaltfläche haben möchte, also wähle ich wieder Main. Ich möchte, dass das der Besitzer ist. Ich werde den Button oben eintippen. Und jetzt habe ich eine Schaltfläche, und ich stelle den Text dieser Schaltfläche so ein, dass sie einfach sagt: Okay. Und ich mache dasselbe, wenn die Schaltfläche ausgewählt Ich wähle die Schaltfläche ganz oben neben dem Anker aus und wähle die Mitte. Auf diese Weise kann es zentriert werden. Und ich werde es einfach mit einem Linksklick festhalten und dann werde ich danach die Umschalttaste gedrückt halten und es nach rechts schieben, wenn ich es hier erreichen kann Los geht's. Einfach so. Da haben wir's. Nun, ich denke, manche Geschichten könnten etwas lang werden. Also werde ich weitermachen und mir beide schnappen, sowohl meine Eingabeaufforderung als auch meine O-Taste. Und dafür habe ich einfach weitergemacht und Sie können bei gedrückter Umschalttaste oder bei gedrückter Taste bei gedrückter Taste klicken. So oder so, wir werden bis hier arbeiten. Ich nehme es auf meiner Benutzeroberfläche und halte dann die Umschalttaste gedrückt , damit wir es in einer geraden Linie halten können, und ich werde es einfach ein bisschen nach unten bewegen, damit wir oben etwas mehr Platz haben etwas mehr Platz , falls unsere Geschichten etwas lang werden. Okay. Also zeigen diese Anker , wo sich unser Objekt im Verhältnis zu diesem Punkt auf dem Bildschirm befinden wird? Dieser Anker befindet sich also in der Mitte unseres Bildschirms. Also unabhängig davon, wie groß das Fenster ist, dieses Textfeld, diese Zeilenbearbeitung und diese Okay-Taste immer so weit unten sein, ungefähr von der Mitte entfernt. Dadurch wird die Position fast automatisch auf der Grundlage der Anker und der Fenstergröße aktualisiert Position fast automatisch auf der Grundlage der Anker und der Fenstergröße Das ist großartig für uns, weil wir nie wissen, wie groß ein Bildschirm sein wird . Mal sehen Wenn wir von hier aus weitermachen, was brauchen wir noch? Nun, wir werden etwas Text anzeigen müssen. Lass uns sehen. Wir könnten ein Etikett verwenden , um unsere Informationen aufzufordern oder anzuzeigen. Wir könnten auch einen Rich-Text verwenden , und ich denke, wir werden einen Thad verwenden Also machen wir weiter und fügen unserer Szene ein weiteres hinzu, und das wird ein Rich-Text-Label sein Und ich werde einfach diese orangefarbene Schachtel herausziehen , diesen Griff. Und ich glaube, ich werde die Anker in die Mitte setzen , so dass hier alles relativ ist Klicken Sie bei gedrückter Umschalttaste und rufen Sie es auf. Und ich denke, das reicht für viele unserer Informationen. Wie umfangreich ist dieser Text? Ja, ich denke, das wird in Ordnung sein. Ja, lass uns sehen. Rich-Text-Label, ich werde das in meinen Displaytext umbenennen . In Ordnung. Also ich denke, das ist alles, was wir brauchen werden. Ich mache weiter und drücke Controls und speichere meine Szene. Hier ist es in meinem Ordner. Und wenn wir das jetzt ausführen würden , hätten wir keine Probleme. Wir können sehen, dass hier alles perfekt geklappt hat. Alles sieht gut aus. Wir können in unsere Bücher tippen. Und ich werde weitermachen und nach dem Fenster suchen, damit ich es dir hier zeigen kann. Jetzt wird es wichtig sein, dass du das Fenster siehst . Da hast du's. Da können Sie sehen, dass wir es eintippen und Dinge daraus löschen können . Fantastisch. Wir können den OK-Knopf drücken. Fantastisch. Nun, dieser Hintergrund ist ein bisschen langweilig. Es ist ein bisschen langweilig Also werde ich zu Google gehen und einfach nach Blackboard suchen Da hast du's. Suchen Sie nach Tafel, Tafel, was auch immer Sie suchen wollen Und ich werde einfach nach dem Zufallsprinzip ein Bild auswählen und speichern Jetzt muss ich nur noch herausfinden, wo meine Ordner sind. Hier. Speichern Sie, kommen Sie zurück zu Gato Und da hast du's. Wir können sehen, wie es hier gespeichert ist. In meinem Ordner. Also werde ich hier in meiner Szene ein weiteres Objekt zu meinem Hauptobjekt hinzufügen. Und das wird ein Textur-Rect sein , das ich einfach in den Hintergrund umbenennen werde. Und ich werde einfach das Blackboard-Bild hierher ziehen, das ich erstellt habe oder, tut mir leid, nicht erstellt habe und das ich bei Google gefunden habe Und wenn der Hintergrund ausgewählt ist, also die Textur, ziehe ich sie den Texturschlitz auf der rechten Seite, im Inspektor, und lege sie dort ab Und wenn nötig, ändern Sie hier die Erweiterungsgröße und die Dehnung Bedarf die Dehnung, um die Größe zu ändern und das Ganze zu optimieren Wenn wir zum Beispiel festlegen, dass das Seitenverhältnis beibehalten wird, wird es nicht verschoben, aber wenn wir unseren Erweiterungsmodus so ändern, dass er beispielsweise die Größe ignoriert , geht es los Wir können sehen, dass wir damit umgehen können. Und wenn wir einfach den Aspekt behalten auf Skalierung ändern , los geht's. Jetzt können wir es erweitern , um es unseren Bedürfnissen anzupassen. Nun, was wichtig ist, ist, dass Sie diesen blauen Umriss hier sehen. Alles, was sich in dieser Kiste befindet , können wir von unserem Fenster aus sehen. Also mache ich es nur ein bisschen größer als unser Fenster, nur um sicherzugehen größer als unser Fenster , dass es vollständig bedeckt ist. Und unsere Anker in der oberen linken Ecke. Nun, zum Hintergrund, das wird nicht funktionieren Also werde ich weitermachen und meine Anker anpassen und den auswählen, der völlig zerstört ist Und das wird eine Stecknadel in jede Ecke stecken. wird sichergestellt, dass, egal wie groß unser Fenster ist, dieser Hintergrund es immer ausfüllt. In Ordnung. Jetzt haben wir also ein Problem. Unser Hintergrund steht über allem. Wir können unseren Button oder irgendetwas, was wir zuvor gemacht haben, nicht sehen. Nun, das liegt im Grunde nur an den Schichten. Wenn Sie in etwas wie Photoshop gearbeitet haben, werden Sie hier mit Ebenen vertraut sein. Wir müssen uns nur unseren Hintergrund schnappen, und wir müssen ihn tatsächlich herausnehmen Denn was oben ist, wird hinter allem anderen unten stehen Ich weiß, dass es in Photoshop genau andersherum ist. Ganz unten ist normalerweise das , was hinter allem steckt. Gehen Sie hier rein, drehen Sie einfach um, etwas, an das Sie sich erinnern müssen. Aber da haben wir's. Damit haben wir unsere gesamte Grafik hier eingerichtet und sind bereit, in einen Teil des Codes zu springen , damit unsere Buttons und alles andere funktionieren und unser Spiel loslegen 24. Wähle die Geschichte und die Aufforderung des Spielers aus: Ordnung, wir werden jetzt weitermachen und anfangen, einen Teil unseres Codes zu Wir werden unser Skript hier auf unserem Hauptknoten platzieren. Also werde ich einfach ein Skript hinzufügen. Ich lasse einfach meins mit dem Namen Min stehen und drücke auf Erstellen. Ordnung, also lass uns sehen. Was müssen wir tun? Nun, wir müssen im Auge behalten, was unsere aktuelle Geschichte ist. Lassen Sie uns also weitermachen und dafür eine Variable erstellen. Aktuelle Geschichte. Das wird es sein. Wird es in unserem Fall ein Array sein? Wir wählen eine Geschichte und das gibt uns Nein, das gibt uns ein Wörterbuch zurück. Aber wir können das tatsächlich zurückhalten und daraus ein Wörterbuch machen. Da haben wir's. Wir müssen die Worte unserer Spieler im Auge behalten , oder? Die Wörter, die sie eingereicht haben. Also werden wir die Worte der Spieler sagen, und das wird eine Reihe sein, die wir ergänzen können. Jetzt werden wir hier ein Schlüsselwort namens Ready verwenden. Und in 4.1 hier müssen wir tatsächlich dieses AT-Symbol verwenden , um diese Schlüsselwörter zu verwenden. Setzen Sie das auf das Symbol und verwenden Sie es dann auf Ready. Dann können wir weitermachen und unsere Variable wie gewohnt erstellen. Und das wird unser Spielertext sein. Das entspricht unserer sofortigen Einreichung , die wir in die Finger bekommen wollen Um diesen Knoten zu bekommen, gibt es eigentlich ein paar Möglichkeiten, das zu tun Am einfachsten ist es, einfach dieses Dollarzeichen zu verwenden, was einfach bedeutet, Knoten abrufen. Und von hier aus haben wir einfachen Zugriff auf unsere schnelle Einreichung. Wie Sie sehen, müssen wir hier nur eine Ebene nach unten gehen. Und wenn wir anfangen zu tippen, erscheint die automatische Vervollständigung für uns und wir drücken darauf, los geht's. Wann immer wir auf dieses Objekt zugreifen wollen, können wir einfach Spielertext eingeben. Jetzt werden wir das auch für unseren Anzeigetext und unsere Schaltfläche tun . Ich werde also sagen, dass Displaytext entspricht, was ich gerade Displaytext genannt habe. Fantastisch. Und wir werden noch einen für unseren Button haben. Brauchen wir den Knopf? Nein, das tun wir eigentlich nicht. Dafür werden wir keinen brauchen. Es lohnt sich nicht, diese Standardschaltfläche hier zu verwenden. Okay. Also lass uns weitermachen und den Prozess da rausnehmen. Also, was wir brauchen werden, mal sehen. Wir müssen eine Geschichte auswählen, oder? Also müssen wir unsere aktuelle Geschichte zuordnen, und um die Dinge zu organisieren, werden wir eine Funktion erstellen die unsere festgelegte aktuelle Geschichte speichert. Es ist ein Funkset, eine aktuelle Geschichte. Es ist so. Und da es sich um eine separate Funktion handelt, werde ich zwei Zeilen dazwischen ziehen. Und wie legen wir fest wie wir diese aktuelle Geschichte hier platzieren werden? Nun, am Ende werden wir nichts zurückgeben am Ende werden wir nichts weil wir es einfach direkt unserer Variablen zuweisen werden . Um das zu bekommen, müssen wir also eine Zufallszahl bekommen oder eine zufällige Geschichte auswählen. Also werde ich eine Variable namens Stories erstellen, und das wird ein Array sein, das einfach unserer Storybook-Klasse dot stresOH entspricht unserer Storybook-Klasse dot stresOH Und schau, darauf können wir nicht zugreifen. Kehren wir also zu unserer Storybook-Klasse zurück, und um zu vermeiden, dass wir dafür ein neues Objekt erstellen müssen, da wir nur auf die darin enthaltenen Geschichten zugreifen müssen, werden wir das statische Schlüsselwort verwenden, das wir in Woche eins erwähnt haben Im Moment kehren wir zu unserem Hauptskript zurück und können Storybook Dot STRS ausführen Ich kann einer Variablen keinen Wert vom Typ Wörterbuch zuweisen, also wollen wir unsere Geschichten abrufen Und in diesem Wörterbuch verwenden wir sogenannte Punkttasten, offene und geschlossene Und was das machen wird, nennen diese Tasten hier, die wir in einem Wörterbuch aufrufen können, es wird ein Array oder eine Liste von Geschichte eins, Geschichte zwei, Geschichte drei, Geschichte vier usw. zurückgeben Geschichte zwei, Geschichte drei, . Also das wird all unsere kleinen Story-Namen hier haben unsere kleinen Story-Namen hier Ordnung. Jetzt müssen wir von hier aus einen zufälligen auswählen. Die Frage ist also, welchen wollen wir? Nun, wir werden hier eine Variable namens Ausgewählte Geschichte erstellen . Und das wird natürlich nur eine Zeichenfolge sein , weil all unsere Geschichten Zeichenketten sind. Es macht also Sinn. Und lassen Sie uns hier auf unsere Geschichten zugreifen, richtig, Geschichten von Ray. Und in 4.1 können wir einfach „Zufällig auswählen“ auswählen. Das ist alles, was wir tun müssen, und es wird nach dem Zufallsprinzip eine Geschichte ausgewählt, die wir zurückerhalten möchten. Und das ist alles, was wir dafür tun müssen. Jetzt müssen wir nur noch weitermachen und unsere aktuelle Geschichte erzählen. Wir können also die aktuelle Geschichte sagen. Lass uns sehen. Wir haben es einfach darauf eingestellt. Dann sollten wir ein volles Wörterbuch haben. Beides, das sollte in Ordnung sein. Also sagen wir einfach, dass die aktuelle Geschichte der ausgewählten Geschichte entspricht. Stärke kann keinem Variablentyp zugewiesen werden. Oh, das stimmt. Das muss anders geschrieben werden. Storys und dann verwende ich hier diese eckigen Klammern weil wir auf die Geschichte zugreifen wollen, die darin enthalten ist Und die, auf die wir zugreifen wollen, ist die ausgewählte Geschichte, oder? Also nochmal, wir werden das nochmal durchgehen. Wir erstellen eine Variable namens Stories, und das ist ein Array oder eine Liste. Und das wird all den verschiedenen Geschichten zugewiesen , richtig, den Schlüsseln unseres Wörterbuches. Von all unseren Geschichten in unserem Bilderbuch. Jetzt enthält Stories all unsere kleinen Story-Titel. Und dann ist die ausgewählte Geschichte eine Zeichenfolge, die auf eine zufällige Geschichte aus unserer Liste gesetzt wird . Und dann setzen wir die aktuelle Geschichte, die wir bereits erstellt haben, nach oben, nämlich das Wörterbuch. Wir setzen das der Geschichte gleich, die in unserem Bilderbuch steht, der Geschichte, die wir ausgewählt haben. In Ordnung. Und wir können uns vorstellen, dass das einfach funktioniert , wenn wir einfach zu unserem Bereitschaftsblock gehen und die aktuelle Geschichte festlegen müssen, weil du das natürlich zu Beginn des Spiels machen wirst . Und dann werde ich einfach weitermachen und unsere aktuelle Geschichte ausdrucken. Auf diese Weise können wir einfach sehen, ob es funktioniert, da es standardmäßig bereits leer ist. Wenn ich es also vorher ausdrucke, legen wir unsere aktuelle Geschichte fest, wir sollten das sehen können, und ich werde einfach diese Szene abspielen. Los geht's, damit wir sehen können, dass es oben leer ist. Und dann, nachdem wir unseren Aufschlag zubereitet haben, haben wir einen Morgen, an dem der Bäcker leer war , um seinen Laden zu seiner Überraschung zu öffnen. Es sieht also so aus, als hätten wir die erste Geschichte. Lassen Sie uns das noch einmal überprüfen. Und los geht's. Wir haben hier jetzt eine ganz andere Geschichte. Der leere Himmel war wunderschön, ebenso wie die leere Leere die Leere über die Leere warf. Und wir können sehen, dass wir auch alle unsere Eingabeaufforderungen hier haben. Das ist fantastisch. Wir tauchen alle hier auf. Alles funktioniert super. Wir haben jetzt eine Geschichte , mit der wir arbeiten können. Wir haben sie zufällig ausgewählt. Jetzt müssen wir uns Gedanken darüber machen, wie wir den Spieler dazu auffordern, richtig? Nun, wir brauchen diese gedruckten Kontoauszüge nicht mehr, weil wir wissen, dass sie gut funktionieren. Unsere Geschichte ist also festgelegt. Wie können wir unseren Spieler dazu auffordern? Nun, einfach. Wir kommen runter erstellen eine neue Funktion. Wir werden es Prompt Player nennen. Und was wir tun werden, ist mal sehen. Gehen wir direkt zu unserem Displaytext über. Und wir wollen auf die Texteigenschaft zugreifen , damit wir das einstellen können. Und um jegliche mögliche Verwirrung zu vermeiden, werden wir sagen, verwenden wir hier Plus-Gleichungen und sehen, wie das in unserer Situation aussieht Und ich werde sagen, May, ich habe das, was wir hinzufügen werden, es werden unsere aktuellen Story-Proms sein Und die Aufforderung, nach der wir fragen werden, woher wir wissen, welche wir wollen, wird auf unseren Spielerwörtern basieren , die wir hier oben geschrieben haben, oder? Die Worte unserer Spieler. Und wir werden das von der Größe ausgehen, denn denken Sie daran, wenn wir mit einer Liste arbeiten, fangen wir an, bei Null, Eins, Zwei, Drei zu zählen , oder? Wenn unsere Spielergröße also Null ist, bedeutet das, dass wir noch keine Beiträge haben. Also werden wir den ersten Punkt in dieser Liste bekommen. Wenn der Spieler ein Wort eingereicht hat, erhalten wir den zweiten Gegenstand und so weiter. In Ordnung, also können wir den Spieler auf diese Weise auffordern. Und ich weiß, dass das auf dieser Seite etwas lang wird, aber mal sehen. Im Moment ist das alles, was wir brauchen, um den Spieler dazu zu bewegen. Ordnung. Also, was wir von hier aus tun werden, nachdem wir die aktuelle Geschichte ausgewählt haben , können wir weitermachen und den Prompt Player von dort aus aufrufen. Und das sollte alles sein, was wir brauchen. Also lass uns weitermachen und es ausprobieren. Oh, anscheinend bin ich hier auf ein Problem gestoßen, und was ist das? Lass uns einen Blick darauf werfen. Oh ja, ich sehe den Fehler hier. Sag mir Eingabeaufforderungen ist keine Sache, weil ich in meinem Märchenbuch ein großes P verwendet meinem Märchenbuch ein großes P Wenn ich das also einfach zu einem großen P mache, sollte das mein Problem lösen Und da haben wir's. Also fragt es uns, kann ich ein Verb haben? Und dann kann ich weitermachen und hier tippen. Sie können Okay drücken, Enter drücken. Im Moment wird sich hier nichts ändern. Aber du merkst, dass ich in dieses Feld klicken musste , als wir anfingen. Also wenn ich das einfach neu starte und jetzt hier runter muss, muss ich es selbst einklicken. Also, warum automatisieren wir das nicht einfach? Lass uns weitermachen und den Spielertext besorgen. Und wir werden etwas namens Grab Focus nennen. Wenn wir das jetzt ausführen, los geht's, es ist schon da und wir können einfach sofort anfangen zu tippen. Wir müssen also keine Zeit verschwenden. In Ordnung. Also, um den Spieler weiterhin dazu aufzufordern, müssen wir uns unsere eingereichten Worte ansehen , richtig? Wir müssen diese Worte tatsächlich einreichen. Dafür müssen wir also einige Signale miteinander verbinden, damit wir wissen, wann etwas passiert. Also werde ich weitermachen und in meiner Szene auf meine sofortige Einreichung klicken . Dann gehe ich nach rechts und klicke auf den Tab mit der Aufschrift Knoten. Und hier können wir alle Standardsignale sehen , die hier drin waren. Und der, nach dem wir suchen, ist Text der im Bereich Zeilenbearbeitung eingereicht wurde. Und im Grunde genommen wird jedes Mal, wenn wir die Eingabetaste drücken , der Text gesendet , den der Benutzer eingegeben hat Also mache ich einfach weiter und doppelklicke darauf. Also gut, du solltest einen Bildschirm wie diesen sehen, und das alles ist toll, weil wir keine Skripte dafür haben, und dieser ist blau weil wir versuchen, das Signal von dort aus zu verbinden. Also wählen wir einfach unser Hauptmenü aus , weil dort unser Skript steht, und wir klicken auf Verbinden. Wenn Sie die Funktion hier umbenennen möchten, können Sie das tun, ich werde das nicht tun. Ich belasse es hier einfach mit dem Standardnamen und drücke einfach auf die Schaltfläche Verbinden. Und Sie werden sehen, dass es genau hier unten in unserem Skript hinzugefügt wurde. Ich werde einfach die Alt-Taste gedrückt halten und die Aufwärtspfeiltaste verwenden , um es ein paar Leerzeichen nach oben zu verschieben. Da haben wir's, räumen wir das aus dem Weg. Geh. Das ist aus dem Weg. Aber da haben wir's. Wir sehen also an dem Namen der Funktion, die durch dieses Signal ausgelöst wird, dass sie diesen Codeblock ausführen wird. Jetzt können wir sehen, dass wir neuen Text haben, das ist eine Zeichenfolge, die uns übergeben wird. Dieser neue Text ist also das, was in diese Zeile eingegeben wurde . In Ordnung. Wenn also ein Text eingereicht wird , müssen wir ihn zu unseren Spielerwörtern hinzufügen. Und da wir das potenziell mehrmals oder zumindest an mehreren Orten tun müssen das potenziell mehrmals oder zumindest an mehreren Orten tun , lassen Sie uns einfach weitermachen und eine Funktion dafür erstellen. Funk, füge hinzu, lass uns sehen, wie ich es genannt habe? Füge den Spielern Wörter hinzu, damit wir alles sauber halten können. Los geht's. Und alles, was wir innerhalb dieser Funktion tun werden, ist, unsere Worte anzuhängen, richtig Worte der Spieler. Anhängen. Jetzt anhängen Dieser Aufruf hier ermöglicht es uns einfach, Dinge zu unserem Array hinzuzufügen, Elemente zu unserer Liste Was auch immer wir hier eingeben , wird hinzugefügt und alles, was wir hinzufügen werden, ist Spielertext-Punkttext Jetzt könnten wir dafür sorgen, dass das sauberer wird, aber es könnte später zu einigen potenziellen Problemen führen Wer weiß? Also werden wir es vorerst einfach so machen. Und was nett wäre, wäre, wenn dieser Anzeigetext, wenn wir ihn von unserem Bildschirm löschen, sodass wir ihn leer machen, eine leere Zeichenfolge, ich denke, man könnte sagen. Wir sagen „Textpunkt anzeigen“. Und wir werden Clear aufrufen, und das wird es einfach leeren. Und das wird die Aufforderung entfernen, die auf unserem Bildschirm erscheint uns nach einem Verb oder einem Substantiv oder was auch immer fragt. Und um unseren Spielern visuell zu zeigen , dass unser Text eingereicht wurde, können wir das auch mit unserem Spielertext machen. Schauen wir uns an, wie das jetzt aussieht. Wir müssen zurückrufen, bevor wir es vergessen. Bei unserem eingereichten Text werden wir also „Zum Spieler hinzufügen“ aufrufen. In Ordnung. Also, wenn wir das überprüfen und es uns jetzt ansehen, sagst du, kann ich ein Verb haben und wir sagen laufen. Und ich drücke Enter. Und Sie sehen, unser Text hier unten wurde geleert und unser Board oben hier wurde auch geleert Das ist also großartig. Es sieht so aus, als ob unser Text eingereicht wurde und wir bereit sind , ihn mit einer neuen Aufforderung zu aktualisieren. Fantastisch. In Ordnung. Also, um unsere Aufforderung fortzusetzen, werden wir teilweise einrichten, was wir für das Ende und den Neustart des Spiels benötigen für das Ende und den Neustart des Spiels Also werden wir diesen Teil einfach weglassen und in Zukunft auf diese Funktion zurückkommen Also im Moment werden wir das nur benutzen, um die Wörter des Spielers zu überprüfen oder es „Check Player-Wörter“ zu nennen. Also ich möchte nicht, dass du mit dem Namen verwechselt wirst. Es wird sinnvoller sein, wenn wir hinzufügen , wenn wir überprüfen, ob das Spiel vorbei ist. Also werde ich Funk machen und die Worte der Spieler überprüfen, Lang. Also gut. Also, was wir tun werden, ist die Art und Weise, wie wir das formulieren können. Mal sehen Wir können sagen, ob wir hier eine if-Anweisung verwenden werden. Also werde ich sagen, ob Spielerwörter an Größe gewonnen haben. Und denken Sie daran, dass wir dadurch nur die Menge an Gegenständen erhalten , die in unseren Spielerwörtern enthalten sind. Also die Anzahl der Wörter, die wir bereits eingereicht haben. Und wir werden sagen, dass das unserer aktuellen Geschichte entspricht , den Aufforderungen, Balltöpfen Nr. Da haben wir's, Punktaufforderungen. Punktgröße, denn denken Sie daran, dass unsere Eingabeaufforderungen eine Liste sind. Und natürlich haben wir hier einen Fehler, bis wir am Ende unserer Zeile unseren Doppelpunkt eingeben Also werden wir sagen, wenn der Spieler die gleiche Anzahl an Wörtern eingegeben hat , wie wir Eingabeaufforderungen haben, dann können wir etwas tun Aber das wollen wir nicht tun, oder? Weil wir sagen wollen, wenn nicht, so. Weil wir sagen wollen: Oh, wenn der Spieler noch nicht genug Wörter eingereicht hat, dann müssen wir den Spieler erneut auffordern, und genau das werden wir tun. Wir werden Prompt Player aufrufen. Ordnung. Und wenn es um das nächste Video geht, kommen wir zurück und schreiben diese Funktion neu Aber vorerst sollte das für uns funktionieren. Lass uns weitermachen und einen Blick darauf werfen. Also, kann ich ein Adjektiv haben? Sicher. Lass uns mit Pretty gehen. Sie drücken die Eingabetaste und die Sache wird aktualisiert. Aber wir überprüfen unsere Spielerlänge nirgends, also verstehst du, warum das ein Problem ist. Schauen wir uns also an, wo wir das machen? Das machen wir, wenn wir die Worte unserer Spieler ergänzen. Nachdem wir also das Wort hinzugefügt und dieses Wort für uns eingereicht haben, überprüfen wir den Link und schauen, ob wir weiterspielen können, und wenn ja, fordern wir den Benutzer auf, das nächste Wort einzugeben. Lass uns sehen. Kann ich ein Verb haben? Ja, nehmen wir RN oder Run. Da haben wir's. Darf ich ein Substantiv haben, Hund. Kann ich ein Adjektiv haben? Hübsch. Kann ich ein Adverb haben Ja, schnell. Kann ich ein Substantiv haben? Hoffe, wir haben eine Menge Dinge hier. Rot. Kann ich ein Verb haben, das auf ING endet? Rauben. Und los geht's, unsere Sache ist vorbei. Wir haben keine Aufforderungen mehr Wir haben unsere Geschichte noch nicht, aber wir haben alle unsere Eingabeaufforderungen dort. Jetzt können wir sehen, dass unser Anzeigetext tatsächlich nicht gelöscht wurde, was interessant ist Anstatt also innerhalb unserer Add-to-Player-Wörter clear aufzurufen , holen wir uns einfach die Text-Eigenschaft und setzen sie auf eine leere Zeichenfolge. Und lassen Sie uns hier sehen , wie das funktioniert. Ich habe ein Verb, rennen. Da haben wir's. Jetzt haben wir es auf diese Weise aktualisiert. Ich bin mir nicht sicher, warum Clear nicht funktioniert. Vielleicht ist da gerade ein Bug drin. Ich weiß es nicht. Aber wir können es einfach manuell löschen indem wir es auf einen leeren Bildschirm einstellen. Und wenn Sie das als Eins in jeder Zeile weitermachen wollen, wenn Sie das weitermachen wollen, eins in jeder Zeile, müssen wir nur ein Plus gleich hinzufügen und das Backend machen Oder ist es ein Stürmer? Ich denke, es ist der Stürmer hier, und das wird eine neue Linie sein. Wenn wir es also so betrachten, so kann es einen B-Lauf haben, und das wird eigentlich nicht in diese Richtung gehen. Ich verwechsle die beiden immer danach, in welche Richtung es gehen soll. Adjektiv. Hübsch. Da haben wir's. Jetzt können wir in jeder Zeile ein neues Mitglied haben, um dich zu fragen. Also, wenn du es lieber so haben möchtest , kannst du so diese kleine Änderung vornehmen. Habe ein Substantiv Ja, Hund am Ende mit ED. Ich stehe hier gerade auf einer Niete. Ich weiß nicht warum, aber du verstehst die Idee. können wir eine neue Zeile einrichten, Auf diese Weise können wir eine neue Zeile einrichten, in der Sie alles ganz nach Ihren Wünschen gestalten können. In Ordnung. Und ich denke, das ist genug für heute, weil ich denke, alles, was wir jetzt brauchen , ist, unser Spiel zu beenden, ob es nun komplett zu beenden, unsere Geschichte zu erzählen, zu sehen, ob der Spieler noch einmal spielen will, und all das lustige Zeug Also eine kurze Anmerkung hier, bevor wir abheben. Anstatt den Spieler hier oben aufzufordern, können wir jetzt einfach die Länge der Spielerwörter in unserem Ready überprüfen, können wir jetzt einfach die Länge der Spielerwörter in unserem Ready überprüfen, und das sollte uns auch visuell einrichten Ja, da haben wir's. In Ordnung. Also da hast du es Wir haben hier einen Großteil unseres Spiel-Setups. Es ist einfach, was Videospiele angeht , und es gibt dir die Möglichkeit, die Dinge, die wir in der ersten Woche besprochen haben, wirklich zu nutzen, unabhängig davon, welche Version du benutzt hast, wenn du beide gemacht hast. Wir arbeiten also mit Variablen, verschiedenen Datentypen und natürlich mit Funktionen, natürlich mit Funktionen um alles schön und sauber zu halten. Wir verwenden hier objektorientierte Programmierung mit unserem Storybook, das unsere Spieler dazu animiert Du lernst einige neue Dinge. Wenn Sie die alternative Version nicht durchgearbeitet haben, haben Sie etwas über Append gelernt Sie haben etwas über Grab Focus gelernt, unabhängig davon, welche Methode Sie dort durchgemacht haben, Sie haben etwas über Pick Random und Keys gelernt Sie haben also eine Menge Dinge gelernt zusätzlich zu dem, was wir in der ersten Woche gelernt haben, welche Version Sie durchgemacht haben, vielleicht haben Sie beide durchgemacht Aber ich werde hier aufhören, weiter zu schwafeln, und wir sehen uns in der nächsten, wo wir das Spiel abschließen werden , damit wir ein vollständig spielbares Ding haben 25. Ende und noch einmal spielen: In Ordnung, Leute, lasst uns weitermachen und das abschließen. Wir werden unser Spiel beenden. Wir müssen überprüfen, ob unsere Geschichte fertig ist. Wir müssen unsere Geschichte tatsächlich erzählen, und wir werden unsere Okay-Taste verwenden , um hier zwei Verwendungszwecke zu haben. Es wird also funktionieren, sowohl erneut mit einer neuen Geschichte zu spielen als auch unseren Text einzureichen. Fangen wir also damit an , mit unserem Button hier. Also werde ich einfach weitermachen und meine Taste auswählen, und ich werde das Signal verbinden, drücken und erneut drücken, ich mache weiter und verbinde es einfach mit meinem Main, und ich werde es mit dem Standardnamen hier belassen. Und nur um die Dinge ein wenig übersichtlich zu halten, möchte ich das ein wenig nach oben verschieben und meine beiden Leerzeichen dazwischen platzieren. So kannst du einfach meine beiden Signale hier nebeneinander haben . Ordnung, also jetzt, wenn unsere Taste gedrückt wird, können wir einfach Wörter zum Spieler hinzufügen verwenden, und das funktioniert genauso, als ob wir die Eingabetaste auf unserer Tastatur Das sollte einwandfrei funktionieren, genau das Gleiche. Also Verb, Ron, wir drücken Okay, wir gehen jetzt, Dog, okay. Also gut, alles wird eingereicht, alles funktioniert einwandfrei. Hervorragend. Also müssen wir wissen, wann unsere Geschichte fertig ist. Auf diese Weise wissen wir, ob es an der Zeit ist, unsere Geschichte zu erzählen und unser Spiel zu beenden, oder ob du weiterspielst und den Spieler immer wieder um eine weitere Aufforderung bittest. Nun, um das zu tun, werden wir weitermachen und eine neue Funktion erstellen, und wir werden sie I Story Done nennen. Und der ganze Zweck dieser Funktion besteht darin, uns zu sagen, ob wir noch weitere Eingabeaufforderungen zum Erraten haben oder nicht Also werden wir hier einen Wert zurückgeben. Und was wir zurückgeben werden, ist, ob es wahr oder falsch ist. Das werden Spielerwörter sein, Größe entspricht unseren aktuellen Story-Prompts, oder Denkt daran, dass wir hier doppelt gleich verwenden wollen , weil wir Und das ist alles, was wir tun werden. Wir werden das einfach zurückgeben und das wird entweder wahr oder falsch sein. Ordnung, also jetzt in der Wortlänge unserer Scheckspieler, anstatt es so zu schreiben, können wir es tatsächlich neu formatieren Und wir können sagen, ob die Geschichte fertig ist. Und im Moment tippen wir nur das Wort Pass, weil wir dann das Spiel beenden werden, und wir werden hier einen anderen Block hinzufügen. Los geht's. Also sagen wir, wenn die Geschichte fertig ist, beenden wir unser Spiel wenn wir diesen Teil unseres Codes schreiben. Andernfalls fordern Sie den Benutzer erneut auf. Schauen wir uns also an, was passiert , wenn wir das jetzt tun. Wir kommen im Adjektiv, fertig, wir drücken den Bezahlknopf Fantastisch. Unser Text erfasst immer noch die Aufforderung Alles funktioniert immer noch. Fantastisch. Wir haben noch nichts kaputt gemacht. Das ist großartig. In Ordnung, also wie beenden wir unser Spiel? Nun, wenn die Geschichte fertig ist, müssen wir das Spiel beenden Also werden wir eine neue Funktion namens Endgame erstellen und feststellen, dass wir hier eine Funktion für alles erstellen , damit wir alles organisieren können. Und wir sagen, okay, wir haben ein Problem, wenn das Spiel endet, wir wissen, dass wir hier runterkommen und die Endspielfunktion ansehen müssen. Oder vielleicht wird unsere Geschichte am Ende nicht gezeigt und wir müssen zu der Funktion namens Tell Story übergehen , die wir hier in einer Sekunde erstellen werden . Das wird uns also helfen, alle Fehler einzugrenzen , die wir in unserem Projekt bekommen könnten. In Zukunft, indem wir jetzt organisiert und vorbereitet sind. In Ordnung, also wie beenden wir unser Spiel? Also, was ich tun werde, ist unser Display mitzunehmen. Willst du unseren Displaytext verwenden? Nein. Wir wollen meine schnellen Einsendungen abholen, richtig? Also wollen wir den Spielertext bekommen. Und was wir hier tun werden, ist, dass wir tatsächlich Quarter verwenden werden. Und das sollte zu unserer Szene hier auf zwei D zurückkehren, das sollte diese Zeile nehmen und sie einfach komplett vom Bildschirm löschen. Auf diese Weise existiert sie also nicht mehr. Das ist im Grunde das, was es tut. Löscht es vollständig, entfernt es aus dem Speicher Es gibt also Speicherplatz frei, und das ist wichtig, nicht unbedingt in diesem Spiel, aber in anderen Angenommen, Sie erstellen ständig neue Objekte, aber sie werden nie gelöscht Sie werden im Grunde an einen Punkt kommen , an dem Sie Speicherlecks verursachen. Sie müssen also daran denken, alles , was Sie nicht mehr benötigen, freizugeben. Und zu diesem Zeitpunkt benötigen wir unseren Spielertext nicht mehr. Ordnung. Also, was wir hier als Nächstes tun werden ist, dass ich den Text auf unserer Schaltfläche ändern werde. Also schnappe ich mir unseren Button, das Dollarzeichen , erinnere mich an den Shortget-Knoten, richtig? Also wir wollen den Knoten in den Knoten bekommen, den wir wollen, dass es unser Button ist. Und der Grund, warum wir nur das Wort Button schreiben, ist , dass es hier in unserer Szene so heißt. Wenn ich das also in etwas anderes umbenennen würde, müsste ich sicherstellen, dass das passt. Bei dieser Schaltfläche wollen wir also die Texteigenschaft abrufen , und ich werde sie so einstellen, dass sie wieder „Abspielen“ sagt. Und wenn wir schon dabei sind, sollten wir sicherstellen, dass es Okay sagt , wenn es darum geht, unseren Spieler zu fragen . In Ordnung. Also werde ich das einfach in unsere Prompt-Player-Funktion einfügen unsere Prompt-Player-Funktion und den Text so einstellen, dass er sagt: Okay. Okay, das Letzte, was wir in unserem Endgame tun müssen , ist Tell Story zu nennen Und das wird uns einen Fehler geben , bis wir das erstellt haben, also lasst uns weitermachen und zumindest diesen Namen erstellen, eine Geschichte erzählen, und das ist jetzt eine neue Funktion Um unsere Geschichte auf dem Bildschirm zu erzählen, müssen wir nur den Text komplett leeren. Text anzeigen: Punkttext entspricht also einer leeren Zeichenfolge. Und ich werde das einfach hier in die Geschichte von Side of Tell einfügen , nur für den Fall, dass du den neuen Zeilenansatz verwendest wenn du deinen Spieler hierher aufforderst Nur für den Fall, dass du das tust, werde ich den Text auch hier löschen Und jetzt legen wir nur noch unseren Anzeigetext und die Texteigenschaft des Textes fest , den wir sehen können. Und das setzen wir unserer aktuellen Geschichte gleich . Und wir wollen das Eigentum an der Geschichte haben. Ich werde sicherstellen, dass ich das direkt in meinem Märchenbuch buchstabiere , Geschichte mit Großbuchstaben Und wir müssen all diese Platzhalter ausfüllen. Wir machen das also, indem wir einfach ein gesendetes Zeichen machen und hinzufügen, was wir wollen Also können wir uns zum Beispiel für Banane entscheiden, und das wird unsere erste Lücke mit Banane füllen. Jetzt haben wir mehrere Artikel. Aus diesem Grund müssten wir es in Form einer Liste wie dieser machen und ein Koma machen und unsere nächste machen, richtig, Tomate und dann die nächste machen und so weiter. Aber das haben wir schon gemacht. Wir haben bereits unsere Liste oder unser Array mit all unseren Zeichenketten. Dies sind unsere Spielerwörter, die wir erstellt haben und zu denen wir all unsere Textbeiträge hinzugefügt haben . Also können wir einfach herkommen und die Worte der Spieler sagen. Ordnung. Also, jetzt schauen wir uns die Worte der Spieler an Link und sagen, ich habe die Geschichte fertig, und wir nennen Endgame Ordnung. Also, müssen wir das irgendwo anders nennen? Nein, aber wir müssen gleich hier unsere Neustart-Taste drücken. Lassen Sie uns weitermachen und sicherstellen, dass das funktioniert. In Ordnung. Kann also ein Adjektiv haben. Ja, ein hübsches Substantiv, Rock, ein Verb, das auf ED endet, gebildet Schnell ein Adverb, ein Substantiv im Plural blüht auf. Wir können sehen, dass unsere Zeile gelöscht wurde. Auf unserer Schaltfläche steht jetzt „ Erneut abspielen“ statt „Okay“. Und wir haben unsere Eingabeaufforderung oben. Der schöne Himmel war ein wunderschöner Felsschatten als sich die Menschen schnell durch die Jetzt habe ich zwei S dort. War das möglicherweise mein Fehler. War das etwas, das ich in meiner Geschichte hatte ? Es ist auch möglich. Und nein, es sieht nicht so aus, als ob das in der Geschichte war, also lag das komplett bei mir. Ich muss S zweimal gedrückt haben. Aber da hast du's. Da ist unsere Geschichte, und unsere Schaltfläche „ Erneut spielen“ funktioniert hier nicht. Und der Grund dafür ist, dass wir versuchen, unsere Spielerwörter hinzuzufügen. Es hat uns wegen unseres Fehlers zu dieser Funktion gebracht. Und wenn wir uns den Parameter ansehen würden, neuer Text wird nie verwendet, das ist völlig in Ordnung. Aber das Problem, das uns das gibt , ist, uns zu sagen, dass der Spielertext nicht existiert, oder? Wir können uns nicht an die Worte unserer Spieler halten. Wir können nichts von dem Zeug machen. Nun, das ist in Ordnung. Unser Problem liegt tatsächlich bei unserem Tastendruck. Denn je nachdem, ob unser Spiel fertig ist oder nicht, entscheiden wir, ob du das Spiel neu starten oder den Benutzer erneut auffordern möchtest , richtig? Also fülle ich sie nur aus. Kümmere dich hier einfach nicht um mich. Wenn Sie dem folgen und die Pfeile benutzen, weil Sie wollen, ich habe die Geschichte erledigt, wird ein Pool zurückgegeben, weil wir etwas zurückgeben , und das gibt uns ein Wahres oder Falsches. Bei allem anderen geben wir nur Leere zurück. Also gehe ich das schnell durch und fülle sie aus. Und ich denke, das sind sie alle. Ich habe sie alle, oder? Ordnung, also wenn unser Knopf gedrückt wird, müssen wir nur überprüfen, ob unsere Geschichte fertig ist Also, wenn ich mit der Geschichte fertig und wir das Spiel neu starten wollen Sonst, tippe das jetzt ein. Wir nennen „Zum Spieler hinzufügen“ Wörter. Also, wie starten wir das Spiel neu? Nun, um es komplett neu zu starten, müssen wir in diesem Fall nur einen Baum besorgen, und das wird unseren gesamten Baum bekommen . Und alles, was wir tun müssen, ist „Aktuelle Szene neu laden“ aufzurufen, und es wird dasselbe sein, als ob wir hier oben auf Aktuelle Szene ausführen geklickt hätten hier oben auf Aktuelle Szene ausführen geklickt Wenn wir diesen Knopf nur zum ersten Mal gedrückt hätten. Wenn also „Aktuelle Szene neu laden“ ausgelöst wird, sollten wir uns wieder in dieser Situation befinden. Also Adjektiv, also werde ich das einfach durchgehen, damit wir sehen können, dass wir ein völlig neues gebildetes Adverb haben . Achten Sie darauf, dass ich dieses Mal nur eins reinschreibe, Da haben wir's. Okay. Das ist cool. Und wir spielen wieder. Kann ich ein Verb haben. Ran Substantiv. Keks. Noch ein Substantiv, Brownie Eines Morgens rannte der Bäcker hinauf und sollte sagen: Lauf. Zu seiner Überraschung hielt jedoch ein Keks an, oh, ich sagte Brownie statt Brownie Am Ende habe ich ein R gesetzt. Meine Finger haben mich heute bei der Rechtschreibung betrogen. Aber jetzt können wir wieder spielen und eine neue Geschichte beginnen Also können wir das jetzt einfach so lange weiterspielen , wie wir wollen. Und dieses Spiel funktioniert voll und ganz für uns. Und wenn du jemals eine Geschichte hinzufügen möchtest, können wir einfach in unser Bilderbuch gehen und du kannst einfach weitere Geschichten und Eingabeaufforderungen hinzufügen, und es wird einfach weiter funktionieren Wir müssen unseren Code aus keinem Grund anpassen. Wir fügen einfach einen weiteren Eintrag hinzu, Geschichte fünf, Geschichte sechs , Geschichte sieben, und wir können einfach mit so vielen Geschichten weitermachen, wie wir wollen. Falls Sie sich für diesen gelben Fehler interessieren , den Sie vorhin gesehen haben, er sagt uns nur, dass kein neuer Text für das M-Signal verwendet wird , und das ist in Ordnung. Darüber müssen wir uns keine Sorgen machen. Es ist nur ein gelber Fehler , der uns nur darüber informiert. Und wir könnten das ausschalten. Es gibt ein paar Dinge , die wir tun könnten, aber am einfachsten ist es, hier am Anfang einfach einen Unterstrich zu setzen . Das ist alles Wenn wir das jetzt ausführen , wird dieser Fehler nicht mehr angezeigt. Dieser Unterstrich am Anfang Ihres Parameters sagt also im Grunde nur, ignorieren, wenn er nicht verwendet wird Aber los geht's, wir erzählen jetzt unsere Geschichte und unser Spiel hat ein Ende Entweder erzählen wir die Geschichte oder fordern den Benutzer auf, weiterzuspielen, und das haben wir getan, oder wir fordern den Benutzer auf, weitere Lücken auszufüllen Und wir haben die Schaltfläche „ Erneut abspielen “ für den Fall, dass wir weitermachen wollen In Ordnung, das reicht also für verrückte Libs. Das ist ein ziemlich kurzes Spiel , das wir durchgemacht haben. Das ist wahrscheinlich ungefähr eine Stunde, die wir damit verbracht haben, das durchzugehen, und Sie haben angefangen, Funktionen zusammenzustellen , diese Renditen. Wenn wir Else-Anweisungen ein paar Mal verwendet haben , verwenden wir Boolesche Werte Wir verwenden Wörterbücher, Arrays, Klassen. Wir verwenden hier eine Menge Dinge, obwohl es ein so einfaches Spiel ist, würde ich sagen Nun, damit hast du es abgeschlossen. Herzlichen Glückwunsch. Klopfen Sie sich selbst auf die Schulter. Und ich freue mich darauf, Dinge zu sehen, die Sie in Zukunft kreieren, und ich freue mich darauf, dass wir zum nächsten Projekt übergehen. 26. Was wir machen werden (Platz ausfüllen): Ordnung, diese Woche werden wir Dinge noch ein bisschen aufpeppen und nicht nur von etwas Text ausgehen, 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 Das gibt uns jetzt die Möglichkeit, mit einem Zwei-D-Player-Controller zu arbeiten Kollisionen. Vielleicht werden wir uns mit einigen Partikeln befassen Wir können mit ein paar Spawnern arbeiten. Und wie ihr seht, falls ihr Frogger noch nie gespielt habt oder noch nie davon gehört habt, seht ihr hier, dass wir mit der Benutzeroberfläche für das Heads-up-Display arbeiten werden mit der Benutzeroberfläche für Wir haben Punkte, die wir im Auge behalten müssen. Finde dort für eine Sekunde meine Maus. Aber nicht nur das, wir werden auch sehen, ob es das hier zeigen wird ? Okay, wir haben also eine bestimmte Anzahl von Fröschen pro Spieler. Offensichtlich müssen wir keine Münzen hineinwerfen. Aber das ist im Grunde das Spiel hier. Wir haben also zwei kleine Sicherheitszonen in diesem kleinen lila Bereich. Wir haben eine Straße in der Mitte mit fünf Fahrspuren, die sich abwechselnd hin und her bewegen. Und wenn der Frosch von einem dieser Autos angefahren wird, sterben sie 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 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 Frogger, falls Sie es noch nie gespielt oder davon gehört 27. Tilemap vs. neue Tilemap-Ebene: In Ordnung. Ich bin's wieder hier. Und ich wollte hier nur kurz einspringen, bevor wir zu Frogger übergehen. Sie werden feststellen, dass, wenn Sie eine neue Version verwenden, Tao Map hier dieses gelbe Dreieck hat, und das gibt uns eine Benachrichtigung , dass dieser Knoten veraltet sein wird, was bedeutet, dass er aus der Engine entfernt wird Je nachdem, wann Sie sich das ansehen, ist der Tilemap-Knoten möglicherweise nicht mehr Und wenn ich raten muss, wird es bei Version 5.0 von Gato entfernt Das ist nur meine Vermutung. Ich habe keine Ahnung , wann es tatsächlich entfernt wird. Aber ich werde Ihnen die Alternative zeigen, die hinzugefügt wurde, nur für den Fall, dass Sie die Alternative verwenden möchten . Nun, statt der Tilemap, nun, wenn Sie in Zukunft zuschauen, wissen Sie, was Sie stattdessen verwenden müssen, um jegliche Verwirrung zu beseitigen Jetzt, mit der Kachelkarte, haben wir unsere Kachel hier eingerichtet, richtig? Und wir haben all unsere Knoten, tut mir leid, keine Knoten, unsere Texturen, unsere Straße, das Wasser, den Median und unser Zuhause Und du siehst, wir machen weiter und malen hier weiter, oder? Wir können reinkommen und einfach auf den Bildschirm malen. Und wir haben hier mehrere Ebenen in einem Drop-down-Menü auf der rechten Seite, das immer noch hier unten ist. Nun, das ist es, was anders ist. Diese Ebenen werden jetzt ihre eigenen Knoten sein , anstatt alles in einer Kachelkarte zu haben. Also würden wir statt dieser Kachelkarte noch eine Kachelkartenebene hinzufügen, oder? Gehen Sie zu unserem Inspektor, Kachelset, öffnen Sie das Kachel-Setup und stellen Sie sicher, dass wir es hier unten platzieren. Und wir können weitermachen und unseren Median hinzufügen. Wir können unsere Straße hinzufügen und wir können unser Wasser hinzufügen. Dann wäre alles andere genau das Gleiche, ich glaube, wir haben hier nichts berührt, was die Kollision oder so etwas angeht. Also solltest du dort nichts weiter tun müssen. Und dann, genau wie bei der Kachelkarte, kannst du reinkommen und damit malen, sodass du weitermachen kannst und sichergehen kannst, dass du reinkommst, deinen Knoten auswählst, die Kachel auswählst, die du verwenden möchtest. Und natürlich können Sie reinkommen und einfach mit dem Malen beginnen, genau wie Sie es mit der Kachelkarte tun, oder? Also können wir reinkommen. Wir können gehen, bumm, bumm, reinlegen, unseren Purpur holen. Wechsle meine Kachel, schnapp dir unsere Lilatöne, finde sie, fülle die Straßenstücke Richtig. Also kannst du kommen und wie gewohnt eine Schneepause einlegen Was wir nun in einer separaten Ebene haben ist dieser Home-Bereich Was wir also tun würden, ist , dass wir jetzt tatsächlich eine zweite Kachelkartenebene hinzufügen würden. Schnappen Sie sich ein anderes Kachelset , wählen Sie das Kachel unten aus, und wir würden das Startplättchen einfügen. Und da ist es. Nun, ich habe meine hier so etwas wie eine Standardgröße gelassen , also möchte ich wahrscheinlich reinkommen und die Kachelgröße hier speziell für diese ändern. Aber das ist gesagt, oder? Ich kann einfach reinkommen, malen, Karte kacheln, all das auswählen, und ich kann reinkommen und es einfach einmalen, richtig? Ich stemple es einfach rein, genau wie zuvor. Verwendung einer Kachelkartenebene und einer Tilemap unterscheidet sich also nicht allzu sehr. Sie müssen sich nur daran erinnern, dass jede Ebene ihren eigenen Knoten hat, anstatt sie einfach aus einem Drop-down-Menü auszuwählen Und wenn es um den eigentlichen Code geht, wenn ich reinkomme und wir uns das ansehen, schauen wir uns das hier an. Normalerweise bekommen wir unsere Tile Map. Wir nennen Get Cell Source ID. In diesem Fall geben wir die Ebenennummer und dann die Kartenposition ein, damit wir uns ein Bild davon machen können, worauf wir stehen. Diese Funktion gibt es nun sowohl in der Tilemap- als auch in der Tilemap-Ebene Ich wähle hier Tilemap aus und Sie können hier die Quell-ID von Gell sehen Ich mache weiter und benutze hier die Lupe für dich. Lass es mich sehen. Holen Sie sich die ID der Handyquelle. Die erste ist die Ebene und dann die Koordinaten, und dann haben wir dort eine optionale Flagge. Haben wir das. Aber wenn Sie die Tilemap-Ebene verwenden möchten, hat die Kachelkartenebene hier genau dasselbe, genau die gleichen Funktionen Der einzige Unterschied ist, dass wir keine Ebene übergeben. Wir geben nur die Koordinaten ein. Wenn meine Kachelkarte hier also eine Kachelkartenebene wäre, wäre es in diesem Fall die Ebene Null, die wir verwenden. Ich würde also diese nehmen, auf der das Wasser meiner mittleren Zeile steht , und alles, was ich eingeben würde ist nur die Kartenposition, und das war's Sie müssen sich also daran erinnern, dass alle Ebenen in Zukunft einzelne Knoten der Kachelkartenebene sein werden in Zukunft einzelne Knoten der Kachelkartenebene Und bei jeder Funktion, die Sie nach einer Kachelkartenebene fragt, geben Sie einfach nichts ein. Überspringen Sie einfach dieses Argument. Ordnung, ich hoffe, das klärt jegliche Verwirrung , die Sie möglicherweise haben, je nachdem, wann Sie sich das ansehen Und das ist der Hauptunterschied wir hier arbeiten Ordnung, pass auf dich auf. Have yourself ist gut und ich hoffe, dir gefällt Frog 28. Den Hintergrund erstellen: Ordnung, also lasst uns weitermachen und Erstellung von Frogger beginnen Und als Erstes stellen Sie sicher, dass Sie die Assets herunterladen und einfach den Sprites-Ordner in Ihr Projekt verschieben Auch hier habe ich gerade einen leeren Ordner erstellt, speziell für Frogger, 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 . In Ordnung. Also das Erste, was wir tun müssen, ist, vor allem, weil unsere Spreads so klein sind, wir sie verkleinern müssen oder nicht, sondern unseren Bildschirm auf mehr der Größe eines Arcade-Schranks verkleinern müssen Und um das zu tun, gehen wir einfach zu Projekt und gehen in unsere Projekteinstellungen Ordnung. sollte ich einfach so anfangen wenn die erweiterten Einstellungen ausgeschaltet sind. Und Sie werden auf der linken Seite sehen, wir gehen einfach runter zum Displaybereich und gehen ins Fenster. Und wir werden die Breite auf 336 und die Höhe auf 240 setzen . Alles klar? Das ist die Bildschirmgröße eines Arcade-Gehäuses, 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, dass unser kleines blaues Kästchen viel kleiner geworden ist als früher Ordnung, also das Erste, was wir hier tun werden , ist, den Hintergrund zu erstellen Also erstellen wir die ganze Straße, das Wasser, den violetten Mittelstreifen, wie sie ihn nennen , und den Punktebereich, in den wir unseren Frosch bringen müssen Also werden wir all das Zeug einrichten. Auf diese Weise können wir direkt damit beginnen , unser Gameplay und all das einzurichten und zum Laufen zu bringen. Und die nächsten folgenden Videos. In Ordnung, also wir werden hier eine Zwei-D-Szene brauchen. Klicken wir also auf zwei D, und das gibt uns einen Knoten zwei D für unseren Stammknoten Und wenn Sie das umbenennen möchten, können Sie das tun. Sie können es Main nennen, wenn Sie möchten. Spielmanager. Spielt eigentlich keine Rolle. Wenn du wirklich willst, kannst du es einfach als Standardnamen belassen . Ich werde meinen vorerst als Standard belassen. Und um das in unserem kleinen Hintergrund zu erstellen, werde ich eine neue Tilemap erstellen Also werde ich die Plus-Schaltfläche drücken. Und wir werden weitermachen und die Kachelkarte aus dem Drop-down-Menü auswählen. S in unserem Create-Knoten. Ist wie Tilemap. Machen Sie einfach weiter und doppelklicken Sie darauf und wählen Sie das aus. Jetzt habe ich meins hier eingerichtet. Ich werde einfach all diese löschen. 1 Sekunde. Ordnung, Sie sollten also so aussehen , wenn Sie Tilemap ausgewählt haben Wenn Sie es nicht ausgewählt haben, fahren Sie fort und wählen Sie es aus. Und was wir tun werden, ist auf die rechte Seite zu gehen . Und wir gehen hier zum Fliesenset. Es bleibt im Moment leer. Was wir tun werden, ist darauf zu klicken und zu einem neuen Kachelsatz zu gehen und dann auf das Kachelset zu klicken, und das bringt uns hierher. Was wir hier brauchen, ist das kleine Zielgebiet, das Wasser, die Straße und den Mittelstreifen Wenn wir also in unsere Sprites gehen und nach unten scrollen, werden wir Home, Median, Road und Water 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 ziehen. Alles klar Bevor wir sie also hier tatsächlich verwenden können, können wir, wie Sie sehen, auf nichts klicken , was wir tun möchten. Ich scrolle einfach mit meinem Scrollrad da rein oder du kannst ein Minus hinzufügen. Als Erstes müssen wir sicherstellen , dass wir uns hier auf der Registerkarte „Einstellungen“ befinden, unser Wasser auswählen und wir können darauf klicken, und jetzt haben wir dieses orangefarbene Kästchen drum herum. Das heißt, wir haben eine Kachel , die wir jetzt verwenden können. Und ich werde dasselbe für Road, Median und meinen Heimatbruder direkt gegenüber Jetzt ist das Zuhause ein bisschen größer. Also ich denke, es könnte ein Spielzeug sein, nicht größer als das. Lass uns sehen. Was haben wir? Oh, 26 zu groß. Wie ist das? Ich denke , das wird völlig in Ordnung sein. Ordnung. Sind sie jemals gegangen? Ich habe hier 16 mal 24 für diese Kachel. In Ordnung. Wenn wir jetzt unten auf unserem Bildschirm auf Tile Map klicken , sollten wir jetzt in der Lage sein, darauf zu klicken und mit dem Zeichnen unserer Sprites zu beginnen Also klicken Sie auf meinen Median, klicken Sie hier auf meine lila Kachel und ziehen Sie einfach eine Zeile nach unten, gehen Sie zu meiner Straße und wir haben fünf Verkehrsebenen Also brauchen wir hier fünf Reihen von unserem Schwarz, drei, vier und fünf Und wenn wir uns auf unser Bild beziehen, dann haben wir eine weitere violette Schicht, fünf Schichten Wasser. Eins, zwei, drei, vier, fünf, und dann haben wir eine Wasserschicht, die unter unserem Haus liegt. Also lass uns dort noch eine Schicht machen. Lass uns unser Zuhause schnappen und einfach weitermachen und auf ein Sprite klicken und deine Maus darüber ziehen, damit du alle drei auswählen kannst Und lass es uns platzieren. Oh, sieh dir das an. Wir scheinen dieses Problem zu haben. Nun, was ist los? Nun, wir tauschen hier unsere Wasserfliesen aus. Das wollen wir nicht tun. Also müssen wir das tatsächlich auf eine andere Ebene zeichnen, und ich werde einfach weitermachen und das in den letzten beiden Zeilen bis zum Rand mit unserem Wasser auffüllen mit unserem Wasser . Also werde ich hier auf unseren Home-Bereich klicken, und wir wollen diese nicht ersetzen. Wir wollen es darauf aufbauen. Sie werden also hier auf der rechten Seite unserer Kachelkarten feststellen , dass wir etwas haben, auf dem Ebene Null steht, und wenn wir ein Drop-down-Menü haben, ist dort nichts anderes. Wir wollen also in unseren Inspektor für unsere Kachelmap gehen , den Ebenenbereich öffnen, auf Neues Element hinzufügen klicken, und jetzt haben wir tatsächlich eine zweite Ebene. Zurück in den Kachelkarten, wo unsere Startzeile ausgewählt ist, können wir zur Drop-down-Ebene gehen und auf Ebene eins klicken. Und jetzt können wir tatsächlich direkt darauf zeichnen, ohne dass sich dies auf unser Endergebnis auswirkt. Bitteschön. Wir haben sieben damit fertig. Und nur um sicherzugehen, dass wir unsere Reihen eins, zwei, drei, fünf lösen , richtig? Sieht für mich gut aus. Wenn wir wieder auf unser No TD klicken, ist also nichts toll raus. Das ist das, womit wir arbeiten. Und wenn du dich daran erinnerst , als wir uns das Alfoger-Setup angesehen haben, wie es aussieht Wir haben tatsächlich unsere Punktzahl, und diese Information ist hier oben in diesem leeren blauen Bereich, diesem leeren Wasserraum, diesem leeren Wasserraum Wir haben unsere Baumstämme, Schildkröten, die rü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 Aber richtig, wir haben jetzt alles vorbereitet. Und einfach so, ziemlich einfach loszulegen. Die neue Kachelkarte ist wirklich nett, um schnell loszulegen und loszulegen. Früher hatten wir keine Ebenen, und jetzt, wo wir sie haben, macht das die Einrichtung solcher Dinge viel einfacher. In Ordnung. Das ist unser Hintergrund. Lassen Sie uns weitermachen und mit dem nächsten Teil beginnen. 29. Den Spieler erstellen: Okay, lassen Sie uns weitermachen und unseren Player erstellen, aber bevor wir das tun, werde ich weitermachen und ihn speichern Ich drücke einfach Control, gehe in meinen Froger-Ordner und speichere meine Szene ganz schnell. Ordnung. Für unseren Spieler wird unser Spieler also tatsächlich seine eigene Szene haben , die wir einbringen Also werden wir hier oben auf den Plus-Tab klicken oder neues SEM hinzufügen. Wir gehen zu O. Und da es sich um einen Spieler handelt , über den wir die Kontrolle haben müssen , wird das ein Charakterkörper zwei D sein. Das wurde früher als kinematischer Körper bezeichnet , und in anderen Engines hört man vielleicht, dass die Leute ihn als solchen bezeichnen Aber hier heißt es jetzt Charakterkörper zwei D. In Ordnung. Nun, dieser Charakterkörper, wir haben hier dieses gelbe Dreieck , das uns eine kleine Warnung gibt und uns nur sagt , dass unser Knoten keine Formen Ich kann mit nichts kollidieren. Es gibt keine Kollision. Und für den Moment ist das in Ordnung. Kann da schwimmen. Und was wir tun werden, ist, dass wir hier einen weiteren Knoten hinzufügen werden. Und was wir hinzufügen wollen, ist ein Sprite zwei D. Wir wollen ein animiertes Sprite hinzufügen Nun, wir wollen, dass unser Sprike animiert wird. Wir haben dafür zwei Frames. Machen wir also weiter und machen ein animiertes Sprite mit zwei D. Und öffnen wir auf der rechten Seite im Inspektor den Animationsbereich, öffnen wir auf der rechten Seite im Inspektor den Animationsbereich dem Sprite-Frames steht Lass uns darauf klicken und neue Sprite-Frames erstellen. Und dann lassen Sie uns diese Sprite-Frames öffnen , indem wir einfach darauf klicken In Ordnung. Also haben wir unsere Standardanimation , und ich werde sie so umbenennen , dass sie einfach inaktiv ist Dann fügen wir hier unten eine neue Animation mit diesem kleinen Plus-Symbol hinzu. Und ich werde das in Jump umbenennen. In Ordnung. Also, wenn Idol ausgewählt ist, werde ich Boger Idol PNG reinholen Und mit Jump können wir Boger Idol und dann unsere Jumping-Ikone Boger Leak ins Spiel bringen Boger Idol und dann unsere Jumping-Ikone Boger Und jetzt sollten wir in der Lage sein, zwischen den beiden zu wechseln. Wann immer wir gegen diese Feinde spielen wollen, in Ordnung. Areo, wir werden sehen, ob wir dort spielen. Wir springen Wir machen unseren kleinen Bouncy Bounce. Und Sie werden vielleicht feststellen , dass das Sprite hier oben in unserem Renderer etwas verschwommen ist, aber hier unten können wir sehen, dass es sein soll Nun, um das zu beheben, können wir einfach alle unsere Sprites hier auf einmal aus unserem Dateisystem auswählen und unsere Sprites hier auf einmal aus unserem Dateisystem der linken Seite zum Import gehen Eigentlich wird das kein Import sein . Das hast du bewegt. Also lass mich einfach weitermachen und dir sagen, wo dieser Teil ist. Ordnung. Also, wenn du zu deinen Projekteinstellungen übergehst, Whoo Wo bin ich hingegangen? Gehen Sie zu Ihren Projekteinstellungen und suchen Sie den Bereich Rendern und Textur hier den Bereich Rendern und Textur für erweiterte Einstellungen. Oder brauchen wir es dafür? Nein, dafür brauchen wir es nicht. Wir wollen hier einen Standard-Texturfilter. Ändere ihn von linear auf „Am nächsten“ und mach weiter und schließ das, und du wirst sehen, dass deine Sprites sehr scharf Wenn du also Pixel-Art wie diese machen willst, ist das die Standardeinstellung, die du in deinen Projekteinstellungen machen möchtest in deinen Projekteinstellungen machen Und jetzt haben wir einen schönen, scharfen Broki. Okay. Und jetzt ist das 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 gebe ich einfach Control S, um das zu speichern, und ich rufe diesen Spieler einfach an. Wenn ich jetzt mit ausgewähltem Knoten zwei D in meine Hauptszene gehe , kann ich für einen neuen Knoten auf Nein Dieses Plus klicken, um einen neuen Knoten zu öffnen, aber die Kette daneben. Dadurch können wir in einer Szene instanzieren , die bereits existiert. Und für uns wird das unsere Spielerszene sein. Und jetzt können wir es uns schnappen und diesen kleinen Kerl reinbringen . Und wir können platzieren. Und wir können mit diesem kleinen Kerl machen, was wir wollen. Lass uns sehen. Lasst uns transformieren. Wir wissen also, dass es sich um Werte von 16 handelt. Also 172 würden nicht reichen. Es wäre 176, wenn wir Werte von 16 hätten. Ich werde einfach meinen kleinen Frosch hierher bringen. Los geht's. Seien Sie etwas zentrierter damit. Und 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 Player so gut eingerichtet , wie wir im Moment brauchen. Und damit springen wir zum nächsten über, in dem wir uns mit dem Ausführen einiger Spielerbewegungen befassen werden . 30. Spielerbewegung: Ordnung, lassen Sie uns weitermachen und wir werden die Bewegung schaffen unser kleiner Frosch sich am linken Ende nach oben nach unten bewegen kann , richtig Also, um anzufangen, werden wir einige Eingaben benötigen. Wenn Sie nun die Pfeiltasten verwenden möchten, dann sind I up, UI down, UI left und UI right bereits vorhanden. Aber ich möchte WASD verwenden. Ich gehe in mein Projekt und gehe zu meinen Projekteinstellungen Und ich gehe oben in den Eingabe-Mapper. Füge eine neue Aktion hinzu, und ich tippe einfach nach oben, füge links und rechts nach unten hinzu Jetzt gehe ich für jede dieser Aktionen hier einfach auf die rechte Seite und drücke die Plus-Schaltfläche. Und für oben drücke ich das Plus. Ich werde einfach W auf meiner Tastatur drücken. Und ich werde dir zeigen, wie das aussieht. Was du von dort aus sehen wirst, lass uns sehen. Ist das Fenster hier? Und ich werde das einfach oben ansprechen. Da hast du's. Also habe ich einfach die W-Taste gedrückt und schon haben wir Okay gedrückt. Wir gehen nach unten, drücken das Plus, drücken die Taste. Und wieder A für links und D für rechts. Ordnung, jetzt haben wir oben, unten, links und rechts für unsere Steuerung, und wir können dort schließen Unser Spieler wird ein Drehbuch benötigen, und ich werde mir das auf meinem animierten Sprite auf Jump notieren Ich habe den ersten Sprite nicht losgeworden, also nehme ich diesen mit gespreizten Beinen Und ich habe ein Drehbuch auf die Seite des Körpers unseres Charakters gelegt . T2d in der Szene unserer Spieler Und wir haben einfach einen leeren, so wie diesen. Jetzt werde ich eine Funktion namens Bewegung erstellen. Also so. Und das ist nur so, damit wir alles sauber und organisiert halten und all unsere Bewegungen an einem Ort verwalten können. Alles, was wir tun werden, um Eingaben entgegenzunehmen , ist, dass wir die if-Anweisung verwenden werden. Dieselbe If-Anweisung, die wir oft verwendet haben. Also entscheiden wir ob, und dann wollen wir auf das Eingabeobjekt oder die Eingabeklasse zugreifen . Also Eingabe. Und dann Punkt, weil wir überprüfen wollen, ob es funktioniert. Und wir wollen mit diesem Spiel weitermachen. Oder einfach veröffentlicht oder einfach gedrückt. Beides wird speziell für dieses Spiel funktionieren. Wenn wir mit gedrückt gehen, ist Action gedrückt, dann ist das so, während die Taste gedrückt gehalten wird. Einfach gedrückt und loslassen bedeutet einfach gedrückt wird, sobald die Taste aktiviert wird Wenn Sie sie drücken und loslassen bedeutet das, dass der Codeblock ausgeführt wird , wenn Sie Ihren Finger heben. Ich nehme J Press. Lass uns das versuchen. Und ich werde den Button benutzen, und das ist eine Zeichenfolge, die dir automatisch angezeigt werden sollte Und das mit einem Doppelpunkt, damit wir reingehen und den Codeblock erstellen Und alles, was wir tun werden, ist, zwei Dinge zu tun. Wir müssen unseren kleinen Frosch bewegen. Wir müssen es auf dem Bildschirm nach oben bewegen, und wir werden um einen Block nach oben gehen, und alles ist in 16 Blöcke oder 16 Kacheln aufgeteilt. bewegen diesem Fall werden wir unseren Frosch also 16 Blocks nach oben Also werden wir unsere Position herausfinden. Und wenn es für Sie etwas sinnvoller ist, können Sie Selbstpunktposition sagen, weil Sie sich selbst bewegen, an die dieses Skript angehängt ist. Und im Moment gibt uns das eine X- und eine Y-Koordinate. Dem sind zwei Zahlen zugeordnet. Wenn wir also auf den Körper unserer Figur klicken und in den Inspektor unter Transformieren schauen, sehen Sie, dass wir ein X und ein Y haben. Und diese entsprechen der Position, an Und diese entsprechen der Position, an der sie sich auf dem Bildschirm befinden Wenn wir also auf unsere Hauptszene klicken und zu unserem Charakterkörper gehen, werden Sie sehen, dass seine Position in meinem Fall 169 und 233 ist Hier beginnen wir also, und wir werden entweder das X oder das Y addieren oder subtrahieren , um unsere Bewegungen zu erhalten Da wir also nach oben gehen wollen, wenn wir nach oben drücken, werden wir die Y-Zahl beeinflussen Also sagen wir den Positionspunkt Y. Ordnung, wir sind bei uns selbst, wir wollen die Positionseigenschaft ermitteln, und dann wollen wir die Y-Nummer davon bekommen Und um auf dem Bildschirm nach oben zu gehen, müssen wir tatsächlich subtrahieren Also werden wir sagen, dass minus gleich ist. Dass wir sagen können, dass dies gleich Position Y ist, entspricht Position Y minus Summenzahl , also Summenzahl, in diesem Fall ist es 16. Wenn wir es also einfach so lassen und unser Rennen fahren würden. Nun, wie schade, dass unser Rennen fahren würden. Nun, wie schade, sich unser kleiner Frosch nicht bewegt Warum bewegt er sich nicht? Hoffentlich hörst du auf oder verstehst das, bevor ich die Play-Taste drücke Wir rufen unsere Bewegung nie irgendwohin, also schauen wir auch nie nach irgendwas von dem Zeug Und dafür werden wir es hier einfach in die Prozessfunktion einfügen. Bewegung. Und jetzt wird es aufgerufen. Hoppla, zumindest wäre es das, wenn wir es richtig buchstabieren könnten. Da haben wir's. Und wenn wir versuchen, das jetzt auszuführen, drücken Sie die Aufwärtstaste, was für mich W ist Sie können sehen, dass wir weitermachen und unsere 16 Blöcke gleichzeitig verschieben . Ein Vater, den wir gewinnen. Wir haben einen kleinen Frosch da oben 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. Lassen Sie uns also unsere Animation zum Laufen bringen. Wie spielen wir also unsere Animation ab? Nun, wenn wir uns unsere Spieler-Szene ansehen, wir unserem Skript entnehmen können, können wir nach unten gehen und dieser einen Zeile leicht folgen, nur eine Ebene bis zum animierten Sprite Two D. Also lasst uns diesen Knoten nehmen Und so, wie ich das zuvor gezeigt habe , war die Verwendung dieses Dollarzeichens, das wäre der einfachste Weg Und sobald du anfängst, animiertes Sprite zu tippen , wird es auftauchen Und denk dran, das ist nur animiertes Sprite Two D , denn so heißt es Wenn ich also diese Banane benennen und Banane sehr schlecht schreiben würde , dann müsste ich das hier eingeben , um darauf zuzugreifen Ich setze diesen Namen einfach wieder auf die Standardwerte zurück. Und alles, was wir tun werden, ist, es abzuspielen . Also spiel nicht. Und Sie werden sehen , dass die Animationen, die wir erstellt haben, auftauchen. Also werden wir Jump verwenden. Und wenn wir das jetzt nur mit dieser einen Ergänzung unserer Linienpeitschen versuchen , musst du diese Szene tatsächlich spielen und nicht unseren Spieler Da hast du's. Du kannst sehen, dass wir unseren Sprung machen, aber wir stecken jetzt irgendwie fest in unserem Sprung. Das ist also ein bisschen enttäuschend. Also, 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, auf der rechten Seite zum Knoten-Tab gehen und ein Signal anschließen, und ein Signal anschließen das besagt, dass die Animation abgeschlossen Wenn wir also einfach darauf doppelklicken, erhalten wir ein Pop-up, um hier ein Signal zu verbinden, und wir wählen einfach den Charakterkörper TD aus, auf dem sich unser Skript befindet, und klicken auf die Schaltfläche Verbinden Es wird alles halten, um es mit meinen Pfeiltasten aufzurufen. Jep Wann immer unsere Animation abgespielt wird, wird dieser Codeblock jetzt ausgeführt Und was wir hier erreichen wollen, ist, dass wir in unseren Ruhezustand zurückkehren wollen , in dem unser Frosch einfach nur da sitzt. Also das Gleiche, wir werden unser animiertes Sprite Two D bekommen . Wir werden Play aufrufen und das wird inaktiv sein. Wenn wir das jetzt versuchen, was tun wir wieder, wenn wir die richtige Szene spielen, wie wir es versuchen, jetzt sehen wir, dass wir das haben, wie ein kleiner Sprung, der erscheint, wenn wir über das Wasser pingen Das ist großartig. Die Sache ist, unser Idol wird zu diesem Zeitpunkt ständig spielen, unser Idol spielt, und dann ist es zu Ende, und weil es zu Ende ist, wird es auch Das wird bei diesem Spiel zwar kein wirkliches Problem sein, aber das könnte etwas sein, das man in Zukunft im Hinterkopf behalten Um dieses Problem zu lösen, können wir es also tatsächlich mit einer IT-Lösung beheben . Und wie Sie sehen können, habe ich bei meiner kleinen Ausgabe alles überprüft und ich werde Ihnen zeigen, wie das geht. Ich werde das reinigen. Wir müssen nur nachschauen ob Animated Sprite funktioniert. Du willst das Dollarzeichen da haben. Wenn Sprite animiert, zwei D-Punkt. Noch Animation. Nein, es ist nicht so, wie es genannt wurde? Nun, wenn wir in unser Animated Sprite gehen, können Sie darauf zugreifen und wir halten einfach die Strg-Taste gedrückt und klicken Sie hier in unserem Code auf das Animated Sprite Two D. Dann öffne ich die Dokumentationsseite für. Und hier ist, wonach wir suchen. Holen Sie sich eine Animation. Also wollen wir Animationen bekommen. Wie Sie sehen, ist das nicht aufgetaucht. Manchmal ist es also trotzdem nützlich, die Dokumentation zu lesen trotzdem nützlich, die Dokumentation Wir wollen, dass ich Sprite animiert habe, nicht animiert werden soll. Und wenn wir uns das ansehen würden , die aktuelle Animation, die Sprite-Frames-Ressource, wird der Wert geändert, Frame-Zähler, Frame-Fortschritt Aber wir wollen herausfinden , was diese Animation ist Das gibt uns also im Grunde zurück, 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 wir wollen Jump schreiben. Und wenn wir dann unser Idol spielen, nehmen wir das einfach zusammen, sodass es in unserem I-Schloss sein könnte Und jetzt werden wir im Grunde unseren aktuellen Wert überprüfen , wenn unsere Animation fertig Wenn die aktuelle Animation Jump ist, dann spielen wir im Leerlauf Wenn wir das ausführen, sind wir fertig. Wir haben unseren kleinen Bing und er sieht genauso aus, aber wir werden nicht ständig die ungenutzte Animation immer und immer wieder abspielen. Das ist, wenn die inaktive Animation abgespielt wird, denken Sie daran, sie wird einmal abgespielt und dann ist sie fertig. Es läuft nicht in einer Endlosschleife. Und wenn bei dir zum Beispiel aus welchem Grund auch immer eine Schleife läuft, dann mach weiter, wähle dein animiertes Sprite aus, und wenn es sich um eine Schleife handelt, kannst du unsere Maus hier sehen Das liegt daran, dass es aktiviert ist, also klicken Sie einfach darauf, um es auszuschalten Also ist es so weiß. Wenn es blau ist, dann ist es an, wenn es weiß ist, ist es aus. Also, wenn unsere Animation beendet ist, werden wir nach dem Sprung überprüfen, ob unsere aktuelle Animation Jump ist, und wenn ja, dann spielen wir im Leerlauf. Und wenn der Leerlauf beendet ist, wird diese If-Aussage nicht zutreffen, denn wenn wir eine Animation erhalten, wird sie inaktiv sein, nicht springen. Da das nicht mehr zutrifft, werden wir nichts weiter tun, wir werden dieses Mal nicht Idle immer und immer wieder Es ist also ein kleiner Unterschied, eines dieser Dinge, die sich im Backend befinden und die der Spieler nie bemerken wird Und wie ich schon sagte, in einem kleinen Spiel wie diesem wird es keinen so großen Unterschied machen, wenn überhaupt, das macht sich bemerkbar. Aber es lohnt sich, das für die Zukunft zu wissen, aber wenn man immer größere Spiele machen will. Ordnung, also lass uns weitermachen und wir können jetzt unseren Down-Button drücken. Also, wenn wir das einfach kopieren und einfügen, können wir es anstelle eines I bekommen. Wir wollen, dass die Taste unten gedrückt wird statt nach oben, und wir wollen plus 16 statt -16 Denn wenn Minus nach oben geht, dann bringt Plus uns runter, also können wir jetzt 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, und das können wir tun, indem wir über ihre Rotation sprechen Bevor wir also springen, können wir eine Eigenpunktrotation durchführen. Und wenn wir uns unsere Spieler ansehen, kehren wir zu unserer Spielerszene zurück, wie bei einem Charakterkörper im Inspektor. Wenn wir runterkommen, sehen wir, dass wir hier eine Rotation haben. Und die Rotation erfolgt im Bogenmaß und nicht in Grad. Wir können also sagen, dass Rotation gleich ist, und wir können diese eingebaute Funktion namens Dg two RAD verwenden , und das könnte sich hier geändert haben Und es sieht so aus, als ob sie es getan hat. Sieht aus, als ob es hier umbenannt wurde, also deg zwei RD Es sind jetzt die Unterstriche drin. Und dann nehmen wir ein Argument in Form von Abschlüssen vor. Wenn wir also 180 sagen , wäre das eine komplette Wende, oder? Denn wenn wir nach rechts abbiegen , sind das 90 Grad. Wenn wir links abbiegen, werden wir -90 sein. So oder so, wir müssen auf positive 180 oder negative 180 kommen positive 180 oder negative 180 Also werde ich hier einfach 180 Grad nehmen. Und diese Funktion wird diese 180 Grad in Strahlung umwandeln diese 180 Grad in , sodass sie unserer Rotation hier zugewiesen werden können Also, eine volle Umdrehung im Bogenmaß ist 3,14, und hier kommt i her Das wäre hier also dasselbe, 180, als ob wir einfach kopieren würden, dass diese Drehung gleich Pi geteilt Das gibt uns dann eine Umdrehung. Wenn wir also Pi durch zwei teilen wollen, ergibt das die Hälfte unserer Rotation hier im Bogenmaß Wenn ich dir also zeigen würde , dass Pi durch zwei geteilt ist, oh, dann teilen wir uns auf die andere Weise auf Also vielleicht sind es etwas mehr als zwei. Nun, normalerweise verwende ich selbst kein Radiant. Wir, wir können sehen, geteilt durch vier, wir bekommen diesen etwas komischen Winkel. Sie sehen also, es kann manchmal etwas umständlich sein , wenn man es mit Radianten zu tun hat Also was ich, das ist ein Grund, warum ich lieber Grad als Radiant verwende, nur weil ich das etwas schneller verarbeiten kann. Und wie Sie sehen, los geht's. Wir drehen das Gesicht nach unten um. Nur jetzt schauen wir nicht wieder nach oben, also müssen wir das jetzt in unserem Code korrigieren. Und wir machen einfach dasselbe, wenn wir nach oben drücken. Wir setzen unsere Rotation auf Null. Und wenn wir es jetzt spielen würden. Da haben wir's. Jetzt können wir hochspringen und wir können runter springen. Und jetzt, was ist, wenn wir nach links und rechts springen wollen? Nun, die können wir mit zwei weiteren LCFs hier besorgen. Und ich werde sie hier nur etwas voneinander trennen, damit sie besser lesbar sind Da haben wir's. Also, ab unserem zweiten SIF hier sagen wir, dass noch Action übrig ist Und anstatt den Y-Wert zu ändern, werden wir tatsächlich das X unserer Position ändern , weil X links und rechts ist Und wenn wir nach links gehen, müssen wir hier -16 haben Und Abschlüsse zu lesen. Nun, wir könnten das auf 270 setzen, nur um hier auf der positiven Seite zu bleiben, was bedeutet, dass unser letztes Elsev hier, wenn wir nach rechts drücken wir nach rechts die Position ändern, statt Y, wir werden plus 16. Und wenn wir uns nach rechts bewegen, drehen wir uns um 90 Grad. Wenn wir das jetzt versuchen, sollten wir sehen, dass wir jetzt in alle vier Richtungen springen können. Und wir können uns fortbewegen. Und wenn dein Frosch an der richtigen Stelle platziert ist, solltest du in der Lage sein, in all diesen kleinen Heimtoren hier zu landen . Kein Problem ohne rüber zu gehen. Da hast du's. Und jetzt wir irgendwie unsere Position behalten. Und nun, auf dem Bildschirm wäre nett. Aber über all das können wir uns erst später Gedanken machen. Wir haben einfach unsere Bewegung am Laufen und dieses Video wird etwas lang, also wollte ich hier nur die Bewegung in einem eigenen kleinen Abschnitt behalten . Da haben wir's. Wir können als unser eigener kleiner Frosch herumlaufen und, buhen, buhen. Aber richtig, und da hast du es. Wir können jetzt weitermachen und mit dem nächsten Abschnitt unseres Codes fortfahren. Und ich denke, als Nächstes werden wir , glaube ich, unsere Fahrzeuge entwickeln und sie hier über die Straße fahren lassen. 31. Fahrzeuge erstellen: In Ordnung. Heute werden wir weitermachen und die Fahrzeuge entwickeln, mit denen man hinüberfahren kann Jetzt haben wir ein paar verschiedene. Mal sehen, wie viele wir hier in unseren Sprites haben. Wir haben 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. Also, das ist großartig. Alles, was wir tun müssen, ist sie zu erstellen und sie über unseren Bildschirm bewegen zu lassen. Ordnung, also lass uns weitermachen und eine neue Szene mit unserer Plus-Schaltfläche hier oben für unsere Tabs erstellen eine neue Szene mit unserer Plus-Schaltfläche hier oben für unsere Tabs Wir gehen zu einem anderen Knoten und genau wie unser Spieler werden wir hier den Charakter Body Two D verwenden Und wir werden ihm in diesem Fall ein Sprite geben , da wir keine Animationen dafür haben, wir werden einfach ein normales Sprite Two D verwenden, und wir können weitermachen und ihm eines unserer Sprites zuweisen In diesem Fall habe ich den kleinen Truck ausgewählt Aber natürlich können Sie wählen, welchen Sie wollen. Insbesondere verwende ich eine, die sich im Moment nach links bewegt , das ist also erwähnenswert Und ich werde diesen Namen von Charakter Body in D ändern , um Truck zu sein, und ich werde das als meine Truck-Szene speichern. Und ich werde ein bisschen mehr brauchen. Nun, wir werden keine Kollisionsform verwenden, obwohl hier irgendeine Art von Kollision passieren kann, weil unser Frosch natürlich irgendwie zerquetscht werden muss, wenn er sie bekommt Um mich darauf vorzubereiten, werde ich einen Bereich zwei D erstellen. Und das wird mir quasi ermöglichen, einen neu definierten Bereich zu haben , den ich überprüfen kann Und um den Bereich zu bekommen, in dem Bereich zwei D ausgewählt ist , kann ich jetzt die Kollisionsform einfügen der Kollisionsform befindet sich nun Auf der Kollisionsform befindet sich nun dieses kleine Dreieck, das uns eine Warnung gibt. Also die Kollisionsform ausgewählt. Wir bewegen uns nach rechts zu unserem Formbereich und erstellen einen neuen. Und das wird einfach eine neue rechteckige Form sein. Jetzt verwenden wir keine komplizierten Formen wie die Verwendung von Polygonhaken Und verwenden Sie stattdessen Polygon oder tut mir leid, werden Sie hier Shape mit einigen dieser Grundformen verwenden Denn je temperamentvoller Ihre Form ist, desto besser wird sie in Bezug auf die Leistung sein Je komplizierter eine Kollision jedoch ist, desto genauer wird sie sein Es ist also eine Art Balance, die Sie selbst finden müssten. Aber in diesem Fall, zu unserem Glück, können wir einfach diese Rechtecke verwenden und das wird sich ergeben, zumal wir gerade ein älteres Spiel wie dieses nachbauen ein älteres Spiel wie Ordnung. Also, jetzt, wo wir unsere Kollisionsform haben, nochmal, falls Sie das nicht verstanden haben, stellen Sie sicher, dass Ihr Rechteck alles abdeckt, jeden Teil des Trucks hier. Und 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, exportiert Bruni eine Variable für uns. Und das wird uns mit diesem Export-Schlüsselwort ermöglichen, dies innerhalb des Inspektors zu ändern Lassen Sie uns also mit dem At-Zeichen-Export weitermachen und eine Variable erstellen, wir Direction nennen. Es wird eine Ganzzahl sein, und standardmäßig können wir sie einfach auf Null setzen oder, tut mir leid, wir können sie auf eins setzen. Ist in diesem Fall nicht wirklich wichtig. Und wenn Sie das speichern und Ihren Truck erneut auswählen, sollten Sie in Ihrem Inspektor auf der rechten Seite die Richtung sehen . In unserem Fall muss es negativ sein, weil wir uns nach links bewegen werden, was bedeutet, dass wir in die negative Richtung gehen. Also habe ich einfach weitergemacht und das auf negativ gesetzt. Und jetzt in der Prozessfunktion müssen wir unseren Charakter haben oder naja, der Charakter stimmt, aber unser Truck bewegt sich. Und um uns dann zu bewegen, brauchen wir etwas sich bewegen und rutschen oder bewegen und kollidieren nennt Beides wird funktionieren, um hier Bewegung zu haben. In meinem Fall verwende ich einfach Move und Slide. Moving Collide ist auch in Ordnung. Es definiert so ziemlich nur, was passiert, wenn zwei physikalische Körper miteinander kollidieren, oder Entweder stoßen sie aneinander 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 also eine bewegliche Folie. Wir können es jetzt nicht einfach abspielen , weil wir diese Bewegung immer noch kontrollieren müssen. Also werde ich hier eine weitere Variable namens Geschwindigkeit haben, die ebenfalls eine Ganzzahl sein wird. Und ich glaube, ich werde das einstellen. Wir versuchen es vorerst mit acht und wir werden sehen, wie schnell das geht. Das ist vielleicht ein bisschen zu schnell. Also weißt du was? Jetzt, wo ich darüber nachdenke, werde ich es mit zwei versuchen. Und alles , was wir tun werden, ist die Geschwindigkeit zu ändern, und wir wollen die X-Zahl ändern. Genau wie bei der Position haben wir also sowohl ein X als auch ein Y, wenn es um Geschwindigkeit geht, und die Geschwindigkeit bestimmt, wie sich unser Objekt konsistent bewegt. Gehen wir also zur Geschwindigkeit über, und ab vier, Interessant. Vielleicht ist es ein großes V , weil ich weiß, dass es ein eingebautes V gibt. Ziemlich sicher hier. Oh nein, genau da ist es niedrig. Ich muss da gerade einen Tippfehler reingetan haben. Aber da haben wir's, also machen wir einfach Velocity Dot X. Und dieses Mal sagen wir gleich Wir werden nicht Minus oder Plus sagen , weil das von unserer Richtung abhängt Also sagen wir Geschwindigkeit mal Richtung. Wir bewegen uns also entlang der X-Achse, also bewegen wir uns nach links und rechts mit der Geschwindigkeit, die momentan zwei ist, mal Richtung. Im Moment sind wir also bei minus eins, also wird es zwei mal minus eins sein, und das wird uns eine negative Zwei geben und wir sollten uns nach links bewegen. Aber wenn wir in den Inspektor gehen und einen positiven Wert ändern, dann sollte das zwei mal eins sein, eine positive Zwei reinbringen und uns in die richtige Richtung bewegen. Also setze ich meins einfach wieder auf minus eins. Also gehe ich zurück zu meiner Hauptszene und bringe einfach einen Truck rein , um es mir anzusehen. Ich stelle es einfach hier hin, spiele diese Szene ab und sehe, ob sie sich bewegt. Wir können sehen, dass es sich bewegt, aber es bewegt sich viel zu langsam. Also müssen wir diese Geschwindigkeit anpassen. Also gehen wir zurück zu acht. Vielleicht war acht gut. Lass uns das versuchen. Acht ist nicht gut, aber es ist viel besser. Also lass uns sehen. Wollen wir uns mit 16 Pixeln bewegen? 16 sieht gut aus, obwohl das so aussieht, als ob es ziemlich einfach sein könnte, also wollen wir das vielleicht erhöhen. Und denken Sie daran, wir können immer darauf zurückkommen. Und da wir die Geschwindigkeit für alle unsere Fahrzeuge verwenden, könnten wir das leicht anpassen und optimieren, sobald alle fünf Fahrspuren für Fahrzeuge belegt sind alle fünf Fahrspuren für Fahrzeuge belegt Schauen wir uns also mit 32 an, 32 sieht hier besser aus. Ich denke, 32 ist der Punkt, an dem ich es belassen und später optimieren werde es belassen und später optimieren Vielleicht willst du auf etwa 48 gehen, oder ich glaube nicht, dass wir in der Lage sein werden, auf etwas wie 64 zu kommen, aber man weiß nie, schätze ich Also werde ich einfach 32 als meine Basis verwenden. Also gut, wir haben einen Truck , der in eine Richtung fährt. Und jetzt können wir auch unsere anderen Fahrzeuge erstellen. Lass uns sehen. Wir haben zwei weitere, die sich nach links bewegen, und zwei, die sich nach rechts bewegen. Mal sehen, was wir hier machen und wir gehen nach links. 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. Alles, was ich getan habe, war reinzukommen, die Form der Colluson anzupassen, wenn nötig, und den Sprite durch ein anderes unserer Autos zu ersetzen Und dann, falls nötig, die Richtung von minus eins auf positiv altern lassen Und das kontrolliert all unsere Autos. Und ich habe sie ungefähr dort platziert , wo sie hier sein würden , nur damit ich sie testen und mir ansehen kann. Und wie Sie sehen können, fahren unsere Autos beim Fahren weiter und fahren über den Bildschirm in die richtige Richtung über den Bildschirm, ohne dass sie miteinander kollidieren Fantastisch. Alles, was wir brauchen , sind mehr Autos, die spawnen, und wir wollen diese nicht platzieren denn wenn wir sie manuell platzieren müssen, dann brauchen wir einfach diese riesige Liste von Autos und wir haben keine Ahnung, wie lange es wird, bis sie spawnen oder wie lange es dauern wird, bis der Spieler entweder keine Leben mehr hat oder das Level abgeschlossen Wir werden also Spawner für diese Autos erstellen . In Ordnung Und diese Spawner werden im Grunde nur zu einer bestimmten Zeit das Fahrzeug spawnen Und wir könnten fünf verschiedene Spawner haben wenn wir wollen, einen für jede Spur Und lass uns sehen. Ich glaube, das ist es, was ich tun möchte. Ich glaube, ich werde auf diese Weise die fünf verschiedenen Spanors haben , sie können alle ihre eigenen Zeiten haben Und wenn du wolltest, hättest du einfach ein Spawnlimit oder ein Zeitlimit für alle Fahrzeuge festlegen ein Spawnlimit oder ein Zeitlimit für alle Das ist auch völlig in Ordnung. Ich werde weitermachen und einen erstellen, und das wird nur ein einfacher zweiter Schritt sein. Ich werde diesen Spotter einfach nennen. Wollen wir ihn SponterO nennen ? Gehen wir zum Sponsor und das wird meine Top-Spawns hier oben kontrollieren Und weißt du, ich glaube, ich werde das auch als Basisstation verwenden Ich suche mir einfach einen guten Platz, und da das der Truck ist, bringe ich ihn dorthin zurück, und das zeigt mir, ob der Truck auf dieser Position auftaucht, er ist genau dort Okay. Also werde ich auf meinem Spawner ein neues Skript erstellen Das wird nur ein Spawner DotGD-Skript sein. Und noch einmal, wir werden das für so ziemlich alle unsere Swannas verwenden, die wir hier alle unsere Swannas verwenden, die wir Was müssen wir also tun? Also, wir müssen eine bestimmte Zeit warten. Ich werde nur diesen Kommentar löschen, genauso wie den hier unten in Zeile neun. Hoppla. Yo In Ordnung, wir müssen also eine bestimmte Zeit warten. Diese Zeit sollte zufällig sein. Und dann, basierend darauf, eine Ansicht erzeugen. In unserem Fall werden wir also den Truck beladen. Also mache ich weiter und mache hier eine Variable für meinen Truck, und das wird hier eine Vorladung sein. Was bedeutet, dass wir die Szene einfach vorher laden werden. So können wir es benutzen. 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. Und damit zeige ich Ihnen nur das eine Fahrzeug hier, denn dann müssen wir einfach reinkommen und wir können das anpassen Ich zeige Ihnen, wie wir das auch exportieren können. Auf diese Weise könnten wir dieses Skript tatsächlich für alles verwenden , anstatt mehrere Skripte zu erstellen, nur wegen eines Variablenunterschieds. Das werde ich dir zeigen. Aber zuerst lassen Sie uns das zum Laufen bringen. Und was wir tun werden, wir werden diesen Prozess überhaupt nicht anwenden . Wir werden tatsächlich eine Funktion namens Spawn Vehicle erstellen Spawn Vehicle Und hier gehen wir zu Hier brauchen wir eine Zufallszahl. Also lass uns weitermachen und die Wartezeit anrufen. Nennen Sie es einfach Wartezeit. Und wir setzen das auf Float und wir setzen das gleich, mal sehen, und zufällige Ganzzahl und nicht falsch, wir könnten einfach so etwas machen und das würde Ich glaube nicht, dass wir den Randbereich verwenden müssen, obwohl ich mich darin irren könnte . In Ordnung, da haben wir's. Und da ich das sicherheitshalber noch einmal überprüfen möchte , behalte ich die Kontrolle, klicke auf Randi und das öffnet mir diese Seite Und ja, ich habe das richtig gemacht. also in diesem Fall Prozent 20 verwenden , erhalten wir, wie Sie sehen, eine Ganzzahl von 0-19 Prozent 100 würde uns 0-99 ergeben, und wenn wir Prozent 100 plus eins machen, würde uns das eine Zahl 1-100 geben Also in meinem Fall, wenn ich drei mache, dann haben wir eine Wartezeit von null, eins, zwei, ich füge noch eins hinzu Jetzt müssen wir mindestens eine Sekunde zwischen den Spawns der Trucks warten zwischen den Spawns der Trucks Das wird also zwischen eins, zwei und drei liegen. Und wir können sehen, wie das aussieht. Wir könnten das später jederzeit anpassen. Nun, unsere Wartezeit, das haben wir. Jetzt müssen wir tatsächlich so lange warten. Also sagen wir, warte ab und dafür müssen wir den Baum holen. Und 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 werden wir sagen, warte, hol dir den Tree Dot Create Timer, und das wird unsere Wartezeit hier sein. Unsere zufällige Wartezeit, die wir haben. Wir haben Auszeiten. Wir werden auf das Timeout-Signal warten , das gesendet wird , wenn unser Timer endet basiert auf einer Zufallszahl, einer zufälligen Anzahl von Sekunden Ordnung. Sobald das erledigt ist, können wir eine Instanz unseres Trucks erstellen . Sagen wir mal VT für Fahrzeug oder VI für Fahrzeug In diesem Fall sagen wir Truck, aber wir sollten es in Fahrzeug ändern Also truck dot instanziate Und dann fügen wir es zu Also sagen wir Self Dot, Add Child, um es der Szene hinzuzufügen Also gut. Mal sehen, wie das jetzt funktioniert. Und das wird es nicht tun, weil wir es nicht angerufen haben. Gehen wir hier zu unserer REDI-Funktion und rufen unsere von uns erstellte Spawn-Fahrzeug-Funktion Lass es uns jetzt versuchen. Da haben wir's. Also hatten wir noch einen Truck und das werden wir nicht mehr haben , weil wir ihn nur einmal spawnen Also, was wir von dort aus tun können, ist, nachdem wir ein Kind hinzugefügt haben, richtig? Nachdem wir den Truck zu unserer Szene hinzugefügt haben, rufen wir ihn einfach rekursiv auf. Es wird also eine Endlosschleife verursachen. Es wird ein Fahrzeug spawnen und nichts tun, und dann ein Fahrzeug spawnen Und wenn es damit fertig ist, spawnen Sie ein anderes Fahrzeug. Es ist fertig, spawnen Sie ein Fahrzeug Und es wird immer eine Zufallszahl sein, jedes Mal, wenn wir warten müssen oder zwischen den Spawns Wenn wir uns das jetzt ansehen, können wir sehen, dass sie in ihrem Abstand ziemlich einheitlich sind, und dann war das ein viel größerer Abstand Und wir sagten, oh, da hatten wir einen wirklich engen Abstand. Es sieht also so aus, als ob Prozent drei plus eins die kürzeste sein könnten , die wir erreichen wollen. Aber da hast du's. Es liegt also an dir, ob du willst , dass viele nahe beieinander liegen. Es liegt also an dir, ob du das ein bisschen twittern willst, überhaupt damit spielen willst, und es du überhaupt damit spielen willst, und es liegt an dir, wie du sie verteilen willst 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 Also, da der Truck hier an seiner Position auf 00 steht, Ups. Das ist der Truck hier bei 00 Uhr an seiner Position. Und das können wir sehen, wenn wir 00 transformieren. Es wird genau dasselbe sein wie sein Elternteil, das in diesem Fall SpoNoro sein wird Also wo mein SponOro hier ist, wird er an der Stelle erscheinen , gerade außerhalb Nun, wie können wir ein Skript ausführen, um es für jedes unserer Fahrzeuge verwenden zu können Nun, was wir tun müssen, damit das für all unsere Spawner funktioniert all unsere Spawner , damit wir hier so wenig Arbeit wie möglich haben Nun, zuerst werde ich meinen Variablennamen von Truck zu Fahrzeug ändern , jetzt werden wir ihn für mehr als ein Fahrzeug verwenden, nicht nur für den Und das bedeutet, dass ich ihn hier unten in unserem Spawn von Truck Dot Instanziate auf Vehicle Dot Instanziate ändern hier unten in unserem Spawn von muss Und wir wollen, dass diese Variable in unserem Inspektor verfügbar ist, damit wir sie hier pro Knoten anpassen können , also machen wir das AT-Zeichen mit Export Und was werden wir jetzt hier exportieren? Nun, wir könnten es einfach so belassen, und es wird einfach funktionieren, wenn wir uns den Inspektor von innen ansehen . Aber wenn du etwas konkreter werden willst, nennt man das eine vollgepackte Szene. So würdest du das exportieren. Und dann könnten wir hier sogar einfach den Preload löschen. Also müssen wir einfach auf dem Schild unser Fahrzeug exportieren und es als Rudelszene deklarieren Wenn wir jetzt hier auf unseren Spawner und unsere Szene klicken, können wir einfach das Fahrzeug öffnen und sagen, neu packen oder wir können Natürlich würden wir es laden wollen, aber um etwas Zeit zu sparen, können wir einfach in unser Dateisystem gehen, unseren Truck nehmen, ihn hineinziehen unseren Truck nehmen, ihn hineinziehen und dort ablegen Und wenn wir das ausführen, werden wir sehen, dass unsere Trucks genauso spawnen, wie sie es sollten, genau wie zuvor Alles klar? Perfekt. Und wenn wir, sagen wir mal, schauen wir mal, Auto eins fährt auch nach links. Also schnappen wir uns das Auto, ersetzen die Szene da drin und schauen wir es uns an. Und da haben wir es. Wir haben es hier mit einem anderen Fahrzeug zum Laufen gebracht. Also müssen wir nur das hier austauschen. Und das sind dort viele Autos hintereinander. Also nochmal, das kann darauf zurückzuführen sein , dass du Dinge optimierst. Aber da hast du es. Ich werde einfach weitermachen und diesen wieder durch einen LKW ersetzen und ihn am Laufen halten. Und jetzt kann ich weitermachen und mehr Spawner bauen. Ups. Und wir passen nicht in die Geschichte. Das ist interessant. Ich mache nichts mit Geschichte. Ich benutze dort einfach Control D. Und dieser wird von zwei gesponsert. Also komm einfach runter, stell sicher, dass das stimmt. Das tut es. Und das wird Auto drei sein. Also werde ich nach meiner Szene aus Auto Drei suchen und sie hineinziehen. Mach weiter und sieh dir das an. Da haben wir's. Unsere Trucks und unser Auto laichen in unseren unterschiedlichen Intervallen Fantastisch. Und wir können hier dasselbe für unseren Hintern tun. Also werde ich das noch einmal duplizieren. Ich dupliziere das nur mit Control D und ausgewähltem Spanor Und ich werde das hier für dieses Fahrzeug runterholen hier für dieses Fahrzeug runterholen Und das ist nur ein Auto. Also werde ich das Auto hier reinfahren. Und wir schauen uns das an. Und wir sehen, dass alle unsere Autos, die nach links fahren , alle korrekt einlaichen Fantastisch. Und jetzt müssen wir die beiden nur noch rechts rüber bringen. Und das Gleiche, ich werde hier einfach meine Spanne duplizieren und sie einfach auf die linke Seite ziehen. Und dann passe ich es hier der Position an, das sollte gut sein. Und das ist Auto vier, meine Autovier-Szene, und wir duplizieren sie noch einmal und fügen sie hier für mein Auto zwei sne zusammen . In Ordnung. Also sollte ich jetzt hier reinkommen und all diese temporären Autos und Lastwagen löschen können . Und wenn wir es laufen lassen, sollte es einwandfrei funktionieren und all unsere Fahrzeuge da drin haben wir es Jetzt können wir hier mit unserem kleinen, ich sage kleinen Frosch herumlaufen . Da haben wir es Und jetzt brauchen wir nur noch eine Möglichkeit, über dieses Wasser zu springen, damit wir da reinkommen können. Und natürlich eine Möglichkeit für unseren kleinen Frosch, zerquetscht zu werden Ich denke, wir werden uns beim nächsten Mal um das Quetschen kümmern, also kriegen wir hier den Tod des Spielers rein 32. Tod und Wiederaufleben des Spielers: Also gut, wie kriegen wir unseren kleinen Frosch dazu, Gist zu holen, 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 Und wir werden das nutzen, um festzustellen, ob er in Kombination mit der Area Two D, die sich auf unseren Fahrzeugen befindet, von einem Auto angefahren wurde Kombination mit der Area Two D, die sich auf unseren Fahrzeugen befindet, von einem Auto angefahren Area Two D, die sich auf unseren Fahrzeugen befindet, Und in meinem animierten Sprite habe ich eine neue Animation namens Tod erstellt, und ich habe den Frogger Und jetzt, wo wir das haben, brauchen wir auch an unserem Fahrzeug, wir müssen hier eine Signalverbindung hinzufügen , und die, die wir wollen, ist Und wir könnten hier reinkommen und sie eins nach dem anderen an all unseren Fahrzeugen verbinden , oder wir könnten ein wenig Zeit sparen und es per Skript, durch den Code verbinden . Und ich denke, das werde ich hier tun , 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, und dieser Fehler ist nur darauf zurückzuführen dass wir diese Funktion noch nicht erstellt haben. Wir sehen also, dass wir uns unseren Bereich zwei D schnappen , weil das das Signal aussendet. Punkt auf den Namen des Signals , der als Körper eingegeben wurde. Sie können das auf der rechten Seite sehen, und wir werden dieses Signal mit der Connect-Funktion verbinden. Und dann erstellen wir ein sogenanntes Callable und geben einen Namen ein, und dieser Name wird der Name unserer Funktion sein , die wir aufrufen wollen Also bei Spieler-Hit, Froggy Hit, du kannst damit weitermachen Player Hit werde ich meins nennen. Und jetzt müssen wir nur noch runterkommen und eine neue Funktion dafür erstellen , Bunk Player Hit. Nun, diese Funktion übergibt auch ein Datenelement. Wenn wir uns das vom Körper eingegebene Signal hier auf der rechten Seite ansehen , können Sie sehen, dass es durch den Körper fließt, und das ist ein Knoten vom Typ D, zwei. Es wird also ein Zwei-D-Knoten irgendeines Typs sein. Also müssen wir das Argument übergeben, also Körper, Knoten zwei D. Und einfach so, das sollte jetzt das Signal für all unsere Fahrzeuge verbinden , und um die Zelle zu testen, können wir weitermachen und die Karosserie drucken, und wir werden das sehen. Und ich habe auch meinen Spieler geändert . Ich habe meinen Spieler von Charakter Body TD in Layer umbenannt . Und dann musste ich hier in meine Hauptszene gehen und sie ersetzen, sodass der Name aktualisiert wurde. Also, wenn wir das durchgehen lassen, sollten wir jedes Mal, wenn wir von einem Fahrzeug angefahren werden, eine Leiche ausdrucken lassen Jep. Spur zwei Jep. Spur drei, richtig? Spur vier und unsere letzte Spur, der Truck. Los geht's. Also alle unsere Fahrzeuge erkennen, wenn wir getroffen werden, und wir können sehen, dass wir zu diesem Zeitpunkt eine Menge Fahrzeuge da haben . Das könnte ein guter Betrag sein, oder vielleicht möchten Sie den Mindestabstand zwischen ihnen erhöhen . Auch hier liegt es ganz Ihnen und wie Sie vorgehen möchten. Was ist mit deinem. Aber damit sind jetzt alle unsere Fahrzeuge miteinander verbunden und so eingerichtet, dass sie unseren kleinen Frosch zerquetschen Der Grund, warum ich euch gesagt habe, dass ich meinen Charakterkörper von Spieler zu Spieler in TD umbenannt habe und ich ein großes P verwende, ist , dass wir diesen Namen auf unserem Fahrzeugbildschirm verwenden diesen Namen auf unserem Fahrzeugbildschirm Also sagen wir ob und geben dann hier eine Zeichenfolge ein, einen Spieler. Also wenn Spieler N wollen wir sehen, ob diese Zeichenfolge innerhalb einer anderen Zeichenfolge ist, und die Zeichenfolge, die wir überprüfen wollen, ist der Hauptpunktname. Denken Sie daran, Körper ist das Objekt, mit dem wir gerade kollidiert sind, welcher Körper auch immer gerade in den Bereich unseres Fahrzeugs eingedrungen ist, und die Namenseigenschaft gibt uns, was auch immer dieser Name hier ist, was in unserem Fall Layer ist Wenn unser Name also Spieler ist und wir nicht den Namen eines Körperpunktes angeben, könnten wir einfach ein doppeltes Gleichheitszeichen angeben, wenn wir wollen, dass es ein exakter Name könnten wir einfach ein doppeltes Gleichheitszeichen wenn wir wollen, dass es ein exakter Es liegt ganz bei dir. In diesem Fall sollte es nichts beeinflussen. Wickeln Sie unsere if-Anweisung mit unserem Doppelpunkt ab, gehen Sie zur nächsten Zeile und jetzt können wir unseren PC mit Code ausführen. Was wollen wir also tun, wenn unser Spieler es bekommt? Nun, wir werden die DF-Funktion auf unserem Player aufrufen. Nun, diese Funktion gibt es noch nicht, also müssen wir sie erstellen, aber Body Dot Death. Und wenn Sie hier einen zusätzlichen Sicherheitsfall haben wollen, können Sie sagen, ob Body Dot Methode hat und die Todesfolge übergeben, und dann können wir den Body-Punkt-Tod in einer weiteren auswählen. Wir können so vorgehen. Und das wird einen Fehler vermeiden , wenn wir weitermachen und das ausführen würden. Siehst du, wir werden hier keine Fehler haben , weil wir im Grunde sagen, okay, wir sagen, wenn wir hier mit dem Spieler kollidiert sind, wenn dieser Spieler, wenn dieser Körper diese Funktion hat, dann rufe ihn Und im Moment hat er diese Funktion nicht. Wenn Sie also diese zusätzliche Sicherheitsebene mithilfe der HAS-Methode einrichten möchten, können Sie das sicherlich tun. Und ich gehe jetzt in meinen Player und erstelle diese Funktion Funk Dak. Und das tut es nicht. Wir geben damit keine Argumente weiter. Was passiert also, wenn unser Spieler stirbt? Nun, wir müssen unsere Todesanimation abspielen damit wir unser Sprite korrigieren können Also lass uns weitermachen und das machen. Animiertes Sprite Two D Dot, La Death Schauen wir uns das jetzt an. Was passiert, wenn wir von einem Fahrzeug angefahren werden? La Di Da, armer kleiner Frosch, der die Straße überquert, bei. Okay. Also sehen wir dich sterben und dann sind wir eins oder Sprite der falsche Weg Es zeigt nicht so, wie es sollte. Also lasst uns das korrigieren. Danach stellen wir einfach die Rotation ein. Und das haben wir schon gemacht, als wir nach oben drücken. Also lasst uns das hier zu unserer Todesfunktion hinzufügen. Und wir werfen einen Blick darauf, ob es sich jetzt richtig, flach oder in der richtigen Position verhalten sollte . Fantastisch. Nun, 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 werden wir sein und wir sind wieder am Leben. Also haben wir einen untötbaren Frosch. Ja. Ja, also eine Requisite ist eine Frage der Zeit, lassen Sie uns verhindern, dass unsere Kollision Und das können wir sehen. Und das zeige ich dir, wenn wir unseren Player-Hit eingeben, werde ich einfach weitermachen und Quesished Frog ausdrucken Und du kannst sehen, dass wir, obwohl wir tot sind, immer noch zerquetscht werden Zerquetschter Frosch, und wir werden weiter zerquetscht werden, obwohl wir schon tot sind Wir wollen nicht, dass das passiert, weil es uns immer wieder Leben abziehen könnte, je nachdem, wie weit die Spawns voneinander entfernt Also lasst uns weitermachen und das bei unserem Spieler korrigieren. Und um das zu tun, werden wir einfach unsere Kollisionsform in die Finger bekommen , die Kollisionsform zwei D, wir unserem Player hinzugefügt haben Und dafür werden wir etwas namens Deferred verwenden namens Deferred Und wenn wir einen Blick darauf werfen, ruft das im Grunde einen Blick darauf werfen, ruft die Methode für das Objekt während der Leerlaufzeit auf Gibt immer Nou zurück, nicht das Ergebnis der Methode. Also da hast du's Unser Schlüsselwort hier ist, es während der Leerlaufzeit aufzurufen. Also wird es das nennen, was auch immer wir weitergeben. Wenn es die nächste Chance bekommt, die es bekommt, im Grunde genommen, anstatt zu versuchen, es jetzt aufzurufen , wenn es vielleicht nicht in der Lage ist. Und Sum Functions wird dir sagen, dass du das tun sollst. Bevor wir das aufrufen, müssen Sie sie also nicht löschen. Ich werde dir hier nur den Fehler zeigen. Wenn wir also hier reinkommen und ich sage, deaktiviert ist gleich wahr, werden wir sehen, ob wir hier auf einen Fehler stoßen Und es verhindert nicht, dass unser Spiel läuft. Siehst du, wir wurden zweimal gequetscht, also funktioniert unsere Deaktivierung bei einem Mal nicht Und zweitens, wenn wir in unseren Debugger gehen und uns die Fehler ansehen, wird er uns sagen, dass wir das nicht können. Wir können den Status nicht ändern, während Abfragen geleert werden, verwenden Es sagt uns also ausdrücklich, dass wir das verwenden sollen. Aus diesem Grund verwenden wir hier Call Deferred. Anruf zurückgestellt. Und hier wird eine Reihe von dem stehen, was wir tun wollen Und in diesem Fall wird es deaktiviert sein. das deaktiviert ist, braucht es ein zweites Argument, Wenn das deaktiviert ist, braucht es ein zweites Argument, und darauf haben wir es eingestellt. In unserem Fall wird es auf true gesetzt. Und jetzt, wenn wir uns das ansehen, ist dieser Fehler weg und wir werden nur einmal gequetscht Und da hast du's. Es wird nicht mehr in unserem Code auftauchen. Und wenn Sie Angst haben, dass der Anruf verzögert wird, wenn wir von einem Nahverkehr angefahren werden, also wenn es drei hintereinander sind, können wir hier nachschauen, und es wurde bereits deaktiviert bevor uns das nächste Fahrzeug überhaupt berührt Jetzt können wir hier tatsächlich sterben. Jetzt müssen wir uns ansehen, wie wir uns zurückholen können. Jetzt sind wir einfach nicht mehr tötbare Frosche, Jetzt sind wir einfach nicht mehr tötbare Frosche weil wir mit nichts kollidieren können, also müssen wir das mit unserem Tod reparieren, wir brauchen irgendeine Art von Respawn, wir müssen sicherstellen, dass wir uns nur bewegen können, wenn wir bewegen können, wenn Ups. Ich lösche dort etwas mehr als beabsichtigt Ordnung, wir müssen also verfolgen, ob unser Frosch am Leben war oder nicht unser Frosch am Leben war oder nicht Und das können wir mit einer einfachen Funktion tun , die einfach prüft, ob er lebt oder ob er tot ist Und basierend auf dieser Variablen können wir uns entweder bewegen oder nicht. Und dafür werden wir eine Reihe von Zuständen verwenden, was ein ENOM sein wird wie Sie hier anhand des Beispiels sehen können. Wir können diese Enums verwenden, um bestimmte Daten zu speichern , ich nehme an, Sie könnten sagen Und es ist im Grunde wie eine Liste von Optionen, aus denen wir wählen können Und es macht es einfacher, Dinge zu überprüfen. Und das kann man sehen, wenn es um die Grundform einer Zustandsmaschine geht, die für Charaktere verwendet wird. Wenn Sie beispielsweise Grand Theft A to Five gespielt haben , Sie zu Fuß eine andere Steuerung als in einem Fahrzeug. Und das liegt daran, dass die Steuerung zu Fuß ein Staat wäre. Schwimmen wäre ein weiterer Staat, und ein Auto wäre ein Staat und ein Flugzeug wäre ein anderer Staat, und so weiter. Und 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 Enum, den Namen der Enum, die seither wie eine Zustandsmaschine funktionieren wird , ich nenne sie einfach state Und dann, anstatt Gleichheit oder Doppelpunkt zu verwenden, springen wir einfach direkt in die Und nach dem, was ich immer gesehen habe, werden diese immer in Großbuchstaben geschrieben, also werde ich leben lassen und dann das Koma bis zur nächsten Zeile fallen lassen Das sind also unsere beiden Staaten, lebendig und tot. Alive wird hier der Standardstatus sein. Und wir werden eine neue Variable namens current state erstellen und das einfach als Status deklarieren. Also wird es hier einer unserer Staaten sein. Okay, jetzt mit unserer Bewegung müssen wir nur noch überprüfen, ob der aktuelle Status zwei gleich ist live, und dann unsere Bewegung eintippen Jetzt können wir uns also nur bewegen, wenn wir am Leben sind. Jetzt, wo wir sterben, müssen wir ihm sagen, dass unser derzeitiger Zustand jetzt auf Staat gleich Schulden gesetzt wird. Wenn wir das jetzt machen, sollten wir nicht Lage sein, uns zu bewegen, wenn wir sterben und zerquetscht werden Und da hast du's. Wir sind 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, Respawn . Und sobald wir Leben hier drin haben , werden wir hier nachsehen Wenn der Spieler noch Leben übrig hat, nennen wir das. In Ordnung. Also lass uns weitermachen, wie reagieren wir? Nun, 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 ändern, oder? Wir haben uns die Position selbst beigebracht, und wir müssen sie auf unsere Ausgangsposition zurücksetzen . Und im Moment sind das 169 und 233. Ich werde diesen Wert einfach ganz schnell kopieren. Und in meiner Hauptszene werde ich etwas hinzufügen, mal sehen. Wie haben sie es hier umbenannt? Ah, los geht's. Es wurde in Marker Two D umbenannt. Und gib mir 1 Sekunde. Das hole ich für dich auf. Da hast du's. Also verwenden wir einen Marker mit zwei D. Und ich werde ihn vorerst auf Transformation einstellen. Ich werde einfach den Wert einfügen. Ich werde es auf die gleiche Position setzen , an der unser Frosch startet. Und ich werde diesen Spieler Spawn-Standort nennen. Und wenn wir jetzt antworten, können wir sagen, dass die Selbstpunktposition unserem Spieler entspricht Das wird für uns nicht ausgefüllt, also muss ich es nur Spieler, Spawn, Standort, Punktposition eingeben Spawn, Standort, Punktposition Und das sollte ziemlich sofort passieren. Lassen Sie uns also weitermachen und hier zu unserem Prozess übergehen. Und wir werden einen weiteren Check erstellen aktuelle LI-Status entspricht dem Status Punkt tot. Du kannst Respawn anrufen, und das sollte uns wieder am Anfang erscheinen lassen, wo wir angefangen haben, falls du Und wir scheinen ein Stichwort zu haben. Was ist Mythos? Oh, das ist fair. Die Spawnposition der Spieler, darauf können wir nicht zugreifen , weil wir tatsächlich den Baum hochgehen müssen. Denken Sie daran, dass wir ein Spieler sind und der Spieler hier keinen direkten Zugriff auf diesen Standort des Spielers hat. Also müssen wir dieser Linie folgen und eins hochgehen, und dann bringt uns das zu diesem D ohne zwei, und dann hat kein zweites D Zugriff auf den Spawn unserer Spieler Also müssen wir eins hochgehen. Und wir können das auf verschiedene Arten tun. Wir können weitermachen und Parent, Get Node finden. Und dieser G-Knoten ist nur eine lange Form des Schreibens dieses Dollarzeichens. Und dann wäre darin eine Zeichenfolge für den Pfad direkt zum Standort des Spielers. Alternativ, um das etwas kurz zu halten, können wir einfach den Knoten abrufen und ein paar Dinge weitergeben. Wir können einen Punkt verwenden, was dem Schreiben von Selbst entspricht, oder wir können zwei Punkte machen, was dem Punkt „ Get-Parent“ entspricht, den wir gerade gelöscht haben. Und du kannst dir vorstellen, dass das viel kürzer ist. Wir können das also mit dem Spawn-Standort der Spieler von G Eltern machen. In Ordnung, und das sollte das beheben. Nun, wenn wir zerquetscht werden, lass mich sehen, dass wir gleich wieder zum Anfang zurückkehren Nur wir können noch nicht weitermachen, weil wir unseren aktuellen Anteil festlegen müssen . Denken Sie daran, wir können nicht weitermachen Der aktuelle Status entspricht State Live. Und nicht nur das, wir müssen unsere Animation wieder zu unserem Idol Also holen wir uns unseren animierten Sprite-Punkt TwoB und spielen unser Idol Sprite, Und wenn wir es jetzt ausführen, nur jetzt Splat, können wir nicht wirklich sagen, wann wir Also, was ich tun werde, zuerst werde ich Caldeford benutzen und das nach allem anderen aufstellen, weil ich merke, dass nach allem anderen aufstellen wir zweimal gequetscht werden, also werden wir sehen, ob wir das Problem beheben, wenn wir nur diese Linie verschieben Das 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. In Ordnung, schauen wir mal, was wir brauchen? Wir müssen. Unser Totensymbol funktioniert nicht besonders gut, weil wir essen und sofort wieder auftauchen. Wir können nichts sagen, was vor sich geht. Wir werden also innerhalb dieses Respawns einfach Await erstellen Und wir werden das tun, was wir getan haben, bevor wir Get Tree benutzt haben, und diesen Timer erstellen Und wir setzen ihn auf 1 Sekunde. Das fühlt sich an wie eine lange Zeit und das Timeout-Signal. 1 Sekunde mag sich hier in einem alten Spiel wie diesem wie eine lange Zeit anfühlen , Splat und dann spawnen wir wieder Fantastisch. Jetzt werden wir dort mehrfach gequetscht, was ein bisschen bedauerlich ist Also werde ich einfach hier runterkommen und einen weiteren kleinen Timer für 0,5 erstellen , und ich werde sehen, womit ich durchkomme oder wie klein ich ihn durch Testen verkleinern kann Okay, 0,5, wir können damit durchkommen. Ich versuche es mit 0,2. Und ich kann mit 0,2 davonkommen, also können wir vielleicht sogar mit 0,1 davonkommen. Ich habe hier diese wirklich kurze Verzögerung. Ja, da haben wir's. Jetzt haben wir diese eine Sekunde , unser Todesbild auf dem Bildschirm unseres armen kleinen zerquetschten Bronte zu sehen sein wird dem Bildschirm unseres armen kleinen zerquetschten Bronte Und dann passiert die Antwort . Fantastisch. Nun, wenn Sie möchten, könnten Sie diese Zahl hier oben in eine Variable setzen , um den Antworttimer oder die Antwortzeit festzulegen, und das ist Ihre Zeit zwischen Ihren Antworten. Nun zu mir, ich glaube, ich werde es einfach bei eins belassen. Das ist kein Problem. Ich glaube nicht, dass ich jemals etwas optimieren möchte Nun, wenn du merkst, wann ich hingefahren bin, wenn ich genau hier sitze, könnte ich vom Auto darunter gequetscht Nein, mir geht es gut. Oh, aber ich wurde dort gequetscht , als ich mich zur Seite drehte Also möchte ich vielleicht meine Y-Position etwas mehr anpassen. Vielleicht möchte ich meine Y-Position dort etwas mehr anpassen, aber das wird darauf hinauslaufen, einfach mit der Position herumzuspielen und das nur ein bisschen 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 unserem UI-Bereich kommen zu unserem UI-Bereich Aber damit ist Vorsicht geboten. Das waren eine Menge Informationen , die wir durchgegangen sind. Und ich hoffe, du bist bereit. Wir fahren also mit dem nächsten Abschnitt des Spiels fort. 33. Wassertod: Ordnung, also machen wir es so , dass wir sterben und wieder auftauchen müssen, wenn wir ins Wasser springen sterben und wieder auftauchen müssen, wenn wir Nun, um das zu tun, könnten wir das auf verschiedene Arten machen . Aber der einfachste Weg, wie wir das tun können, da wir eine Kachelkarte verwenden, besteht darin, uns das zunutze zu machen 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. Ich mache das. Lassen Sie uns mit dem Drehbuch unseres Spielers weitermachen. Schließen Sie die anderen Tabs. Also gehen wir auf unser Spielerskript ein. Und was wir brauchen werden, ist eine neue Variable, um unsere Kachelkarte hier zu speichern. Nun, wir müssen das nicht an oberster Stelle setzen, aber wir müssen es auch nicht ständig in unserer Funktion festlegen , die wir erstellen werden. Okay, also lass uns das einfach machen und wir werden das Schlüsselwort on ready verwenden, und das bedeutet nur, dass die Variable, die wir erstellen werden, dieselbe wäre, als ob wir sie hier in der Bereit setzen Wenn wir also zum Beispiel sagen würden, Zahl in gleich zehn ist, wäre das dasselbe, als ob wir Zahl in eine Kiste packen und sie dann hier unten im Ready-Block auf Zehn setzen Das ist alles auf Ready Means. Und das ist nützlich, wenn wir bestimmte Knoten innerhalb unserer Szene erreichen wollen bestimmte Knoten innerhalb unserer Szene Und in unserem Beispiel wollen wir diese Kachelmap hier in die Finger bekommen Kachelmap hier in die Finger Also werden wir var Tilemap machen. Und wir werden den Knoten Equal to Yet Part setzen, und natürlich heißt er derzeit nur Denken Sie daran, was ich gesagt habe. Ich glaube, es war im letzten Video Anstatt hier GetParent zu verwenden, könnten wir das kürzen und in unserem Get no einfach einen Punktstrichstrich machen und dasselbe Äquivalent zu G parent haben Ich denke, ich werde das tun, nur um die Dinge wieder etwas kürzer zu halten Ordnung. Jetzt haben wir also unsere Kachelkarte. Jetzt wollen wir überprüfen, auf welcher Kachel wir stehen. Also werde ich weitermachen und hier eine neue Funktion erstellen. Ich nenne diesen Scheck Zellen-ID. Hoppla. Das wird uns eine leere Wendung geben Und was das für uns tun wird, ist, dass wir es im Grunde verwenden werden, um zuerst die Position der Zelle zu ermitteln, auf der wir stehen. Also sagen wir Balkenpause, was auf unsere Tilemap-lokale Tilemap-Karte gesetzt wird Und dann nimmt das eine Position ein, und diese Position wird die Position unseres Spielers sein die Position unseres Spielers Jetzt gibt uns Local to Map lediglich eine Position zurück, nämlich die Position der Zelle, auf der wir stehen. Und die Zellen wären jedes dieser orangefarbenen Quadrate. Da wir also hier stehen, sofort, wenn das Spiel beginnt, würde es uns sofort, wenn das Spiel beginnt, dieses Feld hier sagen, den Standort dieses Feldes. Und 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 diese ID und sie wird uns eine zurückgeben. Und um diese ID zu erhalten, erstellen wir hier eine Variable. Und das wird einfach Tilemap sein. Sieht aus. Karte kacheln. Noch nicht. Verkaufe Quell-ID. Und das erfordert nur die beiden Argumente. Die erste wird die Ebene sein, auf der sie sich befindet, also Ebene Null. Und die zweite wird die Position sein, die wir hier bereits aus unserer Map-Pausen-Variablen erhalten haben. Also sollte diese ID jetzt das sein, worauf wir gerade stehen. Wenn wir also reinkommen und diese ID ausdrucken und innerhalb unseres Prozesses einfach die Zellen-ID überprüfen ausführen, sehen wir, dass sofort einer für den Median, zwei für die Straße und drei für das Wasser ausgedruckt und drei für das Wasser Diejenigen, die das 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 Und wenn ich es hier bis zum Wasser schaffe, können wir wieder einen für den Median nehmen und dann drei, wenn wir auf das Wasser treffen Da haben wir's. Jetzt wissen wir also , dass das perfekt funktioniert, auch wenn wir den ganzen Weg hierher kommen , weil wir nach Layer Null suchen. Also, wir werden drei haben, das wird unser Wasser sein , denn nun, das wissen wir jetzt. Wir werden jetzt überprüfen , ob die ID gleich drei ist, und dann würden wir unseren Spieler töten. Also gut, dann kommen wir rein und rufen unsere Todesabteilung hier oben an. Wenn wir jetzt das Wasser berühren, sollten wir sterben. Da haben wir's. Jetzt können wir also sterben, wenn unser Spieler das Wasser berührt , und auf den Respawn warten Nun, das ist ein bisschen anstrengend, wenn wir es ständig so überprüfen, egal was Der nächstbeste Ort wäre also , hier nur anzurufen, wenn wir noch am Leben sind, aber noch besser, wir können es anrufen, wann immer wir tatsächlich umziehen Also füge ich das einfach am Ende all meiner Bewegungen hier hinzu. Also, wenn ich mich bewege , ist das einzige Mal, dass wir es überprüfen, anstatt es zu spammen So weit, gut. Spring hoch, Papa, warte auf den Respawn Jetzt beweg dich wieder. In Ordnung. Jetzt können wir unseren Frosch im Wasser ertränken und wir können unseren Frosch von einem Auto zerquetschen lassen In Ordnung. Also haben wir jetzt all unsere Todesfälle unter Kontrolle. Wir müssen nur noch unsere Plattformen zum Laufen bringen und am Ende unsere kleinen Gewinnpunkte sammeln, indem wir an die richtigen Stellen springen und dann unser Head-up-Display mit unserem Punktestand aufstellen . Und dann, glaube ich, sind wir fast fertig. Ich glaube nicht, dass uns danach etwas entgeht. Könnte falsch sein, aber da hast du es. Wir können jetzt unseren Frosch im Wasser ertränken, und du weißt jetzt, wie du die ID des Spielers herausfindest, auf dem dein Spieler steht In Ordnung, um es für diesen zu tun. A. Wir sehen uns im nächsten Video. 34. Wasserplattformen: Ordnung, lassen Sie uns weitermachen und uns 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 länger und kürzer zu machen . Für meine Plattform hier verwende ich hier einfach ein Setup mit drei Sprites , sodass wir das Protokoll für dieses Beispiel verwenden, das Ende, die Mitte und das andere Ende, rechts, Mitte und Start Das heißt, ich verwende hier drei Sprites mit meiner Hauptszene, wobei die Wurzel meiner Szene hier ein Charakterkörper ist, den ich in Plattform umbenannt habe Ich könnte es in ein Protokoll umbenennen, wenn ich wollte. Und das hat einen Bereich zwei D mit einem Kollisionsschiff, das hier mein Logbuch verdeckt. Und ich habe sowohl das Eingangs - als auch das Ausgangssignal miteinander verbunden - als auch das Ausgangssignal Okay. Sobald Sie diese beiden Signale verbunden haben, sollte das Skript auf Ihrer Plattform so aussehen, und wir sind bereit Informationen oder alles hinzuzufügen. Mit der Art und Weise, wie wir das machen werden, werden wir auch Dinge zu unserem Spielerskript hinzufügen . Und der Großteil dieser Arbeit wird sich tatsächlich auf unser Spielerskript beziehen. Gehen wir also vorerst zu unserem Spielerskript und fügen ein paar Variablen hinzu , die wir verwenden werden. Erstens wird es eine Plattform sein, und das wird ein boolescher Wert sein, und das ist einfach, unserem Wasser mitzuteilen oder es wissen zu lassen ob wir sicher sind, weil wir uns auf einer Plattform befinden oder nicht, die sogenannte Todesmeldung Wir werden unsere aktuelle Plattform-Var-Plattform bekommen, und das ist ein Charakterkörper mit zwei D, den wir weitergeben Dann werden wir uns irgendwann darauf einstellen . Ich schicke es einfach an N und wir benötigen eine Plattformrichtung, die eine Ganzzahl-Standardeinstellung ist. Wir werden es auf Null setzen, auch wenn es keine Rolle spielen sollte. Ordnung. Also nochmal, wir werden Plattform, aktuelle Plattform und Plattformrichtung als unsere drei neuen Variablen in unserem Player-Skript verwenden und Plattformrichtung als . Wir fahren fort und gehen runter zu unserer Checkzellen-ID, und wir werden unsere if-Anweisung ergänzen . Also werden wir sagen, ob ID gleich drei und 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 Also haben wir unsere Bedingungen dort festgelegt. Lass uns sehen. Bei einem Spieler werden wir auch nachschauen , solange wir am Leben sind. Wenn unsere aktuelle Plattform nicht gleich Null ist, was sie nicht sein wird, dann ist sie vorerst nur gleich. ein Objekt Sobald unser Spieler in unserem Logbuch steht, wird ihm ein Objekt zugewiesen. Nehmen wir an, die aktuelle Plattform ist nicht gleich Null, dann können wir einfach weitermachen und unsere Position Punkt plus gleich nennen unsere Position Punkt plus , wir werden ein wenig rechnen 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 werden Plattformrichtung sagen. Mal 16. Also werden wir das entweder als plus eins oder minus eins verwenden , genau wie wir es mit unseren Fahrzeugen gemacht haben, und mit 16 multipliziert Also werden wir entweder 16 nach links oder 16 nach rechts bewegen , und das werden wir im Laufe der Zeit tun Also werden wir das mit Delta multiplizieren. Auf diese Weise sind wir nicht framebasiert, eher zeitbasiert. In Ordnung. Also müssen wir nur noch die Richtung unserer Plattform festlegen, und das können wir über eine Funktion tun. Lustig. Wir wollen mit, lassen Sie uns mit der festgelegten Richtung weitermachen. Und das nimmt ein Argument einer Ganzzahl und gibt nichts zurück. Und das alles wird dazu führen, dass er die Richtung unserer Plattform gleich ter setzt . Alles klar. Jetzt können wir zu unserem Plattformskript übergehen und brauchen diesen fertigen Block nicht. Das können wir löschen. Und innerhalb unseres Prozesses wollen wir, dass unser Protokoll in meinem Fall weiterläuft. Also mache ich weiter und mache Position, Punkt X plus entspricht 16 mal Delta Dadurch wird es ständig nach rechts verschoben. Ich, wenn wir eintreten, wenn unser Spieler den Bereich betritt. Also setzen wir die Plattform hier auf true und wir werden unsere aktuelle Plattform auf unser Logbuch hier setzen , meine Plattform hier. Also nehme ich Body Dot Platform und setze das auf true, weil wir jetzt auf der Plattform sind und ich glaube, es war Curb Platform Ja, die Bordsteinplattform entspricht dem. Und wenn die Leiche rauskommt, werden wir das Gegenteil tun, also werden wir untergehen Anstatt auf wahr setzen wir es auf falsch. Anstatt auf Zelle, stellen Sie es auf Wissen ein. Ordnung? Also, was wir bis jetzt machen ist, wenn unsere Sprünge auf dem Baumstamm sind, der sich momentan ständig nach rechts bewegt. Während es das macht, okay. Starte das neu. Unser Logbuch bewegt sich derzeit im Laufe der Zeit um 16 nach rechts und basiert nicht auf Gehirnen. Wenn unser Spieler nun den Bereich unserer Plattform betritt , auf dem er stehen kann, setzen wir die Plattform-Variable unseren Spieler auf true. Wenn wir also die Zellen-ID überprüfen, um zu sehen, ob wir auf dem Wasser stehen, Plattform wahr und unser Spieler wird nicht getötet. Und dann setzen wir die Kurven-Plattformvariable unseres Spielers für die aktuelle Plattform auf „Selbst“. Körper des Charakters hier, der sich bewegt, repräsentiert also unsere Plattform. Und auf dieser Grundlage können wir unseren Charakter hierher verschieben. Die aktuelle Plattform ist also nicht gleich Null. Wenn wir uns also auf einer aktuellen Plattform befinden, werden wir unseren Froggi mit derselben Geschwindigkeit in dieselbe Richtung bewegen derselben Geschwindigkeit in dieselbe Richtung Das Letzte, was uns noch bleibt, ist, diese Funktion, die wir erstellt haben, tatsächlich Set Direction aufzurufen Also Körperpunkt oder Richtung festlegen, und das erfordert eine Ganzzahl, was bedeutet, dass wir uns nach rechts bewegen. Wir werden eine positive Zahl verwenden. Und wenn wir jetzt die Plattform zu unserer Szene hinzufügen und sie ausführen, wie Sie sehen, gibt es unser Logbuch, und wenn wir darauf springen, sterben wir dort. Möglicherweise muss das aktualisiert werden. Einen Moment da. Bring einen neuen 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 verbinde es wieder. Und ich mache dasselbe mit meinem Ausgang, trenne meinen Körperausgang und verbinde ihn wieder Und wir werden sehen , ob das das Problem war. Okay. Ich glaube, ich verstehe, was ich hier verpasst habe, und wir bekommen diese Information etwas zu schnell. Bevor wir also unsere if-Anweisung in unserer Checkzellen-ID haben , verwende ich eine Gewichtung und mache das, was wir zuvor mit Get tree, create timer gemacht haben, und wir machen dort einfach eine kleine Pause von 0,1 und erhalten das Timeout-Signal Und das sollte das für uns beheben. los geht'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 geht uns gut, und wir bewegen uns. Und sobald wir abspringen, können wir wieder auf die andere Seite rennen, wenn wir wollen. Und trotzdem, wenn wir ins Wasser springen, schwupp, sind wir weitergegangen und gestorben Okay, also wie können wir dieses Skript ein bisschen mehr machen ? Ich denke, wir könnten sagen, modular in einer Weise, 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, und all das unabhängig davon haben können, sowie, glaube ich, unsere Richtung festlegen, damit wir etwas bewegen können rechts und manche bewegen sich nach rechts oder manche bewegen sich nach links. Nun, wir werden weitermachen und Richtung einer Ganzzahl exportieren. Das ist standardmäßig auf Null. Oh, da ist das Wort Bar 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 die Richtung vorgeben und sie hier weitergeben, wenn wir Set Direction aufrufen. Und plus ist gleich, und wir könnten hier dasselbe tun, wo wir die Richtung Whoops mal 16 haben Und wir können weitermachen und nachschauen , ob alles noch funktioniert Wir haben nichts kaputt gemacht. Okay? Archäologen bewegen sich immer noch. Wir können drauf springen und fertig. Okay? Also haben wir noch nichts kaputt gemacht. Das ist großartig. Und 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. Und dann bauen wir einfach einen Sponder dafür, genau wie wir es mit unseren Trucks gemacht haben Ich bin gleich zurück, während ich ein paar davon erstelle. Ordnung, also habe ich weitergemacht und auch ein paar lange Schildkröten gemacht und nur ein paar hier in der Szene Und wie Sie sehen, spielen Sie dieses Logbuch ab und springen Sie zu den nächsten Schildkröten Springt als Nächstes nach rechts. auf meine Schildkröte, warte, spring auf den Baumstamm und ich bin bereit, in das zu springen, was unser Windraum sein würde. Ordnung. Also funktionieren unsere Plattformen jetzt sicherlich einwandfrei. Es ist großartig. Ich möchte darauf hinweisen, dass ich Entered hinzugefügt vor dem Ändern der Plattform in unserem Plattformskript ein Await für 0.1 auf Body habe. Also möchte ich das zur Kenntnis nehmen. Und jetzt brauchen wir nur noch unsere Spawner. In Ordnung, also lasst uns weitermachen und sie erstellen. Und wir werden sie effektiv herstellen, genau wie unsere Lkw-Modelle hier. Dann machen wir weiter und holen uns selbst oder fügen ein D ohne zwei hinzu, wir nennen es Plattform-Spawner Und wir werden weitermachen und anfangen, sie in einer Reihe aufzustellen. Dann werden wir dort einen haben. Hatte einen dort. Ha eins, wie es dort aussieht. Okay. Dieser Blick macht das sogar. Eigentlich ein etwas seltsamer Ort. Ja, geh da hin. Und dann brauchen wir ein paar für die andere Seite für unsere Hürden Ein Dankeschön und eines für unsere Hürde Ordnung. Also die sehen nach ein paar guten Spawnpunkten aus Diese sind ein bisschen nah dran. Hilf, diese ein bisschen zu unterstützen. Und wir werden etwas Ähnliches wie unseren Truck-Spawn haben , also werde ich einfach unseren Truck-Spawner kopieren Und lass uns sehen. Werden die das Fahrzeug auf den gleichen, anderen Namen Ja, so ziemlich. Also könnten wir wahrscheinlich damit durchkommen, einfach unser Truck-Skript hier zu verwenden. Unsere Plattformen würden Vehicle heißen. Aber ich glaube, ich möchte etwas anderes machen , weil ich die Wartezeit nicht mag. Ich glaube nicht, dass das gut für die Plattformen wäre. Ich werde das einfach als meine Basis verwenden. Ich werde auf meinen Plattform-Spawner klicken ein neues Skript hinzufügen Und hier mache ich weiter und füge einfach die Fahrzeugskripte Ich nenne sie Plattform. Hoppla. Das wollten wir nicht. Wir ändern das auf Platform Dot Instantiate PI für Platform Instance, self at Child Warte Zeit. Siehst du, hier wird das Problem ins Spiel kommen. Also ich denke, mal sehen. Wir gehen 1-2 und fügen drei hinzu. Wir werden also sehen, wie das funktioniert. Dann werden wir das von einer Spawn-Plattform auf eine Spawn-Plattform umstellen Also das hier wird unsere Log-Szene sein. Plattform-Szene. Beim nächsten wird es wieder dasselbe sein. Ich mache weiter und ziehe einfach mein Skript nach oben und hänge es an alle meine Plattform-Gründer an. Und zwei ist meine Log-Szene. Drei ist die Holzplattform, und dann sind vier und fünf mein Revier. Alles klar Wenn wir diese Plattformen jetzt loswerden, meinen Spieler unter die Säule, damit der Frosch oben sitzen kann Mal sehen, ob das funktioniert. Ja, ja, ich komme den ganzen Weg rüber. Ja, 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. Und 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. Alles klar? Also versuchen wir es mit plus zehn. Das gibt uns also eine Variation von 11 und 12 Sekunden. Oh, was habe ich zwischen diesen Autos bekommen? Also 11 und 12 Sekunden könnten in diesem Fall ein zu kleiner Abstand sein. An diesem Punkt optimieren wir einfach, um zu sehen, was hier am besten passt Aber vielleicht versuchen wir es mit fünf und sechs. Und ich werde den ganzen Weg rüber springen und wir werden sehen, wie diese Art von Ausbreitung aussieht. Aber im Moment passen Sie einfach Ihre Zahlen an, um zu sehen, was für Ihre Plattformen gut aussieht und was für Ihre Trucks gut aussieht Ich möchte nur sichergehen, dass diese nicht ganze Zeit vollständig konsistent sind und es auch nicht so aussieht, als ob sie es sind, was großartig ist Alternativ, wenn du sie etwas mehr fest codieren oder sie speziell anders machen willst , kommst du hierher und wartest hier oben und wir machen daraus einen Float, keinen Flatscreen. Alternativ kannst du es auch hier oben machen und diese Zeile komplett löschen. Wenn du einen bestimmten Betrag haben möchtest. Wenn Sie die Kontrolle darüber haben möchten , wie lange Sie pro Responder genau gewartet haben, können Sie das auf diese Weise tun Ich werde hier mit dieser Randomisierung fortfahren. Und weißt du was? Ich werde mit Ted da hingehen. Und ich denke, das wird es für uns tun, denn jetzt haben wir unsere Sponsoren. Wir haben unsere Plattformen. Es scheint also alles zu laufen. Wir könnten es rüber schaffen. Und ich schätze, als Nächstes können wir unseren Sieg erringen, unseren kleinen Sieg da oben wenn wir in die richtige Zone springen. Lass uns sehen. Mögen ich diese Zahlen? Und wir sind ins Wasser gesprungen, wir sind gestorben. Fantastisch Ich glaube, ich mag diese Zahlen zumindest vorerst. In Ordnung. Also, das ist es. Wir sind fertig damit, dass unsere Plattform sie spawnt und reitet. Als Nächstes decken wir den Bereich ab, in dem wir in unsere Windzone springen und dort in unserem kleinen Hausfrosch laichen Ordnung. Wir sehen uns im nächsten 35. Der Gewinnbereich: In Ordnung. Für die Windzone können Sie sehen, dass ich hier eine neue Szene habe, und das ist nur ein Bereich zwei D mit einer Kollisionsform und ein Sprite zwei D, der nur meinen Hausfrosch hier hat Als Textur, die ausgeschaltet oder sichtbar ist , ist sie standardmäßig deaktiviert Sie können das tun, indem Sie hier auf den kleinen Augapfel klicken. Und WindSpace hat ein Skript und ein vom Körper eingegebenes Signal, das damit verbunden ist Und was das Drehbuch angeht, so werden wir einfach was das Drehbuch angeht, so werden wir body dot Win Zone auf true setzen Winzone ist eine neue Variable , die dem Spiel hinzugefügt wurde. Der aktuelle Status von Body Dot wird auf Body Dot Sta Dot Win gesetzt. Wir haben hier also einen neuen Status hinzugefügt, also haben wir jetzt Alive, Dad und Win. Dann bekommen wir nur noch unser Sprite zwei D, bekommen die Eigenschaft visible und setzen sie auf true Und an unserem Player, um Probleme zu vermeiden und einen kleinen Bug zu beheben, habe ich genau hier gezockt. LF Der aktuelle Status entspricht Stat Dot Dead. Ich habe unser 1-Sekunden-Gewicht hierher gelegt und es aus der Respawn-Funktion herausgezogen Früher war es hier oben. Ich habe es einfach herausgezogen und es da oben in unseren Bundesstaat gebracht und das sollte alles sein, was wir tun müssen. Jetzt können wir zu unserer Hauptszene zurückkehren und unsere Windzone, unseren Windraum, importieren und es einfach in jeden unserer kleinen Slots einpassen. Und möglicherweise müssen Sie einige Tests durchführen, um sicherzugehen , dass Ihr Frosch ihn nicht vorzeitig berührt um hier den Wind auszulösen Du? Also habe ich meins, das alle meine Bereiche abdeckt. Und wenn Sie Ihre Kollisionszonen und all diese Debug-Bereiche überprüfen möchten Ihre Kollisionszonen und all diese , gehen wir einfach zum Debug-Menü oben, und Sie haben die Möglichkeit , sichtbare Kollisionsformen anzuzeigen Und wenn Sie das tun, wenn Sie es ausführen, werden Sie sehen, dass wir hier all unsere kleinen Kollisionsfelder sehen können unsere kleinen Kollisionsfelder Für alles. Da haben wir's. Also, falls du es versehentlich auslöst oder vielleicht doch, mach weiter und aktiviere es Schau es dir selbst an. Und du wirst sehen, wenn wir uns auf den Weg nach oben machen. Wir sollten noch ein Protokoll haben. Da ist es. Und wir können unseren Sieg auslösen. Yo. Und beachte, dass wir da unten nicht tot auf unserer Konsole ausgedruckt wurden . Und wenn unser Status unser aktueller Status bei Punktgewinn ist, spawnen wir wieder und setzen die Gewinnzone dann wieder auf Jetzt verwenden wir auch Win Zone Down in unserer Check-Cell-ID. Also haben wir hier eine weitere Bedingung hinzugefügt. Also, wenn ID gleich drei ist und die Plattform falsch ist. Wenn wir also auf dem Wasser sind, befinden wir uns nicht auf einer Plattform und unsere Gewinnzone ist nicht wahr, oder man könnte sagen, dass Winzone gleich False ist. Das wäre eine andere Art zu schreiben. Dann können wir den Tod nennen. Also wenn wir nicht in der Windzone sind, wir sind nicht auf der Plattform und wir sind auf dem Wasser, dann töten wir unseren Frosch. Andernfalls sollte unser Windpfahl ausgelöst werden und wir können einfach reagieren, ohne unseren Spieler zu töten Ordnung. Der Windbereich ist dort sehr einfach, sehr einfach zu machen. Nun liegt es an Ihnen, ob Sie den Frosch hier die ganze Zeit aktiviert lassen . Wenn Sie möchten, könnten Sie reinkommen und einen Timer-Knoten hinzufügen. Sie könnten hierher kommen und einen Timer hinzufügen. Und dann stellen Sie das auf, ich weiß nicht, wir sagen 5 Sekunden. Dann können wir reinkommen, oder besser gesagt, wir können ihr Timeout-Signal mit unserem Windraum verbinden und das Timeout einschalten Wir stellen unser Sprite Two D für Voss sichtbar und gleich nachdem wir es auf Tro umgestellt haben, können wir die Damit wir den Timer kriegen können, cool start. Wenn wir das so machen würden, liegt das an dir. Hier wird 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 fangen an zu spawnen. Komm schon. Yo, also kann ich hier vorbeischauen und wir warten, bis wir rüber gehen. Also, wenn wir hier den Timer benutzen, unser Frosch, unser kleiner Hausfrosch wird unser Frosch, unser kleiner Hausfrosch, auftauchen, um zu gewinnen, und dann, nach ein paar Sekunden, dann wird er verschwinden , du kannst ihn da oben sehen und los geht's , er ist verschwunden. Also, wenn du willst, dass es so verschwindet , würdest du es so machen. Wir können den Timer einfach zu Ihrem Windbereich hinzufügen und ihn im Inspektor so einstellen, wie lang Sie ihn haben möchten. Starte den Timer, nachdem du das Sprite so eingestellt hast , dass es sichtbar ist Und wenn der Timer abgelaufen ist, stellen Sie ihn auf „Falsch“. In Ordnung. Also das reicht für unseren Windbereich, und wir müssen nur einen Blick auf unser Heads-up-Display oder HUD oder Qu Wee werfen und uns überlegen, wie wir ein Punktesystem erstellen In Ordnung. Also das war's, und wir sehen uns im nächsten Wir sind fast fertig damit uns selbst einen Frosch oder Klon zu erschaffen. 36. Speicherlecks beheben: Ordnung, Leute, heute werden wir keine Funktionen hinzufügen Wir werden tatsächlich ein entscheidendes Requisit reparieren , besonders in einem größeren Spiel Was wir jetzt haben, ist ein Speicherleck in unserem Spiel. Und das haben wir aus zwei Gründen. Ich meine, technisch gesehen eher um die zehn, aber schauen wir uns das mal an. Wenn wir weitermachen und das spielen, dieses Spiel spielen und ich werde es einfach hier rausholen. Es ist so, dass ich das für euch rüberschieben muss. Ihr könnt also sehen, wie alles aus dem Off auftaucht, und sie kommen, sie kommen, und schaut euch nur die Autos an, sie fahren den Plattformen oben, werden das Gleiche tun Sie werden weitermachen und sie werden für immer gehen Sie werden niemals aufhören. Und das wird als Speicherleck bezeichnet. Ordnung. Also werde ich es einfach da lassen, 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. Und wenn wir auf Remote klicken, schauen wir uns all diese Autos an, nur in einem Spawner , der immer noch existiert, obwohl wir wahrscheinlich die meisten davon nicht benötigen Und das Gleiche gilt für all die anderen Spawner. Und unsere Plattform-Spawner, unsere Plattform-Spawner sind nicht schlecht, weil sie eine viel langsamere Spanne haben als die Autos, aber sie werden ewig weitermachen und niemals verschwinden und Sie werden niemals aus der Erinnerung herausgeholt werden. Irgendwann wirst du also dieses winzige Spiel haben , das 128 Gigs 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 also das sehr wichtige Problem beheben, ich denke, wir nennen es einen Bug, und das ist für uns sehr einfach. Wir müssen nur eine If-Anweisung in diese beiden Skripte einfügen . Nun, die Zahlen, die Sie hier wählen, hängen natürlich von Ihrem Projekt ab. Aber nach dem, was ich getestet habe , und basierend auf unserer Fensteransicht habe ich eine Reihe von Zahlen , die ich hier verwenden werde. Und was wir tun werden , ist, dass ich mich gerade in meinem Plattformskript und in dem Prozess hier befinde. Ich werde nur überprüfen, ob die globale Position X hat Der Unterschied zwischen Position und globaler Position besteht darin, dass, wenn wir hier zum Beispiel auf unsere Plattformen gehen , das wird unsere lokale Position sein , oder? Also nur die Eigenschaft Position. Aber wenn wir in unserer Hauptszene über allem anderen stehen, wird das für unsere globale Position, die wir auf dem Bildschirm sehen , verantwortlich sein , unabhängig davon, wer der Elternteil ist. Wenn wir uns hier zum Beispiel unseren Gewinnbereich ansehen, können wir sehen, dass er sich hier auf unserem Hauptbildschirm bei 24 und 45 befindet. Und das wird eher ein globaler Raum sein, während wir, wenn wir hier reingehen, unseren Windraum sehen können, unsere lokale Position hier ist bei 00. Das sind also zwei verschiedene Zahlen. Hoffentlich macht das für Sie Sinn, warum wir hier die globale Position verwenden. Und natürlich wollen wir die X-Eigenschaft, weil sie unsere linke und rechte Seite kontrollieren wird. Wenn unser X also größer als 436 ist, das ungefähr 100 Pixel außerhalb des Bildschirms auf der rechten Seite Und je nachdem, wo sich unsere Sponsoren befinden, gibt das immer noch genug Spielraum, um darüber hinauszugehen Wenn also unser globaler Positionspunkt X größer als 436 ist oder unser globaler Positionspunkt X kleiner als minus 100 ist Wir bewegen uns also etwa 100 Pixel vom Bildschirm weg und bewegen uns nach links und rechts. Wenn also einer von beiden wahr ist, werden wir nur Self Dot Qu Free machen Also gut. Jetzt sollten wir also Charakterplattformen sehen, die sich gegenseitig deaktivieren oder sich gegenseitig aus unserem Speicher löschen Und das ist nur eine mögliche Lösung. Für so etwas, eine andere Lösung , und wenn Sie von Ihrem Spiel abhängig sind, wenn Sie zum Beispiel so etwas wie Bullet Hell machen, sollten Sie sich für etwas entscheiden Objekt-Pooling nennt, und wir können im Feature-Video über Objekt-Pooling sprechen, wenn Sie recht haben, also werde ich hier zu meinem Sponsor Punkt GD gehen, Meine Und lass uns sehen. Nach welchem suchen wir hier? Auf unserem Fahrzeug-Skript. Da haben wir's. Also nicht in unserer Zeitspanne mit einem Fahrzeug-Skript, und das Gleiche , abgesehen vom Prozess. Ich werde den gleichen Code einfügen. Wenn der globale Unterstrich-Positionspunkt X größer als 436 oder der globale Unterstrich-Position X kleiner als minus 100 ist, ist der Selbstpunkt q frei Und jetzt, wenn ich das durchführe und Ups, sind wir in der richtigen Szene, unserer Hauptszene hier Ich mache weiter und mache eine kurze Pause , gehe zu unserem abgelegenen Baum Und wir können uns hier unsere regulären Spaser ansehen, wo die Autos stehen werden Hier ist mein Spielfenster, um das herauszuholen Und wenn ich weitermache und das spielen lasse, richtig? Also wir haben hier ein paar Autos im Netz gesehen, und das können wir uns hier ansehen Und ich werde das Fenster einfach nach rechts erweitern. Mein Fehler da. Ich scheine mir stattdessen Goto geschnappt zu haben Geh. Und da hast du es. 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 also alle unsere Objekte verwaltet, und wir können zu einem bestimmten Zeitpunkt potenziell nur so viele oder so viele in unserer Szene haben . Und Sie können sehen, wie die Plattformen oben das Gleiche tun. Und die gleichen Dinge passieren auf der linken Seite, außerhalb des Bildschirms, was wir gerade nicht sehen können. Da sind wir also mit dieser einfachen, technisch gesehen zwei Codezeilen, wir haben unseren Speicher repariert, unser Gedächtnis oh, das geht mir gerade aus dem Kopf. Speicherleck. Es ist lustig, weil wir über Speicher sprechen. Aber da hast du's. Damit haben wir unser Problem mit dem Speicherleck behoben. Und ich werde Ihnen hier ein Problem zeigen. Nicht wirklich ein Problem, aber nur um Ihnen hier ein weiteres Beispiel zu zeigen . Wir gehen zur Plattform. Wenn wir Position anstelle der globalen Position verwenden, sehen Sie hier ein Beispiel. Wenn wir einen Blick darauf werfen, werden Sie sehen, besonders bei den Schildkröten, Sie werden sehen, wie die Schildkröten genau in diesem Gebiet hier verschwinden In Ordnung. Pass auf sie auf, sie kommen rein. Also, wenn wir diese lokale Position verwenden, haben wir's. Sie sehen, sie verschwinden viel zu früh. Sie kommen kaum auf den Bildschirm, und wenn sie sich kaum hier bewegen, sind sie weg Deshalb müssen wir die globale Position nutzen. Ordnung. Also, ich wollte dir das nur etwas anschaulicher zeigen. Kein Neuzeichnen. Kostenlos. Und sind einfach, wie gesagt, vollständig, zerstören das Objekt und nehmen es aus dem Speicher. In Ordnung, also los geht's. So können wir diese Erinnerung spät reparieren. Ordnung. Als Nächstes können wir Punktestand und dem HUD weitermachen, Spielerleben hinzufügen und all das 37. Punktesystem: A In Ordnung. Im heutigen Video werden wir also weitermachen und das Punktesystem hinzufügen, wie Sie hier sehen können Nach diesen Regeln erhalten wir zehn Punkte für jeden Schritt, 50 Punkte für jeden Frosch, der reinkommt , zehn Punkte für jeden Schritt, 50 Punkte für jeden Frosch, der reinkommt , und 1.000 Punkte für jedes Mal, wenn wir fünf Frösche Das müssen wir also beachten, wenn wir das tun. Und ich werde mit der Erstellung eines globalen Skripts beginnen, auch als Singleton oder Autoload-Skript bekannt ist Und dafür klicke ich einfach mit der rechten Maustaste in mein Dateisystem Und erstelle ein neues Skript, und ich nenne es mein Ich werde es einfach halten und global arbeiten. Und um das zu aktivieren, gehen wir in unsere Projekteinstellungen. Lass uns sehen. Haben wir das gerade aufgenommen? Haben wir nicht. Los geht's. Es mag ein bisschen groß sein, aber los geht's. Und wir gehen in den Tab Auto Load. Klicken Sie auf die Schaltfläche „Durchsuchen“ und klicken einfach auf Flops und wählen Sie unser globales Skript aus Ich erhalte standardmäßig den Namen global. Sie könnten ihn ändern, aber ich verstehe nicht, warum wir ihn hinzufügen müssen , und los geht's. Jetzt können wir dieses Skript überall in unserem Code verwenden. Und jetzt denke ich, dass wir dort unsere Punktzahl halten werden. Dort werden wir unseren Punktestand halten. Wenn wir das schließen, können wir jetzt unser globales Skript öffnen, indem wir darauf doppelklicken Um Ihnen hier ein Beispiel zu geben. Wir können hier runterkommen. Wir erstellen hier eine weitere Funktion namens Print SCORE. Ich habe hier oben eine Variable namens SCORE. Es ist eine Ganzzahl, sagen wir, du hast 50. Und der Sinn dieser Funktion ist nur , die Schule auszudrucken. Da es sich um ein globales System handelt, könnte ich hier in mein Spielerskript gehen und einfach den Namen schreiben, und einfach den Namen schreiben wir für das, was ich hinterlassen habe, hatten, der Global für den großen G-Punkt hieß, und dann könnten wir die Funktion verwenden , die wir gerade erstellt haben, print SCR Und wenn wir das dann ausführen, werden wir sehen, dass das Ergebnis hier in unserer Ausgabe ausgedruckt Ein globales Skript enthält also Variablen und Funktionen, die wir in unserem Spiel jederzeit in jedem Skript ändern und verwenden können . Also lass uns weitermachen und wir können all das Zeug entfernen und die Punktzahl standardmäßig auf Null setzen. Und wir werden weitermachen und eine Funktion namens Update Score haben . Alles, was wir hier tun werden, ist zu gehen , wo wir unsere Punktzahl ausdrucken werden. Und müssen wir es anzeigen, sollten wir es in diesem Video auf dem Bildschirm anzeigen? Jetzt speichern wir die Anzeige auf dem Bildschirm, wenn wir anfangen, das HUD abzudecken Also hier, wir werden einfach weitermachen und die Partitur ausdrucken In diesem Fall wird bei der Punkteaktualisierung der neue Betrag hinzugefügt. Dabei kann es sich um eine Ganzzahl handeln. Ein Plus entspricht einem neuen Betrag. Und das können wir. Nun, lassen Sie uns zuerst sicherstellen, dass das Zeug funktioniert Also jedes Mal, wenn wir hüpfen, bekommen wir zehn Punkte, richtig? Also müssen wir das in unsere Bewegung in all unseren Stücken hinzufügen . Also werden wir global gehen und den Punktestand aktualisieren? Weil wir es noch nicht gespeichert haben. Yo. Aktualisiere deinen Punktestand und gib zehn Punkte ein. 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, dass ständig zehn Punkte hinzugefügt werden. Da haben wir's. Zehn, 30, 40, 50, 60 , 70, 80, 90, 100 , eins, zehn usw., also das funktioniert Wir alle unsere Knöpfe, fantastisch. Wir können einfach so unsere Punkte sammeln. Die Punkte hier sind also großartig. Ich habe einfach weitergemacht und die anderen Druckfehler entfernt die anderen Druckfehler , nur um das irgendwie zu klären, es dir ein bisschen einfacher zu machen. wir also da reinrennen und herumrennen, können Sie an unserer Ausgabe sehen, dass unsere Zahl jedes Mal steigt, wenn wir umziehen. Da haben wir es also. Es funktioniert. Fantastisch. Jetzt müssen wir auch Auge behalten, wie viele Frösche wir insgesamt bekommen, wenn wir im Auge behalten, wie viele Frösche wir insgesamt bekommen, wenn wir totale Frösche haben , klingt das nicht nach der Menge, die wir wollen , bla, bla. Wir nennen es Frösche in Ähm, ich weiß nicht. Nennen wir es den Multifrosch. Multifrosch. Beginnt bei Null. Jedes Mal, wenn du dem Multi-Frosch etwas hinzufügst, oder? Wir machen Multi-Frosch plus gleich Eins. Ich erinnere mich, dass wir mit jeder Fünferkombination 1.000 Punkte bekommen Also hier gehen wir hin, mehrere Frosch, weniger als fünf, dann tippe ich einfach auf diese Zeile hier. Dann machen wir einfach Punkteplus gleich neuer Summe. Andernfalls entspricht ein Plus von 1.000 Punkten. Wir bekommen 100, wenn wir fünf Nebel drin haben. Das geht nur wenn wir in einen Punktebereich kommen, also können wir unseren Pi Frog dort nicht wirklich erhöhen Dafür müssen wir also in unseren WindSpace gehen und unseren eigenen Körper betreten, und hier werden wir diese Zahl erhöhen Also machen wir, dass Global MultifrogPlus gleich eins ist. Ich werde es einfach direkt in unserem WindSpace aufkleben und dann nennen wir unser Update auch so Global Dot Update Score, und wir werden 50 bestehen, weil wir einen Frosch drin unserem WindSpace aufkleben und dann nennen wir unser Update auch so Global Dot Update Score, und wir werden 50 bestehen, weil wir einen Frosch Und da wir unseren Multi-Frog schon einmal erhöht haben, aktualisieren wir unseren Punktestand, richtig? Also aktualisieren wir unseren Multi-Frog um eins, dann werden wir das überprüfen. Im Grunde genommen, wenn das unser fünfter Frosch ist oder wenn 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 es zurückgesetzt werden muss. Also schauen wir mal, ob das funktioniert. Ordnung. Wir sind den ganzen Weg hier oben. Wir machen weiter und gehen in die Zone. Lustig. Hey, wir sind im Logbuch. Jetzt warten wir darauf, dass diese Schildkröten vorbeikommen. Gut gemacht, kleine Schildkröte. Die Schildkröte. Der Frosch und die Schildkröte. Wir werden also 290 haben. Also sollten wir hier weitermachen. Also, wenn wir in Zone gehen, sollten wir auf 340 hochspringen. Und oh, da sind wir auf 350 gestiegen, weil wir gleichzeitig umgezogen sind. Daran muss ich mich erinnern. Ähm, wir haben unsere zehn Punkte. Funktioniert dieser Frosch so? Es ist tatsächlich lange her, dass ich gespielt habe, 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 also jetzt weitermachen und das einsteigen würden, würde das nach einem Drehmoment von plus 50 aussehen. Wie ich schon sagte, ich bin mir nicht sicher , ob der tatsächliche Sprung im eigentlichen Spiel zählt oder nicht. 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 das effektiv zählt oder nicht . Oh, mein Frosch ist gestorben. Traurig. Oh, habe ich wohl, Rod Froggy los geht's. Scheint ein kleines Problem bekommen zu haben, als ich an eine seltsame Stelle gesprungen bin. Da haben wir's. Und jetzt geht es meinem kleinen Fracki gut Und jetzt sind wir bei 5:50 Uhr, also beim nächsten Sprung sind wir bei 600. Also da hast du's. Es liegt an dir, ob du hier 40 oder 50 machen willst, was im Grunde ob du das als deine Hauptsache oder die Zehn als deine Hauptsache zählen willst oder nicht . Und ich erinnere mich nur daran, dass wir wahrscheinlich fünf Frösche reinbringen sollten , um das tatsächlich zu testen Also könnte ich weitermachen und einfach schnell weitermachen. Für diesen Teil gibt es hier ein Video , damit wir fünf reinkriegen können. Mir geht es gut. Ich habe es durchgemacht. Ich habe meinen Loop mehrmals mit fünf Fröschen gemacht und weitergemacht, wir haben 4.800 Punkte bekommen Fantastisch. Scheint einwandfrei zu funktionieren. Ein Punktesystem funktioniert. Wir haben unsere plus 40 oder plus 50, je nachdem, wie Sie Ihre eingerichtet haben, je nachdem, ob Sie die zusätzlichen Schritte als Teil Ihrer 50 zählen die zusätzlichen Schritte als Teil oder ob Sie zusätzlich 50 weitere Schritte machen möchten . Wir haben hier unsere zehn Punkte pro Schritt und jedes Mal, wenn wir fünf Multifrösche haben, unsere plus 1.000 wenn wir fünf Multifrösche haben, Jedes Mal retten wir fünf dieser Froschgase. Ordnung. Also haben wir unseren Punktestand festgelegt. Und ich denke, als Nächstes können wir uns einfach ansehen, wie das angezeigt wird, und anfangen, unser Display hochzuziehen oder Hud oder Gooey alles einzurichten 38. Spiel HUD-Score: Ordnung. Lass uns weitermachen und anfangen, das Spiel Hud für unser Naja, Spiel zu entwickeln das Spiel Hud für unser Naja, Heute werden wir weitermachen und den Punktestand einfach hier auf unserem Bildschirm anzeigen Und dafür bin ich einfach zu MNTD gegangen und habe eine Canvas-Ebene hinzugefügt Wenn ich hier reinkommen könnte, ist die Canvas-Ebene das wonach wir suchen, nicht nach Canvas Grow Und die Canvas-Ebene wird im Grunde alles sein, was in 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 also zum Beispiel Dark Souls spielst, befinden sich deine vier Quadranten unten links, wenn du zum Beispiel Sky Rim spielst, deine drei Lebenspunkte und Matabar Wallaby unten und so Und für uns, nur um den Punktestand hier auf meiner Canvas-Ebene zu machen, die ich in Gooey GY umbenannt habe Steht für grafische Benutzeroberfläche. Ich habe weitergemacht und zwei Labels hinzugefügt, zwei ganz normale Labels hier. Und ich habe es Score-Label genannt, das nur das Wort Punktzahl enthält, und Punkte-Text, das nur fünf Nullen enthält Nun, die Texte von beiden waren zu umfangreich für dieses Projekt Also ging ich bei beiden in den Inspektor runter zur Größe von Themovides Mont, und meine Punktzahl war auf Größe zehn, und die Partiturbeschriftung ist auf Größe 12. Jetzt fällt Ihnen vielleicht auf , dass ich unten einen zusätzlichen schwarzen Balken habe unten einen zusätzlichen schwarzen Balken Ich ging in die Projekteinstellungen und in das Anzeigefenster. Ich habe meine Viewport-Höhe auf 240-256 aktualisiert. Da hast du's. Da kannst du es sehen. Also habe ich zusätzliche 16 Pixel hinzugefügt, sodass ich das Schwarz am unteren Rand hinzufügen könnte, 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 und du nicht mehr herausfinden kannst, wo du den Text dafür ändern kannst, nur dein Label auswählen und im Inspektor oben drin sein. Sie werden dort den Abschnitt für Text sehen. Geben Sie einfach die Punktzahl für eins ein und geben Sie fünf Nullen ein. Für den anderen Das gibt uns eine gute Vorstellung davon , wie viel Platz wir benötigen werden. Ordnung, damit das jetzt funktioniert, müssen wir nur noch eine Zeile zu unserem globalen Skript hinzufügen . Und außerhalb unseres Ich und unseres Blocks. Abgesehen von diesen beiden, unabhängig davon, wie viele Punkte wir hinzufügen, müssen wir unsere Punkte-Textbeschriftung bekommen und den Text anbringen, damit unsere Schule tatsächlich angezeigt wird. Da wir also von unserem globalen Skript kommen, können Sie sehen, dass Global da ist, wenn ich das für einen Moment ausführe und es dann einfach pausiere auf Remote umstelle und auf Remote umstelle. Es hat auf nichts Zugriff. Also müssen wir tatsächlich einmal den Baum hochgehen, um Wurzeln zu finden, und dann runter zu unserem D und dann runter zu unserem Dewey Und von dort aus können wir unseren Punkte-Text abrufen. Da wir also hoch und dann runter gehen müssen, können wir weitermachen und einfach Get Node verwenden. Und denken Sie daran, dass dafür eine Zeichenfolge als Argument verwendet wird. Und wie Sie sehen können, könnten wir in diesem Fall einfach den gesamten Pfad schreiben, ShrootGlobal, Slash Root, Slash-Node 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 nach oben zu gehen, und dann kommen wir runter zu unserem Knoten zwei D. Und von dort aus ist es immer noch schneller, wenn wir nur zwei Punkte machen, nur um eins nach oben zu gehen, und dann kommen wir runter zu unserem Knoten zwei D. Und von dort aus greifen wir auf unser GY zu. Von dort erhalten wir unseren Punktetext. Und falls du dich fragst, wir folgen einfach dieser weißen Linie nach unten. Von unserer globalen Seite aus, wo wir diesen Code schreiben, haben wir unsere zwei Punkte, was dasselbe ist wie schreiben, Get Parent, also gehen wir eins bis zur Wurzel hoch. Und dann folgen wir einfach jeder Haltestelle wie dieser weißen Linie Wir sehen, dass diese weiße Linie herunterkommt und dann geht sie rein, zeigt auf kein zweites D. Das haben wir dort geschrieben Dann folgen wir der Linie wieder nach unten, halten an und zeigen auf den GY. Wir schreiben das für den nächsten Stopp, dann kommen wir runter und zeigen schließlich in unseren quadratischen Text und wir beenden ihn dort. Wenn Sie also Zweifel haben, klicken Sie einfach auf den Knoten, nach dem Sie suchen, und folgen Sie einfach dieser weißen Linie, um Ihren Weg zu finden. In Ordnung. Also bei diesem Punkte-Text, richtig, diesem Objekt vom Typ Label, greifen wir auf dessen Texteigenschaft zu und lassen Sie mich das Spiel einfach von Ihrem Bildschirm entfernen. Ich habe einfach rübergeschaut und gesehen, dass es bedeckt war. Auch hier verwenden wir zwei Punkte, genau wie Get Parent, das uns hoch zum Not the Sorry bis zum Wurzelknoten bringt , und wir folgen einfach dieser weißen Linie, die nach unten kommt, auf Knoten zwei D zeigt, runter zeigt, zeigt auf Guy, dann kommt runter und zeigt auf quadratischen Text, und wir folgen diesem Pfad hier einfach den ganzen Weg nach unten. Und 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 Und wie Sie sehen, können wir in dieser Hinsicht nicht wirklich viel an der Punktzahl Wir werden es also tatsächlich in eine Zeichenfolge mit STR und dann zwei Klammern umwandeln , , und wir können unsere Punktzahl darin schreiben Und diese Punktzahl wird jetzt wie eine Zeichenfolge statt wie eine Ganzzahl behandelt Jetzt können wir Punkt, Block machen und wir können es mit Nullen auffüllen wir die Zahl fünf eingeben, haben wir fünf Ziffern, wie wir hier sehen, eins, zwei, drei, vier, fünf Also werden wir diese 50 Steckplätze haben. Und unser Punktestand wird sich ändern, aber auch wenn dort nur zehn stehen, werden uns trotzdem alle fünf dieser Plätze zur Verfügung stehen. Optisch wird es also genauso aussehen wie einer Spielhalle und in einem typischen Punktesystem. Wenn wir also weitermachen und das jetzt spielen, können wir unseren Punktestand dort oben sehen. Und wenn wir herumhüpfen, sollten wir sehen, dass unser Punktestand entsprechend steigt. Das sind eine Menge Autos da oben. Oh. Da haben wir's. Lass uns das lange verfolgen. Los geht's. Gehen wir und holen 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 Aber äh, in Ordnung, unser Punktesystem scheint also einwandfrei zu funktionieren Es wird korrekt angezeigt. Es ist fantastisch. Ordnung. Also das Letzte, was wir in diesem Moment tun müssen, ist in diesem Video nichts, aber im nächsten Video werden wir weitermachen und unser Leben so einrichten, werden wir weitermachen und unser Leben so einrichten dass wir, wenn wir sterben, ein Leben verlieren, und es wird sich visuell auf dem Bildschirm widerspiegeln , indem wir zeigen, wie viele Leben wir tatsächlich noch haben. 39. Spiel HUD-Lives: In Ordnung, lassen Sie uns weitermachen und unser Leben hinzufügen. Nun, unser Leben wird hier höchstens sechs Leben haben. Und wir werden zu unserer Goey-Leinwandebene übergehen. Wir werden einen neuen Knoten hinzufügen. Und ich weiß, dass das nicht sichtbar ist, nur 2 Sekunden, da haben wir's. Und wir werden nach dem Wort Textur suchen. Wir suchen nach dem Textur-Fortschrittsbalken. In Ordnung, ich werde meinen in die Lives-Leiste umbenennen. Ich werde zum Texturbereich im Inspektor wechseln Texturbereich im Inspektor Und für den Fortschritt werde ich das Healthbr-Punkt-PNG in diesen Slot verschieben Healthbr-Punkt-PNG in diesen Slot Stellen Sie den Maximalwert im Inspektor erneut auf sechs ein Ich werde meinen aktuellen Wert auf sechs setzen, und jetzt sollten Sie sie sehen. Ich nehme diesen kleinen orangefarbenen Griff und ziehe ihn hoch, damit er nur den Platz einnimmt, den wir brauchen, und ich werde ihn direkt nach unten in diesen leeren schwarzen Bereich bringen . Yo. Und die werden wie unser Leben funktionieren. Sie werden also sehen, dass, wenn wir die Werte 6-5 anpassen, alles gleichmäßig verteilt ist, sodass wir leicht feststellen können, wie viele Leben uns noch Die Sechs wird natürlich unser Standard sein, und das müssen wir jedes Mal anpassen, wenn wir Also in meiner globalen Version wäre Game Manager vielleicht sinnvoller für einen Namen, aber vorerst lassen wir das einfach hinter uns wäre Game Manager vielleicht sinnvoller für einen Namen, aber vorerst lassen wir das einfach hinter Wir werden standardmäßig zu Livest 6 wechseln. Ich werde eine weitere Funktion erstellen, Lives umsonst aktualisieren Und wir werden dem traurigen Weg folgen. Nur statt eines Scortex bekommen wir Lives Leiste und greifen hier auf die Werteigenschaft zu , die wir im Inspektor sehen können Und wir werden sagen, plus ist gleich Betrag. Ein Betrag wird ein Parameter sein, den wir weitergeben, was ein Ende sein wird, oder? Wenn wir also ein Leben verlieren, addieren wir eine negative Zahl dazu, wodurch es auf fünf sinkt. Und 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, dasselbe plus gleich viel Und jetzt können wir zu unserem Spieler gehen. Wir können nach unserem Tod suchen. Da ist es. Über den Tod. Wir müssen auch auf unser globales Skript zugreifen, Lives aktualisieren und einen negativen Wert eingeben, und das sollte reichen. Sehr einfach, kleine Sache, die erledigt werden muss. Und jetzt, wenn wir auf der Leinwand sterben, sollten wir ein Leben verlieren, und wir sollten sehen, wie unser Lebenskrieg auf fünf sinkt. Und ich muss das hochziehen, weil ihr da den Boden nicht sehen könnt. Da hast du's. Da schauen wir mal, ob wir auf fünf runtergehen. Da haben wir's. Wir spritzen. Ich bin auf den hinteren Teil des Autos gestoßen. Ich habe es mir angesehen und du sammelst nur Punkte, wenn du auf Frogger weiterkommst, und wir verlieren Leben, wenn wir ins Wasser gehen Also können wir das auch aktualisieren , wenn Sie es wünschen. Wenn Sie möchten, dass es etwas genauer ist. Wir werden den Punktestand nur aktualisieren, wenn wir nach oben drücken. Links und rechts unten bekommen wir keine Stecknadeln. Das einzige Drücken nach vorne, was Sinn macht , denn das viele Punkte, die man sehr schnell erreichen kann. Dom, d d, d m. Wo sind meine Logs? Wo sind sie? Da sind sie. Gehen. Jetzt reiten wir sie mit den Schildkröten Doi, verdammt, verdammt. Spring auf die Schildkröte. Ich wollte den Baumstamm holen, aber ich hatte das Gefühl, dass ich ihn verpassen würde, also bin ich geblieben und bin hier auf den Baumstamm gesprungen. Dann springen wir nicht auf die Schildkröten und wir schaffen es auf diesem Baumstamm frei nach Hause Wir sind gut. Geht gut. Fantastisch. Da haben wir's. Und wieder können wir Live-Wärme verlieren. Cool. Unser Live-System funktioniert also. Es wird visuell auf dem Bildschirm aktualisiert, und wir haben die Möglichkeit, unser Leben in Zukunft zu erweitern . In Ordnung. Also ich schätze, das reicht für diesen Abschnitt, es sei denn, du willst Live hinzufügen, wenn wir zur Schule gehen. Willst du das machen? In Ordnung. Also, 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 eine Variable namens Multiplikator erstellen. Und innerhalb unseres Update-Scores werden wir einen neuen Ich überprüfe hier durchführen Also sagen wir, ich habe Punkte geteilt durch Punkte geteilt durch, wir können sagen 10.000, willst du? Mal, dass unser Multiplikator größer oder gleich eins ist. Dann werden wir hier unser Leben bereichern. Also müssten wir Leben machen. Und normalerweise würden wir sagen, dass Plus gleich eins ist, aber da wir es bei sechs antippen wollen aber da wir es bei sechs antippen wollen , sagen wir eigentlich Leben gleich und verwenden eine Funktion namens Clamp Nun, Clamp ermöglicht es Ihnen, ich habe hier drei Argumente. Das erste Argument würden Sie hinzufügen. Anstatt dass Plus gleich eins ist, wird unser erstes Argument hier eins sein Und dann das nächste Argument, es wird das Minimum und das Maximum sein , das dieser Wert sein kann Das Minimum könnte also Null sein, sodass unser Leben hier niemals unter Null fallen wird. Und die maximale Zahl , die wir haben können, ist sechs, also wird es nie eine höhere Zahl als sechs sein. Und so funktioniert Klemmen. Hier können wir Update Lives mit einem nennen, oder? Also werden wir noch eine weitere haben , die wir noch hinzufügen können. Ähm, weißt du was? Wir können unsere Klammer innerhalb unserer Update-Lebensdauer einfach hier unten bewegen Klammer innerhalb unserer Update-Lebensdauer einfach hier unten und eine durch Menge ersetzen. Und dann können wir wahrscheinlich damit durchkommen , nichts drin zu haben, es dort nicht einzurichten, sondern es einfach dort festzuklemmen. Also das Update lebt eins. Und dann werden wir unseren Multiplikator erhöhen wollen , plus ist 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 ständig ein Leben dazugewinnen werden, weil unser Punktestand immer teilbar sein wird . Sobald wir ein Leben gewinnen, werden wir es jedes Mal, wenn wir uns bewegen, gewinnen wir es weiter Also wollen wir das ändern wenn wir alle 10.000 Punkte ein Leben bekommen, dann bekommen wir 10.000 mal eins ist immer noch 10.000 Und beim nächsten Mal wird es 10.000 mal zwei sein. Also brauchen wir 20.000 Punkte , um ein neues Leben zu bekommen, und dann sind es 30.000, 40 usw. Also, wenn wir das jetzt mit genau dem machen würden, könnten wir sehen, ob wir reinlaufen und ein Leben verlieren, vielleicht sogar zwei verlieren Und jetzt müssen wir uns auf den Weg nach oben machen, den ganzen Verkehr durchqueren. Geht, macht euch auf den Weg zu diesem Baumstamm. Dann können wir auf den Schildkröten reiten, wieder Schildkrötenholz, und dann zu den Schildkröten übergehen Warten Sie, bis der Baumstamm hier oben ist, und wenn unsere Punktzahl hoch genug wäre, hätten wir 10.000 W bekommen . Ich habe es nicht geändert. Habe ich jetzt darüber nachgedacht? Also das ist ein bisschen enttäuschend. Aber wir können das ganz schnell überprüfen, indem wir einfach zu unserem Windraum gehen und sagen: Hey, wir haben 20.000 gewonnen Nun, wenn wir das überprüfen würden , um pro 10.000 Punkte zu sammeln , würden diese 20 nichts bewirken. Ich sollte uns nur das eine Leben geben. Welches ist in Ordnung? Weil du sowieso nie 20.001 bekommen solltest. Das Maximum, das du auf einmal bekommen solltest, sind 10.000. Was siehst du, wenn wir gehen? Bum, bum. Wir sind fast da. Wir sollten sehen, dass unser Leben am niedrigsten ist, plus eins. Und da haben wir es. Unser Leben hat also zugenommen. Also gut, unser Leben funktioniert jetzt. Also werde ich weitermachen und das wieder auf 40 Punkte reduzieren Und wir wollen sichergehen, dass wir das Spiel beenden können. Aber ich glaube, das wird in unserem globalen Hier, Update Lives, sein. Und wir werden weitermachen und schauen, ob uns das eine negative Eins ermöglicht, eine Chance? Nein, das wird es nicht. Das ist perfekt. Darüber müssen wir uns keine Sorgen machen. Und wir können sagen, dass ich weniger lebe, als wir es tatsächlich müssten, wir sind schon dabei, es hier einzurichten. Also schauen wir vorher nach. Also sagen wir, ich lebe ist kleiner als Null, eigentlich schon Null. Nehmen wir an, wir haben null Leben übrig und dann sterben wir. Wir bestehen eine weitere negative Zahl. Wir sagen, wenn unsere Leben schon Null sind, dann würden wir Spiel sagen, aber wir laden die Szene einfach in ein brandneues Spiel um in ein brandneues Spiel Wenn unser Leben nicht schon Null ist, dann werden wir hier runter kommen und unser Leben abziehen Und dafür verwenden wir einfach Drei holen, aktuelle Szene neu laden, und das ist genauso, als ob wir die Szene gerade so gestartet hätten Wenn wir also schreiben Unser Leben wird nicht zurückgesetzt Wahrscheinlich, weil sie auf Global nicht zurückgesetzt werden. Lass es uns herausfinden. Schauen wir uns das Ready an und schauen wir uns an, wie wir das debuggen , ich sage Print Lebt. Und wir werden sehen, ob das zurückgesetzt Wir werden breit gequetscht. Wir werden uns nie wirklich wieder fertig machen. Es wird ständig von selbst zurückgesetzt, oder? Also, anstatt es fertig zu haben, drucken wir es hier unten aus. Versuchen Sie herauszufinden, warum wir ständig fertig sind? Antwort: Es wird nach zwei zurückgesetzt. Wie laufen wir 6-0? Ordnung. Ich bin mir nicht sicher warum, aber die Klammer scheint für diesen Bruch verantwortlich zu sein, was interessant ist, weil ich keinen wirklichen Grund dafür habe, dass es ein Sprung von sechs Leben auf Null hätte sein sollen auf Null Aber das ist in Ordnung. Ich habe es gerade wieder auf Leben plus ist gleich Betrag geändert wieder auf Leben plus ist gleich Betrag Und jetzt, wenn wir das Spiel starten, schauen wir, ob wir ein Leben nach dem anderen durchspielen oder wieder verlieren können ein Leben nach dem anderen durchspielen oder wieder verlieren Und wenn wir runter sind, haben wir nur noch drei Leben, zwei, eins. Oops, O. Jetzt geht's los. Und ins Wasser. Nun, wir sind nicht mehr live. Also, wenn wir das nächste Mal getroffen werden , ist das Spiel vorbei und unser Spiel wird zurückgesetzt. Und los geht's. Wir haben einen Reset unseres Spiels, auf den wir schnell gestoßen sind, und wir können wieder Leben verlieren. Aber da hast du's. Wir haben diesen Reset. Wir verlieren jetzt Leben und werden entsprechend auf dem Bildschirm angezeigt , wenn unsere Lebenspunkte zu niedrig sind Wir setzen das Spiel komplett zurück und beginnen von vorne und gewinnen jedes Mal Leben, wenn wir 10.000 Münzen erhalten. 40. Timer und Bonus: In Ordnung, lassen Sie uns jetzt unseren Timer einschalten. Also auf unserer Benutzeroberfläche habe ich hier unten ein weiteres Label mit dem Wort Zeit hinzugefügt , wobei die Schriftgröße auf 12 gesetzt ist. Ich habe dann eine Textur-Prods-Leiste, genau wie wir es mit unserem Leben hier gemacht haben Ich habe den Filmmodus so geändert, dass rechts nach links statt von links nach rechts Ich werde es auch hier in die Timer-Leiste umbenennen. Mein Maximalwert ist 30, mein aktueller Wert ist 30. Alles andere ist gleich geblieben. Ich habe Nine Patch Stretch angemacht, damit ich diesen Riegel so ausdehnen kann, dass er jede Form und Länge hat, die ich will. Ich verwende nur das Timer-PNG-Format, das ich hier habe. Ich ziehe es einfach als Fortschrittsbalken oder Fortschrittstextur hinein. Und da hast du es. 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 auf meinem Guy und dem Timeout-Signal hier, das damit verbunden ist. Das ist es also, was wir uns hier ansehen. Und was wir jedes Mal tun müssen, wenn dieser Timer standardmäßig abläuft, ist der Timer standardmäßig auf 1 Sekunde eingestellt, was in Ordnung ist. Das ist es, was wir wollen. Was wir tun wollen, wenn wir unsere Timer-Leiste erhalten wollen und wir einen vom Wert subtrahieren müssen Also können wir einfach weitermachen und es uns hier mit unserem Dollarzeichen holen. Verstehst du es? Da das von Mark Bouie kommt, ist Wert minus gleich eins. Und wenn wir uns das jetzt ansehen und das ablaufen lassen würden , müssten wir jetzt sehen, wie unser Timer , was wunderbar Das ist genau das, was wir wollen. Und jetzt müssen wir das überprüfen. Wir müssen überprüfen, ob unser Timer, unser Timer-Balkenwert, Null erreicht hat und wenn ja, muss unser kleiner Frosch leider sterben So ist es halt, wenn unser Timer abläuft. Also lass uns weitermachen und unseren kleinen Froggy Get Node holen. Und denk dran, wir sind hier auf unserem IE, also müssen wir eins für unser D hochfahren und dann wieder runter kommen Also Punkt, Punkt, Schrägstrich, und wir werden einfach unsere Todesfunktion einschalten Ups, und das sollten zwei gleich sein , weil es ein Vergleich ist Ja. Also wenn wir es jetzt laufen lassen würden, wenn unser Timer abgelaufen ist, unser kleiner Frosch, also einfach platzen gehen und wir verlieren ein Leben auf unserer Hütte Weißt du, gib dem eine Minute , bis der Timer läuft. Nun, da du diese Zeit hast, bist du in 30 Sekunden hier. Ich sehe, dass meine Plattformen oben etwas schneller sein müssen oder zumindest eine etwas geringere Verzögerung haben müssen. Aber ich denke, Geschwindigkeit könnte die bessere Option sein, als die Verzögerung zu ändern. Aber da haben wir's. Mein kleiner Frosch ist gestorben und er stirbt weiter. Das ist nicht toll Das müssen wir jetzt tatsächlich zurücksetzen. Sobald es Null erreicht und unser Frosch stirbt, setzen wir unsere Timer-Leiste Lassen Sie uns also die Timer-Leiste holen und ihren Wert wieder auf 30 setzen , damit wir eine brandneue Leiste ausfüllen können Nun, dies ist nicht das einzige Mal , dass es zurückgesetzt werden muss. Es muss ebenfalls zurückgesetzt werden, wenn wir das Ziel erreicht haben. Also machen wir weiter und holen uns den Knoten, gehen einen hoch, holen unseren Guy und dann holen wir uns unsere Timer-Leiste und setzen den Wert wieder auf 30. In Ordnung. Also, bevor ich das teste, werde ich hier auf meine Plattform gehen und das auf 32 ändern und die Geschwindigkeit verdoppeln. Und das bedeutet, dass ich zu meinem Player gehen und das anpassen muss. Nun, da oben. Jetzt sind wir genau hier, 32. Geh. Jetzt sollten sie zumindest schneller gehen, und ich hoffe, dass ich weitermachen kann, ohne etwas zu verpassen. Okay, da sind die Schildkröten. Wir brauchen ein paar Logs Danke. Loggen. Ich weiß nicht, ob ich es schaffen werde. Ich werde es nicht schaffen. Ich werde meinen Frosch verlieren. Auf Wiedersehen, Frosch. Ich kannte dich kaum. Ich sehe, das wird ein bisschen schwierig. Oh, wird unsere Zeit zurückgesetzt oder nicht , wenn wir plattern? Tut sie nicht Also müssen wir das auch einstellen. Also was mit unserem Player? Wo sterben wir? Da ist unser Tod und wir tauchen wieder auf. Ja. Okay. Und ja, lassen Sie uns das hier näher erläutern. Also, wir gehen wieder nach oben und dann wieder runter zu unserer Timer-Leiste und setzen den Wert wieder auf 30. Auf diese Weise wird das zurückgesetzt, wenn wir sterben. Und ich schätze, ich werde den Respawn ändern oder quaken, den Sponsor-Wert, Platformspanner und ich werde die Plus Sechs entfernen, mal sehen, wie das jetzt aussieht, da Platformspanner und ich werde die Plus Sechs entfernen, mal sehen, wie das jetzt aussieht, da wir komplett neue Zahlen haben. Okay. Das leckt gut Das könnten wir jetzt vielleicht tatsächlich schaffen. Da haben wir's. Wir haben es mit unserem Timer-Reset geschafft, und wenn wir sterben, werden auch unsere Timer zurückgesetzt Fantastisch. Und ich sehe, dass ich da noch ein bisschen Auftrieb brauche, mein Minimum. Also werde ich 3 Sekunden machen, nur weil ich ziemlich viele Überschneidungen gesehen habe, als ich da durchgelaufen bin. Aber wir haben gesehen, dass der Timer jetzt einwandfrei funktioniert. Ich weiß, dass Sie das tun, oder zumindest sollten Sie einen Bonus erhalten , was die Punkte angeht , je nachdem, wie viel Zeit noch übrig ist, wenn Sie ein Tor erzielen. Also werden wir weitermachen und das umsetzen. Außerdem muss ich mich einfach mit dem Multiplikator reaktivieren mich einfach mit dem Multiplikator Ich weiß, es ist ein Vielfaches der Zeit, die noch übrig ist Also gib mir einfach eine Sekunde. Also gut. Es ist das Zehnfache der verbleibenden Zeit. Also lass uns sehen. Wenn wir in unseren Windbereich kommen, bevor wir ihn zurücksetzen , müssen wir den Punktestand hier erneut aktualisieren weil wir 40 hinzufügen werden, aber dann werden wir auch alles hinzufügen, was hier noch übrig ist. Wir werden sagen, weißt du was? Lassen Sie uns das hier in eine eigene Variable setzen. Wir nennen es Bonus, nicht Zehner-Bonus , sondern Bonus. Natürlich ein Hinweis. Ich möchte es auf diesen Wert mal zehn setzen, bevor wir es zurücksetzen. Nun zu unserem zweiten Update hier, wir haben Zeit ja. Ordnung. Also jetzt sollten wir unseren Zeitbonus da drin haben. Also je schneller wir da drüben können, desto größer ist der Bonus, den wir bekommen, bis zu einem Maximum plus 300 Punkte Hypothetisch, ich meine, du wirst es nicht in 300 oder 30 Sekunden schaffen , weil es bei 30 anfängt Oh, vielleicht komme ich da gar nicht hin. Ich könnte in der Nähe sein. Ah, ich hab's. Aber Sie können sehen, dass ich dafür 190 Punkte bekommen habe. Ordnung. Also los geht'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, und wir schaffen es bis zum Ende. In Ordnung, das ist es also. Ich denke, das könnte es sein oder Frogger. Ich glaube nicht, dass ich hier etwas vergesse. Und falls das das Ende von Frogger 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, die Globals, die Arbeit mit vielen verschiedenen Skripten Aber wir haben dieses alte Spiel aus den 80ern komplett neu erstellt dieses alte Spiel aus Und das Tolle an diesen alten Spielen dass sie ein ziemlich einfaches Konzept Aber vor allem, wenn Sie mit dem Programmieren noch nicht vertraut sind, können Sie von diesen Spielen viel lernen. Ordnung. Pass auf dich auf Habt einen guten Tag und wir sehen uns nächste Woche. Worauf gehen wir ein? Ist jetzt Woche vier? Oh, Junge, Woche vier wird lustig. Wir haben eine Menge Dinge, über die wir reden können. 41. Frogger-Audio: Ordnung, wir werden weitermachen und das Audio für uns hinzufügen Also das wird unser Hüpfen zählen, wenn wir uns bewegen, die Hintergrundmusik und die Geräusche von Arc Death In Ordnung. Für unsere Hintergrundmusik können wir hier einfach in unsere Hauptszene gehen und unseren Root-Node auswählen, der unser erstes D ist. Fahren fort und drücken Sie das Plus oder fügen Sie einen neuen Node Und was wir hinzufügen werden , ist dieser Audio-Screen-Player hier. Und dann gehen wir in unseren Sound-Ordner, holen uns die Datei music.p3 und ziehen sie einfach Stellen Sie sicher, dass Sie Autoplay einschalten. Auf diese Weise müssen wir kein Skript verschwenden und keinen Code schreiben, um zu spielen. Und es fängt einfach von selbst an Nun, Warnung, das könnte beim Starten etwas laut sein. Wenn Sie hier also den Ton nur für die Musik einstellen möchten , können Sie hier die Lautstärke DB ändern. Je niedriger Sie es stellen, 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 den kleinen Audio-Tab klicken , und hier ist Ihr gesamter Audio-Bus. Jetzt haben wir hier den Master Wenn Sie zuvor Audioeinstellungen und Spiele geändert haben, stellen Sie fest, dass Sie den Master-Schieberegler haben. Das ist es hier, und wir können die Lautstärke so ändern , wie wir möchten. Wenn Sie einen anderen Audio-Bus hinzufügen möchten, sodass Sie Ihre Soundeffekte von der Musik getrennt anpassen können , können wir hier einfach auf Bus hinzufügen klicken und das Ganze in Musik umbenennen. Und jetzt, wo unser Audio-Stream-Player ausgewählt ist, werden Sie im Busbereich hier auf Ihrem Inspektor feststellen, wir jetzt ein Musikstück aus dem Drop-down-Menü haben, und jetzt wird diese Musik zuerst durch dieses Audiostück übertragen und dann, wie Sie es erwarten würden, an den Master ausgegeben . In Ordnung, es liegt also an Ihnen, was Sie tun möchten. 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, es scheint also 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. Und jetzt wird der Rest unseres Sounds tatsächlich auf unserem Player sein , unser Player hat den Tod. Unser Spieler hat das Springen. Unser Spieler hat den anderen Soundeffekt, den anderen Tod, richtig? Der Plunk, der Squish und der Hot. Also gehen wir zu unserer Spielerszene über. Wir werden auch einen Audio-Stream-Player für sie hinzufügen . Und wir werden im Inspektor nichts anderes anfassen , es sei denn, Sie möchten einen Audiobus für Soundeffekte hinzufügen und dann den Bus dort speziell ändern. Das liegt an dir. Und wieder eine persönliche Präferenz. Sobald Sie jedoch einen Audio-Stream-Player zu Ihrer Playerszene hinzugefügt haben , können wir uns mit dem Skript Ihres Players befassen. Und was wir tun müssen, ist den Audiostream einzustellen , indem die Audiodatei laden und dann tatsächlich abspielen. Also werde ich zuerst zu unserer Deth-Funktion gehen zuerst zu unserer Deth-Funktion und ihr wird eine ID übergeben ID wird offensichtlich eine Ganzzahl sein , weil wir eine Zwei oder Drei bekommen Also rufe ich eine IT-Abteilung an und setze sie dann standardmäßig auf zwei. Und der Grund, warum ich zwei verwende, ist, wenn wir zu unserer Kachelkarte zurückkehren und sie uns ansehen, unser Weg ist ID Zwei. Standardmäßig sollte es also unsere Straße sein , also sollte es ein Quetsch sein Also, was ich hier tun werde, ist, ob wir unseren Audio-Stream-Player besorgen wollen Also AudioStream Player Dot Stream wir wollen diese Stream-Eigenschaft Du spielst auf unserem Player, oder? Dieser Stream hier. Und wir setzen ihn gleich und wir rufen Load, Open und Closed Klammern auf und darin wird der Pfad zu unserer Also zwei wird unsere Standardeinstellung sein, also das wird unser Squish sein, also werde ich Squash Dot Wav, Squash Dot Wave aus unserem Sounds-Ordner holen Wave aus unserem Sounds-Ordner und es dort Auf diese Weise muss ich es nicht schreiben . Und jetzt sagen wir in der nächsten Zeile, dass I ID gleich Drei ist. Also drei, erinnere dich daran, dass es unser Wasser war. Also, wenn wir sterben und es auf dem Wasser ist, dann machen wir dasselbe wie in der vorherigen Zeile und legen unseren Stream und das Laden in einer neuen Datei fest. Dieses Mal setzen wir Squash ein, laden in Plunk und dann, abgesehen von der If-Anweisung, spielen wir nur unseren Stream Also werden wir sagen, dass der Audio-Stream-Player nicht abgespielt wird. Einfach so. Wenn wir 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 sie hören können Okay? Wenn wir ins Wasser springen. Okay. Und wenn wir 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 geben wir keinen Ausweis für drei ab, also werden es auch nie drei sein. Und der Grund dafür ist, denken Sie daran, dass wir runtergehen und die Zellen-ID überprüfen müssen. Wir überprüfen tatsächlich, ob unser Frosch ertrinkt Das ist es also, was wir bis zu unserem Tod weitergeben müssen. Nun, es wurde nicht ausgestrahlt, weil wir ihm gesagt dass, wenn wir nichts hineingeben, standardmäßig zwei verwenden, aber da wir speziell eine ID von drei haben wollen , wenn wir im Wasser sind, müssen wir sicherstellen , dass wir sie hier unten in unserer Check-Cell-ID-Funktion weitergeben . Also, wenn wir es jetzt tun würden, sollten wir unser Ding im Wasser haben , richtig, richtig, richtig Und auf der Straße gequetscht. Und los geht's. Wir wissen also, dass das einwandfrei funktioniert. Und das Einzige, was uns noch bleibt, ist unser Hüpfen. Und dafür wird das einfach oben in unserer Bewegung sein , wo wir unseren Audiostream überprüfen und das einstellen können unseren Audiostream überprüfen und das einstellen Der Punktstream des Audio-Stream-Players ist also gleichbedeutend mit Laden, und wir nehmen einfach unseren Pop-Sound-Effekt und ziehen ihn hinein Geh. Und in der nächsten Zeile können wir einfach unser Audio abspielen. Es ist ein Audio-Stream-Player. Geh spielen. Und das können wir in jeden Tastendruck hier kopieren. Also wenn es ausgefallen ist, können wir das tun. Bum, es ist links und wenn es richtig ist. Wenn wir es jetzt spielen, sollten wir herumspringen können . Hoppla Gehen wir in unsere Hauptszene. Und versuch das. Runter runter. Wir können runter springen. Dann lass dich zerquetschen. Runter runter. Sowie Boden im Wasser. Runter, runter, runter, runter, runter, runter, runter, runter, runter, runter, runter. Runter, fantastisch. Jetzt müssen wir nur noch die Musik wieder einschalten. Also in unserer Hauptszene, Audio-Stream-Player, Autoplay, wieder einschalten Und einfach so haben wir das Frogger-Spiel komplett mit Audio und Gameplay Danke Danke, ich wurde dort von der Rückseite des Autos angefahren, aber bitteschön Wir haben Sound hinzugefügt und unser Spiel fühlt sich jetzt viel vollständiger an. A, wir können hier wirklich nichts anderes tun. Sie können gerne mehr hinzufügen. Sie können versuchen, Tonabnehmer 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 es es 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. Also passt auf euch auf und habt einen guten Start, klopft euch mit dem fertigen Frosch auf die Schulter und nächste Woche, glaube ich, werden wir anfangen, über einige der Unterschiede und Gemeinsamkeiten zwischen zwei D und drei D zu sprechen und Gemeinsamkeiten zwischen zwei D und und uns darauf einzulassen. 42. Übergang von 2D- zu 3D-Arbeiten: Ordnung. Willkommen zu dieser Woche, in der wir über unseren Übergang von zwei D zu drei D sprechen in der wir über unseren Übergang von zwei D zu drei D Als Spieleentwickler ist es also wichtig, die einzigartigen Herausforderungen und Möglichkeiten zu verstehen, die sich ergeben, wenn im dreidimensionalen Raum und nicht im zweidimensionalen Raum arbeiten . Um das zu veranschaulichen, tut mir leid. Lassen Sie uns gleich noch einmal zurückgehen. Beim Übergang von der Zwei-D-Entwicklung zur Drei-D-Entwicklung sind mehrere wichtige Aspekte zu berücksichtigen Lassen Sie uns über den grundlegenden Unterschied in der Perspektive In Two D arbeiten wir mit flachen Objekten und Ebenen. Wie Sie an unserem Beispiel auf der linken Seite sehen können , ist alles wirklich flach. Es geht nur darum, was davor steht oder was davor gerendert wird, oder? Wir können also verschiedene Ebenen erstellen, Beispiel, wenn Sie in etwas wie Photoshop arbeiten, einer Art Bildmanipulator oder Bildeditor Nun ja, in drei D, denen auf der rechten Seite, führen wir Tiefe und räumliche Beziehungen zwischen Objekten Sie können also vollständig sehen, dass wir diese dritte Dimension auf der beiden D-Seite haben. Wir können den Boden hier nicht sehen. Wir haben nur die Seite dieses Damms oder der Brücke oder was auch immer es ist, auf der er steht. Nun, in drei D können wir sehen, wie die Tiefe dort über die Spitze geht. Wir sehen, wie die Tiefe des Arms mit dem spitzen Ende direkt auf uns zukommt , im Gegensatz den beiden D, wo er sich eindeutig nur auf dem Bildschirm nach unten bewegt Und wieder, mit der Tiefe, können Sie im oberen Teil sehen , wo Sie versuchen können , dieses Gefühl mit zwei Dimensionen zu simulieren , dieses Gefühl mit zwei Dimensionen zu Bei drei D kann man jedoch offensichtlich erkennen, dass es einfach keinen Vergleich gibt. Es ist offensichtlich, welches tatsächlich Tiefe hat und welches nicht wenn wir uns das beste Beispiel dort ansehen. Um diesen Übergang noch einmal zu veranschaulichen, können Sie sich hier unsere Beispiele ansehen, zwei Screenshots, einer aus der Zwei-D-Version, einer aus der Drei-D-Version. In diesem Fall verwenden wir Mega Man , einen Plattform-Side-Scroller Und hier wird dir das helfen, dir vorzustellen, dieses Zwei-D-Spiel in ein Drei-D-Spiel umzuwandeln. Du kannst sehen, was für einen Unterschied das Ich muss nur eine Entscheidung treffen, ob ich zwei D oder drei D nehmen will Die Kunststile sind völlig unterschiedlich und heben sich auf einzigartige Weise ab In dieser D-Umgebung müssten wir nun drei D-Modelle für die Charaktere, die Plattformen und all die anderen Objekte in der Szene erstellen die Charaktere, die Plattformen und all die , was natürlich viel zeitaufwändiger sein könnte, als wenn wir uns für die 2-D-Option entscheiden würden. Mit zwei D ziehen wir es irgendwie in die Länge und es geht uns gut. Wir sind fertig. In Three D dagegen müssen wir uns diese Modelle besorgen und dann müssen wir das Modell auspacken, und dann müssen wir die Texturen für das Modell erstellen und dann müssen wir das Material für das Modell erstellen Wir haben also all diese Schritte bevor wir es überhaupt früh zum Testen oder Implementieren ins Spiel bringen können , solche Dinge Und dann müssen wir auch eine Kamera einführen , die typischerweise in drei D arbeitet, wenn es sich nicht nur um etwas Stationäres handelt, wie zum Beispiel etwas, das wie ein Bosskampf auf der Unterseite aussieht, eine Kamera hat, die sich mit dem Spieler bewegt, unabhängig davon, ob sich das in einem vollen 360-Grad-Raum bewegt, was in diesen drei D-Versionen passieren könnte. Oder wenn sie einfach an der Seite stationärer bleiben , um uns mehr von dem seitlichen Scrollen zu geben , das wir hier deutlich sehen. Wie ihr seht, erfordert der Übergang von zwei D zu drei D eine Änderung unserer Denkweise über die Spieleentwicklung Wir müssen die räumlichen Dimensionen, die Tiefenwahrnehmung, die Bewegung der Kamera und die Objektmodellierung berücksichtigen Tiefenwahrnehmung, die Bewegung der Kamera und die Objektmodellierung Es eröffnet eine völlig neue Welt von Möglichkeiten, immersive und visuell atemberaubende Spiele zu entwickeln , obwohl manche Leute in den meisten Fällen zwei D gegenüber drei D bevorzugen werden . Denken Sie also daran, dass die Art des Spiels, das Sie entwickeln, besser sein oder besser funktionieren könnte, entweder für die Vision oder mechanisch, was auch immer, in zwei D als in drei D oder besser in drei D als in zwei D. Also da haben Sie es mit dem Übergang von zwei D zu drei D, wir müssen diese Unterschiede und Herausforderungen verstehen , entstehen während dieses Übergangsprozesses, und ihr werdet gut darauf vorbereitet sein, spannende Drei-D-Spielprojekte in Angriff zu nehmen Denkt daran, verschiedene Techniken zu üben und immer mit ihnen zu experimentieren Selbstvertrauen in dieser neuen Dimension der Spieleentwicklung zu gewinnen in dieser neuen Dimension der Spieleentwicklung Ordnung. Als nächstes, die nächste Lektion hier, werden wir weitermachen und Ihnen helfen, einige der Unterschiede zwischen zwei D und drei D zu verstehen . Und dann werden wir über die Ähnlichkeiten zwischen zwei D und drei D sprechen zwischen zwei D und drei D 43. Die Unterschiede zwischen 2D und 3D verstehen: Ordnung. In diesem Beispiel haben wir heute einen Mortal Combat gezeigt, sowohl den Mythology Side Scroller als auch zwei D, quasi quasi ein Pseudo-Dree-D, sowie die drei D-Iterationen, die später kamen, beide mit einem Drei-D-Menü und einem Drei-D-Store-Modus , in dem man herumlaufen und erkunden konnte man Nun, das heutige Video, die heutige Lektion, wir werden hier über einige der Unterschiede zwischen zwei D und drei D sprechen . Und es ist wichtig, dass Sie diese Unterschiede verstehen, da sie entscheidend sein können , wenn es darum geht, Spiele effektiv zu entwickeln, damit Sie die Stärken jeder Dimension nutzen können. Der Hauptunterschied zwischen der Entwicklung von Spielen mit zwei D und drei D liegt also Entwicklung von Spielen mit zwei D und drei D liegt in der visuellen Darstellung. Wie du hier sehen kannst, ist das ziemlich offensichtlich und die Spielmechanik. In zwei D arbeiten wir mit zwei Dimensionen, nur mit der Breite und der Höhe. Wo Objekte auf einer ebenen Fläche dargestellt werden. Im Gegensatz dazu führt Three D, , die dritte Dimension der Tiefe wie wir hier sehen können, die dritte Dimension der Tiefe ein und ermöglicht so immersiveres ein immersiveres und realistischeres Erlebnis Lassen Sie uns also einige wichtige Unterschiede zwischen einem Zwei-D-Spiel in einem Zwei-D-Spiel untersuchen Zwei-D-Spiel in einem Zwei-D-Spiel Das Gameplay findet normalerweise auf einer einzigen Ebene statt. In Three D können sich Objekte dreidimensional nach oben, unten, links, rechts, vorwärts und rückwärts bewegen dreidimensional nach oben, unten, links, . komplexe Interaktionen und Erkundungen zu ermöglichen , haben wir oben links so etwas wie den Eroberungsmodus oben links so etwas wie den , weil du ermutigt wirst, rauszugehen und nicht nur der Geschichte zu folgen, nicht nur der Geschichte zu folgen, sondern auch zu erkunden und einige Nebendinge zu tun, um zu helfen oder einige Geheimnisse und versteckte Charaktere und solche Dinge freizuschalten , die du in einem TD-Spiel nicht wirklich bekommen würdest Und wenn du das irgendwie hineinquetschen könntest, wäre es nicht dasselbe Gesamterlebnis Darüber hinaus ist die Kollisionserkennung bei zwei D in der Regel einfacher, da sie hauptsächlich nur darin besteht , zu überprüfen, ob sich zwei Objekte überlappen Bei Three D wird die Kollisionserkennung komplexer und erfordert die Berücksichtigung der Objektgrenzen und der Oberfläche Und wie Sie sehen, hilft uns das Verständnis der Unterschiede zwischen der Entwicklung von Zwei-D - und Drei-D-Spielen , fundierte Designentscheidungen zu treffen und geeignete Techniken zu verwenden, sei es der visuelle Stil, Spielmechanik oder die Benutzererfahrung die einzigartigen Eigenschaften jeder Dimension berücksichtigen, werden alle Eigenschaften jeder Dimension verbessert, verbessert allgemeines Spielerlebnis Denken Sie also daran, ob Sie sich für zwei D oder drei D entscheiden, nutzen Sie die Stärken dieser Dimension. Da haben Sie es also kurz den Unterschieden zwischen der Entwicklung von Zwei-D - und Drei-D-Spielen. diese Unterschiede erkennen, Sie besser in der Lage, Spiele zu entwickeln , die diese Stärken dieser Dimensionen nutzen. Und denken Sie natürlich daran, mit verschiedenen Techniken zu experimentieren und bei Ihrem Spieldesign kreativ zu bleiben. Ordnung. In der nächsten Lektion werden wir über einige Ähnlichkeiten zwischen zwei D und drei D sprechen Ähnlichkeiten zwischen zwei D und drei D 44. Ähnlichkeiten zwischen 2D und 3D: Ordnung, lassen Sie uns weitermachen und über einige der Ähnlichkeiten zwischen der Zwei-D- und der Drei-D-Entwicklung sprechen . Trotz ihrer einzigartigen Merkmale haben beide Dimensionen nun bestimmte Kernprinzipien und Techniken gemeinsam . Lassen Sie uns weitermachen und einen Blick darauf werfen. Entwicklung von Zwei-D- und Drei-D-Spielen hat zwar unterschiedliche Eigenschaften und Stärken, aber auch einige Gemeinsamkeiten auf. Erstens stützen sich beide Dimensionen natürlich auf wichtige Programmierkonzepte wie Variablen, Funktionen und Logik. Egal, ob es sich um zwei D oder drei D handelt, diese grundlegenden Programmierprinzipien bleiben unverändert. Wenn du also zum Beispiel hast, ein Charakter einen Gegenstand aufhebt. Nun, dieser Charakter, du gehst zu dem Gegenstand und berührst ihn oder interagierst mit ihm. Und die Logik wird dieselbe bleiben, denn du nimmst ihn, du lässt ihn verschwinden und dann fügst du ihn im Code dem Inventar des Spielers oder seiner Anzahl an Sammelobjekten hinzu oder was auch immer du damit machen wirst Diese Logik bleibt völlig dieselbe, ob es nun zwei D oder drei D sind, wird nur etwas anders geschrieben Zweitens gilt die Bedeutung der Prinzipien des Spieldesigns für beide Dimensionen. Konzepte wie Spielerinteraktion, Leveldesign und ausbalancierte Spielmechaniken sind entscheidende Elemente, und ausbalancierte Spielmechaniken sind die sich auf das Spielerlebnis auswirken , unabhängig davon , ob es sich um zwei D oder drei D handelt. Wenn Sie also schlecht im Spieldesign in zwei D sind, werden Sie wahrscheinlich immer noch schlecht im Spieldesign in drei D sein. Es wird keinen Unterschied machen , in welcher Dimension Sie arbeiten. Wenn du schlecht bist, bist du schlecht, und alles, was du wirklich tun kannst , ist deine Fähigkeiten zu üben, vielleicht ein paar Bücher in die Hand zu nehmen und einfach deine Spieldesign-Fähigkeiten durch Übung zu verbessern. Darüber hinaus werden bei der Entwicklung von Zwei-D- und Drei-D-Spielen Ressourcen verwendet, egal ob es sich dabei um Sprites in zwei D oder um Modelle in drei D handelt Drei-D-Spielen Ressourcen verwendet, egal ob es sich dabei um Sprites in zwei D oder um Modelle in drei D , um die Spielwelt zum Leben zu erwecken Egal, ob es sich um ein Sprite mit zwei D-Charakteren oder um ein Drei-D-Modell handelt, der Prozess der Erstellung und Integration von Assets in das Spiel folgt ähnlichen Design- und Implementierungsprinzipien Design- und Implementierungsprinzipien Beachten Sie auch hier, dass ich Ähnliches gesagt habe, nicht dasselbe. Darüber hinaus wird die Bedeutung der Optimierung sowohl für Zwei-D- als auch für Drei-D-Spiele gelten. Unabhängig von der Dimension müssen Entwickler Leistung, Speicherverwaltung und effiziente Algorithmen berücksichtigen, um Speicherverwaltung und effiziente Algorithmen berücksichtigen, ein reibungsloses Gameplay und eine optimale Ressourcennutzung zu gewährleisten . Ich habe zum Beispiel erwähnt, als wir uns Boger ansehen und unser Problem mit Speicherlecks beheben, das Objektpooling erwähnt Das ist eine sehr wichtige Sache. Das kann bei der Verwaltung unserer Ressourcen und der Speicherverwaltung helfen. Und je nachdem , welches Spiel du gerade erstellst, könnte das eine sehr, sehr optimale Methode sein , um an eine Situation heranzugehen. Ihr seht also, dass die Entwicklung von Zwei-D- und Drei-D-Spielen zwar ihre einzigartigen Aspekte hat, aber dennoch die Kernprinzipien und Techniken gemeinsam haben . Und wenn Entwickler diese Gemeinsamkeiten verstehen, können sie ihr Wissen dimensionsübergreifend einsetzen und fesselnde Spiele entwickeln Und was noch verrückter ist, ist dass Sie beide in einem Spiel kombinieren könnten Du könntest vielleicht dasselbe Spiel gewissermaßen zweimal erstellen und dem Spieler die Möglichkeit geben, zu wählen, ob er in zwei D oder drei D spielen möchte . Das könnte etwas sein , das speziell für dein Spiel einzigartig sein könnte oder eine Art Mechanik haben , bei der du zwischen zwei D und drei D springen möchtest. Du kannst die multidimensionale Dimension als Spielmechanik verwenden die multidimensionale Dimension als oder nur als Teil des Erfahrung. Und da haben Sie es, die Ähnlichkeiten zwischen der Entwicklung von Zwei-D- und Drei-D-Spielen. Und wenn Sie diese Gemeinsamkeiten erkennen, können Sie Ihre Fähigkeiten und Ihr Fachwissen in verschiedenen Dimensionen einsetzen , was Sie zu einem vielseitigen Spieleentwickler macht Denken Sie daran, kontinuierlich zu lernen und zu experimentieren , um Ihre Fähigkeiten in der Spieleentwicklung zu verbessern Und obwohl sie sich ähneln, möchte ich an dieser Stelle anmerken dass ich persönlich, meiner Präferenz, lieber in zwei D arbeite, obwohl die Ähnlichkeiten da sind und ein Großteil dieser Logik und alles immer noch übertragen wird und funktioniert. Dimensionsübergreifend oder dimensional. Es ist irgendwie komisch, das zu formulieren. Aber aus reiner Vorliebe dachte ich, dass mir drei D gefallen würden. Aber es hat sich herausgestellt, dass es mir wirklich Spaß macht, zwei D zu kreieren. Sie werden also vielleicht feststellen, dass Sie am Ende drei D hier ausprobieren. Vielleicht findest du heraus , dass du auch zwei D-Stile bevorzugst, oder vielleicht bevorzugst du drei D-Stile. Oder Sie arbeiten in drei D, anstatt etwas in zwei D zu erstellen . Es ist also in Ordnung, diese Präferenz zu haben, aber es ist auch gut zu wissen, dass Sie sowohl das Wissen als auch die technischen Fähigkeiten haben , um jederzeit zwischen zwei D und drei D zu wechseln jederzeit zwischen zwei D und drei D und alle Gemeinsamkeiten, Fähigkeiten, Logik und alles, was zwischen den Dimensionen übertragen wird, anzuerkennen Fähigkeiten, Logik und alles, was zwischen den Dimensionen übertragen wird, alles, was zwischen den Dimensionen übertragen Acht. Okay, lassen Sie uns weitermachen und in der nächsten Lektion einige Dinge sehen, die bei Three D etwas einzigartiger sind und etwas einzigartiger sind die Sie nicht wirklich umgehen können 45. Materialien: Ordnung, alle zusammen. Willkommen zurück. Heute werden wir über etwas sprechen , das exklusiv oder ich sollte nicht sagen, technisch exklusiv für Three D ist , also Materialien. Lassen Sie uns also weitermachen und Ihnen erklären, was Materialien sind. Hier in Goto Inge spielen Materialien eine entscheidende Rolle bei der Definition des visuellen Erscheinungsbilds eines Objekts in deinem Spiel Wir werden uns eingehend mit Materialien befassen und zumindest die verschiedenen Textur-Map-Typen besprechen, die beim Erstellen und Anwenden von Materialien auf Objekte verfügbar sind beim Erstellen und Anwenden von Materialien auf Objekte verfügbar Anwenden von Materialien auf Objekte Materialien werden verwendet, um zu steuern, wie Licht mit Objekten interagiert und wie sie gerendert werden Sie definieren Eigenschaften wie Farbe, Transparenz, Reflexionsvermögen und Einer der wichtigsten Aspekte von Materialien ist das Textur-Mapping, dem wir Bilder oder Muster auf Objekte anwenden können, um ihnen ein realistisches oder stilisiertes Aussehen zu verleihen Also werde ich weitermachen und einfach diesen Mega Man, den du geerbt hast, hier aufmachen diesen Mega Man, den du geerbt hast , den ich gerade online gefunden Und bevor jemand fragt, nein, ich kann das nicht teilen. Aber wenn Sie online suchen, werden Sie es wahrscheinlich finden. Ich werde hier einfach Objekt vier auswählen. Und wenn ich es öffne, finde ich dieses Bild speziell als Oberfläche Null, also hat es nur eine Oberfläche. Also ein Material. Wenn ich das öffne, muss ich es in einem Moment einzigartig machen, damit ich es zumindest anpassen kann, um Ihnen einige Beispiele zu zeigen und es einzigartig zu machen In Ordnung. Ordnung, während wir die Albedo-Karte durchgehen, die genau hier ist Sie ist auch als diffuse Karte bekannt. Warum gibt es mehrere Namen für dieselbe Sache? Ich weiß nicht, aber es gibt sie, also denken Sie einfach daran, wenn jemand Albedo sagt und Sie eine diffuse Karte erhalten Sie sind dasselbe. Und diese Texturmap definiert die Grundfarbe eines Objekts. Sie sorgt für das primäre visuelle Erscheinungsbild der Oberfläche. Und wie Sie hier sehen können, wird hier die Haupttextur aufgetragen. Das wirkt sich nun auf die Farbe aus. Ich kann also jederzeit hierher kommen und die tatsächliche Farbe ändern , die auf diese Textur aufgetragen wird. Also, wenn ich will, kann ich hier runterkommen und mir einen grünen Megamann holen. Vielleicht will ich eher einen lila Megamann. Oder Rosa ist da nicht wirklich nicht zu pink. Wir können uns einen roten Megamann besorgen. Du verstehst die Idee an diesem Punkt, oder? Die Albedo ist also die Basistextur und -farbe, die daran angepasst werden können Normale Karten. Mal sehen, wo sind sie hier drin? Normale Karte. Hier sind wir. Hier in Gatto müssen Sie es tatsächlich einschalten, bevor Sie eine Textur darauf anwenden können Und eine normale Map fügt durch Änderung der Beleuchtungsberechnungen die Illusion von Oberflächendetails hinzu oder sie erweckt den Eindruck von Unebenheiten, Dellen und Falten auf einer glatten Oberfläche, ohne die Anzahl der Polygone zu erhöhen Es ist also gewissermaßen eine Art Ködergeometrie, indem es das Licht manipuliert und wie es Ich weiß nicht, ob Mega Man hier vielleicht nicht viel hat, aber wenn wir weitermachen und mit der Größenordnung spielen, kann man sehen, wie es hier passiert, besonders hier unten im Unterkörper Wir kehren zur Standardskala zurück und dann optimieren wir sie. Sie können sehen, wie sich das wirklich auf die Art und Weise auswirkt, wie das Licht hier oben reflektiert wird Die Rauheitskarte. Nun, Sie können dies auch in Form einer Glattheitskarte erhalten , und Glätte und Rauheit Wenn Sie also eine Glattheits-Map haben und eine Rauheit-Map benötigen, können Sie sie einfach invertieren und es sollte in Ordnung sein und Nun, in diesem Fall hat dieser Megamann hier eine Farbtextur, und er verwendet dafür speziell den grünen Kanal und nicht das Standardgrau, das ist den grünen Kanal das Standardgrau, das Nun, die Rauheits-Map, diese Textur-Map steuert die Oberflächenrauheit oder -glätte eines Objekts und sie beeinflusst, wie Licht von der Oberfläche gestreut und reflektiert wird, wodurch Variationen im Nun, ich weiß, dass sich das ein wenig auf den Helm auswirken wird , also werde ich herkommen, um es dir zu zeigen . Also, wenn ich die Rauheit verringern und glatt machen würde, sieh dir das an Das ist quasi superglatt, frisch aus der Fabrik Das ist eine Schönheit, genau das. Das ist ein brandneuer Helm. Und wie Sie sehen, wenn wir wieder an die Rauheit kommen, zerstreuen all diese Lichter, sobald sie darauf treffen, und nicht irgendwie von ihnen reflektiert Und das funktionierte Hand in Hand mit unserer metallischen Landkarte hier. Diese Textur-Map, und wieder verwenden sie dieselbe Textur dafür, aber sie verwenden den blauen Kanal. Und die metallische Abbildung hier oder die nichtmetallischen Eigenschaften eines Objekts und sie verändert das Licht oder das Reflexionsvermögen und den Glanz einer Oberfläche Wenn wir also, wie Sie sehen können, eine superglatte Oberfläche hätten , bei der unser Metall ganz oben wäre, würde das wie ein schönes, glänzendes Stück Metall aussehen Wenn wir jedoch anfangen, das Metall nach unten zu reduzieren, können wir sehen, dass wir zu einigen anderen Materialien gelangen, vielleicht wie zum Beispiel einem glänzenden oder glänzenden Kunststoff. Bis wir so weit sind, dass wir kein Metall mehr haben , was nicht realistisch ist. In jedem Objekt ist zumindest ein bisschen Metall enthalten. Und Spiegelung gehört irgendwie dazu. Du kannst es dort sehen Spiegelung könnte also etwas sein, das wir vielleicht für Augen verwenden , wenn wir ihnen etwas mehr Glanz verleihen wollen, zum Beispiel Oder wenn Sie ein nasses Objekt haben , könnte das auch gut darin sein Also werde ich einfach das Metallische wieder erhöhen und die Rauheit wieder auf die Standardeinstellung zurücksetzen Und Umgebungsokklusion, hat dieses Modell Umgebungsokklusion? Hat es nicht. Umgebungsokklusion ist also wie eine Schattentextur, die Sie hinzufügen können, um ein wenig mehr Details hinzuzufügen, zum Beispiel direkt an den Rändern damit es eher ein Helm aussieht, der auf einem Kopf sitzt Und so funktioniert es innerhalb all dieser kleinen Falten und Spalten, all dieser kleinen Falten und in die wir nur schwer hineinkommen könnten wir nur schwer Aber im Allgemeinen ist es genau das, was es tut. Es simuliert im Grunde den Schatteneffekt durch das Vorhandensein von Objekten in der Nähe oder durch indirektes Licht verursacht wird, und insgesamt verleiht es dem Erscheinungsbild des Objekts nur etwas Tiefe und Realismus Eine weitere Karte, die ich mir ansehen möchte, befindet sich hier, die Emission . Nun, die Emissionskarte, da ist eine Textur, und Sie können sehen, dass sie fast völlig leer ist, aber da sind ein paar Objekte. Und was die Emissionskarte macht, ist, dass die Emissionskarte leuchtet. Im Grunde genommen von deinem Objekt. Wenn du also, sagen wir, eine Figur mit einem Roboterauge hättest und du möchtest, dass dieses Auge leuchtet, besonders im Dunkeln, dann würdest du das als Emissionskarte tun. Nun, Sie können vielleicht nicht viel sagen, aber es ist dieser kleine Punkt in der Kanone und das Licht hier. Das sind die beiden wichtigsten Punkte , die uns auffallen werden. Und wenn ich einfach den Energiemultiplikator erhöhe , sieh dir das an, du kannst das jetzt wirklich dort sehen und besonders in der Kanone Sie können sehen, wie das rote Leuchten entsteht, wenn wir näher kommen, direkt darauf zu schauen, und wir können diese Änderung hier sehen, wenn ich sie leiser drehe Und wie Sie sehen, sieht die Textur normalerweise so aus Und wenn Sie dann die Emissionstextur hinzufügen , leuchtet alles auf. Wenn Sie also Lichter auf einem Objekt haben oder etwas Glühen benötigen oder so, ist die Emissionskarte genau das, was Sie dafür verwenden möchten Nun, wir haben hier noch eine Menge anderer kleiner Dinge, die kleine Details wie Lichtbrechung , ein bisschen Hintergrundbeleuchtung, etwas Streuung unter der Oberfläche, was so ist, als ob ich mich nicht irre, Licht, die Art und Weise, wie es mit der Haut interagiert, hinzufügen können wie Lichtbrechung , ein bisschen Hintergrundbeleuchtung, etwas Streuung unter der Oberfläche, was so ist, als ob ich mich nicht irre, Licht, die Art und Weise, wie es mit der Haut ein bisschen Hintergrundbeleuchtung, etwas Streuung unter der Oberfläche, was so ist, als ob ich mich nicht irre, Licht, die Art und Weise, wie interagiert, Wir haben hier Größe. Wenn du mit solchen Dingen herumspielen wolltest, denen ich nicht weiß, habe ich nicht mit der Höhe herumgespielt Ich weiß, dass wir früher eine Tiefenkarte hatten. Wir haben Billboard, wachsen, transformieren. Wir haben all diese neuen Dinge hier, die mit vier dazukamen. Und ich werde hier etwas erwähnen , das mit dem Verblassen der Nähe einhergeht . Reifen. Wenn wir das ein bisschen aufdrehen würden, könnten wir all diese Entfernungen hier sehen und das ganze Zeug wird beeinflusst je nachdem, wie nah Sie an einem Objekt sind Wie Sie hier sehen können, würde das zum Beispiel bei der Leistung helfen . Auf diese Weise, wenn Sie es so einrichten können , dass es einfach komplett verschwindet, wenn Sie weit genug entfernt sind. Vielleicht so etwas, null, zwei, ich kriege es da nicht rein, aber du verstehst die Idee, oder? Also kannst du am besten mit all diesen Sachen rumspielen, und wenn du weitermachen würdest, haben sie hier den zweiten Pass? Die Seite davon reift irgendwie schwer, wenn hier alles geöffnet ist. Und ich sehe den zweiten Pass nicht, was interessant ist. Aber los geht's. Wir haben Schatten, die Sie deaktivieren können, unabhängig davon, ob sie Schatten empfangen oder nicht. Wir haben UV eins und zwei, die verwendet werden können, da verschiedene Dinge unterschiedliche Dinge haben. Los geht's. Nächster Pass. Sie können also ein weiteres Material direkt zu diesem hinzufügen. Das ist zum Beispiel eine Möglichkeit, einem Charakter eine schwarze Linie zu verpassen, um ihm einen Anime-Look zu verleihen Es gibt einige Dinge, die Sie tun könnten, und Sie würden dort die Gliederung in einem zweiten Durchgang erstellen Da haben wir's. Ich glaube, das ist eher das, was ich mir angesehen habe. Also sagen wir mindestens eins und dann sagen wir, dass es um zehn endet. Also da hast du's. Sie sehen also, je näher wir kommen, das Objekt ist drin und Sie ziehen sich zurück, und das Objekt wird nicht mehr gerendert, oder zumindest wird dieser Teil des Objekts nicht mehr gerendert. Sie können das also berücksichtigen wenn es um Optimierungen geht, insbesondere wenn Sie ein Objekt haben, das Ihre Leistung möglicherweise wirklich beeinträchtigt Das ist die Sichtweite in dieser Hinsicht. Aber das sollte die Materialien und die verschiedenen Arten von Textur-Maps zusammenfassen. Oh, ich sollte noch eine Sache in den Materialien hier erwähnen noch eine Sache in den Materialien hier Sie haben es geändert. Ordnung. Jetzt haben wir einfach all diese zusätzlichen Optionen wie Scheitelpunktfärbung, Schattierung, Transparenz und all das Zeug Wenn Sie also Transparenz für ein Objekt haben möchten, sagen wir, Sie verwenden ein PNG-Bild für Ihre Textur, dann müssen Sie das tatsächlich anpassen und es auf, ich glaube, Alpha setzen, und es funktioniert nicht mit dieser ich glaube, Alpha setzen, und es funktioniert nicht mit Aber anstatt Deaktivierungen zu verwenden, müssen Sie die Transparenz tatsächlich aktivieren , wenn Sie transparente Teile Ihrer Textur oder Ihres Netzes haben möchten transparente Teile Ihrer Textur oder Ihres Netzes haben , In Ordnung, das gilt also für Materialien hier. Und hoffentlich erhalten Sie dadurch ein besseres Verständnis davon , was Materialien sind und welche Textur-Maps Sie stoßen werden und die Sie bei der Erstellung von drei D-Spielen verwenden werden . Und denken Sie natürlich immer daran, zu experimentieren, verschiedene Maps zu kombinieren und zu sehen, welche unterschiedlichen visuellen Effekte und Looks Sie erzielen können. Vielleicht findest du etwas, das dir gefällt und das einfach nur durch Herumspielen entstanden ist nur durch Herumspielen entstanden Okay, das reicht für diesen Abschnitt oder zumindest für dieses Video, und hoffentlich erfährst du ein bisschen über Materialien und was 46. Beleuchtung: Ordnung. Seid gegrüßt, alle zusammen. Und heute werfen wir einen Blick auf die Welt, die Welt der Beleuchtung, und wir werden über die grundlegende Dreipunktkonfiguration sprechen, die verwendet wird , wenn es um Beleuchtung geht. Wenn es darum geht, eine Szene zu beleuchten, gehört natürlich noch viel mehr dazu. Sie müssen sich Dinge wie die Intensität des Lichts für jedes einzelne Objekt ansehen Dinge wie die Intensität des Lichts , das Licht emittieren wird. Wie viele Lichter möchten Sie in diese Szene integrieren? Das wird sich auf Ihre Leistung auswirken und so weiter. Aber lassen Sie uns zunächst einen Blick darauf werfen, dass die Beleuchtung ein entscheidendes Element ist, das die visuelle Qualität erheblich verbessern oder die Atmosphäre Ihres Spiels beeinflussen kann die visuelle Qualität erheblich verbessern . Okay, die Beleuchtung von I Goto spielt eine entscheidende Rolle bei der Schaffung realistischer und immersiver Umgebungen, was man von so ziemlich jedem Spiel behaupten kann Und das Wichtigste ist, dass Sie etwas mit fotorealistischen Texturen haben können , und all Ihre fotorealistischen Karten Aber wenn es nicht gut genug gerendert werden kann oder Ihre Beleuchtung nicht gut genug ist, dann sieht es vielleicht immer noch nicht realistisch aus, obwohl es fotorealistisch sieht es vielleicht immer noch nicht realistisch aus, obwohl es fotorealistisch Die Beleuchtung ist also für Ihre Materialien und Ihre Gesamtszene genauso wichtig wie beispielsweise die Schattierung in einer Zeichnung Ich kann das, was Sie sehen, komplett verändern. Beleuchtung hilft auch dabei, die Stimmung zu verbessern und die wichtigen Elemente hervorzuheben und deine Spielwelt zum Leben zu erwecken. Wenn Sie nun mit Beleuchtung arbeiten, müssen Sie mehrere wichtige Aspekte berücksichtigen, wie z. B. Ihre Lichtquellen, die Schatten und Ihre Lichteigenschaften. Eine beliebte Technik ist die Dreipunktbeleuchtung, bei der drei Lichter strategisch um das Objekt herum angeordnet werden, um eine ausgewogene und optisch ansprechende Beleuchtung zu erzielen. drei Lichter strategisch um das Objekt herum angeordnet werden , um eine ausgewogene und optisch ansprechende Beleuchtung zu erzielen . Hier in der Szene , die wir uns gerade ansehen, habe ich Mega Man aus der Materialabteilung hier. Auch hier bin ich gerade online gegangen und habe gerade dieses Modell gefunden. Nur online, er konnte kostenlos heruntergeladen werden. Und Sie können sehen, obwohl er nicht leuchtet, haben wir die roten Bereiche beleuchtet. Wir haben diese Bar beleuchtet und das Innere dieser kleinen Kanone hier, alles ist beleuchtet Und die sind von den Emissionskarten, ich schätze, man könnte sagen, den Teil zu beleuchten , der nichts mit unserer Beleuchtung zu tun hat Das ist einfach alles Textur. Okay, lassen Sie uns dieses Licht in drei Lichter aufschlüsseln dieses Licht in drei Lichter , die Sie in einer Dreipunktkonfiguration verwenden Das erste Licht wird dein Schlüssellicht sein. Und während wir das machen, klicke ich einfach auf meine Kamera und dann auf diese perspektivische Schaltfläche hier. Dadurch kann ich sehen, was die Kamera hier sieht. Das erste Licht wird also Ihr Schlüssellicht sein, und das Schlüssellicht ist die primäre Lichtquelle und sorgt für die Hauptbeleuchtung des Motivs. In Ordnung. Es erzeugt die primären Lichter und Schatten, die die Gesamtform und Form des Objekts definieren und Form des Objekts Beachten Sie nun, dass Sie, wenn Sie Schatten auf Ihrem Licht haben möchten, die Eigenschaften Ihres Lichts überprüfen und Ihre Schatten aktivieren müssen. Und dann können Sie dort natürlich einige Ihrer Einstellungen anpassen, was Ihnen überlassen bleibt Als nächstes haben wir unser Fülllicht, das sich im Allgemeinen an der gegenüberliegenden Position gegenüber dem Tastenlicht befindet der gegenüberliegenden Position gegenüber dem , um die Beleuchtung auszugleichen. Sein Zweck besteht darin, die Schatten, die durch das Tastenlicht erzeugt werden, weicher zu machen Schatten, die durch das Tastenlicht erzeugt werden, Es hilft, den Kontrast zwischen hellen und dunklen Bereichen zu verringern , was zu einer gleichmäßigeren und angenehmeren Beleuchtung führt Wenn wir also weitermachen und uns, sagen wir, direkt um den Helm herum umschauen , weiß ich, dass wir diesen Bereich nicht wirklich vergrößern können, aber ich möchte nur sichergehen, dass ich das Modell nicht bewegt habe. Wir machen weiter und schauen uns das hier an. Ich schaue nur von vorne. Wir können sehen, wie hart diese Dunkelheit hier im Helm ist. Und das hier an der Seite kann, abhängig von der Helligkeit Ihres Monitors, auch ziemlich dunkel sein, vor allem, wenn man bedenkt, dass unsere Lichtquellen hier oben links kommen und nach unten kommen. Und wenn wir wieder runterkommen und uns die Füße genauer ansehen würden , wir diesen starken Kontrast sehen, den wir auch an den Füßen und Beinen haben würden wir diesen starken Kontrast sehen, den wir auch an den Füßen und Beinen haben. Ordnung. Und wenn wir unser Fülllicht aktivieren, können wir sehen, wie diese Teile alle aufleuchten, aber es wird viel weicher, das ist kein so harter Kontrast hier drin. Und das wird natürlich dadurch entstehen, dass deine Energie hier optimierst Und im Allgemeinen möchtest du, dass die Energie geringer ist als dein Fülllicht, denn denk daran als das Schlüssellicht, dass das Schlüssellicht hier deine Hauptenergiequelle ist Und je nach Ihrer Situation können Sie das Fülllicht verwenden, um entweder kälter oder wärmer zu werden und ein Licht zu haben , das Ihr Schlüssellicht ergänzt Und das letzte Licht in einer Dreipunktkonfiguration ist die Hintergrundbeleuchtung, und die Hintergrundbeleuchtung, auch bekannt als Randlicht oder Haarlicht, wird hinter dem Motiv platziert, typischerweise an einer höheren Position, und es verleiht ein Gefühl von Tiefe und Trennung und hebt die Kanten des Objekts hervor und erzeugt dieses Gefühl von Tiefe und Dimension, wenn ich weitermache und Wenn wir das aktivieren, können wir sehen, dass wir hier oben an den Rändern etwas Licht bekommen . Und wieder könnten wir reinkommen und sie anpassen, mit diesen Zahlen spielen und etwas finden, das für uns funktioniert Aber Sie sehen hier , wie das Felgenlicht diese Kanten wirklich hervorhebt Mit dieser Hintergrundbeleuchtung oder mit dieser Hintergrundbeleuchtung. Also werde ich das hier einfach wieder auf die Standardwerte reduzieren Aber Sie können sehen, hier sind die Vorher und Nachher, wenn wir hier keine Lichter sehen nur ein sehr einfaches Drei-Punkte-Setup Das sieht schon meilenweit besser aus, und wir berücksichtigen nicht einmal andere Dinge wie die Beleuchtung der Welt oder die Beleuchtung der Umgebung um uns herum oder so. Und wir haben bereits eine wunderschöne, erweiterte Version dessen, womit wir beginnen. Ich hoffe also, dass dies bei der Veranschaulichung des Dreipunktbeleuchtungssetups Ich werde weitermachen und die Kameravorschau hier beenden. Wenn wir also einen Blick darauf werfen, können wir sehen, dass unser Hauptlicht hier drüben ist, wieder in dem Winkel, der auf uns herabfällt. Wenn wir von oben kommen, haben wir unser Dreipunktsystem und es sieht aus wie ein Dreieck. Wir haben hier also unser Schlüssellicht , das entgegengesetzt ausgerichtet ist. Es wird unser Fülllicht sein, und dann ist unser Gegenlicht immer direkt hinter unserem Charakter. Jetzt verwende ich hier nur Scheinwerfer. Aber wenn wir draußen sind, könnten wir natürlich Dinge wie direktionales Licht verwenden , oder Sie könnten je nach Szene Scheinwerfer verwenden Das sind also Dinge, die Sie berücksichtigen können. Die dritte Art von Licht, die wir haben, wird Omni-Licht genannt und strahlt im Grunde Licht in einem vollen 360-Grad-Bereich Das ist also eher für Dinge wie Glühbirnen, Kerzen, solche Dinge Also, ich kann nicht zu Ende darüber reden , dass wir zur Kameravorschau zurückkehren. Beleuchtung, ohne zumindest eine Umgebung zu erwähnen. Nun kann eine Kamera eine Umgebung haben, oder Sie können eine Umgebung haben , die mit der Szene selbst zusammenhängt. Also, was mich betrifft, werde ich meiner Szene hier einfach eine Weltumgebung hinzufügen. Und es ist wichtig, dass Sie zumindest wissen, wie man mit Goto Four eine grundlegende Himmelskurve erstellt mit Goto Four eine grundlegende Himmelskurve Sie werden keinen Himmel irgendwelcher Art haben. Es wird einfach mehr gefangen genommen. Es ist nicht. Geh. Also wie wir sehen können, haben wir einfach diesen grauen Hintergrund, und das ist nicht sehr nett, wenn du über Ampeily sprichst , wenn du draußen auf der Welt bist, du willst wenigstens einen Himmel, oder? Sie werden hier also sehen, wie man zumindest einen einfachen Himmel erstellt, also gehen wir zur Umwelt und zu unserer Weltumgebung Wir haben eine neue Umgebung geschaffen. Und klicken Sie darauf, um es zu öffnen . Dann haben wir unseren Hintergrund. Wir haben eine klare Farbe, aber was wir tun können, ist, eine benutzerdefinierte Farbe, Leinwand, Kamera-Feed zu erstellen, wenn Sie möchten. Aber was noch wichtiger ist, wir werden uns hier einfach für einen Himmel entscheiden. Und dann können wir in unserem Bereich Himmel weitermachen und auf Neuer Himmel klicken und dort das Himmelsmaterial öffnen. Wir können sagen, wir haben einen Panoramahimmel, prozeduralen Himmel und einen physischen Himmel. Und bei unserem physischen Himmel können Sie sehen, dass Sie hier eine Grundfarbe haben und unsere Farbe etwas dunkel erscheint. Es scheint, als ob es dort ein Problem gewesen sein könnte. Lass mich einfach wieder reingehen. Lassen Sie uns mit einem prozeduralen Himmel beginnen. Los geht's. Das ist etwas Normaleres, als du sehen würdest. Nun, das Wichtigste dabei ist, dass sich diese Oberbeleuchtung auch auf Ihr Modell auswirken kann Also das habe ich gesagt. Wir haben uns nur das Drei-Punkte-Setup angesehen, aber Ihr Himmel kann zum Tragen kommen. Nehmen wir an, wir sitzen hier in einem Lass uns gehen mit einem, ich weiß nicht, Sonnenuntergang, oder? Also unser Boden, vielleicht werden wir eher auf der grünen Seite sein, spielt da keine allzu große Rolle. Für unseren Himmel wird unsere oberste Farbe eher lila sein , oder? Und dann ist der Horizont der Ort, an dem wir unser Orange bekommen werden. Richtig. Nun, es sieht vielleicht nicht so aus, als ob wir hier viel bewirken würden, aber wir bekommen ein bisschen, wie Sie an der Beleuchtung hier sehen können, direkt vor der Nase, zum Beispiel. Also, wenn ich das nehme, kopiere ich einfach diese Farbe. Wenn wir reinkommen, dann sehen Sie hier, wie sich das auf unser Modell auswirkt. Ich werde das einfach wieder da reinstecken. Und innerhalb dieser Umgebung können wir auch andere Eigenschaften einsetzen, die sich auf unsere Welt auswirken können, wie zum Beispiel das Leuchten. Und natürlich deine Optionen , wo du mit dieser Blüte weitermachen willst. Das gehört also zu Ihrer Entschuldigung für eine Sekunde, die Nachbearbeitung. Das ist es, womit wir uns befassen? Also deine Blüte, deine Stärke bei all dem Zeug, die Intensität. Also, du hast all diese Dinge , mit denen du spielen kannst, aber wenn du das ausschaltest, hast du Nebel, der deine Beleuchtung beeinflussen kann. Und dann haben wir auch volumetrischen Nebel , der Ihre Beleuchtung beeinflussen kann Also müssen wir hier alle verschiedenen Dinge berücksichtigen Und vor allem SDFGI hier. Dies wird sich auf die Leistung Ihres Spiels auswirken, aber wir werden hier auch eine realistischere Lichtsimulation eine realistischere Lichtsimulation mit unserem Charakter Los geht's. Und natürlich können Sie jederzeit die kleinen Effekte, die wir hier haben können, optimieren und sich etwas einfallen lassen, das Ihnen Spaß macht Offensichtlich ist Dichte ein bisschen verrückt. Oh, das ist ok, mein Fehler. Habe auf den falschen geklickt, SDFGI. Los geht's. Das ist also die Berechnung all unserer Lichtreflexe. Und da haben wir es. Jetzt können wir etwas haben, das etwas realistischer und dynamischer sein könnte. Zum Beispiel unsere Sprungfüße hier. Damit kannst du optimieren. Kaskaden Das geht von eins bis acht Je niedriger die Zahl, desto mehr Leistung wird sie Dann können Sie sehen, wie es diese Sprünge berechnet , wenn wir eine geringfügige Änderung erhalten, und dann auf acht steigt Dann sehen Sie, wir haben noch mehr von diesen Schatten berechnet , wie hier mit dem Hals und dann in dem kleinen, es ist kein Klatschen in den Das wären wohl Fallen unserer Jungs Trap Zoids rappt immer auf Trapezius. Moment mal, das hat sich nicht richtig angehört. Aber du verstehst die Idee. Damit können wir einen einfachen Himmel erstellen, auf unseren Charakter auswirken kann, und ich habe dir gezeigt, wie man ein grundlegendes Drei-Punkte-Setup macht. Du wirst also ein Dreieck haben. Hintergrundbeleuchtung immer direkt dahinter. Wo auch immer sich Ihr Schlüssellicht oder Ihr Hauptlicht befindet. Das Fülllicht wird auf der anderen Seite sein und ein niedrigeres Energieniveau nur um die Schatten nicht so grell zu machen. Natürlich, Wort Umgebung, eine neue Umgebung erstellen, Himmel für den Modus, einen neuen Himmel erstellen, und schon geht es mit dem prozeduralen Himmelsmaterial weiter. Ordnung. Hoffentlich habe ich dir eine ziemlich gute Vorstellung davon gegeben , wie gut Licht dein Objekt am Ende des Tages wirklich beeinflussen kann dein Objekt am Ende des Tages und wie wichtig Beleuchtung sein kann. Ich werde weitermachen und Ihnen ein paar Vergleiche zeigen Ihnen ein paar , hier am Ende von Dingen ohne Beleuchtung und nachdem sie in Ordnung waren, also hier auf dem Bildschirm, Sie sagen, das falsche Fenster dort. Aber hier sieht man ein Vorher und Nachher, wenn es um die Beleuchtung geht , und man hilft einfach dabei, diese Atmosphäre zu schaffen, besonders bei einem Bild wie diesem, man kann sehen, wie wichtig es wirklich sein kann, gut mit Licht und wie viel man wirklich beeinflussen oder sehen kann. Ich gehe von etwas, das vielleicht alt oder einfach irgendwie okay aussieht , zu etwas Neuerem, vielleicht etwas realistischer aus. Und wenn ich vielleicht eher eine gruselige Atmosphäre anstrebe, und das gibt dir hier einfach eine ziemlich gute Vorstellung Also vorher und nachher, wenn es um Beleuchtung geht. Lassen Sie sich also nicht lumpen, wenn es um Beleuchtung geht. Das ist sehr wichtig, vor allem, wenn Sie alleine arbeiten und im Jahr 380 so etwas machen wollen Wir haben viel Zeit und Aufmerksamkeit darauf verwendet Beleuchtung wirklich zu erlernen. Und es gibt Leute da draußen, die sich ausschließlich auf Lichtumgebungen und Szenen und solche Dinge als ihren Job konzentrieren Lichtumgebungen und Szenen und solche Dinge , würde ich sagen, oder? Sie machen vielleicht auch andere Dinge, aber sie konzentrieren sich auf all die kleinen Dinge , die einem als Spieler in einem Spiel vielleicht nicht auffallen , oder wenn Sie bei der Beleuchtung einer Szene die Beleuchtung berücksichtigen, vielleicht um visuelle Effekte zu erzielen. Aber da haben wir's. Ich werde nicht weiter schimpfen. Ich wollte Sie nur wissen lassen wie wichtig die Beleuchtung sein wird, wenn es um drei D im Gegensatz zu zwei D geht, Ihnen zeigen, wie Sie zumindest einen einfachen Himmel erstellen und Ihnen visuell den riesigen Unterschied zeigen können , etwas, das selbst eine einfache Dreipunktbeleuchtung bewirken kann. 47. 3D-Assets: In Ordnung, willkommen am 1. April. Und in diesem Abschnitt werden wir weitermachen und Frogger erneut erstellen Nur dieses Mal werden wir es in drei D erstellen . Auf diese Weise haben Sie einen fairen Vergleich, ich denke, könnte sagen, zwischen der Arbeit in zwei D und drei D, und das sollte Ihnen eine Vorstellung von den Gemeinsamkeiten und Unterschieden geben und Ihnen vielleicht eine Vorstellung von Ihrer eigenen persönlichen Präferenz geben, die Sie vielleicht verärgern möchten. Okay, also ich werde einfach einfache Würfel verwenden, nur einfache Meshes, wenn ich weitermache und es erstelle, aber wenn Sie drei D-Modelle in Ihrem Programm verwenden möchten, können Sie das tun, wenn Sie sie erstellen möchten, werden Sie verrückt. Wenn Sie schon welche haben, ist das großartig. Wenn Sie jedoch drei D-Modelle verwenden möchten und Ihnen keine zur Verfügung stehen, können Sie online gehen und überall drei D-Modelle finden. Dieser Ort hier ist zum Beispiel Sketchfab, und sie haben sowohl kostenlose als auch kostenpflichtige Modelle Alles was Sie tun müssen, ist, dass Sie Ihre Suche hier oben durchführen können dass Sie Ihre Suche hier oben Klicken Sie auf Herunterladen, damit alle Ihre Ergebnisse heruntergeladen werden können. Auf diese Weise wird jede Situation vermieden , in der jemand vielleicht nur etwas vorgibt. Und wenn Sie jetzt kein Geld ausgeben möchten, gibt es viele kostenlose Optionen. Und diese hier mit dem Dollar-Zeichen in der oberen rechten Ecke. Oh, den kann ich nicht sehen. Also kommen wir mit dem Dollarzeichen hierher, oberen rechten Ecke. Hier. Das sind diejenigen, die Geld kosten werden, aber die, die dieses Dollarzeichen nicht haben. Und das Laden dauert nur eine Sekunde. Und du kannst weitermachen. Du kannst es dir ansehen. Du kannst es dir ansehen, was toll an Fab ist. Sie können weitermachen und einfach hier auf Ihrem kostenlosen Moth auf den Download-Button klicken. Wenn Sie bereit sind, Geld auszugeben, müssen Sie natürlich zuerst das Ganze in Ihren Einkaufswagen legen, auschecken und all das Zeug durchgehen das Ganze in Ihren Einkaufswagen legen, . Aber das ist nur, wenn du willst. Ich habe hier ein paar Gratisfrösche gefunden, die du gebrauchen könntest. Ich weiß nicht, ob irgendwelche davon animiert sind oder nicht. Sie müssten das individuell überprüfen. Und dafür würden Sie hier zu weiteren Modellinformationen gehen, und dann können Sie alle Informationen abrufen, all die verschiedenen Modelltypen und GLB, GLTF und FBX sowie OBJ Aber OBJ, ich kann dir garantieren, dass es bei einem OBJ nur für ein statisches Objekt keine Animationen gibt einem OBJ nur für ein statisches Objekt . Und du kannst tatsächlich runterkommen Du kannst PBR sehen. Es sind all deine Materialien Es hat vier Texturen speziell für den Sproc. Also, wenn es nicht automatisch angewendet wird, müssten Sie in die Materialien gehen und diese Texturen laden, wie wir im Abschnitt „ Übergang“ gesehen haben Und als wir herunterkommen, können wir sehen, dass dieser hier keine Animationen hat und dass er nicht manipuliert ist Sie müssten es also manipulieren, bevor Sie es animieren können wenn Sie Ihre eigene Animation erstellen wollten Und es gibt keine Animationen , die damit geliefert werden, offensichtlich ist es nicht manipuliert Alternativ haben wir hier auch ein paar Logs, die Sie hier bekommen können . Ein Truck ist hier, völlig kostenlos Wenn du also Modelle haben möchtest, kannst du hier zu einem Ort wie Sketchfab gehen und nach einigen kostenlosen Modellen suchen und sie herunterladen Wenn Sie nur die Grundformen wie Würfel verwenden möchten , wie ich sie dafür verwenden werde, dann ist das auch völlig in Ordnung, da wir nicht mit drei D-Modellen arbeiten Wir machen nichts Ausgefallenes oder Spezifisches. Wir bewegen so ziemlich nur Dinge auf dem Bildschirm. Wir brauchen keine ausgefallenen Animationen, damit das alles funktioniert. Ordnung, es liegt an dir welchen Weg du gehen möchtest, ob du welche erstellen, einige kostenlose finden und sie herunterladen möchtest, oder ob du einfach die Grundformen verwenden möchtest , die mit der Engine geliefert Es liegt an dir. mach ich es für diesen. Es liegt an dir, darüber nachzudenken. Und wenn Sie drei D-Modelle verwenden möchten, verbringen Sie jetzt Ihre Zeit damit, sie zu sammeln und zusammenzustellen. Wenn Sie sie importieren möchten, können Sie sie genauso wie Ihre anderen Assets in Ihren Projektordner ziehen. In Ordnung, lass uns anfangen. 48. Rasterkarten: Ordnung, alle zusammen. Genau wie in der 2-D-Version werden wir damit beginnen, den Hintergrund dafür zu erstellen den Hintergrund dafür Und um das zu tun, werden wir ein paar Dinge benötigen. Zuallererst brauchen wir hier eine Kamera, die nach unten gerichtet ist, damit wir tatsächlich sehen können, was hier vor sich geht. Also mach weiter und predige eine Drei-D-Szene, was nur ein Nein-Drei D für deine Wurzel wäre Ich habe meins in Main umbenannt. Fügen Sie hier eine Kamera mit drei D hinzu, und Sie können weitermachen und eine Rasterkarte hinzufügen. Die Gridmap ist die Drei-D-Version einer Kachelkarte. Und mit Ihrer Drei-D-Kamera können Sie weitermachen und Ihre Y-Position unter dem Transformationsbereich auf 25 und Ihre X-Drehung auf minus 90 setzen dem Transformationsbereich auf . Auf diese Weise können Sie direkt nach unten schauen. Wenn Sie diese Szene nachspielen würden, Sie ein graues Feld sehen. Fantastisch, aber zumindest wissen wir, dass die Kameras standardmäßig funktionieren oder zumindest geschlossen sind. Wenn Sie diesbezüglich paranoid sind, können Sie weitermachen und den Strom im Inspektor ankreuzen Aber da wir nur eine Kamera haben, sollte diese die einzige sein, die momentan eine Grid-Map aktiviert NRT ist eine Gridmap. Wir müssen unsere Kacheln gesetzt haben, oder? Kunst ist eine Kachelkarte. Wir brauchen ein Kachelset. Nun, für eine Grid-Map brauchen wir eine Mesh-Bibliothek. Und wir können eine neue erstellen, aber sie enthält keine Ressourcen. Was wir also tatsächlich tun müssen, ist diese Bibliothek zu erstellen. Um das zu tun, werden wir weitermachen und eine neue Szene erstellen, und Sie können einfach wieder einen Knoten drei D als Ihren Stammknoten für unsere Szene erstellen. Und wieder, das ist nur eine neue Drei-D-Szene, und du wirst eine haben. Und alles, was ich für die Straße, das Wasser und den Median mache, ist, dass ich einfach die Texturen der beiden D Frogger einfüge, die Sprites reinbringe und sie als Albedo-Textur verwende sie als Und ich lasse einfach ihre Und ich zeige dir, wie ich das mache. Also bin ich reingegangen und habe eine Mesh-Instanz drei D erstellt . Ich mache weiter und benenne sie um. Das wird mein Messingblock für mein Mesh sein Ich mache weiter und öffne es und wähle ein Box-Mesh aus. Wenn Sie nun ein benutzerdefiniertes Netz, ein benutzerdefiniertes Modell hier hätten, wenn Sie es speziell für diesen Block einsetzen möchten, könnten Sie das Mesh an diese spezielle Stelle ziehen . Dieses Netz, dieses Objekt. Hier würdest du es tun. Nun, nur für diese Blöcke und die Grid-Map solltest du das nicht brauchen, solltest du das nicht brauchen es sei denn, du bringst deine eigenen , benutzerdefinierten Meshes für jeden deiner Blöcke Nun, dieser Block ist hier einfach komplett weiß, und Sie werden feststellen, dass er viel kleiner ist Ich werde nur die anderen hier verstecken, damit wir uns auf diesen konzentrieren können. In Ordnung. Also als Erstes müssen wir zur Skala gehen und XY und Z auf das Zweifache auf der Skala einstellen . Und der Grund, warum wir das tun, ist, dass es einen ganzen Block unserer Grid-Map passt , anstatt an einer seltsamen Position am Rand oder zur Seite zu liegen. Es ist einfach einfacher für uns, das zu tun, einfach doppelt. In Ordnung, wir haben also unseren kleinen Würfel hier. Nun, was wir brauchen, ist eine Textur drauf. Also, was wir tun werden, ist , den Oberflächenmaterial-Override zu öffnen . Und der Grund, warum wir das tun werden. Oh nein, das Chaos gehört dazu. Also können wir einfach den Netzbereich öffnen und da ist das Material. Und wir fügen einfach ein Standardmaterial hinzu und öffnen es. Und hier ist unsere Albedo-Textur. Und hier würden wir unsere Frogger-Sprites einsetzen. Und für meinen Grasblock hier könnten wir weitermachen und ihn nach Hause bringen, wenn wir wollten Das könnten wir machen, aber es sieht gar nicht so toll aus. Das ist irgendwie komisch. Und ich persönlich bin kein großer Fan davon. Also, was ich persönlich damit mache ist, die mittlere Textur zu nehmen und sie dort zu platzieren Und dann, nur aus persönlicher Präferenz, werde ich speziell auf die UV-Skala herunterkommen und hier einfach meine Skala von meinen UVs auf zwei einstellen hier einfach meine Skala von meinen UVs auf Ich denke, das sieht zumindest ein bisschen besser aus. Nun, das Problem ist, das sieht genauso aus wie unser Median, und wir könnten den Unterschied nicht erkennen Also hier werde ich den nächsten Durchgang hier in unserem Material verwenden , und ich werde hier ein weiteres Standardmaterial hinzufügen Wenn ich das öffne, stelle ich die Albedo auf ein schönes Grün ein, das halbtransparent ist Ich gehe zum Bereich Transparenz und setze die Transparenz auf Alpha. Und da haben wir's. Wir haben eine grüne Version des Medians, also sticht er heraus und ist anders genug Also, du müsstest das nur für den Grasblock machen , wenn du mich damit kopierst Und für den Median benutzt du natürlich einfach die mittlere Textur, die doppelte Größe, Wasser Du kannst dasselbe und dasselbe mit der Straße machen. Und wenn du das hast, würde ich empfehlen, das zu speichern, also Control S. Oder du gehst natürlich zu deinem CN und speicherst und speicherst es als deine Mesh Lib, Mesh Library. Und das ist nur für den Fall, dass du zurückkommen und das in Zukunft bearbeiten möchtest , was wir wahrscheinlich irgendwann tun werden, nur zur Vorwarnung. Und wenn Sie das getan haben, können wir zu SN gehen und zu Exportieren als gehen, und Sie werden die Mesh-Bibliothek als Option sehen. Ich weiß, dass du es jetzt nicht auf meinem Bildschirm sehen kannst, sondern nur SN-Export als Mesh Library. Und wenn Sie das tun, wird Ihnen dieser Bildschirm angezeigt. Nicht ist groß. Da hast du's. Und nur zur Sicherheit werde ich weitermachen und sicherstellen, dass die Fly Meshed Instance uns anschaltet, obwohl es uns gut gehen sollte Und speichere es einfach irgendwo. Ich habe gerade Min MAP aufgerufen und verwende die Mesh Lib-Erweiterung nur, und verwende die Mesh Lib-Erweiterung um die Dinge zu organisieren, weil ich nicht möchte, dass zum Beispiel alles Res oder Trez heißt , dass zum Beispiel alles Res oder Trez Ich mag es, Dinge richtig zu benennen also Mesh Lib oder Material, Shader, solche Dinge Ich möchte, dass sie dafür sorgen, dass die Erweiterungen für das , was sie sind, relevant Sobald Sie das haben, sagen Sie es und auf die Schaltfläche Speichern. Wenn Sie in Zukunft bereits eine erstellt haben und Sie zurückkommen und sie bearbeiten, können Sie weitermachen, indem Sie sie einfach überschreiben. Es wird dir gut gehen Und zurück in unserer Hauptszene können wir tatsächlich zu unserer Grid-Map gehen. Und wenn Sie herausfinden, wo Sie Ihre Mesh-Lib gespeichert haben, können Sie weitermachen und sie in den Mesh-Bibliotheksbereich Ihrer Grid-Map ziehen den Mesh-Bibliotheksbereich , und los geht's. Sie haben alle Ihre Teile dort. Nun, ich habe Grass Block und Grass End, nur wegen meiner Benennung, und ich habe einfach mein Set so eingestellt, dass es etwas hinzufügt, anstatt zu überschreiben. Ich werde einfach wieder reinkommen und überschreiben zur Mesh-Bibliothek exportieren gehen Und ich werde sagen, dass ich das Häkchen entfernen und mit bestehenden zusammenführen werde Häkchen entfernen und mit bestehenden zusammenführen Auf diese Weise überschreibe ich es einfach komplett und ersetze es. Und jetzt, wo ich herkomme, habe ich einfach meine normalen Blöcke. Fantastisch. In Ordnung. Nun, für das Projekt verwende ich dieselbe Auflösung, die ich für Frogger auf r2d3 36 x 256 verwende Frogger auf r2d3 Und wenn ich das durchführe, werde ich es leichter haben , meine Blöcke zu platzieren In Ordnung. Nun, du wirst sehen, solange wir den grauen Block da haben, oder es sieht nicht so aus, als hätten wir etwas an unserem Fenster. Du wirst sehen, wenn wir etwas platzieren, wird es erscheinen. Und so werden wir feststellen, wo unsere Grenzen liegen. Das werden wir tun. Wenn ich herkomme, werden wir unsere Grenzen skizzieren. Das ist die Spitze, was bedeutet, dass ich mit meiner Kamera in diese Richtung schauen sollte . Lass uns sehen. Das ist immer noch auf dem Bildschirm. Das ist ein bisschen zu weit. Okay. Also das wird dieser Block sein. Du kannst über einen gehen. Und ich werde es dort in diesem Block nennen. Und jetzt geht es nur noch darum , die anderen Ecken zu finden, wenn du die Rasterfelder herauszählst, solltest du sie leicht finden können Das sollte meine Ecke dort sein. Und dann sollte unsere Ecke genau hier sein, noch eine? Ja. In Ordnung, also da ist die Ecke all unserer Positionen. Nun, wenn du es platzieren willst, mit der linken Maustaste klickst, wenn du nicht weißt, wie man es löscht, hast du es nicht herausgefunden. Es ist ein Rechtsklick. Und jetzt können wir anfangen, unsere Objekte zu platzieren. Unser Median ist hier also unsere zweite Reihe. Wir hatten die Straße in der ersten Reihe. Wir hatten Straße an dritter, vierter, fünfter, sechster und siebter Stelle. Dann hatten wir wieder Median. Wir gehen rüber, wir hatten noch fünf Reihen für Wasser. Eins, Haken zwei, drei, vier und fünf. Mal sehen, was wir als Nächstes haben? Wir hatten unsere Windzone. Also für diese werde ich hier an den Enden das Doppelte zahlen. Das liegt daran, dass es hier eine ungerade Zahl ist. Und wir werden Doppelgänger haben, einfach so. Drei Knochen, eins, zwei, drei, unten, eins, zwei, drei, unten, eins, zwei und drei runter Ich werde diese leeren Stellen mit Wasser füllen. Und dann hatten wir die hintere Reihe, die nur aus Wasser bestand, wo sich ein Teil unserer Benutzeroberfläche befand. Lassen Sie uns weitermachen und das noch einmal ausfüllen. Und da haben wir es. Wir haben die Kamera benutzt, um sicherzustellen , dass wir unseren gesamten sichtbaren Bereich hier ausgefüllt haben. Nun, das ist ziemlich dunkel, wie Sie sehen können, und das liegt daran, dass wir keine Beleuchtung haben. Also werde ich hier auf meine Hauptnotiz klicken und ein Licht hinzufügen. Und speziell werden wir ein gerichtetes Licht hinzufügen damit wir quasi einen Sonnenuntergang emulieren können Ich werde es nach oben heben, heranzoomen, damit ich sehen kann, in welchen Winkel es zeigt und es nach unten richten Los geht's. Jetzt scheint etwas Licht auf unser Kachelset oder unsere Grid-Map , sodass wir sehen können, was hier vor sich geht. Ordnung. Also das ist alles, was wir hier tun müssen. In diesem Video. Nun möchte ich anmerken, dass wir uns hier auf Etage Null befinden. Wenn Sie jedoch auf minus eins herunterfallen möchten, werden Sie sehen, dass wir hier den Weltraum absenken werden. Wenn du eins runtergehen willst, kannst du das sicherlich tun, nur damit es sich nivelliert, sodass 00, Null auf unseren Objekten sitzt, oder damit wir, sagen wir, einen Frosch haben können , der bei Null, Null sitzt und auf dem Boden wäre, anstatt ihn hochheben zu müssen, was ich glaube, ich werde hier ganz anstatt ihn hochheben zu müssen, schnell durchgehen und tun. Ordnung, also ging ich weiter und senkte meine Gedanken eins nach dem anderen, und wie Sie in der Kamera sehen können, liege ich jetzt mit meinen Zahlen nur leicht daneben. Also können wir nach oben kommen und diese zusätzlichen Leerzeichen einfach ausfüllen Erkenne einfach eine breitere. Und das wird das beheben. Bum. Bum. Einfache Lösung. Einfach zu machen rs. Weißt du, ich glaube, ich werde dort an den Rändern einfach mehr Wasser reinbringen . Ordnung. Also los geht's. Da haben wir es. Ich brauche noch eine Straße unten, um das untere Gitter zu vertuschen. Jetzt gehts los. Alles klar? Wenn der Bildschirm wieder fällt, ändere ich mein Stockwerk auf Minus. Wenn wir jetzt um 00 Uhr sitzen, haben wir alles im Griff . Und da haben wir es. Wir haben unsere Grid-Map eingerichtet. Wir haben unsere Kamera auf unsere Rasterkarte gerichtet, damit wir sie aus der Vogelperspektive betrachten können. Und das reicht für diesen hier. Nun, Sie können sehen, dass das sehr einfach ist , abgesehen davon, dass wir unsere eigene Mesh-Bibliothek erstellen müssen, was ich meine, um fair zu sein, wenn Sie in Two D sind und mit Kachelsets oder Tilemaps arbeiten , müssen Sie quasi Ihr eigenes Kachelset erstellen, Es ist also kein allzu großer Unterschied, bis jetzt von zwei D auf drei D zu Wir mussten eine Kamera hinzufügen und wir mussten ein Licht hinzufügen. Davon abgesehen war unser Prozess größtenteils fast derselbe. Ich meine, bei einer Mesh-Bibliothek mussten wir das exportieren, um das einzurichten. War ein Kachelset, wir mussten uns mit einem speziellen Kachelsatz-Bereich hier unten herumschlagen . Es gab also kleine Unterschiede, aber vieles davon war dasselbe. Da war es nicht allzu anders. Ordnung? Sobald Sie Ihre Karte ausgebreitet haben, sich auf die gewünschte Etage begeben, Ihre Kamera eingestellt haben, können wir weitermachen und mit dem nächsten Abschnitt fortfahren. Ich habe vergessen, was wir als Nächstes gemacht haben, also muss ich zurückgehen und es mir ansehen. 49. Den Spieler erstellen: Ordnung, also hier werden wir weitermachen und unseren Player erstellen, und ich werde dir zeigen ob ich weitermache und das ganz schnell beende Ich werde Ihnen zeigen, ob Sie sich dafür entscheiden, hier ein Three D-Assets zu verwenden hier ein Three D-Assets und vielleicht einige heruntergeladen oder erstellt Siehst du, ich habe hier einen GLB für einen Bug. Mit drei Texturen hier. Nun, das sollte automatisch angewendet werden, und ich klicke einfach mit der rechten Maustaste darauf und wähle eine neue geerbte Szene aus. Ich weiß, dass Sie das nicht sehen können, aber ich werde eine neue geerbte Szene auswählen. Und Sie werden sehen, dass ich meinen neuen Froggi jetzt als eigene Szene habe, und alle Texturen sollten für mich vollständig angewendet werden Nun, wenn Sie das Modell auf jeden Fall verwenden möchten, entscheiden Sie sich dafür Wenn Ihr Modell Animationen hatte, werden Sie in der Szenerie einen Animations-Player sehen. Und wenn Sie diesen als Player verwenden möchten, können Sie ihn als Player speichern. Nun, das ist in diesem Fall ein Knoten drei D. Also müssten wir das ändern. Was machst du mit der rechten Maustaste und änderst, hast du dort die Änderungsoption? Wenn ich jetzt weitermache und hier auf meinen Frosch doppelklicke , bevor wir die Szene öffnen, wechselt er zu C, ich habe dafür keine Option. Es ist interessant. Mal sehen ob ich eine Option habe , wenn ich hierher gehe. Okay, du doppelklickst also auf die Szene. Wir besorgen den Importeur für Three D Frog. Und wir können hier einfach zum Root-Typ kommen. Klicken Sie darauf und wählen Sie Charakterkörper drei D. Es gibt keinen Grund für mich, es zu fangen. Das ist dasselbe wie das Erstellen eines neuen Knotens, derselbe Bildschirm. Ich kann einfach auf Charakterkörper drei D klicken und auf Erstellen klicken. Und jetzt, wo ich einen Charakterkörper habe oder er sollte unten auf die Schaltfläche für den Reimport klicken Schließe die alte Szene, klicke mit der rechten Maustaste und mache die geerbte Szene Ich kann sehen, dass mein neuer Frosch hier einen tendematischen Körper hat. Wenn Sie also ein Drei-D-System verwenden möchten, können Sie das tun Mach dir einen kleinen glücklichen Frosch, beweg dich. Wie ich schon sagte, dieser hat keine Animationen. Also würde er einfach springen Nun, ich würde sagen springen, aber nicht wirklich springen, oder? Er würde sich nur ein Feld nach dem anderen bewegen. Und wenn du dich nur für die Basisversion entscheiden willst , bist du vielleicht nicht superschnell in drei D, aber du weißt schon, du musst zumindest ein bisschen lernen , deine Zehen ein bisschen eintauchen. Wir werden eine neue Szene erstellen, zum anderen Knoten gehen , einen Charakterkörper mit drei D erstellen . Und wir werden auch eine Mesh-Instanz hinzufügen Die Mesh-Instanz , bei der Sie einfach eine Box verwenden können und damit sie mit allem anderen übereinstimmt, setzen wir die Skala auf zwei Ich füge ein Standardmaterial hinzu. Und da er mein kleiner Frosch ist , nehme ich einfach so etwas wie Gelbgrün Und das ist alles, was wir wirklich brauchen. Nun, wenn du willst, könntest du reinkommen und einige deiner anderen Slider hier anpassen Siehst du, wir haben hier jetzt einen glänzenden Frosch. Spiegelglanz steigt und Frösche sind kein Supermetall, also ist da nur ein bisschen Metall drin Und das könntest du einfach mit einem kleinen Frosch machen. Und wenn du vorhast, nur von oben nach unten so aussehen zu lassen, und du das zu keinem Zeitpunkt tust, dann plane, die Kamera vielleicht hierher zu bewegen Aber wenn Sie es hierher verschieben, würde ich vorschlagen, dem Windbereich auf der Rasterkarte eine zweite Ebene hinzuzufügen , nur damit wir es aus dem Boden herausspringen lassen . Aber wenn Sie nur planen, von oben nach unten zu gehen, äh, wonach suchen wir Material. Was du tun könntest, fließt in deinen Frosch oder deine Sprites ein. Hey, du kannst den kleinen Frosch wegen der Textur da reinbringen und Oh, er sieht nicht besonders gut aus, also wollen wir das vielleicht nicht machen Hmm. Nun, ich erwarte, dass das ein bisschen anders läuft. Aber ich glaube nicht. Aber ich denke, wir könnten weitermachen und einfach diese Textur für die Froschfarbe verwenden , wenn wir sie wollen, oder Sie können sie einfach grün machen, oder Sie können Ihr eigenes Drei-D-Modell einsetzen, stellen Sie sicher, dass Ihr Wurzelknoten hier ein Charakterkörper mit zwei D ist . Welchen Weg Sie damit gehen wollen , liegt ganz Ich habe zu Beginn gesagt, dass ich mich einfach an die Grundformen halten werde, die bereits hier drin sind, anstatt nach drei D-Modellen zu suchen und diese zu Beginn gesagt, dass ich mich einfach an die Grundformen halten werde, die bereits hier drin sind, anstatt zu finden . Aber wenn du das machen willst, sorge dafür, dass du besonders gut aussiehst. Fantastisch. Ich ermutige dich. Okay, ich mache es einfach so und benenne meinen Charakterkörper in Frosch um, oder wollen wir spielen gehen? Ich werde meinen Spieler umbenennen, und ich brauche im Moment eigentlich nichts anderes als das Ich mache weiter und speichere meine Szene als Spielerszene. Ich kann nach Maine gehen und wir können unseren Spieler reinbringen. Den ganzen Weg zurück zum Anfang. Seitdem wir all diese Schnappschüsse mit dem Raster gemacht haben, es perfekt ausgerichtet. Er ist genau in der Mitte In Ordnung. Also lass uns sehen. Würde er sich wirklich damit abfinden? Perfekt. In Ordnung. Also, egal für welche Spielerroute du dich entscheidest, oder ich hole unseren kleinen Kumpel her. Du. In Ordnung, damit Nimm den Frosch oder den Würfel, Textur, was auch immer du zu deinem Frosch willst Sobald du das hast, mach weiter und speichere es. Mach das sofort. Und wir sehen uns in der nächsten, wo wir anfangen werden , die kleinen Bewegungen einzubauen. 50. Spielerbewegung: Ordnung, lassen Sie uns weitermachen und die grundlegende Spielerbewegung für unseren kleinen Frosch erstellen die grundlegende Spielerbewegung für unseren kleinen Frosch Also bin ich gerade zu unserer Spielerszene hier gegangen und habe das Drehbuch geschrieben. Unser kleiner Frosch und in unserem Drehbuch sind wir startklar Wir können direkt in unsere Prozessfunktion einsteigen. Nun, da wir mit drei D arbeiten, sollte ich sagen, dass alles, was in Zukunft mit Kollisionserkennung und physikalischen Körpern zu tun hat , am besten wäre, am besten wäre Dinge, die speziell mit ihnen zu tun haben, wie Bewegung, einem physikalischen Prozess unterzuordnen. Anstatt des regulären Prozesses sind dies zwei verschiedene Zeiten in einem Frame. Und nochmal, für dieses Spiel sollte das nicht so wichtig sein, aber ich dachte mir, ich lasse dich für die Zukunft einfach wissen, falls du dich dazu entscheidest, weiterhin dreidimensionale Spiele zu entwickeln, dass alles, was mit Physik zu tun dreidimensionale Spiele zu entwickeln, dass alles, hat, wie Bewegung, einem physikalischen Prozess unterliegen sollte und nicht nur einem regulären Prozess. Ordnung, also werde ich weitermachen und wir werden unsere Bewegungsfunktion erstellen. Also Bewegung, das wird nichts zurückgeben. Jetzt habe ich schon meine Funktionen oder keine Funktionen, tut mir leid. Meine Bewegung ist immer noch eingerichtet, da ich im selben Projekt bin. Denken Sie daran, zu den Projekteinstellungen Ihres Projekts zu gehen. Gehen Sie zu Ihrer Eingabekarte. Und von dort aus können Sie weitermachen und Ihre Eingaben einrichten. Wenn Sie das aus irgendeinem Grund nicht eingerichtet haben, machen Sie das vielleicht in einem eigenen, separaten Projekt, was wiederum nett wäre, wäre gut. Aber ja, ich wollte nur ein stilles Minen-Setup haben ein stilles Minen-Setup so wie es von den beiden D-Froger war Ordnung. Also innerhalb einer Bewegung. Alles was wir tun müssen, ist natürlich zu überprüfen, sagen wir, dass ich den Punkt eingegeben habe, ist Aktion gedrückt. Sagen wir einfach gedrückt, weil wir es nicht spammen wollen. Die Aktion, die wir überprüfen möchten, wird aktiviert. Das habe ich Action genannt. Und um unseren kleinen Frosch zu bewegen, weiß ich noch, haben wir die Selbstpunktposition verschoben Also, in diesem Fall sind wir dreidimensional. Wir müssen hier mit einer Z- oder Z-Achse arbeiten. Und mal sehen, was passiert, wenn wir das tun. Ups, Ei in meinem Gesicht. Ich habe nie Bewegung genannt Deshalb funktioniert es nicht. Sie haben also die Art, Dinge zu benennen. Wir haben die grundlegende Art, Dinge anzurufen, verändert, und das wird uns sagen, dass wir keine einzige Nummer verwenden können. Wir müssen uns für einen Vektor Drei entscheiden, und das ist für ein weit fortgeschritteneres Thema wenn wir anfangen, uns mit Dingen wie Matrix, Matrizen und ähnlichen Dingen zu Matrizen und ähnlichen Dingen Punkt mit dem Ursprung des Transformationspunkts Z wäre also der andere einfache Punkt, den Sie verwenden könnten Sie können sehen, dass sie für uns identisch funktionieren. Abhängig von Ihrer Situation und Ihrem Spiel müssen Sie jedoch möglicherweise das eine oder das andere verwenden oder bevorzugen . Das ist eines dieser Dinge , die situationsbedingt sein können. Wenn Sie die Dinge so nah wie möglich an der Tut-Version halten möchten , können Sie Position D, Position DZ wählen Ich gehe einfach zu transform.org weil es etwas ist, das wir normalerweise verwenden wollen wenn es um drei D geht, würde ich sagen Oft ist es das was Sie im Backend sehen Sie schauen sich den Code anderer Leute an, zumindest aufgrund meiner Erfahrungen, wenn ich andere Leute sehe. In diesem Fall können Sie also weitermachen und ich schätze, den verwenden, den Sie hier verwenden möchten, und wir können das Ihren persönlichen Vorlieben überlassen Ich werde das Ganze aufschreiben. Das liegt an dir. Und wir können weitermachen und die anderen eintragen, die letzten drei für unsere obere und untere linke Hand. Alles klar, also ihre Achse wurde jetzt nach unten links, rechts geändert, und das sind alles Nun, wenn oben negativ sein wird, dann wird unten positiv Nun, links wird negativ sein, aber nicht auf der Z-Achse. Es wird auf dem X sein. Und wenn das auf dem X negativ ist, dann wird rechts auf dem X positiv sein. Also können wir weitermachen und das versuchen. Und da haben wir's. Wir sollten uns in alle Richtungen bewegen, da wir alle unsere Windzonen brauchen und in sie passen . Da haben wir's. Fantastisch. In Ordnung, so weit, so gut. Also, was ist, wenn du ein bisschen Froggi rotieren willst? Vor allem, wenn Sie ein eigenes 3-D-Modell verwenden , möchten Sie es vielleicht wieder drehen , wenn er sich bewegt, genau wie wir es mit unseren beiden D-Froggi gemacht haben Nun, hier werden wir weitermachen und Selbstrotation Grad Y einstellen, ich glaube, das wird hier sein Und ich setze es auf Null, wenn unten 180 sein wird. Links ist, glaube ich, 90, und rechts ist minus 90. Lass uns weitermachen und das überprüfen. Und jedes Mal, wenn wir uns bewegen, dreht sich unser kleiner Frosch in der Position, in der er sein muss Auch hier liegt es ganz bei Ihnen, ob Sie es so einrichten möchten Und wieder, wenn du wirklich willst, kannst du reinkommen und du kannst ein S haben, um es standardmäßig wieder nach vorne zu drehen , sodass du sehen kannst, dass, wenn du dich bewegst , es nicht sofort umdreht, wie wir es bei zwei D erwarten würden. Also müssten wir reinkommen und nur eine kleine Pause einlegen. Mir selbst macht es nichts aus. Vielleicht liegt es nur daran, dass ich den Würfel mache, aber ich werde den S-Block einfach nicht da drin haben. Aber damit haben wir unsere Grundbewegung, und wir können anfangen, Dinge wie Autos zu bekommen, von unseren Autos gequetscht zu werden und dann unsere Plattformen dazu zu bringen, auf den Tod durch Wasser zu springen, Windzone, unsere Klebrige wieder aufzubauen Und sofern ich nichts vergesse, haben wir unsere 3-D-Version komplett eingerichtet Oh, nun, nicht die Antwort wird Teil des Todes sein , ja, also los geht's Okay, hier sind also die Bedienelemente. Das bekommen wir für unseren Bruder mit drei D, denk dran, dich Bewegungsfunktion innerhalb des Prozesses zu nennen Und denken Sie daran, wenn Sie in Zukunft mit Drei-D-Spielen weitermachen wollen, irgendwas mit Physik zu tun haben, wie Bewegung, weil ich mir sicher bin , dass Sie dort Kollisionen haben werden Sie werden lieber beim physikalischen Prozess bleiben als beim Prozess Aber richtig. Da hast du's. Da ist unsere Spielerbewegung. Und lass uns weitermachen und zur nächsten springen. 51. Fahrzeug erstellen: Ordnung, also lasst uns weitermachen und unsere kleinen Fahrzeuge bauen , mit denen wir im Spiel spawnen können Nun, natürlich nochmal, wenn du dir drei D-Modelle für Fahrzeuge besorgst und dann, genau wie der Frosch, können wir weitermachen und sie reinbringen Achten Sie darauf, dass sie in die richtige Richtung zeigen. Das sollte klar sein, sollte klar sein wenn wir am Ende angelangt sind, wenn Sie sehen, dass sie sich bewegen. Was? Mach weiter und spawne sie in dieser Szene oder erstelle einen Gegenstand aus dieser Szene. Speichere es als dein Fahrzeug Und wenn du die Grundblöcke mit mir machst, dann mach weiter, wir werden weitermachen und uns selbst kreieren. Wir bauen uns einen kleinen Truck. werden uns so nah wie möglich an die 2-D-Version halten und unseren Charakterkörper kreieren. Es heißt dieser Truck. Und natürlich braucht es ein Netz gegen den Zusatz hier. Und ich werde weitermachen und eine Box hinzufügen. Geh. Nun, um bei unseren zwei mal zwei zu bleiben, werde ich die Skala hier um zwei erhöhen und sie dann erhöhen. Mir geht es gut, das sollte also unserem Spielercharakter entsprechen. Ich werde dafür sorgen, dass das alles ausgeglichen wird . Nun, du musst natürlich nichts von dem Zeug benennen , aber das wird die Rechnung sein, ich werde hier noch ein Chaos anrichten, und das wird mein Trailer sein Die Transformationsskala reicht bis zu zwei. Das wird auch ein Feld sein, eine Position, eins auf dem Y. Ich werde es auf zwei auf dem X zurückziehen und mal sehen. Ich werde weitermachen und ihm eine andere Farbe geben ihm eine andere Farbe Und wir haben keine Sicht. Wir modulieren. Also werde ich weitermachen und diesem Netz ein Material hinzufügen diesem Netz ein Material Das wird mein Wohnwagen sein. Sagen wir Standardmaterial. Öffne das und gehe zu meiner Albedo, und ich werde einfach weitermachen und dem eine Farbe geben Ich nehme etwas in der orangefarbenen Farbe. Und jetzt, wenn ich es will, kann ich weitermachen und einige dieser Ventile ändern , so dass ich mein X auf zwei setzen kann, und jetzt ist es länger, was jetzt eher wie ein Anhänger aussieht Setze meine Position bei meiner dritten Transformation wieder nach unten , sodass sie ein bisschen besser Und im Grunde genommen, von oben nach unten betrachtet, wird das unser Truck sein. Also, wenn Sie die Extrameile gehen wollen, können Sie weitermachen und eine weitere Maschine mitbringen . Wenn Sie möchten, können Sie das als Beispiel nehmen, wir gehen zu Zylindern. Großartig Also können wir das einbringen und Sie können sehen, wie wir unsere Seiten haben Und dann können wir gehen und du könntest die Größe von all dem anpassen Nehmen wir an, Sie reduzieren unsere Körpergröße auf eins, 0,5. Wir kommen vielleicht auf 0,25. Und da hätten wir ein Rad von der Seite. Wenn Sie also die Extrameile gehen und ein anderes Mesh verwenden möchten, um Ihre Räder zu erstellen, geben Sie ihm einen Shader und eine Farbe Es ist so. Das kannst du bestimmt tun. Und in diesem Fall würde ich sagen, das gesamte Netz ein bisschen weiter nach oben zu bewegen , sodass die Räder das sind, was hier auf dem Boden sein wird. Also, wenn du das auf jeden Fall tun willst, dann mach es. Werde verrückt. Wenn du nochmal deinen eigenen Truck mitbringen willst, kannst du. Und wenn du diese Formen benutzt und deinen eigenen Truck kreierst, dann mach weiter, komm zurück, und wir werden das nächste Stück fertigstellen , das wir dem Truck hinzufügen werden, und dann werden wir unsere Spinner erstellen und unsere Drehbücher schreiben In Ordnung, also habe ich weitergemacht. Ich habe ein paar Räder hinzugefügt und das Ganze verbessert, indem ich einfach all unsere Maschen ausgewählt und angehoben indem ich einfach all unsere Maschen ausgewählt und Ich drücke die Escape-Taste, damit ich alles abwählen kann. Und da ist mein einfacher Truck. Nun, wenn du willst, kannst du weitermachen und natürlich weitermachen und dir weitere Fahrzeuge bauen. Ich werde einfach mit diesem einfachen Truck fahren und los geht's. Und mit den beiden D-Aspekten durchzuhalten mit den beiden D-Aspekten , um einen fairen direkten Vergleich zu ermöglichen. Auf diese Weise können Sie sich eine einfache oder bessere Vorstellung vom Übergang von der Arbeit mit zwei D gegenüber drei D machen. Wir werden weitermachen und das mit der Bereichserkennung tun. Also werden wir einen Bereich mit drei D hinzufügen , genau wie wir es bei zwei D getan haben. Und in diesem Bereich werden wir weitermachen und hier eine Kollisionsform hinzufügen. Sie können hier sehen, dass ich einen Bereich drei D und eine Kollisionsform hatte . Diese Kollisionsform wird natürlich eine Kiste sein. Es gibt keinen Grund, es nicht zu tun. Und dann stellen Sie einfach sicher, dass Ihre Box Ihr gesamtes Fahrzeug abdeckt. Aber es ist kein Fehler, wenn dein armer kleiner Frosch zerquetscht wird Schnappen Sie sich diese orangefarbenen Griffe und ziehen Sie sie heraus. Irgendwo in der Mitte meines Trucks in der Nähe. Da haben wir's. Da liegt kein Irrtum vor. Wenn mein Frosch getroffen wird, kriegt er es. Ich werde die ein bisschen verkleinern. Ja, weil wir nebenbei eine Menge Stütze haben. Ja, im Moment denke ich, dass es in Ordnung ist. Wenn du willst, kannst du jederzeit wieder reinkommen und das später anpassen. In Ordnung? Also werde ich weitermachen und das speichern , mein Drei-D-Sammler sagt nur Truck Punkt C. Und jetzt brauchen wir für unseren Truck ein Drehbuch, richtig Weil sie ständig in Bewegung sein müssen. Und lass uns sehen. Wir werden uns auf der roten Linie bewegen, also wird sie auf der X-Achse quer liegen. Das ist fantastisch. Lass uns weitermachen und ein Skript hinzufügen. Holen Sie sich unser Truck-Skript. Und nochmal, wir werden die Dinge für unsere drei D so ähnlich wie möglich halten , so wie wir es für zwei D tun Und wir müssen uns darüber keine Gedanken machen. Wenn du das alles hast, mach einfach weiter und lösche die Teile. Diese sind für eine ganz andere, völlig andere Art von Spiel. Ja, was wäre da, wenn du nicht aufgepasst hast und dich einfach durchgeklickt hast, wie ich es dort getan habe, und du kein leeres oder kein Standardskript hattest Das war ein Charakter-Controller. Und ein Charakter-Controller ist normalerweise einer, der nun ja, diese Aspekte hat , die man sich vorstellen kann, ich denke, eher wie ein Ego-Shooter oder eine Plattform oder Dinge, die in Bezug auf RD eher in diese Richtung gehen, Para kann herumlaufen, herumlaufen und herumspringen. In unserem Fall braucht unser Truck nichts davon. Also lass uns weitermachen. L Das Gleiche, was wir zuvor gemacht haben, zum Beispiel unsere Richtungsvariable exportieren. Was eine Ganzzahl war, und wir haben die Standardeinstellung ein letztes Mal verwendet . Wir hatten dann eine Variable für Geschwindigkeit, die ebenfalls eine Ganzzahl war , die wir bei 32 hatten. Das mag jetzt superschnell sein, aber ich schätze, wir werden es herausfinden. Also ich schätze, ich werde es vorerst auf eins setzen. Ich kann das später ändern. Innerhalb unseres Prozesses. Wir werden weitermachen. Wir haben unsere Geschwindigkeit. Wir haben die X-Eigenschaft davon und setzen sie gleich unserer Geschwindigkeit mal Richtung. Und natürlich brauchen wir eine bewegliche Rutsche, sonst bringt unsere Geschwindigkeit nichts. Gehen wir zu unserer Hauptszene, bringen unseren Truck rein und schauen, ob er so funktioniert, wie wir es erwarten. Ich mache weiter und platziere es dort und lasse es laufen. Okay, wir sind auf Geschwindigkeit eins eingestellt und es geht für uns in die entgegengesetzte Richtung. Aber das ist in Ordnung. Bei diesem Truck bedeutet das, dass unsere Richtung minus eins ist, weil wir nach links fahren wollen. Und da haben wir's. Wir können sehen, wie unser Truck rüberfährt. Fantastisch. Und natürlich können wir jetzt darauf stoßen, weil wir keine Todesszenen haben , in denen der kleine Froggy gequetscht werden könnte Aber unser Truck bewegt sich Lassen Sie uns weitermachen und jetzt, da wir wissen, dass er richtig funktioniert, lassen wir ihn fahren und schauen, ob 32 zu schnell ist oder ob er immer noch gut ist Für mich sieht das so aus, als ob es ein bisschen zu schnell sein könnte. Für dich könnte dir diese Geschwindigkeit gefallen. Also habe ich es einfach auf 16 halbiert. Das ist vielleicht auch ein bisschen schnell für mich , aber vielleicht möchte ich mit acht meiner Geschwindigkeit fahren und es noch einmal versuchen. Okay, ich denke, ich werde mit acht fahren, zumindest vorerst. Auch hier kannst du jederzeit zurückkommen und es später ändern. Und jetzt lass uns weitermachen und unsere Spanors hier erstellen lassen. Alles klar? Also ich habe keine Fahrzeuge, die in die entgegengesetzte Richtung fahren, und es wäre langweilig, wenn wir alle in eine Richtung fahren würden. Also nehme ich einfach diesen einen Truck und ich lasse ihn in, du weißt schon, in eine andere Richtung fahren . Wir werden einige nach links fahren lassen, andere nach rechts dafür. Natürlich, wenn ihr mehrere Fahrzeuge habt, habt ihr auf jeden Fall ein anderes Fahrzeug für jeden Spinner, also gehen wir weiter zu unserer Hauptszene und fügen dasselbe hinzu, was wir in Tot getan haben, wir werden eine Markierung D hinzufügen und das wird unser Spaner sein Ich glaube, wir verwenden einen Marker oder haben wir einen Knoten benutzt? Ich glaube, wir haben einen Knoten benutzt. Lassen Sie mich einfach weitermachen und mit der rechten Maustaste auf Typ ändern klicken und zu „Jetzt nicht zu einem Plotspanner ändern Und was ist die Position dieses Trucks? Zieh es ein bisschen zurück. Wir können also 32 und 12 sagen. Ja, das sieht gut aus. Ja, Spanner, Transformationsposition , 32 auf dem X, 12 auf dem Z. Und da werden wir diese Fahrzeuge finden, richtig Lass uns weitermachen und ein Skript für unseren Spawner hinzufügen. Und wieder, halten wir uns so nah wie möglich an der TD-Version. Wir werden unseren Truck variabel haben , den wir später einfach Fahrzeug genannt haben. Wissen Sie was? Wir rufen jetzt einfach ein Fahrzeug an. Warum nicht nur für den Fall, dass ihr vielleicht zusätzliche Fahrzeuge habt. Ich werde gleich nachladen, oder? Von unserem Truck Aber natürlich möchten Sie das vielleicht separat einstellen. Auf diese Weise können wir für alles dasselbe Skript verwenden. Da haben wir's. Wir sind einfach weitergekommen und haben es für eine vollgepackte Szene exportiert. Und in diesem Fall gehe ich natürlich einfach in mein Fahrzeug Und Inspektor, ich werde einfach meinen Truck in meine Truck-Szene schleppen . Da haben wir's. Und fertig, alles was wir tun müssen, ist unsere Funktion, die wir hier erstellen werden, Spawn-Fahrzeug aufzurufen unsere Funktion, die wir hier erstellen werden, Spawn-Fahrzeug Okay. Bewerte diese Funkspanne. Fahrzeug. Und wir können wieder tun, was wir zuvor getan haben, wo wir hier eine zufällige Wartezeit haben können. Und das ist eine zufällige Ganzzahl. Und wir verwenden Prozent drei oder zumindest ich verwende Prozent drei plus eins. Denken Sie also daran, dass diese Prozentzahl Null, Eins, Zwei ergibt, und wenn Sie eins hinzufügen, erhalten wir eine zufällige Ganzzahl von eins, zwei, drei. Also einer von denen. Und da wir das als Sekunden verwenden , haben wir zwischen jedem Auto ein bis 3 Sekunden . Sieht aus wie ein Baum, wie wir es zuvor gemacht haben Sie unseren Timer ein, wir werden unsere Wartezeit überschreiten und unsere Auszeit haben. Nachdem wir so lange gewartet haben, erstellen wir eine Instanz unseres Trucks oder unseres Fahrzeugs. VI entspricht Fahrzeugpunkt, instanziieren. Und wir müssen der Szene also self dot ad Child hinzufügen , Und da dieser Sponsor auf der rechten Seite ist , muss er auf der linken Seite sein. Nun, da ich nur mit diesem einen Fahrzeug arbeite, brauche ich eine Möglichkeit, dieses Fahrzeug als Standard oder besser gesagt als Standard einzustellen, wenn es sich einspannt, damit ich sie auf beiden Seiten haben kann Standard oder besser gesagt als Standard einzustellen, wenn es sich einspannt, damit ich sie auf beiden Seiten haben Denn wenn ich das nicht tue, wird es für eine Sekunde wieder auf die Spanne hier zurückkommen Und wenn das erledigt ist, nennen wir es uns einfach Curt Span Wenn wir also weitermachen und uns das jetzt ansehen , welche drei D. Machen Sie diesen Truck, löschen Sie ihn Wenn wir es jetzt spawnen, los geht's. Da ist ein Truck. Es ist ein weiterer Truck. Es geht los. Siehst du, ich denke, das ist eine ordentliche Geschwindigkeit dafür. Aber Sie können hier sehen, dass alle meine Trucks offensichtlich nach links fahren werden. Wenn du also ein Fahrzeug wie ich benutzen willst, nur um dir beim Lernen zu helfen, dann kannst du weitermachen und einen zusätzlichen Parameter einstellen, speziell für deinen Spinner Und diesen Parameter hier, ich werde einfach weitermachen und exportieren Ich nenne ihn VD für die Fahrzeugrichtung Das ist eine Ganzzahl und standardmäßig setzen wir sie auf eins. Und speziell bei diesem Spotter werden wir ihn natürlich auf negativen Wasserwert setzen, weil er nach links gehen muss Also alles, was ich hier tun würde, ist einfach V-Punkt-Richtung zu machen , richtig So haben wir es genannt. Ja. Richtung. Entspricht BD. In Ordnung. Also, wenn ich zum Truck rüberkomme, wenn wir herkommen und wenn ich meine Standardrichtung wieder auf positiv setzen würde , dann spar dir das. Gehen Sie jetzt immer noch in die negative Richtung, weil mein Sponsor diese Richtung für uns vorgeben sollte. Los geht's. Da kommt also der Truck. Also, jetzt kann ich dasselbe Skript verwenden wenn ich dasselbe Fahrzeug benutzen will. Jetzt kann ich es einfach zwischen negativ oder positiv oder Richtung einstellen . In Ordnung. Also, wenn wir dasselbe mit mehr Fahrzeugen machen würden, nun ja, wenn wir dasselbe hätten, jedes Fahrzeug in verschiedene Richtungen fahren würde, würden wir natürlich bei dieser Variablen vorgehen. Aber lassen Sie uns weitermachen und unsere anderen Sponsoren hier ganz schnell einrichten. In Ordnung, alle meine Sponsoren sind hier. Also, Sponsor vier wird , da ich ein Fahrzeug benutze, werde ich eine VD einrichten, die auf eins eingestellt ist. Sponsor zwei wird auch einer sein. Und natürlich werden drei und mein ursprünglicher Sohn alle negativ sein, weil sie auf der anderen Seite sind Und wenn wir jetzt weitermachen und einen Blick darauf werfen, sollten wir etwas haben, das folgt, und das wird eine Menge Verkehr für unseren armen kleinen Frosch sein, den wir durchqueren Also nochmal, du kannst hier reinkommen, du kannst Dinge wie die Wartezeit anpassen Oh Junge, der ist ein bisschen chaotisch. Aber ja, da hast du's. Du kannst reinkommen und das anpassen Es sieht so aus, als könnten wir oben vielleicht noch einen Truck reinquetschen . Da hast du es. Das ist furchtbar gefährlich für unseren armen kleinen Frosch. Das ist wirklich Wir müssen beim Testen sehen, ob das vielleicht ein bisschen zu nah ist, und wenn ja, löschen Sie einfach diese Zeile Das heißt, es sieht so aus, als würde es unseren Frosch berühren. Ordnung? Da hast du's. Da ist so nah wie möglich dran für unsere 3-D-Version. Im Verhältnis zu unseren beiden D haben wir also unsere armen Spinner eingerichtet Wir haben unseren Fels Fläche von drei D und einer Kollisionsform, sodass wir ihn erkennen können, wenn es darum geht, unseren Frosch zu zerquetschen , und da haben Wir haben unsere Fahrzeuge aufgestellt. Auch hier gilt: Wenn Sie andere Fahrzeuge haben, gehen Sie auf jeden Fall, bringen Sie sie her, schauen Sie sie sich an, benutzen Sie sie, lassen Sie verschiedene Fahrzeuge für verschiedene Richtungen einrichten. Und wir sehen uns im nächsten. Und was machen wir als Nächstes? Nach diesen Fahrzeugen werfen wir einen Blick auf die Reaktion unserer Spieler auf Death of Response. Als Nächstes werden wir unseren Frosch zerquetschen. 52. Tod und Wiederaufleben des Spielers: Ordnung, lassen Sie uns den Tod und den Respawn unseres Spielers und den Respawn Lass uns zu unserem Drehbuch übergehen und wir können weitermachen und unser Signal für unseren Truck verbinden Unser Signal wird über ein Skript verbunden, nochmal, mach es wie TD Aber wie gewohnt können Sie immer reinkommen, Ihren Bereich auswählen, oben auf die Registerkarte „Nein“ gehen und weitermachen, herunterkommen und nach dem Signal suchen, mit dem Sie eine Verbindung herstellen möchten. Aber es ist gut für dich zu wissen, wie man sie durch Code verbindet, einfach weil du dich in Zukunft wahrscheinlich irgendwann damit auseinandersetzen musst, deine eigenen Signale zu erzeugen , und dann musst du diese verbinden, und es ist einfach schöner, wenn alles an einem Ort ist, Beispiel innerhalb des Codes, um es anzusehen, vor allem, wenn jemand anderes deinen Code ansehen muss oder vielleicht musst du zurück und sieh dir deinen Code in der Zukunft Aber lass uns weitermachen. Lassen wir unsere Knoten unseren Bereich drei D bekommen. Und wir verbinden das vom Körper eingegebene Signal dem vom Körper eingegebenen Punkt. Stellen Sie eine Verbindung her und wir stellen eine Verbindung zu einem Callable her. Und genau wie in Tutti werden wir es Player-Hit nennen Das hat einen Körper. Das kriegen wir schon hin. Ich habe das E am Ende des Wortes Callable vergessen . Da haben wir's. hatten wir also nur einen kleinen Da hatten wir also nur einen kleinen Rechtschreibfehler. Kein Problem. Okay, wir sollten uns jetzt in einer sehr vertrauten Situation befinden, genau einer sehr vertrauten Situation befinden, genau wie damals, als wir es in zwei D erstellt haben. Also werden wir überprüfen, ob Spieler. Auch hier gilt, meine Großbuchstaben in Kleinbuchstaben zu verwenden. Wenn ich mir mein Hauptmenü ansehe, sehe ich Spieler. Ich habe es hier mit einem großen P geschrieben. Also wenn Spieler- und Körpername Ich würde sagen, wenn Body Dot Methode und den Namen in Form einer Zeichenfolge hat, nennen wir es wie zuvor Death Und wir sagen Body Dot Death, also nennen wir es. Und da haben wir es. Bisher ist diese Seite genau die gleiche wie in zwei D, außer dass wir drei D anstelle von zwei D für die Fläche verwenden. Alles andere ist identisch. Alles klar, jetzt unser Spieler, wir haben diese Tiefenfunktion nicht. Es existiert nicht, also wird es auch nie aufgerufen werden. Also lass uns weitermachen und es für uns anrufen. Und alles, was passieren wird, ist, dass wir die Form deaktivieren müssen , die benutzt wurde, um mit dem Truck zu kollidieren Und dann stellen Sie sicher , dass es in die richtige Richtung zeigt oder ein bisschen froschig ist, nur für den Fall Sie vielleicht ein Drei-D-Modell verwenden und ihn dann in einer anderen Position wiederbeleben Also lass uns weitermachen und das können wir tun. Also unser Spieler, wir müssen diese Szene öffnen und unserem Spieler eine Kollisionsform geben. Dass wir das Warndreieck loswerden , das unser Spieler die ganze Zeit hatte. Unsere Kollisionsform wird eine Kiste für dich sein. Vielleicht möchten Sie sich für eine andere Form entscheiden. Vielleicht möchten Sie sich für eine Kiste entscheiden. Es liegt an dir. Kann ich einfach runterkommen und das hier passen, damit es die perfekte Größe hat? Jetzt, wo unser Spieler eine Kollisionsliste hat, kann er erkannt werden, wenn er vom Truck angefahren wird. Und wenn wir vom Truck angefahren werden, wollen wir unsere Funktion aufrufen , die wir Tod nennen. Und beim Tod wollen wir unsere Rotation festlegen, genau wie wir es tun, wenn wir aufsteigen, also werde ich meine Rotation auf Null setzen. Nun, wenn Ihr Modell in die entgegengesetzte Richtung zeigt, dann wäre Ihre Aufwärtsbewegung natürlich 180 und Ihre Abwärtsbewegung auf Null gesetzt, und das würde sich in der Tiefe widerspiegeln. Was auch immer Ihr Hoch ist, es ist der gleiche Grad, auf den Sie sich nach dem Tod einstellen. Wir wollen unsere Kollisionsform deaktivieren , sodass wir nur einmal getroffen werden können. Ordnung. Machen wir weiter und rufen zurückgestellt an. Lassen Sie uns also unsere Kollisionsform ermitteln und den Anruf zurückstellen. Und das ist eine Menge Zeug, das man durchmachen muss. Ich fange einfach an zu tippen, es ist deaktiviert. Das zweite Argument wird wahr sein , weil wir das setzen wollen, wir wollen disabled auf true setzen. In Ordnung. Als Nächstes, wenn ich mich recht erinnere, sind wir aufgestiegen und haben unsere Staaten lebendig und tot geschaffen. Das habe ich dem hinzugefügt. Also lasst uns weitermachen und nach oben gehen und unsere Bundesstaaten erstellen, bis wir unseren Enum-Status haben, und wir hatten lebendig und tot, und später fügen wir einen weiteren hinzu Wir werden hier eine weitere Variable namens Current State erstellen. Und der Typ, als den wir sie deklarieren werden, ist ein Zustand. In Ordnung. Jetzt können wir weitermachen und den aktuellen Zustand nach unserem Tod festlegen . Nehmen wir an, der aktuelle Status ist gleich, oder? Der Staat ist nicht tot. Machen wir weiter und richten unseren Respawn ein. Also Funk Respawn. Und einfach so werden wir unsere Kollisionsform und unseren aktuellen Zustand festlegen und unseren aktuellen Ordnung. Also, wir wollen es tun, wir werden es zuerst verschieben. Wir sagen „auf deaktiviert“ setzen, es ist auf „Falsch“ gesetzt. Unser Zustand wird sich offensichtlich von tot zu lebendig verändern, und wir müssen unsere Position hier tatsächlich ändern. Dafür brauchen wir also eine Spielerposition hier drin. Ich werde einen neuen Knoten hinzufügen. Du hast das alles schon einmal gesehen. Wir können weitermachen und Marker to Node verwenden , was auch immer Sie möchten. Ich werde einfach die Markierung drei D verwenden. Und mal sehen, wie meine Position hier ist? Eins, eins, 15, also werde ich dasselbe auf meinen Marker setzen, also spawne ich an derselben Stelle, an der ich beginne Eins, 115. Los geht's. Also, wo ich am Anfang meines Spiels anfange, sollte ich auch anfangen, wenn ich respawn Und wir werden weitermachen und es Spieler, Spawn, Standort nennen. Und wir werden unsere Position festlegen. Self Dot. Position ist gleich und wir müssen den Knoten eines Spielers spawnen lassen Denken Sie jetzt daran, dass unser Script auf unserem Player läuft, also müssen wir eins höher legen Also können wir Get parent schreiben oder wir können einfach Get Node sagen. Und für den Pfad hier können wir einen Punktstrich als Kurzform von G parent verwenden und dann hier node eingeben, player Bond Jason Got position Ordnung, wenn wir jetzt von einem Truck angefahren werden, sollten wir reagieren können Und hoffentlich ist dieser Truck nicht zu nah dran. Und hoppla. Wir haben hier eine Sache. Wir werden hier in unserem Prozess nicht wirklich eine Antwort erhalten. Wir müssen das ändern, also sagen wir, wir müssen überprüfen, ob unser Rockie noch lebt hätte ich fast vergessen. Und in Two D hatten wir auch einen Timer bei unserem Respawn, aber das ist Also lass uns weitermachen und enden . Also sind wir da oben bereit. Ich sage, wenn der aktuelle Status gleich dem Zustand ist, ist er tot. Wir können unsere Bewegung machen. LFOs, die ein W sind, der aktuelle LF-Status entspricht dem Status Punkt tot. R-Punkt. Ordnung. Jetzt lass uns weitermachen und es versuchen. In Ordnung, wir können weitermachen, links und rechts. Und ja, der Truck ist zu nah dran. Okay, es sieht also so aus, als müsste ich einen meiner Sponsoren entfernen oder sie ein bisschen anpassen Aber ich denke für mich selbst, ich werde es einfach komplett loswerden Ich werde es einfach entfernen. Das ist kein Problem. Und jetzt sollte es uns gut gehen. Wir sollten oben und unten etwas Platz haben . Mein Frosch wird nicht zerquetscht, und wie Sie sehen können, haben wir uns gut bewegt Sobald wir von einem Lastwagen angefahren wurden, reagieren wir. Hoffe. Okay, wir haben nicht viel Spielraum, also sollte ich vielleicht reingehen und meine Kollisionsboxen an meinen Trucks anpassen Hyloiss wird ziemlich schwierig sein, scharf mit diesem Mund Aber das kommt nur von ein paar Optimierungen. Ich werde weitermachen und das machen. Ich werde euch nicht hier behalten. Aber da haben wir's. Wir haben einen Death and Respan, der hier auf dem Straßenabschnitt arbeitet Und als Nächstes können wir uns ansehen , wie wir auf dem Wasser sterben und unsere Wasserplattformen erschaffen 53. Wassertod: In Ordnung, also genau wie die Zwei-D-Version. Wir werden feststellen, ob wir auf dem Wasser sind, indem wir in diesem Fall die ID unserer Grid-Map abrufen die ID unserer Grid-Map , weil wir uns in drei D befinden. Es war das Kachelset, die Kachelmap in zwei D. Also zuerst, genau wie in Tut, werden wir mit einer Ready-Variablen beginnen, die wiederum im Grunde nur die Variable innerhalb der Ready-Funktion festlegt die Variable innerhalb der Ready-Funktion Mit anderen Worten, diese Variable wird erst ausgegeben, wenn das Spiel bereits läuft. Und da wir der Spieler sind, müssen wir einen zu unserem Elternteil hochgehen und dann herunterkommen, um unsere Grid-Map zu holen Also setzen wir es auf den G-Knoten und wir haben unseren Punkt, den Schrägstrich unser Äquivalent zu Get parent und Grid Map Und dann kommen wir runter und haben unsere Scheckglockennummer hier unten. Funktion, startklar, bereit zum Programmieren hier oben. Und das wird unserer TD-Version sehr ähnlich sein. Nun, für unsere TD-Version hatten wir eine Variable für MAP-Pause, das war unsere Grid Maps-Übersetzung gridmp dot Local TMAP und diese Map nahm Es bedurfte einer Entschuldigung, eines Arguments. Und das war die Position unseres Spielers, die wir weitergegeben haben. Und wir hatten auch eine Variable für ID, was unserer Grid Map Yet Sell Source ID entsprach . Aber statt der Quell-ID müssen wir einen Artikel verkaufen, wenn wir es mit Gridmaps zu tun haben. Und das erfordert keine zwei Parameter. Ich habe nur den einen, und dieser wird unsere Kartenposition sein. Wir müssen ihr also keine Ebenen oder so etwas übergeben. Nun, am Ende ist es das, und das ist alles, was wir brauchen, und wir würden sagen, wenn unsere ID in unserem Fall gleich drei wäre, weil drei die ID für die Kachelmap, den Kachelsatz, wäre. Wenn ich in diesem Fall auf meiner Grid-Map nachschaue und die Mesh-Bibliothek öffne, kann ich sehen, dass hier Wasser mit der ID eins verknüpft ist. Also werde ich sagen, ob ID gleich eins ist, und hier würden wir anrufen Und dann überprüfen wir so ziemlich jedes Mal, wenn wir uns bewegen, die Zellen-ID so ziemlich jedes Mal, wenn wir uns bewegen, die Bum, aber ein Bum. Aber ein Boom. Aber ich werde es vorerst einfach aus dem Prozess nehmen, damit wir es nicht spammen Jetzt werden wir weitermachen und es laufen lassen, und wir werden auf ein Problem stoßen Siehst du, hier passiert wirklich nichts, okay? Aber wir drucken nichts. Nimm einfach eine Lüge da rein. Und wenn ich aufs Wasser trete, würdest du erwarten, dass ich hier sterbe, und das tue ich. Also, liegt das daran, dass ich vergessen habe, dass ich es getan habe? Also habe ich vergessen, meinen Player hier zurückzusetzen, und deshalb hat es funktioniert. Normalerweise sollte dein Spieler wieder oben und über der Karte sein, und du wirst es hier sehen, ich mache einfach weiter und beeile mich, dass es nicht funktioniert. Und der Grund dafür ist, naja, der Grund, warum du gesehen hast, dass mein Spieler da unten versunken ist, wir checken zu hoch In der Position, die wir überprüfen, ist es also Null. Wir müssen also tatsächlich in einer niedrigeren Position bestehen als der , die wir hier verwenden. Also erstelle ich einfach eine neue Variable namens cur pause für unsere aktuelle Position Und das wird speziell ein Vektor Drei sein , er will eine Drei I. Also machen wir einfach weiter und geben das weiter Und dafür verwenden wir einfach unsere Selbstablagerung X oder unsere Y, wir können eine negative verwenden. Das wäre niedrig genug und Selbstdarstellung Z für das dritte Argument. Anstatt unsere eigene Position auf die lokale Karte zu übertragen, geben wir die aktuelle, rechte Kurvenpause ein. Auf diese Weise können wir unsere Position ermitteln, aber einen Block tiefer, was uns die Position unserer Zellen-ID geben sollte , oder? Wo sich die Grid-Map befindet. Wenn wir jetzt auf Wasser treffen, bitteschön. wir weitermachen, sterben wir, und unser Respawn vermasselt das nicht, weil wir einen Block unter dem Spieler überprüfen Ordnung. Also haben wir jetzt unsere Wassertiefe eingerichtet. Alles, was wir tun müssen, ist unsere Wasserplattformen in unserer Windzone zu platzieren, unser Punktesystem und das Gesamt-I einzurichten. Und dann, wenn wir wollen, können wir vielleicht eine alternative Kamera aufstellen , die hinter dem Frosch sitzt, sodass wir ein eher gieriges Erlebnis haben . Alles klar. Aber das ist alles. Unsere Wassertiefe funktioniert. Sie können also sehen, dass es fast alles dasselbe ist, außer dieser Zeile, in der wir nur einen Block unter unserem Spieler überprüfen müssen. Aber das meiste davon ist wieder dasselbe. Wenn Sie also gerne in zwei D arbeiten und gebeten werden, etwas in drei D zu tun, können Sie sehen, dass wir hier inzwischen viel Roger gemacht haben. Und da die Dinge größtenteils so bleiben wie zu der Zeit, als wir es in zwei D geschafft haben, können Sie sehen, dass der Großteil von allem übertragen wird. Wir mussten unsere Position aufschreiben. Wir haben unsere Position und unsere Rotation in Little different geschrieben . Ich wurde etwas anders geschrieben, aber ich meine, es macht immer noch Sinn. Es ist nicht viel anders. Und wir mussten hier eine Zeile hinzufügen , um eine Zeile unter unserem Spieler zu überprüfen , anstatt dass unser Spieler vollständig ist. Wenn Sie also zwei D bevorzugen und etwas in drei D machen müssen, lassen Sie sich nicht einschüchtern So ziemlich alles, was Sie in zwei D gelernt haben, wird auf drei D übertragen. Wir müssen uns nur daran erinnern, wenn wir die aktuelle Position hier festlegen, dass wir, wenn wir die aktuelle Position hier festlegen, diese dritte Dimension haben, um mit X, Y und Z oder X, Y und Z zu arbeiten . Alles klar. Also das wird es von hier aus tun. Als Nächstes springen wir auf die Plattformen. 54. Wasserplattformen: Ordnung, lassen Sie uns weitermachen und unsere Plattformen einrichten. Nun, ich habe weitergemacht und mein Protokoll hier erstellt. Es ist nur ein Zylinder mit einem Material auf der Mesh-Instanz, und ich habe die Albedo eingefärbt, das Braun Es hat auch einen Bereich mit drei D , der eine Kollisionsform enthält, und diese Kollisionsform ist nur eine Kastenform, und ich decke nur den mittleren Teil ab , damit es keine Probleme gibt, wenn es darum geht, von ihr abzuspringen, und das Spiel denkt irgendwie, dass wir vielleicht immer noch dran sind, nur weil wir uns vielleicht kaum berühren oder so. Also habe ich mich einfach für das mittlere Plus entschieden. Wenn wir darauf springen, sollten wir sowieso in der Mitte sein. Also, ich mache weiter und mache das. Und ich habe auch zwei Signale, das Eingangssignal und das Körperaustrittssignal, mit meinem Log-Skript verbunden das Eingangssignal und das Körperaustrittssignal , mit meinem Log-Skript Und genau wie in der 2-D-Version haben wir eine exportierte Richtung Und in unserem Prozess haben wir nur, dass der Positionspunkt X plus eins mal Delta entspricht Und wenn wir uns das in drei D ansehen, können Sie anhand der Skala sehen, dass Sie sich an die Logs erinnern können, weil sie zu all unseren Blöcken passen Ich habe es auf eine Skala von zwei statt auf eins hochskaliert. Und du wirst sehen, welche Position Punkt X hat. Wie weit entfernt man mit diesem Punkt Ich glaube, das ist es, was wir verwenden, richtig? Ja. 10 mal Delta. So schnell bewegen sich unsere Logs. kannst du ändern, wenn du zweimal Delta, dreimal Delta machen willst , was auch immer du für notwendig hältst. Für mich werde ich es vorerst nur zum Testen auf einmal Delta belassen . Und dann kann ich, genau wie bei meinen Trucks, zurückgehen und die Dinge später optimieren Ordnung. Wenn Sie also weitermachen und sich einen Moment Zeit nehmen möchten, stellen Sie sicher, dass Ihre Protokolle erstellt wurden. Sie haben Ihre Bereiche eingerichtet. Und wenn du weitermachen und einfach fünf davon perfekt anordnen willst, so wie hier. Mach es. Du kannst. Mach weiter und pausiere das Video, mach weiter und mach das. Und wenn du bereit bist, lass uns weitermachen und wir werden den eigentlichen Plattform-Teil erledigen, denn wie du siehst, wenn wir darauf springen, passiert nichts, wir sterben einfach, wenn wir auf dem Wasser stehen Aber wie gesagt, der erste Teil der Tut-Sektion ist irgendwie seltsam, wenn man bedenkt, dass wir ein Frosch sind, wir sollten nicht im Wasser sterben, wir sollten nicht ertrinken Aber da haben wir's. Wir haben unsere Logs. Wir haben jetzt unseren Frosch, die Frage ist, wie werden wir ihn in den Griff bekommen Nun, wir nehmen das genauso wie unsere beiden D, oder? Wir haben unseren Körper auf unserem Player eingegeben und unseren Körper verlassen, wir haben unsere Plattform mit drei neuen Variablen, die ein boolescher Wert ist und standardmäßig auf False gesetzt Aktuelle Plattform, das ist ein Charakterkörper, diesmal drei D statt zwei D, standardmäßig auf Null gesetzt, und eine Plattformrichtung, die ein Int ist, eine Ganzzahl, und die ist standardmäßig nur auf eins gesetzt, und diese bringt uns dazu, nach rechts zu gehen In Ordnung. Also hier müssen wir im Moment nicht unbedingt etwas tun Obwohl wir weitermachen könnten und Y, lass uns weitermachen. Ich werde hier unsere ID angeben oder nicht ID, sondern unseren zweiten Parameter, unsere zweite Bedingung, eher, ob ID gleich eins ist. Wenn wir uns also auf einem Wasserblock und unsere aktuelle Plattform gleich Null ist, oder? Also im Grunde sind wir nicht auf der Plattform. Eigentlich tauschen wir das um. Wir nutzen ungenutzte Plattformen. Also sagten wir, die Plattform sei falsch. Also das ist nur eine kürzere Art, hier alles zu erledigen. Also, wenn wir auf einem Wasserblock sind und nicht auf einer Plattform, sterben wir. Also, woher wissen wir, wann wir auf der Plattform sind? Nun, wenn wir zu unserem Logbuch springen, das ich umbenennen sollte, ist das nur eine Plattform. Mach GD statt zu loggen. Also gib mir einfach einen Moment. Alles klar? Alles scheint zu funktionieren, und ich habe es in Plattform umbenannt. Auf diese Weise kann ich, wenn ich kleine Disketten erstellen möchte, um darzustellen meine nicht Frösche, die Schildkröten, weitermachen und das immer noch mit demselben Skript Also, wie wir hier drüben waren, wir haben eine falsche Plattform, und dann sterben wir, wenn wir auf dem Wasser sind Also müssen wir die Plattform auf True ändern. Sobald unser Brogi diesen Bereich betritt, wir fort und setzen Platform auf True Ups, den Teil habe ich abgeschlachtet. Es ist eine Körperplattform. Sie möchten also auf die Plattformvariable zugreifen , die sich auf dem Körper befindet, der sie berührt, was natürlich unser Spieler sein wird. Und nochmal, wenn du hier besonders vorsichtig sein willst, kannst du Spieler im Körper Punktname sagen und alles mit der Tabulatortaste eintippen. Das wäre hier okay. Das verkörperte System ist gleichbedeutend mit wahr. In Ordnung? Und was haben wir noch? Nun, lass uns sehen. Aktuelle Plattform. Nun, wenn wir auf unsere 2-D-Version zurückschauen unsere 2-D-Version ob unser Frosch während unseres Prozessabschnitts am Leben ist, dann haben wir auch eine Überprüfung auf I-Kurven-Plattformen , die ungleich Null sind. Und dann haben wir unseren Frosch bewegt, richtig? Also würden wir unsere Position ändern, Punkt X ist gleich, und dann hatten wir hier ein bisschen Mathe. Wir hatten unsere Plattform-Richtung. Mal unsere Geschwindigkeit, was ich einfach mit einem machen werde , damit wir unsere Logs abgleichen können und wir später zurückkommen und es ändern können. Und dann multiplizieren wir das mit Delta. Okay? Also, wenn unsere aktuelle Plattform nicht Null ist, ich meine, wir sollten auf einer Plattform stehen, oder? Dann werden wir umziehen. Wir sollten mit der Plattform weiterziehen. Okay? Also gehen wir in unser Logbuch und wenn die Leiche reinkommt, sagen wir, dass ihr Körper auf ihrer Plattform steht. Stellen Sie sicher, dass ich das richtig buchstabiert habe. Pro Plattform, ja. Und was hat das mit mir selbst gleichgesetzt? Und jetzt erinnere dich an dein Logbuch. Ihr Logbuch hier sollte ein Charakter mit Körper drei D sein. Ich mache weiter und öffne meins hier erneut Ich habe nichts geändert. Interessant. Muss das Projekt neu starten müssen. Mein Logbuch ist ein Charakterkörper mit drei D. Und natürlich sieht der Ion den Baumstamm und den Bereich drei D, uns die Tränen weht Okay, schauen wir mal, was passiert. Es ist nur unser Logbuch. Lass uns weitermachen und das Reifenspiel hier spielen. T ist raufgefahren und hat die Baumstämme geholt, wir sehen, dass sie sich bewegen, springen drauf und wir sind gestorben. Nun, das ist interessant. Warum ist das passiert? Nun, das ist passiert, weil wir uns tatsächlich zu schnell bewegen. Oh, das ist die Zwei-D-Eins , sie ist aus irgendeinem Grund verfügbar. Ja, komm runter, und das liegt daran, dass unser Tod zu schnell kommt. Wir müssen da drin eine kleine Pause einlegen , damit genug Zeit bleibt für Dinge wie unsere Plattform, das, um sich dazwischen zu ändern. Also einfach warten, Baum holen, toller Timer und 0.2 sollte alles sein, was wir brauchen. Ich weiß, dass wir 0,1 in zwei D verwenden, aber ich habe es mit 0,1 versucht, und es hat nicht gereicht. Also nehmen wir 0,2. Und wenn wir das jetzt versuchen, sollten wir in der Lage sein, Ooh. Was ist dort passiert? Oh, das liegt daran, dass ich Position geschickt habe, Punkt X gleich Absicht, ein Plus ist Los geht's. Jetzt hüpfen wir auf diesen Baumstamm. Ich kann sie überqueren. Fantastisch. Und sobald ich aussteige, naja, wenn ich an dieser Stelle hier aussteige, Oh. Nun, wir sind nicht sicher, weil wir nie berechnet haben, die Plattform zu verlassen. Das bedeutet, dass wir uns auch für immer permanent nach rechts bewegen, also lasst uns weitermachen und das beheben. Wenn wir die Plattform verlassen, müssen wir diese natürlich rückgängig machen. Plattformen sind also falsch und unsere aktuelle Plattform wird wieder Null sein. Und nur diese eine Änderung, um das Mitfahren zu lösen. Oh. Und wir sind gerade dort gestorben. A, nun, das ist es nicht. Das ist nicht toll. Lass uns herausfinden warum. Nun, wenn Sie sich erinnern, als wir bei der 2-D-Version waren, hatten wir zwei weitere Dinge, die hier fehlten. Beim ersten Mal, als unser Körper eintrat, hatten wir tatsächlich einen anderen Timer, und der war einfach auf 0,1 eingestellt, was in Ordnung ist. Wenn wir jetzt reingehen, springen wir ein. Da haben wir's. Da können wir rüberspringen, ohne getötet zu werden. Und sobald wir ins Wasser springen, was unsere Windzone wäre, werden wir getötet. Wenn wir rüberspringen und ins Wasser springen, sterben wir. Und es passiert immer noch, wenn wir von unseren Trucks angefahren werden. Fantastisch. Also alles funktioniert immer noch gut. Dieser eine Tiber reicht aus, um den einen kleinen Fehler zu beheben, den wir haben Großartig. Und das Einzige, was wir noch hatten, ist ich glaube, wir haben eine Funktion geschaffen , die hier die Richtung vorgibt. Das würde also ziemlich stark davon abhängen, ob wir nach links oder rechts gehen, was wir als großartig festlegen. Und das wäre eine Richtung , in die wir gehen könnten. Was für dieses Protokoll momentan Null ist , aber es wäre eins. Und in diesem Fall unserem Spielerskript können wir in unserem Spielerskript weitermachen und diese Funktion erstellen, Funet Direction, und Sie nehmen eine ID, die ein Int ist, und Sie haben einfach, dass Funet Direction, und Sie nehmen eine ID, die ein Int ist, und Sie haben einfach unsere Plattformrichtung gleich ID ist, wir nennen sie IDA, ich glaube, wir nennen sie DR, also lassen wir sie einfach dort. DR Und dann können wir auf unserer Plattform weitermachen und mit dem Textpunkt die Richtung festlegen und unsere In unsere Richtung. Okay, also jetzt wäre es für unser Spiel egal, ob wir hier reinkommen und die Richtung der Plattform ändern würden auf unser Spiel egal, ob wir hier reinkommen und , los geht's, 8.967 Würde keinen Unterschied machen , denn das wird festgelegt, sobald wir auf ein echtes Logbuch springen Da haben wir's. Also wenn unsere Logs in die andere Richtung gehen würden, dann gehen wir nach rechts und landen immer weiter. Wie passiert das immer wieder? Also gehen wir da rein. Also, wenn wir das auf minus eins setzen , wäre das auch negativ auf unsere Geschwindigkeit hier. Also könnten wir das einfach komplett ändern und für den Moment Richtung mal Delta sagen , aber wir können sehen, dass sich das Protokoll in die entgegengesetzte Richtung bewegt. Und der einzige Grund dafür ist, dass wir speziell ein Protokoll geändert haben . Zum Beispiel können wir hier reinkommen und dieses auch auf einen negativen Wert setzen. Jetzt haben wir zwei Logs, die in die andere Richtung gehen . Nun, das sollten wir. Warum hat sich dieser nicht geändert? Ich habe das richtige Protokoll bekommen. Das ist negativ. Mm. Hmm. Lass uns weitermachen und lesen, siehe Das ist in Ordnung. Wir haben gesehen, bewegen sich die Baumstämme komplett in die andere Richtung? Und lassen Sie uns einfach weitermachen und das hier für unser Hauptprotokoll festlegen . Und wir können sehen, dass sie in diese Richtung gehen, wir springen auf und wir bewegen uns in diese Richtung. Alles klar, alles was wir jetzt brauchen ist, wenn du willst, du kannst kleine Scheiben im Maßstab zwei erstellen um deine kleinen Hürden oder Seerosenblätter darzustellen oder was auch immer du damit machen willst Und benutze im Grunde einfach dieses Skript und gib die Richtung vor. Da hast du's. Das sind unsere kleinen Plattformen , die da laufen. Für unsere Logs. Und mit diesen Sponsoren können wir weitermachen. Rufen Sie einfach an und stellen Sie diese Positionen hier ein. Denken Sie also daran, dass wir uns auf jeder Seite abwechseln werden. Links. Und dann nach rechts. Ordnung? Alles was wir brauchen ist ein Spawner Aufgestellt. Und was das angeht, lass uns sehen. Könnten wir unsere Spinner-Skripte verwenden? Nun, das sind Fahrzeuge, also würde es in Bezug auf diesen Code nicht wirklich Sinn machen Aber der Rest sieht so aus, als ob es Sinn machen würde. Das ist es, was wir hier benennen, richtige Richtung. Ja. Also könnten wir den gleichen Spinner-Code und einfach mehr dieser Spinner erstellen Und das ist vollkommen in Ordnung. Ich denke, das machen wir. Mach weiter und erschaffe diesen Spawner Ist das SponnorFive, räume dein Fahrzeug aus, finde mein Logbuch, finde mein Logbuch, Und vielleicht müssen wir es tatsächlich einrichten, ich werde das nur ganz schnell machen Ich denke, wir müssen auch die Rotation unseres Logs festlegen. Wo ist mein Logbuch? Ich bin hier etwas verwirrt. Ja, okay, also da ist das Protokoll. Ja, es geht komplett vertikal. Also müssten wir das einrichten. Also gut, lassen Sie uns einfach weitermachen und ein neues Skript und dann einen Plattform-Spawner erstellen ein neues Skript und dann einen Plattform-Spawner da wir damit ein paar Dinge anpassen müssen Also haben wir weitergemacht und wir haben hier im Grunde das Gleiche , obwohl wir Plattform und Spawn-Plattform haben , PI-Plattforminstanz Oh, das sieht gut aus. Lass mich einfach zu meinem Sponsor gehen und die Log-Szene reinholen. Nochmals, Plattform. Yo. Und jetzt müssen wir uns hier unsere Logs ansehen. Welche Rotation habe ich eingestellt? Y ist auf minus neun gesetzt. Okay? Also müssen wir sicherstellen, dass das eingestellt ist. Also sagen wir Pi-Punkt-Rotation. Das können wir machen, richtig. Es ist eine Drehung R Y entspricht minus 90. Und schauen wir mal , ob der Sponsor funktioniert. Denk an den Sponsor hier unten. Matt ist nah dran und tippe int. Also hatte ich gerade die Idee. Also, zuallererst, ich habe es komplett vermasselt. Ich habe versucht, die falsche Log-Szene zu laden. Ich habe versucht, von zwei D statt von drei D zu laden , das ist einer der Gründe, warum ich einige Fehler bekommen habe. Aber dann können wir auf unserer Plattform hier weitermachen und einfach in unserem Ready Here weitermachen und einfach unsere Rotationsgrade hier einstellen. Wenn du das tun wolltest, könntest du. Hoffentlich hat das keine Auswirkungen auf die anderen Plattformen , die Sie später erstellen. Aber nur zu gut, verhindern Sie das. Ich glaube, ich würde das nicht wirklich verhindern , weil es zu derselben Situation führen wird. Es wird spawnen und rotieren. Ich werde einfach einen Schritt weiter und runter gehen. Ich werde einfach weitermachen und es hier an meiner Stelle platzieren , also nehmen wir einfach BI Platform Instant und stellen die Rotationsgrade und ich setze es auf einen Vektor Drei, was nur drei Daten sind, richtig? X, Y und Z, oder in Farbe, es wäre wie RGB, oder? Also Null, minus 90 und Null, und das positioniert es jetzt richtig in der Ausrichtung, würde ich sagen. Jetzt müssen wir nur noch unsere Logs in die richtige Richtung bewegen. ich als auch der Brunnen, richtige Richtung und die Position des Sponsors Also dafür werde ich mir so ziemlich genau ansehen, wo meine Logs gespeichert sind. Also zum Beispiel diese, die Transformation hier, negativ 29 und negativ. Das ist gut genug. Position, minus 29 und minus eins. Jetzt kann ich das Protokoll komplett löschen und wir können einen weiteren Sponsor mit dieser Transformation haben , der negativ fünf und auch minus 29 wäre Das ist minus 29 und minus fünf. Los geht's. Jetzt sollte das Protokoll gelöscht werden können und wir sollten immer noch unsere beiden Log-Sponsoren von rechts nach links haben. Außer dass meine Richtung falsch ist, also bewegen wir uns vom Bildschirm aus kontinuierlich nach links. Okay, lassen Sie uns einfach weitermachen und Sie müssen diesen Teil natürlich nicht machen, denn wenn Sie verschiedene Plattformen erstellen , werden Ihre Schildkröten nach links und Ihre Logs nach rechts gehen Also das wird vollkommen in Ordnung sein. Aber da ich jetzt nur die Logs hier verwenden werde , anstatt mehrere Dinge zu erstellen, werde ich nur eine Variable für die Richtung erstellen. Standardmäßig setzen wir das einfach auf eins. Und wenn ich sie spawne, sage ich es diconolrecon Ich habe diese beiden auf negativ gesetzt, bei einem Lock Spawnern, sie Also wenn der Spawn rein rein spawnen sie hoffentlich hier drin Da sind sie. Nein. In Ordnung, also wo sind meine Logs? Nein, das Protokoll ist hier. Die Richtung ist negativ, also sollte sie in die andere Richtung gehen. Oh, ich habe die Logs so angelegt. Hoppla, das war damals ein Fehler von mir. Und dann ist es besser, sie standardmäßig alle auf einen negativen Und wir haben diese Plattformzeit hier, was ein bisschen nervig ist, aber los geht's. Da laufen meine Logs in diese Richtung. kann ich einfach drei auf der anderen Seite aufstellen und eine negative als Richtung angeben. Also mache ich das, Bruder. Also gut, ich habe einfach meine Sponsoren auf der anderen Seite eingerichtet , damit wir weitermachen und das Spiel starten und vorbeikommen können. Wir sind alle gut. Wir warten einfach, bis diese Logs erscheinen, und wir werden sehen, ob wir den ganzen Weg rüber springen können, obwohl wir sterben werden , wenn wir zur Seite kommen , weil wir noch nicht unsere Windstärke haben. Also bei diesem Tempo, ja, ich glaube, ich würde meine Logs jetzt auf jeden Fall beschleunigen wollen. Und ich muss diese Anweisungen auf drei, vier, fünf zurücksetzen . Ich glaube schon, drei, vier, fünf, das ist positiv. Tom sollte jetzt negativ sein. Fantastisch. Und ich sagte, ich wollte das Drehbuch ändern, sagen wir mal die Regiezeiten. Lass uns drei machen. Mal sehen, wie schnell das zu schnell ist , dann werden wir auf zwei runterfahren. Die Oberseite gegenüber. Mal sehen, was uns die drei geben werden. Logs. Wo bist du? Okay, drei sind nicht schlecht Wir können weitermachen und da einsteigen. Und jetzt bewegt sich auch mein Froggi nicht, er bewegt sich nicht schnell genug Ich hüpfe hier irgendwie mit. Bleib auf dem müssen wir reparieren. Wir gehen jetzt. Wir könnten es schaffen, und das wäre ein, naja, ein theoretischer Sieg. Also zu meinem Spieler. Ich werde einfach weitermachen und eins, zwei oder drei ändern , weil ich glaube, ich bleibe bei drei. Versuch es noch einmal. Nur um sicherzugehen, dass alles gut läuft. Bring mir mein Logbuch. Los geht's. Und jetzt stimmt unsere Geschwindigkeit überein. Ich kann zum nächsten Baumstamm springen. Poop Poo. Los geht's In Ordnung, damit wir es bis zum Ende schaffen können. Hervorragend. Und alles funktioniert. Unsere Plattformen funktionieren, und jetzt müssen Sie nur noch dasselbe tun, wenn Sie Ihre Schildkröten erstellen möchten dasselbe tun, wenn Sie Ihre Schildkröten erstellen Du kannst deinen kleinen Speer einfach über Jahre hinweg herstellen, oder? Deine kleinen Zylinder und quetsche sie zu kleinen Scheiben und dann hast du einen Bereich wie diesen, nur die Stelle, die die Mitte bedeckt, für die Erkennung Und schon hast du eine neue Plattform eingerichtet In Ordnung, das reicht also für unsere Wasserplattformen. Und als Nächstes glaube ich, haben wir unseren Winspace. 55. Speicherlecks beheben: Ordnung. Also, bevor wir in unseren Windzustand übergehen , jetzt, wo unsere Fahrzeuge und Plattformen fertig sind, kommen wir noch einmal zu diesem Speicherleck zurück, wo wir unendlich viele Plattformen und Fahrzeuge haben, die sich ständig in der Leere bewegen und ständig Speicherplatz beanspruchen. Lassen Sie uns weitermachen und sie loswerden, wenn wir sie nicht mehr benötigen. Gut, also lasst uns weitermachen und unser Plattform-Skript und unser Truck- oder Fahrzeug-Skript öffnen . Und wir werden das genauso lösen , sehr einfach. Innerhalb unseres Prozesses hier für unseren Lkw werden wir weitermachen und wir werden einfach tun, ob unser globaler Positionspunkt X größer als 436 ist oder wie breit auch immer, oder? Wie breit Ihr Fenster auch sein mag, ich würde sagen, plus 100 ist ungefähr der Platz, den wir geben, oder globaler Positionspunkt X ist kleiner als minus 100, ohne Selbstpunkt, und wir werden dasselbe für unsere Plattformen tun dasselbe für unsere Plattformen Und lassen Sie uns das einfach ausführen und schauen, ob wir hier irgendwelche Probleme haben. Okay. Wir stoßen auf keine. Und lassen Sie uns einfach sehen, an welchem Punkt sie auf uns spawnen? Okay. Nun, denken Sie daran, dass 100 weniger ganz anders sein werden als bei zwei D. Also sollten wir das wahrscheinlich von 100 abbauen, wenn wir mit Ihnen zusammenarbeiten Versuchen wir es also mit zehn. Sagen wir 346. Wir haben dort eine schwierige und hässlich aussehende Plattform. Aber lass uns das einfach auf unseren Truck kopieren . Das stimmt. Sieh dir an, wie unsere Trucks da laichen Auf der anderen Seite ist das nicht genug Platz. Wir können sehen, wie unsere Trucks und unsere Plattformen da draußen kaputt gehen Also brauchen sie hier eindeutig mehr Platz für die negativen Zehn. Lassen Sie uns also mit minus 20 gehen und sehen, ob das genug Platz für sie ist. Nicht genug für unsere Trucks. Es sieht nicht so aus, als ob es für Plattformen reicht, aber nein. Also, jetzt wählen wir einfach. Also, diese negativen 100 kamen mir irgendwie lächerlich vor? Versuchen wir es mit minus 50. Wir werden das einfach irgendwie einwählen. Mal sehen, ob unsere Plattformen spawnen können. Und unsere Trucks fahren allerdings schneller. Mal sehen, ob sie hier auf dem Bildschirm verschwinden können. Wenn wir das nur öffnen, damit wir es von außen sehen können. Okay, die Trucks fahren also eine größere Entfernung. Siehst du, sie verschwinden genau hier. Hier geht es darum, wo auch unsere Plattformen verschwinden sollten Und auf der anderen Seite sie einfach weiter und weiter und weiter Okay, also wir addieren 50, wir sind auf dieser Seite, 346. Wie ist 336? 336 muss in Ordnung sein. Werden die Trucks verschwinden? Irgendwann werden sie verschwinden, das ist das Wichtigste. Aber wenn du jetzt reinkommen und diese Seite nach unten wählen willst, mach das auf jeden Fall. Aber das Wichtigste ist , dass wir unsere Objekte löschen lassen, also geben wir den Speicher für die Objekte frei , die wir nicht mehr benötigen Damit haben wir das Speicherproblem behoben, das wir in der Zwei-D-Version hatten, die wir jetzt in der Drei-D-Version hatten Ich habe es nicht vergessen. Ich habe es nur aufgeschoben und wir bekommen zuerst unsere Hauptkomponenten. In Ordnung, lassen Sie uns zu dieser einen Bedingung übergehen. 56. Raum gewinnen: Ordnung, lassen Sie uns weitermachen und den Windraum für unseren Spieler erstellen . Im Laufe der Zeit räume ich all diese Bereiche auf. Also brauchen wir unser Player-Skript und ich habe hier ein Winspace erstellt Es ist nur ein Bereich drei D, und ich werde ihn umbenennen , um Platz zu gewinnen Es hat auch eine Kollisionsform drei D, die ich hinzugefügt habe. Es hat die Form eines Kästchens, und um allen anderen Dingen gerecht zu werden, haben wir ihm auf unseren drei Achsen eine Skala von zwei gegeben. Jetzt sollten wir also überall hinpassen, wo wir es platzieren. Lassen Sie uns weitermachen und dem Ganzen ein Skript hinzufügen, unser Windraum-Skript. Und damit werden auch ein paar Signale verbunden sein. Es wird unser Körper betreten. Und ich glaube, das ist eigentlich alles, was wir hier brauchen werden. Und bei unserem Spieler haben wir hier unseren neuen Status hinzugefügt, unseren Win-Status, was bedeutet, dass wir hier unten eine weitere LSF-Bedingung haben, LF ist gleich Status, Sieg und das würden wir unseren Respot machen und dann die Gewinnzone festlegen, ich glaube, so haben wir es genannt Fahren Sie fort und fügen Sie unsere neue Variable hinzu, unsere Win-Win-Zone Das ist ein Bulle, der standardmäßig auf Stürze eingestellt ist. Und mal sehen, nach unserem Tod sagen wir, wenn ID eins und Plattform falsch ist und Windzone falsch ist, dann gewinnen wir nicht. Wir sind also nicht im Windraum. Wir sind nicht auf der Plattform und wir sind im Wasser, dann nennen wir es am Ende Tod. Hervorragend. Und lass uns sehen. In unserem Windraum nennen wir zwei Dinge. Wir müssen unseren Körper in die Windzone bringen. Entspricht wahr. Und dann setzen wir an zweiter Stelle unseren aktuellen Status auf den Körperpunkt, aktuelle Status entspricht Stat Win und stellen Sie sicher, dass ich das richtig tippe Aktueller Status, glaube ich schon, aber ich werde es kopieren und einfügen, nur den Bezeichnerstatus speichern, der nicht als aktueller Bereich deklariert wurde, oder? Body Stay Punkt Win. Da haben wir's. Und im Moment sollte das funktionieren , das sollte eigentlich nichts bewirken. Und in unserem Tod werden Sie sagen , drucken Sie tot. Also stellen wir einfach sicher, dass alles so ausgelöst wird, wie es sollte Antworten Drucken Sie das Wort „Antworten“ aus. Und in unserem Winspace Nun, wir müssen auch die Windzone wieder auf Walls setzen Aber drucke auch Win aus. Und wir können weitermachen und es testen. Wir können jetzt zu unserer Hauptszene gehen. Die Hauptinstanz mit diesem kleinen Kettensymbol, weißt du noch? Und mach einfach weiter und suche nach deinem Winspace. Bring es rein Haken. Hier ist meins. Erstelle eine Sicherungskopie. Es werden zwei Windräume für diese Zonen sein. Das passt zu der ganzen Sache. Fantastisch. Und jetzt duplizieren wir es einfach. Zweiter Steckplatz. Und ich werde einfach den ganzen Weg weitermachen. Füllt alle meine Zonen. In Ordnung. Also habe ich all meine kleinen, positionierten alle meine Windräume positioniert. Lassen Sie uns weitermachen und sicherstellen, dass unser Text korrekt auf unserer Konsole ausgedruckt wird. Lass mich das Spiel jetzt einfach reparieren. Ich bin wieder bei einer Kleinigkeit angelangt. Da haben wir's. In Ordnung, also lass uns sehen Wir sind von einem Auto gequetscht. Wir sind gestorben und haben geantwortet Hervorragend. Okay, wir sind ins Wasser gesprungen und sind gestorben und haben geantwortet Wir hüpfen auf den Baumstamm. Wir sind gut. Pad, und uns geht es gut. Schildkröte, Baumstamm, Baumstamm. Und wir sind reingesprungen. Wir haben gewonnen Ich sehe einen Sieg, einen Respawn, einen Tod, einen Respawn. Das klingt nicht so, wie es laufen sollte. Machen wir uns auf den Weg zurück nach oben. Mach weiter und pausiere es hier. Damit ich dort weitermachen kann. Und mach damit weiter. S. Okay, so weit, so gut. Wir sind reingesprungen. Wir haben einen Sieg, einen Respawn, einen Toten und einen Okay, das ist also nicht großartig. Das heißt, wir haben da einen Bug drin. Wir hätten einen Sieg und einen Respawn erringen sollen. Wir hätten nicht tot sein sollen. Ich schätze, unser Respawn hat noch nicht stattgefunden. Es hat unsere Position oder so etwas nicht geändert. Wir sollten zuerst mit unserer Kollision beginnen. Ja. Ich erinnere mich an den Tod. Das Einzige, woran ich im Moment denken kann, ist vielleicht etwas hier. Aber wir werden versuchen, das einfach früher zu deaktivieren. Mal sehen, ob das funktioniert Wir werden es herausfinden. Meine Logs, los geht's. Das ist wahrscheinlich die eine Sache, die ich Testen am meisten nicht mag Macht ständig immer wieder dasselbe. Und wir warten auf ein Protokoll. Da geht es hin. Bei Respawn haben wir dann einen Dead and Respawn. Okay. Also werde ich ein paar Dinge ausprobieren und sehen, welche davon das Problem beheben. Vielleicht ist es nur so, dass ich in 2 Sekunden zurück bin. Und mal sehen, wo die Quelle hier ist. Ordnung, ich musste mir die beiden D versus ansehen, sehen, was wir hätten tun können, um das zu lösen Und ich hatte nur eine kurze Verspätung hier oben auf der Zwischenruf-ID. Wir hatten einen kleinen 0,1-Timer bis wir unsere Position und alles hier Also da hast du's. Keine große Sache. Aber damit werden Sie sehen, dass wir jetzt weitermachen und den ganzen Weg über den Bildschirm springen können . Genieß es, ein bisschen froschig zu sein. Komm schon. Bringt die Logs raus. Lass uns gehen. Los geht's. Wir hüpfen auf den Baumstamm. Wir warten auf kleine Schildkröten oder Seerosenblätter, was auch immer Sie wollen, sie sind der Baumstamm, der nächste Block, der Baumstamm und die Windzone Los geht's. Wir haben gewonnen und geantwortet, kein Tod. Oh, ich bin auf den Truck gestoßen. Und Z, wir sterben immer noch, wenn wir ins Wasser springen. Ordnung. Also los geht's Wir haben jetzt unseren Windraum eingerichtet und das Letzte, was wir tun müssen. Soll ich wieder ein Punktesystem und unsere Hütte einrichten ? Und dann haben wir unsere Drei-D-Version fertig eingerichtet. 57. Score GUI und Timer: Okay, also hier werden wir weitermachen und die Punktelive und unser HUD einrichten, und das wird viel einfacher sein, weil wir das HUD, das wir in der 2-D-Version erstellt haben , wiederverwenden können in der 2-D-Version erstellt haben , Also das Wichtigste, was wir tun werden, ist, dass wir unser globales System wiederverwenden werden wiederverwenden werden Dann verwenden wir einen Teil des TD. Und wir müssen nur einen Teil unseres Pfads hier umbenennen, und wir können das sowohl mit der Zwei-D-Version als auch mit der Drei-D-Version zum Laufen bringen , wenn Sie möchten. Aber wir werden im Grunde dasselbe Skript verwenden. Wenn Sie also drei D-Versionen und zwei D-Versionen in zwei verschiedenen Projekten haben , können Sie das Skript einfach kopieren und dann zu Ihren Projekteinstellungen gehen und dann zu Ihren Projekteinstellungen und es als Autoloa einrichten. Alles klar Damit das also in drei D für global funktioniert. Sie sehen, steht in meinem Hauptknoten Main für den Wurzelknoten meiner Drei-D-Szene , der ein Knoten drei D ist, und in zwei D war es ein Knoten zwei D. Also werde ich weitermachen und das in Min umbenennen, weil ich so heiße, und ich werde weitermachen und das in Update Lives ersetzen , ebenso wie Update Score. Ordnung. Und für unseren Mann werde ich zur 2-D-Version übergehen wieder öffnen Und ich werde einfach mit der rechten Maustaste klicken damit ich den Kerl nicht noch einmal neu erstellen muss, da er einfach genau derselbe sein wird Ich klicke einfach mit der rechten Maustaste und wähle die Option aus. Wo ist es? Speichern Sie den Zweig so, wie Sie ihn sehen. Und wenn Sie das tun, sollten Sie eine Option haben. Dieser Bildschirm sollte hier erscheinen und Sie können ihn speichern. Ich werde hier in meine Frosch- oder Three-D-Szene gehen und dort einfach die Gooey-Szene erneut speichern Ordnung. Und das ist alles, was wir von den beiden D brauchen Und das musst du natürlich nicht tun. Sie können weitermachen und es neu erstellen Fügen Sie einfach die Leinwandebene, den Texturverlauf, die Beschriftungen und alles wieder Falls es das ist, was du tun wolltest. Ich mache weiter und füge das jetzt hinzu, füge meine Guy-Szene hinzu. Und beachten Sie, dass wir es hier nicht sehen können. Wenn du deinen Guy von Grund auf neu erstellst, musst du hier auf die Zwei-D-Option klicken und es dir ansehen und auf diese Weise neu erstellen, weil die Leinwandebene ein Zwei-D-Objekt ist, oder? hier auf die Zwei-D-Option klicken und es dir ansehen und auf diese Weise neu erstellen, weil die Leinwandebene ein Zwei-D-Objekt ist, oder Etwas, das über allem anderen auf den Bildschirm gerendert wird, aber es sind zwei D, unabhängig davon , ob es sich bei den restlichen Komponenten um zwei D oder drei handelt Wenn wir das jetzt ausführen würden, könnten wir sehen, dass alles oben ist und so, wie es sein sollte. Also denk dran, wenn du das selbst erstellst , behalte das im Hinterkopf. Wenn du das nachbauen willst, musst du vielleicht das Spiel starten, um dir eine gute Vorstellung davon zu machen, wo sich die Dinge Und das Gute ist, wenn ich hier reinkommen und einige dieser Komponenten bearbeiten wollte , könnte ich reinkommen und Dinge verschieben, und du kannst das Update live im Spiel sehen So könntest du immer sicherstellen, dass alles in Ordnung ist. Ich werde aufhören, das Spiel dort laufen zu lassen. Also, wenn du den Kerl nachstellst, werde ich es dir gleich hier nochmal zeigen Gib diese Schicht nach oben. Zwei Beschriftungen für das Label und den Notationstext. Unser Lebensbalken ist ein Texturfortschritt, und wir haben diese Frogger Lives-Textur, die Sie als Fortschrittstextur einfügen können , wenn wir hier die Texturen für den Fortschritt öffnen Wir haben eine Timer-Leiste, was wiederum dasselbe ist Es ist nur ein Textur-Fortschrittsbalken und hat das grüne quadratische Rechteck, welches auch immer ich erstellt habe, nur um es hier als Balken zu verwenden Wir haben eine Bezeichnung, auf der nur Zeit steht , damit der Benutzer weiß, was das ist, und wir haben einen Timer-Knoten bei dem die Standardwartezeit eines Autostarts aktiviert ist, und das Timeout-Signal ist mit unserem Mitarbeiter verbunden, der ein Skript hat Unser Guy-Skript ist einfach auf Timeout. Der Wert der Timerleiste ist minus eins. Dadurch wird unsere Leiste kontinuierlich sinken. Und wenn der Wert dann Null ist, bekommen wir unseren Spielerknoten namens Tod darauf und setzen dann den Balken auf 30 zurück. Ordnung. Hoffentlich hattest du damit genug Zeit, dein GUI entweder so zu speichern, wie es vor Ort war, es rüberzubringen oder neu zu erstellen Und ich möchte hier anmerken , dass unser Filmmodus in der Lives-Leiste von links nach rechts und in unserer Timer-Leiste rechts nach links verläuft. In Ordnung. Aber wenn Sie diese beiden Dinge eingerichtet haben , denken Sie daran, dass wir das auf unserer globalen Seite ändern müssen. Wir müssen das von keinem TD auf das Wichtigste umstellen. Und das liegt nur daran, dass meins als Main gekennzeichnet ist. Wir könnten es einfach mit zwei D bezeichnen . Es ist verwirrend, aber es könnte. Oder wenn Sie es als Standard belassen würden, dann würden Sie statt Main hier Nein bis drei D schreiben. In Ordnung. Also, was sind die Dinge , die wir ändern müssen? Nun, das wird auf unserem Player hier und auf unserem WindSpace liegen Aber fangen wir mit dem Player an. Daran werden wir uns jedes Mal erinnern, wenn wir aufsteigen, das wird in unserer Bewegung hier sein. Wenn wir aufsteigen, bekommen wir Punkte, oder? Also greifen wir auf dieselbe globale Karte zu oder wenn Sie sie kopiert haben, aktualisieren den Punktestand, und bei den beiden D sind wir um zehn Punkte gesunken. Dann, was den Tod angeht, machen wir weiter und müssen unser Leben auf den neuesten Stand bringen. Also globales Update Lives. Und das wurde auf minus eins gesetzt. Und das Letzte, was wir auf DEF aktualisieren, ist unsere Timer-Leiste. Damit müssten wir uns also Node besorgen, oder? Und wir müssten uns an unsere Spieler erinnern, wir werden bis zu unseren Adern hochgehen, also die Elternebene erreichen, und dann können wir ganz runter kommen, bis unser Typ die Stufe eins bekommt und dann unseren Kerl. Und dann können wir uns hier unsere Timer-Leiste holen . Timer-Leiste. Achte nur darauf, dass ich das richtig buchstabiere. Großbuchstabe T, Großbuchstabe B, Timer-Balkenpunktwert ist gleich 30. In Ordnung, das wird also zurückgesetzt. Und jetzt müssen wir nur noch zu unserem Winspace hier gehen. Und auf unserem Windspace müssen wir nur unsere paar günstigen Wochen hier verbringen. Also müssen wir unseren Multi-Frog-Wert aktualisieren. Unser Multi-Frosch-Plus entspricht also Eins. Du erinnerst dich, dass wir in unserer globalen Version, so wie Frogger funktioniert, unseren Multifrosch erhöhen, und wenn wir auf fünf Mehrfachfrösche kommen, bekommen wir einen Bonus von 1.000 Quadraten, bekommen wir einen Bonus von 1.000 Quadraten, und dann wird unser Multi-Frosch wieder auf Null zurückgesetzt Der Windraum, richtig? Also erhöhen wir dort unseren Multiplikator. Wir erhöhen unseren SOE Global Dot Update Score, und wir kommen hier auf 40 Punkte. Und denken Sie daran, dass wir auch den Timer-Bonus hatten. Basierend auf der verbleibenden Zeit haben wir also zusätzliche Punkte zu unserer Punktzahl hinzugefügt bekommen. Machen wir also weiter und holen uns den Zeitbonus. Das war VR und wir haben es einfach Zeitbonus genannt. Das war eine Ganzzahl, wir sagten, sie entspricht einem Knoten und wir mussten eins hochgehen, unser übergeordnetes Objekt finden, richtig, und dann führte es uns bis zu unserem Hauptknoten an der Spitze. Dann können wir unseren Kerl holen und die Timer-Leiste holen. Und wir wollen , dass der Wert davon mit zehn multipliziert wird. Das ist das, was wir verwenden Das gibt uns einen theoretischen Höchstbonus von 300 Punkten, aber das setzt voraus, dass Sie in weniger als einer Sekunde da oben sind, das wird nicht passieren Und das gibt uns einen Mindestbonus, vorausgesetzt, Sie haben noch 1 Sekunde von zehn Punkten übrig. Also nochmal, das ist ziemlich anständig beim Bonus, irgendwo zwischen 10 und 300 Realistisch gesehen werden es wahrscheinlich eher 10-200 sein Ordnung. Und jetzt, wo wir unsere Bonuspunkte haben, können wir weitermachen und das Update für unseren Punktestand erneut aufrufen, globalen Punktestand aktualisieren und unseren Zeitbonus nutzen. das jetzt noch einmal durchgehen, könnten wir natürlich einfach einen Zeitbonus plus unsere 40 Punkte für den Update-Punktestand hinzufügen. Wenn du alles zu einem kombinieren möchtest , anstatt unseren Update-Punktestand zweimal aufzurufen. Du weißt schon, persönliche Präferenz, und das ist etwas, das du selbst machen kannst. Wenn wir über sauberen Code sprechen und Ihnen die Möglichkeit geben, zurückzukommen und den Schauspielercode zu überarbeiten und Bereiche aufzuräumen, von denen Sie denken, dass sie vielleicht etwas chaotisch sind Sie werden diese Option also später haben. Und das Letzte, was wir tun müssen, ist unsere Timer-Leiste auf 30 zurückzusetzen . Also werden wir einfach den Node in unserem Elternteil in den Gooey holen, die Timer-Leiste abrufen und den Wert abrufen Ich werde es einfach dorthin kopieren und es auf 30 zurücksetzen In Ordnung. Und einfach so sollte unser Spiel einfach mit unseren alten Global - und Goey-Skripten funktionieren und das überprüfen Jedes Mal, wenn ich weitermache, gewinne ich einen Punkt. Wenn ich sterbe, verliere ich ein Leben. T wurde zurückgesetzt. Mal sehen, ob wir es hinüberschaffen, auf unseren Baumstamm wickeln oder rumhängen können , de da de dah. Wir fangen an, rüberzuspringen. Und wir kommen in unsere Windzone, mal sehen, was wir haben werden Wir sind von 180 auf 320 gestiegen. Also haben wir in unserer Zeit einen ziemlich guten Bonus bekommen. Die Zeit wurde zurückgesetzt und wir haben eines unserer Leben zurückbekommen. Das ist also fantastisch. scheint alles einwandfrei Mit der Übertragung unserer Tragetaschen scheint alles einwandfrei zu funktionieren. Also nochmal, Guy, das ist eine Leinwandebene. Mit einem Etikett mit einem Notenlabel, einem Etikett mit einem Partiturtext. Unser Lebensbalken ist ein Texturfortschritt, und wir setzen die Fortschrittstextur auf unsere Lebenstextur Lassen Sie mich den genauen Namen von Health Bar Dot PNG ermitteln. Die Timer-Leiste habe ich gerade Tr Dot PNG genannt. Es ist ein weiterer Textur-Fortschrittsbalken, und die Fortschrittstextur wird durch den Timer-PNG-Wert festgelegt . Wir haben dann ein Etikett mit dem Wort Zeit daneben. Wir haben einen Timer-Knoten mit aktiviertem Autostart und einer Standard-Gewichtungszeit von 1 Sekunde. Das Timeout-Signal ist mit dem Boy-Skript verbunden. Bei einem Timeout in unserem Gooey-Skript subtrahieren wir eins vom Wert unserer Timer-Leiste Und wenn unsere Timer-Leiste Null ist, rufen wir den Spieler zum Tod und setzen ihn auf unser Spieler tot ist, nennen wir Update Lives auf unserer globalen Ebene, die wir verwendet haben, aus nennen wir Update Lives auf unserer globalen Ebene, die wir verwendet haben, aus den zwei D minus eins, subtrahierten Wir bekommen auch unsere Timer-Leiste, also gehen wir um eins nach oben und wählen Eltern. Dann gehen wir über unsere GUI zur Timer-Leiste und greifen auf die Eigenschaft value zu. Wir setzen es auf 30, und wenn wir aufsteigen und erst wenn wir aufsteigen, greifen wir wieder auf unser globales System zu, aktualisieren die SCOR-Funktion und geben zehn Punkte Und unser globales Skript wird das noch einmal durchgehen, nur für den Fall finden konnten , dass Sie es aus irgendeinem Grund nicht in Ihrem eigenen Bitteschön. Wir haben also ein paar Variablen den besten Ergebnissen, eine Ganzzahl, die standardmäßig auf Null gesetzt ist, Multi-Frog, eine Ganzzahl, standardmäßig Null. Leben, Sie setzen es standardmäßig auf sechs , wieder eine weitere Ganzzahl, und der Multiplikator ist eine Ganzzahl, die auf eins gesetzt Unser Funktionsaktualisierungswert nimmt einen Parameter mit neuer Menge an , der eine Ganzzahl ist Und wir lassen unser ILS prüfen, ob Multi-Frog weniger als fünf ist, dann entspricht einfach Score plus unserem neuen Betrag Also fügen wir den neuen Betrag einfach zu unserer Punktzahl hinzu, wenn wir die fünf Multiprogs nicht haben Die einzige Möglichkeit, die wir hier haben könnten, ist, wenn wir fünf oder mehr haben, dann, anstatt den neuen Betrag hinzuzufügen, wir 1.000 Punkte hinzufügen und Multi Frog auf Null setzen Und dann prüfen wir, ob die Punktzahl geteilt durch 10.000-fache unseres Multiplikators größer oder gleich eins ist Dann aktualisieren wir unser Leben, wir nennen es Update Life Function und fügen eins hinzu, und wir legen unseren Multiplikator fest, plus ist gleich Okay. Danach, außerhalb dieser FL-Blöcke, erhalten wir unseren Punkte-Text, und wir aktualisieren den Text einfach mit unserer neuen Punktzahl, und wir konvertieren unsere Punktzahl in eine Zeichenfolge, und wir nennen PAD-Nullen und wir fügen fünf davon Das gibt uns unsere Polsterung hier oben. Achte darauf, dass wir immer alle fünf dieser Nullen haben, auch wenn unsere Punktzahl nur eine Ziffer ist Dann haben wir mit unserer Funktion Update Lives einen Betrag als Parameter, der eine Ganzzahl ist Wenn die Lebenspunkte Null sind, holen wir uns Tree und laden die aktuelle Szene neu, sodass das Spiel quasi neu gestartet wird Andernfalls machen wir Leben plus ist gleich Betrag und wir holen uns den Knoten, gehen unseren übergeordneten Knoten hoch, gehen unseren Hauptknoten runter, unseren Hoey runter, zu unserer Lebensleiste, holen uns den Wert und addieren plus entspricht der Menge, um die wir unsere Leben holen uns den Wert und addieren plus entspricht der Menge, um die wir In Ordnung. Also das ist wieder unser globales Drehbuch, wenn du es nicht verstanden hast oder du es nicht finden konntest, hast du es irgendwie verloren. Da hast du's. Da ist es wieder, kurzer Durchlauf, sowie das Goey-Skript und das Gooey-Setup in der Szene, wie Sie dort sehen können Wie die kleinen Änderungen, die wir unserem Player hinzugefügt haben , damit alles funktioniert Und falls Sie aus irgendeinem Grund Schwierigkeiten haben Ihre globale Version zu aktivieren, wenn Sie sie umgeschrieben und eingeführt haben, lassen Sie mich einfach sehen, ob ich das ganz schnell erfassen kann Also gehst du zu deinem Projekt, gehst zu deinen Projekteinstellungen Laden Sie nicht automatisch, klicken Sie hier auf diese kleine Schaltfläche und Sie können Ihr globales Skript aus dem Pop-up auswählen Der Knotenname, der hier automatisch eingetragen wird, ist der Name Ihres Skripts , der global sein würde Und du drückst einfach auf die Anzeigenschaltfläche und es erscheint hier unten. Stellen Sie einfach sicher, dass Sie es aktiviert haben und der Name ist, wie Sie darauf zugreifen. Deshalb können wir das Wort Global eingeben und haben Zugriff auf das Skript. Aber da hast du's. Da sind unser Punktesystem, der Timer-Bonus und der Gei, die alle zu unserem Spiel hinzugefügt wurden Und jetzt können wir weitermachen und Ride Boger spielen. Und wir haben keine Probleme, während wir gehen. Ordnung. Also das war's damit. Passt auf euch auf, habt einen guten Tag und wir können mit der nächsten Woche weitermachen. Wenn Sie Audio hinzufügen wollten, ist es dasselbe. Fügen Sie einfach einen Stream-Player hinzu und laden was sind das alles MP Three oder ein paar Wellen vv Dateien. Ja, die beiden Dreien und die Akten. Sie können also weitermachen und sie genauso verwenden wie die beiden D. Fügen Sie einfach einen Audio-Stream-Player zu Ihrer Hauptszene und dem Hintergrund und Ihr Hauptthema für die Hintergrundmusik wird an Autoplay gesendet Und für deinen Player kannst du einfach einen Audiostream hinzufügen und die Audioquellen laden und Audioquellen abspielen, wie du es brauchst, von Squish, Punk und all Genau das Gleiche wie bei den beiden D. Wenn du also etwas hinzufügen willst, das du vergessen hast, kannst du wieder da raufgehen Woche drei, schau mal. Aber ich denke, damit ist es für diese Woche erledigt. Wir haben jetzt eine Drei-D-Version unseres kleinen Frogger-Spiels hier, also können wir über die kleine Straße hüpfen und in unsere kleine Windzone gelangen, durch unsere kleinen Plattformen hüpfen und hoffentlich nicht von den Trucks gequetscht werden 58. Was ist eine API?: Ordnung. Hallo, alle zusammen. Und heute werden wir uns auf die spannende Reise in die Welt der APIs begeben in die Welt der APIs Wenn Sie sich jemals gefragt wie verschiedene Softwareanwendungen kommunizieren und Informationen austauschen, ist dies der perfekte Ausgangspunkt Stellen Sie sich nun vor, Sie sind in einem Restaurant und möchten Ihr Lieblingsgericht bestellen. Nun, in der Welt der Programmierung ähnelt dieser Prozess der Funktionsweise von APIs. Lassen Sie uns eintauchen und dieses faszinierende Konzept gemeinsam erkunden . Lassen Sie uns zunächst verstehen, was eine API oder wofür API steht. API steht für Application Programming Interface. Stellen Sie sich das als ein Menü oder eine Reihe von Anweisungen vor, die es zwei Softwaresystemen ermöglichen , miteinander zu kommunizieren und Daten auszutauschen. So wie Sie eine Mahlzeit bei einem Kellner bestellen und ein Kellner eine Anfrage an die Küche weiterleitet, dient die API als Vermittler, der die Kommunikation zwischen verschiedenen Softwarekomponenten erleichtert Kommunikation zwischen verschiedenen Softwarekomponenten Um dieses Konzept noch klarer zu machen, werden wir die Restaurant-Analogie verwenden, die Sie hier auf dem Bildschirm sehen Sie, der Kunde, stehen also für die Softwareanwendung und die Küche für eine andere Nun, das könnte Ihr eigenes Tool sein, das Sie erstellen, und Sie möchten die andere Anwendung, die Küche, vielleicht Spotify, oder Twitter oder vielleicht eine Aime-Datenbank, etwas, mit dem Sie sprechen und Informationen erhalten möchten und Informationen erhalten Nun, Sie möchten ein köstliches Essen bestellen, die Informationen erhalten, aber Sie haben keinen direkten Zugang zur Küche Stattdessen teilen Sie Ihre Bestellung dem Kellner mit, der in diesem Szenario als API fungiert Der Kellner versteht Ihre Bestellung, bringt sie in die Küche, die andere Softwareanwendung in Ihrem Namen Die Küche bereitet Ihre Mahlzeit nach Ihren Wünschen zu und gibt sie an den Kellner zurück Der Kellner, der als API fungiert, bringt Ihnen dann ein frisch zubereitetes Gericht zurück In der Welt der Programmierung funktionieren APIs auf ähnliche Weise Sie definieren eine Reihe von Regeln und Protokollen, die es verschiedenen Softwareanwendungen ermöglichen Daten nahtlos anzufordern und auszutauschen. APIs können verwendet werden, um auf Daten von Webservern zuzugreifen, Dienste von Drittanbietern zu integrieren oder sogar mit Hardwaregeräten zu interagieren. Nehmen wir an, Sie gehen in ein Restaurant, richtig? Du setzt dich an den Computer, was du tust. Sie verwenden Ihre Anwendung und teilen dann dem Kellner oder der API mit, und teilen dann dem Kellner oder der was Sie möchten, indem Sie die Daten korrekt formatieren Die API oder der Witter kehrt dann zur Softwareanwendung oder Datenbank des Drittanbieters zurück zur Softwareanwendung oder Datenbank des Drittanbieters , ruft diese Informationen ab und bringt sie dann zu Ihnen zurück Dann haben Sie also die Informationen , mit denen Sie es tun können, wie Sie wollen. Zusammenfassend sind APIs also wie Vermittler, die die Kommunikation zwischen verschiedenen Softwaresystemen erleichtern zwischen verschiedenen Softwaresystemen So wie ein Kellner für Ordnung in der Küche und im Restaurant sorgt , ermöglichen sie es Anwendungen, miteinander zu kommunizieren, Daten auszutauschen und verschiedene Aufgaben zu erledigen, ohne dass sie die internen Abläufe des jeweils anderen verstehen müssen . In Ordnung Da hast du es. Eine kurze Einführung in APIs anhand der klassischen Restaurant-Analogie Ich hoffe, die Analogie hilft Ihnen dabei, das grundlegende Konzept von APIs und ihre Rolle in der Softwareentwicklung zu verstehen das grundlegende Konzept von APIs und ihre Rolle in der APIs und ihre Rolle in Denken Sie daran, dass APIs leistungsstarke Tools sind, die eine nahtlose Integration und Zusammenarbeit zwischen verschiedenen Softwarekomponenten ermöglichen nahtlose Integration und Zusammenarbeit zwischen verschiedenen Softwarekomponenten 59. So verwendet man eine API: Ordnung, alle zusammen. Hey, wir werden uns ansehen, wo wir eine API bekommen können und wie es ist, wenn wir sie verwenden können und speziell die, die wir in unserem Codebeispiel verwenden werden, um beim Lernen zu helfen Es wird hier die Open-Weather-API sein. Wenn Sie also hierher kommen, um das Wetter zu öffnen, können Sie ein Konto eröffnen, und Sie werden vielleicht feststellen, dass Sie möglicherweise zur Preisgestaltung kommen und hier einen Tarif auswählen müssen , aber sie haben einen kostenlosen Tarif, mit dem Sie 1 Million Anrufe pro Monat und 60 Anrufe pro Minute erhalten . Und wir können das aktuelle Wetter sehen und das wird hier das Wichtigste sein. Nun, all diese anderen Informationen und all diese Aufrufe und all das können Sie natürlich jederzeit tun, aber diese APIs sind ziemlich teuer. Sie erhalten viele Funktionen und viel mehr Anrufe pro Minute und pro Monat. Offensichtlich werden Sie nicht wirklich etwas in der Nähe davon bekommen. Es sei denn, Sie haben eine öffentlich veröffentlichte Anwendung , die sehr beliebt ist. Zum Lernen und vor allem, wenn es sich um eine Ihrer ersten Anwendungen handelt, die Sie veröffentlichen, ist das kostenlose Kontingent wahrscheinlich mehr als ausreichend, als Sie jemals benötigen werden. Wenn Sie also möchten, abonnieren Sie es. Ich habe meine schon , und wie Sie sehen, steht da, holen Sie sich APIK Aber wie nutzen wir diese APIs eigentlich? Nun, wenn wir uns oben ansehen, sehen wir, dass wir hier eine Anleitung haben. Und klicken Sie darauf, geben Sie ihm auch eine Sekunde Zeit. Da haben wir's. Wir hier. Und es ist interessant, dass sie es Got Here genannt haben. An den meisten Orten nennen wir es Dokumentation. Und das ist der Ort , an dem wir weitermachen und das nutzen können . Komm her und wir schauen uns um, ob wir die genaue Sekunde für die Verwendung finden können. Insbesondere die Torsion bei offenem Wetter. Per Anruf. Also los geht's. Jetzt sind wir hier auf der Seite für die Dokumentation speziell für das Wetter hier. Und wir können das Produktkonzept sehen. Wir haben unsere aktuelle, wie man anfängt, Wetterdaten. Wir haben hier unseren API-Aufruf , und ich sehe, dafür benötigen wir einen API-Schlüssel. Wir haben alle Parameter hier aufgelistet, welche sind erforderlich, was ist optional. Und dann haben wir hier ein Beispiel für einen API-Aufruf. Und ein Beispiel für die Art der Antwort, die wir erhalten würden. Wenn wir nun eine Antwort wie diese erhalten, erhalten wir eine JSON-Antwort. Und wenn Sie genau hinschauen, können wir sehen, dass es sich um viele Schlüsselwertpaare handelt. Wir können diese Antwort also genauso behandeln und Informationen daraus gewinnen, als wäre es ein Wörterbuch. Und Sie können all die verschiedenen Informationen sehen , die wir daraus gewinnen. Das sind eine Menge Informationen, die wir durchgehen müssen. Sobald Sie sich also für ein Konto angemeldet haben, können Sie direkt zu Ihrem Benutzer oben rechts gehen, zu Ihrem Benutzer oben rechts gehen, meinen API-Schlüsseln gehen und dort sicher sein, dass Sie dort einen Schlüssel sehen. Wenn nicht, können Sie weitermachen und einen generieren und dies im Hinterkopf behalten oder diese Seite geöffnet lassen, da wir in Zukunft hierher zurückkehren und uns Ihren API-Schlüssel holen müssen . Ordnung. Also lass uns weitermachen. Eine weitere Sache, die ich erwähnen werde, ist, wenn Sie nach kostenlosen APIs suchen , mit denen Sie kostenlose und offene APIs verwenden können, Sie können einfach eine einfache Google-Suche durchführen und Sie werden feststellen , dass es Orte gibt , die eine vollständige Liste all der verschiedenen Arten haben, Sie oder verschiedene Arten, die es gibt, mit Links zu allen von ihnen. können also natürlich immer üben und einige der anderen ausprobieren, um zu sehen, wie die API eines Unternehmens möglicherweise etwas anders funktioniert als die eines anderen. Aber das war's für diesen Wir werden weitermachen und beim nächsten Mal zu Goto springen beim nächsten Mal zu Goto Unseren API-Schlüssel behalten? Oh, ich verstecke es ein bisschen, sodass wir es für den Großteil unseres Codes nicht wirklich sehen. Und nun, wir werden es von dort aus übernehmen. 60. Skript-Setup: Ordnung. Auch hier können Sie weitermachen und ein neues Projekt erstellen, wenn Sie möchten. Ich habe hier gerade einen neuen Ordner für den API- und Websocket-Bereich erstellt hier gerade einen neuen Ordner für den API- und Websocket-Bereich Und damit das Zeug läuft, brauchen wir natürlich eine Art Szene , die hier läuft. Also werde ich weitermachen und eine Benutzerschnittstelle erstellen, die uns natürlich eine gewisse Kontrolle über unseren Start hier geben unseren Start hier wird. Ich nenne diese API-Demo oder weißt du was? Diese API. Das ist in Ordnung. Dann werde ich es speichern, den gleichen Namen behalten und es in meinem Ordner speichern. Ich habe eine Szene namens API. Und natürlich wird dafür ein Skript benötigt. Nun, die tatsächliche Szene hier spielt keine Rolle, es sei denn, Sie möchten, dass der Benutzer hier Informationen eingeben kann, wie zum Beispiel natürlich ein Textfeld oder eine Route zur Linienbearbeitung, ich sollte sagen, damit der Benutzer die relevanten Informationen eingeben kann, und dann haben Sie vielleicht eine Schaltfläche die den gesamten Text aus diesen Feldern herausnimmt Aber in den meisten Fällen brauchen wir dort nicht wirklich etwas, aber wir werden hier noch ein Stück zu dieser Szene benötigen , das wird eine HTTP-Anfrage sein, damit wir eines davon zu unserer Szene hinzufügen können. Ich und eine HTTP-Anfrage ermöglichen es uns eine API, eine Website oder irgendeinen Webservice aufzurufen . Und wenn das abgeschlossen ist, einige Informationen an uns zurückgesendet, und auf der Grundlage dieser Informationen können wir sie entweder analysieren , können wir sie entweder analysieren die Daten zu erhalten, nach denen wir suchen, oder wir können diese Informationen nehmen und sie vielleicht einigen Variablen zuweisen, um eine weitere Anfrage an einen anderen Abschnitt zu senden weitere Anfrage an einen anderen Abschnitt zu da einige APIs zusätzliche Daten benötigen zusätzliche Daten benötigen die Form von sogenannten Headern, aber dafür, da es sich um eine einfache API handelt, ist es nicht allzu schwierig, ihnen zu folgen. Alles, was wir tun müssen, ist die eine Anfrage zu stellen, und wir werden die JSON-Daten zurückbekommen Ordnung, also auf unserem APM werde ich weitermachen und ein Skript hinzufügen Und wir werden hier einige Variablen haben. Also variabel, ich werde den API-Schlüssel haben , und ich werde sagen , dass Sie Ihren API-Schlüssel haben sollten . Er sollte versteckt sein. Es sollte niemals irgendwo hochgeladen werden. Dies sollten Sie so geheim und so versteckt wie möglich halten. Also API-Schlüssel, das wird nur eine Zeichenfolge sein. Und das kannst du wieder von der Website bekommen. Ich kann es einfach kopieren und dann kannst du weitermachen und es einfach dort einfügen. Jetzt kannst du dir das hier ansehen. Entweder wird es für das Video unscharf oder ich kann es einfach deaktivieren, sodass es nicht mehr funktioniert Nachdem ich das aufgenommen habe, ist es im Moment keine große Sache, aber behalte das im Hinterkopf, das ist etwas, das du so geheim wie möglich halten solltest so geheim wie möglich Okay, welche anderen Informationen werden wir benötigen? Nun, wenn wir zurückgehen und uns die Daten ansehen, tut mir das leid. Mal sehen, was erforderlich ist. Wir werden viel brauchen, also einen Breiten- und einen Längengrad. App-ID, das wird unser API-Schlüssel sein. Das haben wir. Ausschließen ist optional, und alles andere ist Option. Okay, wir können es dafür einfach nach Breiten- und Längengrad angeben. Wir schauen uns nur die Dokumentation für diesen Davar Long an, und das wird Float sein und wir werden auch einen für Lap, Sauce Float benötigen Und das sind die Mindestinformationen , die wir benötigen werden Wenn wir uns nun den API-Aufruf ansehen würden, wie wir das machen würden, diesen, ihn kopieren, hier eine weitere Variable gegen die URL-Zeichenfolge eintauschen würden, und da hätten wir eine wirklich lange Zeichenfolge. Wir haben also HTTPS, Doppelstrich, Schrägstrich, gmther oder das ist der Beispielaufruf , den wir Sie sehen also, wir werden den Breitengrad hier eintragen lassen, den Längengrad hier ausschließen, wir haben gesehen, dass das völlig optional ist Und da wir hier momentan keine zusätzlichen Informationen haben , lösche ich einfach diesen Teil und die App-ID , zu der unsere API gehört. Okay. Also, wir werden einen Platzhalter verwenden , der ein Prozent in einem kleinen S ist. Und wir werden ihn verwenden, um diese geschweiften Klammern und das, was sich darin befindet, loszuwerden diese geschweiften Klammern und das, was sich darin befindet, loszuwerden Wir werden also den Breitengrad, den Längengrad und den API-Schlüssel haben, also das sind drei Dinge, an die wir uns erinnern Das Erste, was ich tun möchte, ist, dass wir einen Breiten- und Längengrad benötigen, denen wir vorerst die Standardwerte Null, Null geben können. Und innerhalb unserer Ready-Funktion müssen wir, um diesen API-Aufruf zu tätigen, weitermachen um diesen API-Aufruf zu tätigen, weitermachen und unsere HTCP-Anfrage abrufen, aber wir nennen das einfach den Setup-Teil Das teilen wir uns im nächsten auf. Also gehen wir zu unserer HtcprQuest und wir werden das Signal „Anfrage abgeschlossen“ tatsächlich mit der API verbinden Signal „Anfrage abgeschlossen“ tatsächlich mit der Und Sie werden sehen, dass wir ein Ergebnis bekommen, einen Antwortcode, wir bekommen einige Header und wir Der Körper wird hier der wichtige Teil sein. Ich werde einfach weitermachen und das speichern und alle anderen Tabs schließen. Ordnung, also werde ich dieses Video hier beenden, damit wir es als Nächstes einfach hier aufteilen können Und das nächste Video, wir machen weiter oder die nächste Vorlesung. Wir werden den eigentlichen API-Aufruf durchführen und die Daten, die wir zurückerhalten, analysieren , sodass wir sie tatsächlich verwenden und sehen können, was wir haben 61. API-Aufrufe vornehmen: Ordnung. Also ich möchte eine Notiz machen, hier ist eine, die wir uns ansehen, für einen Anruf bestimmt ist. Die URL ist also etwas anders. Es sind api.weathermap.org Slash-Daten. Dann Schrägstrich 2,5 Schrägstrich WE Question Mark. Und dann haben wir dort unsere Parameter Lat Long und App ID Die URL hier ist jetzt also etwas anders . Bei dieser Version hat es mich beim Testen angeschrien, aber ein Anruf war, dass ich aber ein Anruf war, dass einen anderen Dienst abonnieren musste Es ist also ein bisschen komisch die Dokumentation zu dieser Version zu finden, aber wir machen weiter und holen uns unseren HTTP-Anforderungsknoten und rufen die Anforderungsfunktion auf Wir geben die URL ein, und um diese Platzhalter auszufüllen , machen wir ein Prozentzeichen Und dann haben wir ein Paar eckiger Klammern genau wie bei einem Array, und wir übergeben unsere Variablen lat, on und unseren API-Schlüssel Nun, Sie werden feststellen, wenn wir versuchen, den Text hier einfach auszudrucken, dass wir hier eine Menge Daten haben. Nichts davon ergibt für uns wirklich Sinn, aber wir bekommen etwas zurück, was großartig ist. Im Allgemeinen sollten Sie hier wahrscheinlich einen F-Check mit einem Antwortcode durchführen, um sicherzustellen , dass wir keine Fehler haben, was zurückgegeben wird . Wenn wir also einfach den Antwortcode ausdrucken, sehen Sie, dass wir den Code 200 erhalten, was bedeutet, dass alles gut gelaufen ist , um ihn durchzugehen. Also, wenn wir einen 400-Fehler haben, dann, naja, ich habe es gerade verraten, es ist ein Fehler Also das bedeutet, dass etwas schief gelaufen ist, etwas nicht funktioniert Die Daten sind nicht zurückgekommen, der Dienst ist ausgefallen, die Anfrage ist nicht richtig formatiert, falsche Informationen, was auch immer es ist, es ist ein Fehler aufgetreten Wir könnten also sicherheitshalber überprüfen, ob Antwortcode 200 ist Wenn der Antwortcode 200 entspricht, oder? Wir können also sagen, wenn alles gut gelaufen ist , wie kommen wir dann eigentlich an diese Daten Weil wir es gesehen haben, war es ein Array, aber ein Array von nur ein paar Zufallszahlen. Nun, das müssen wir analysieren. Also das Erste, was wir tun werden, ist eine neue Variable für unsere Antwort zu erstellen , und die wird auf unseren Körper gesetzt, von dem wir aber die Daten bekommen wollen Also sagen wir Punkt und wenn wir UTF 8 eingeben, sehen wir eine Zeichenfolge aus UTF Acht mit jeweils einem Unterstrich dazwischen Wenn wir also weitermachen und unsere Antwort ausdrucken , wollen wir sehen, was passiert Okay, nun, wir haben Informationen. In vielen Fällen wirst du hier jedoch den zusätzlichen Schritt machen, Anine Ich erstelle hier einfach meine temporäre Variable, TD für temporäre Daten Und dafür rufen wir unseren JSON-Parse-String und können unsere Antwort dorthin übergeben Und jetzt schauen wir uns an, was wir zurückbekommen, nachdem wir die Zeichenfolge analysiert haben. Bitteschön, etwas, das etwas einfacher zu betrachten ist , wenn es ein bisschen besser verteilt ist Wir haben Komas dazwischen, alles. Es ist schöner zu sehen, aber es könnte immer noch schöner sein, sich die Dinge wirklich nur ansehen zu wollen Aber momentan repräsentiert TD all unsere Informationen, momentan repräsentiert TD all die wir benötigen oder benötigen würden Richtig. Falls es für dich schwer war, das zu lesen oder zu lesen, verstehe ich es. Das ist in Ordnung, aber wir können es ein bisschen verschönern , nur damit wir es uns leichter ansehen können. Und hier rufen wir einfach die JCN-Klasse auf und wir können das Methicon stringify aufrufen, unsere Daten, TD und ein zweites Argument einer Zeichenfolge, die nur ein Leerzeichen enthält, übergeben TD und ein zweites Argument einer Zeichenfolge, die nur ein Leerzeichen enthält, Und wenn wir uns jetzt die Ausgabe ansehen würden, wäre alles viel einfacher nachzuvollziehen Also, wenn es das ist, was du brauchst, fantastisch. So kannst du es schön und sauber machen. In Ordnung. Also, jetzt wüssten wir, dass wir, wenn wir hier reinkommen , TD ausdrucken könnten und wir könnten eine Information rausholen, zum Beispiel, dass Maine das ist, wonach wir suchen. Also können wir Maine holen und das ausdrucken. Und wir sehen hier unten, ob ich das einfach auskommentiere, die Zeile mit Control K kommentiere , damit wir die alten Informationen nicht verwechseln können Wir können hier die Temperatur sehen. So fühlt es sich an. Tempman Max, der Druck, Luftfeuchtigkeit, der Meeresspiegel und die Bodenhöhe Ich habe bereits erwähnt, dass wir Breiten- und Längengrade benötigen Also ein Ort, an den wir uns dafür begeben können, wenn ich hier einfach zur Bildschirmaufnahme zurückkehre. Heißt diese Website hier latlondt net. Und wie Sie sehen können, können Sie einfach auf eine beliebige Stelle auf der Welt klicken und Sie erhalten eine Position für Breitengrad und Längengrad Wenn wir also zum Beispiel runterkommen würden, nehme ich hier Vancouver und klicke einfach da rein. Wir haben 409-25-6791 Wir machen einfach weiter und kopieren das und stellen es auf meinen Betrieb hier ein . Also zuerst ist bei. Sie sind auf der Seite und mein Längengrad ist hier. Macht s. Sie können also weitermachen und hier irgendwohin auf der Welt kommen , Ihren Breiten- und Längengrad ermitteln. Wie Sie sehen, können Sie hier auch einfach einen Ort eingeben und er sollte für Sie erscheinen. Ordnung. Nachdem wir diese Informationen eingegeben haben, lassen Sie uns weitermachen und das überprüfen Mal sehen, was wir jetzt bekommen. Temperatur 288,11 fühlt sich an wie 288,14. Nun, diese Zahlen scheinen offensichtlich ziemlich hoch zu sein. Die Frage wäre dann, warum sollte das? Nun, hier kommen die Daten ins Spiel , die wir bekommen. Hier bitteschön. Ich habe uns gerade zu den Feldern in unserer ATI-Antwort hier in der Dokumentation weitergeleitet. Ich scrolle hier rein, wir können sehen, wo wir uns hier befinden? Punkt genau hier. Also die Temperatur in Maine, die Standardeinheit ist Kelvin Deshalb ist sie für uns so hoch für die Zahl, die wir sehen, bei 200 und etwas Grad. Denken Sie daran, dass Sie optional die Möglichkeit hatten, innerhalb unserer optionalen Option metrische oder imperiale Werte einzugeben metrische oder imperiale Werte einzugeben, wenn wir hier zu Einheiten gehen, oder? Sie sehen, wir können die Standardmetrik imperial eingeben. Und Standardeinheiten werden standardmäßig angewendet. Standard wäre also unser Kelvin, und dann haben wir unser mexikanisches Imperial, richtig? Also, wie würden wir diese zur Information hinzufügen? Nun ja, wie Sie hier sehen, wenn wir dem Muster folgen, haben wir nur das Und-Zeichen, den Parameter ist gleich und dann, was auch immer wir suchen Wenn wir also Einheiten hinzufügen wollen, dann müssten wir einfach das Und-Zeichen als Einheit angeben, und ich glaube, das ist ein Frühling, den das braucht Also lass uns weitermachen und wieder rüber springen. Und lassen Sie uns Einheiten oder Einheiten hinzufügen. Und wie ich schon sagte, ich glaube, das wird einfach ein Frühling. Und was uns betrifft, gehen wir zu etwas, das zu Celsius gehen könnte. Und ich denke, dafür werde ich mich entscheiden. Es ist nicht Celsius. Wir müssen uns für Mexiko oder Imperial entscheiden. Lassen Sie uns weitermachen und metrisch eingeben. Und das verstehe ich gerade, wenn ich mir die API ansehe. Ich sehe eine Metrik ausschließlich in Kleinbuchstaben, ebenso wie Tempio, also gehe ich davon aus, dass alles Kleinbuchstaben sind Also müssen wir das zu unserer URL hinzufügen . Also mache ich weiter und nach meinem Längengrad, aber vor meiner App-ID setze ich Ampersand als Einheit gleich Und dann haben wir hier wieder unseren Platzhalter. In meiner Anfrage haben wir jetzt Breitengrad und Längengrad, und vor dem API-Schlüssel kann ich Einheiten übergeben Und wenn wir es uns jetzt ansehen, sehen Sie, dass wir 14,85 zurückbekommen Und wenn wir metrisch durch imperial ersetzen würden , müssten wir jetzt das Fahrenheit-Äquivalent von 58,44 erhalten müssten wir jetzt das Fahrenheit-Äquivalent von 58,44 erhalten. In Ordnung So können wir also an diese Informationen kommen. Und jetzt können Sie beispielsweise den Text eines Etiketts auf dem Bildschirm festlegen , oder Sie können verschiedene Bilder in Ihrer Anwendung verwenden und das Bild ändern oder anzeigen, je nachdem welches Wetter es ist, oder? So können wir die Temperatur, den Druck und die Luftfeuchtigkeit sehen . Aber denken Sie daran, das ist alles, was nicht alle Informationen sind , die wir haben, oder? Können wir uns die Temperatur ansehen ? Wetter am Main? Vielleicht habe ich das falsch verstanden, hoffentlich nicht, aber wenn ja, werden wir wohl einen Fehler in unserem Druck bekommen. Ja, da ist ein Fehler drin. , ich werde mir meine Reihe von Informationen unkommentiert ansehen meine Reihe von Informationen unkommentiert , damit ich sie mir ansehen kann Wind, Wetter. Okay, es sieht also so aus, als wäre es nur Wetter. Kein Hauptfach. Also nehmen TD und ich das Wetterattribut raus . Mach das sauber. Und tatsächlich ist die ID 81 Hauptwolken. Beschreibung, ein paar Wolken. Du siehst also, jetzt können wir es sehen, okay? Das Hauptwetter hier wird als wolkig angesehen, das wäre also wolkig. Jetzt könnte ich dazu vielleicht ein wolkiges Bild auf dem Bildschirm anzeigen oder den Hintergrund der App so dazu vielleicht ein wolkiges Bild auf dem Bildschirm ändern, dass er bewölkt ist. Wie Sie sehen können, gibt es auch hier in diesen Daten ein Symbol . Ich bin mir nicht sicher, woher dieses Symbol kommt. Aber wenn Sie wüssten, wo und sie Ihnen einen Link oder eine ID oder etwas anderes für ein Bild geben würden, könnten Sie das Bild durchgehen und es aus dem Internet holen, sodass Sie es verwenden könnten, was idealer wäre Aber auch hier weiß ich nicht, woher dieses Symbol kommt. Ich bin mir also nicht hundertprozentig sicher, wo Dynamo Gar dafür binden soll Aber das sind die Grundlagen um diese einfachen API-Anfragen Und manche Anfragen werden komplizierter als das und erfordern, dass Sie sich hinsetzen und die Dokumentation durchsehen , dass für sie möglicherweise eine Autorisierung oder die Erteilung bestimmter Berechtigungen erforderlich ist. Möglicherweise müssen Sie warten, bis sich der Benutzer authentifiziert hat. Möglicherweise müssen Sie eine Reihe von Informationen in Ihren Headern haben, die dann nach der Anfrage kommen würden Also haben wir die URL hier. Wir hätten nur ein Komma und dann unsere benutzerdefinierten Header, die, glaube ich, die Form eines Arrays haben würden Das könnten Sie weitergeben , und dann können wir andere Informationen wie G abrufen und die Methode posten, die wir verwenden möchten Und G ist einfach die Standardeinstellung, was wir hier tun. Wir fragen die API nach Informationen aus der Datenbank, und Post wäre wie das Senden von Informationen an die Datenbank, wie zum Beispiel eine Bestenliste. Wenn Sie eine Art Bestenliste eingerichtet haben, bei der Sie mit einer API arbeiten, könnten Sie Informationen mit der Post-Post-Methode dorthin übertragen, anstatt mit der Standard-Get Here-Methode Aber da haben wir's. So machen wir Dies ist im Wesentlichen der Kern eines API-Aufrufs. allem, was darüber hinausgeht , müssen Sie lediglich Aufrufe tätigen, um Informationen abzurufen , die Sie als Header verwenden können, um die gewünschten Daten Aber im CR VIT werden Sie genau das tun. Und wenn es einfach ist, ist das alles, was Sie brauchen. Wenn es komplexer ist, wie zum Beispiel Twitch, musst du die Dokumentation durchgehen, aber die Dokumentation von Twitch ist nicht so toll Sie werden also wahrscheinlich Kopfschmerzen haben und sich Probleme bereiten, wenn Sie versuchen, die Dokumentationsphasen von Twitch zu durchlaufen von Twitch zu durchlaufen Aber da hast du es. Es gibt die Grundlagen dafür, wie wir API-Aufrufe tätigen. 62. RapidAPI Python zu GDScript: Ordnung, alle zusammen. Sie können den Fehler ignorieren, der dort auf dem Bildschirm angezeigt wird. Das liegt nur daran, dass die Variablen noch nicht existieren. Aber ich wollte hier darüber sprechen und ich werde dafür eine separate Szene verwenden . Es ist identisch mit dem ersten. Es hat nur ein DK-Skript, und das wird in eine Anime-Datenbank aufgenommen. Ich wähle diesen, nur weil Anime beliebt ist. So beliebt Anime auch ist und wie viele Shows es gibt. Wenn ihr zuschaut, wahrscheinlich eine gute Chance, dass ihr Anime mögt oder es zumindest irgendwann versucht habt. Aber das ist das eigentliche Thema hier, das relevant ist? Es ist einfach das, was ich hier als mein Beispiel verwende. Nun, ich möchte mit Ihnen über die Verwendung von APIs online und wenn Sie sich umschauen, sprechen , weil Sie nichts für Goto oder GD-Skript finden Goto oder GD-Skript Das, was Sie finden werden, ist etwas wie Python, was ziemlich nah dran ist. Also werde ich Ihnen zeigen, wie wir das Python-Beispiel, das es uns gibt, nehmen und es in GDScript verwenden können das Python-Beispiel, das es uns gibt, nehmen und es in GDScript verwenden Was wir hier verwenden, stammt von Rapid API. Und Rapid API bietet viele kostenlose APIs , die beide kostenlos sind. Dieser ist, wie Sie sehen, Premium. Wenn wir also zur Preisgestaltung gehen, haben wir hier mehrere Optionen. Das Basic ist kostenlos, was ich hier verwende. Und Sie sehen, ich kann 100 Anfragen pro Tag und nur zwei Anfragen pro Sekunde stellen. Diese wären also offensichtlich nicht so toll für eine bereitgestellte Anwendung, da Sie möglicherweise mehr als zwei Anfragen pro Sekunde erhalten, und wenn Sie an Popularität gewinnen oder Sie einen wirklich starken Benutzer haben, könnten Sie diese 100 pro Tag leicht überschreiten Es ist also offensichtlich, ob Sie etwas tun und es bestehen oder ob es ohnmächtig wird Und, du weißt schon, die 5 oder 10$. Es schien ein paar ziemlich gute Pläne zu sein. Also 10$ völlig unbegrenzt, und die 5$ sind 5.000 pro Tag Aber Sie stellen fest, dass wir keine haben, Sie haben kein Limit für die Anzahl der Anfragen pro Sekunde Ich entscheide mich auch für diese, weil die Latenz nur 591 Millisekunden beträgt, das sind ungefähr fünf oder 6 Sekunden von der Anfrage bis zum Erhalt unserer Daten Beliebtheit: 9,8 von zehn, es ist also sehr Es wurde vor zwei Monaten aktualisiert, also ist es immer noch aktuell Das Serviceniveau war 100%. Es gibt also viele Gründe, warum sich diese API für unser Beispiel hier gut eignet. Ordnung. Alles, was Sie tun können, ist einfach zur Rapid API zu gehen, sich für ein Konto zu registrieren und Sie können reinkommen und einfach nach dem suchen, wonach Sie suchen. In meinem Fall komme ich wieder hoch und suche nach Anime, und dann haben wir all diese APIs hier. Bei einigen von ihnen handelt es sich möglicherweise um obligatorisches Geld, sind möglicherweise völlig kostenlos und bei anderen handelt es sich um Premium-Gebühren, wie ich es Ihnen bei der anderen gezeigt habe. Nun, das erste Ergebnis hier ist das, das wir verwenden, und wir schauen, ob ich der Rolle helfe, aber wir können Informationen per ID abrufen. Wir können alle haben, wir können Genres haben. Es gibt also ein paar Dinge, die wir tun können , und dieses hier heißt A Animation, wir können etwas über ein Geschenk oder eine Freundin herausfinden , wie auch immer du es aussprechen willst, ein Bild, welche Information es uns nicht zu viel ist. In diesem Fall geht es ein wenig über den Rahmen hinaus, aber Sie können sehen, dass sie nicht alle gleich sind. Sie alle bieten hier unterschiedliche Dienste an. Das ist es, was Sie in die Finger bekommen können. Und sieh mal, während ich auftauche, sagen manche von ihnen Premium, manche sagen kostenlos Vielleicht bekommst du irgendwo eine Prämie, wo sie nur bezahlt wird, ich weiß es nicht, aber es sieht nicht danach aus Es sieht so aus, als ob diese alle entweder kostenlos oder kostenpflichtig sind, zumindest auf dem ersten Pagier Also werde ich einfach weitermachen und auf eines klicken, um Ihnen ein Beispiel zu zeigen Sobald Sie also entschieden haben, was Sie tun möchten, was Sie bekommen möchten, werden Sie auf der rechten Seite feststellen, dass dies alles sind, was wir verwenden können. Nehmen wir an, wir wollten ein zufälliges Hintergrundbild. Wir würden darauf klicken und unsere Informationen mit unserem Beispiel nebenbei sehen. Und davon kann man nicht wirklich sehen. Also werde ich das jetzt neu anpassen. Also einen Moment. Für den Moment reicht das für uns. Aber Sie sehen auf der rechten Seite, sind all die verschiedenen Dienste oder Informationen, die Sie aus ihrer API abrufen können. Und wenn Sie einfach auf eine klicken, sehen Sie, wie sich die Informationen sowohl auf der rechten Seite als auch in der Mitte ändern . So werden diese also im Wesentlichen funktionieren. Und Sie können sehen, dass diese alle verstanden sind, aber einige davon könnten ein Beitrag sein, je nachdem, was Sie tun möchten. Und das ist die Methode , die ich am Ende des letzten Videos erwähnt habe, bei der wir oft get verwenden werden, um Informationen zu erhalten, aber es kann vorkommen , dass Sie Informationen posten und pushen müssen . Und wenn Sie entscheiden, dass dies eine ist, die Sie möchten, klicken Sie einfach hier auf die Schaltfläche „Test abonnieren“. Und das sollte Sie zur Preisseite für die Preisphase bringen . Sie können auch einfach hierher kommen und auswählen, welchen Plan Sie abonnieren möchten. Und diese haben hier alle ein festes Limit, wie wir sehen können. Und du willst vorsichtig sein. Bei einigen von ihnen gibt es kein festes Limit, wie Sie hier sehen können In diesem Fall wird Ihnen eine Gebühr berechnet, die Ihrem Konto gutgeschrieben wird. Ihnen wird berechnet, dass Sie zahlen müssen. Das sind 1,5 Cent füreinander. Jede weitere Anfrage, richtig? Das entspricht dem und 0,03$ für diesen. Und das ist natürlich auf Mega. Diese steigen natürlich mit der Zeit höher , aber der Basisplan hat nur ein festes Limit. Seien Sie sich also bewusst , dass einige ein bestimmtes Limit überschreiten oder dies auf Kosten der Tatsache, dass Sie sie tatsächlich bezahlen, auch wenn es sich um einen kostenlosen Tarif handelt. Okay, wir springen zu Whoops, das ist die Rapid-API. Den wollen wir nicht Ich werde einfach wieder hierher zurückkehren. Geh zurück in die Anime-Datenbank, die wir benutzen. Und ich werde das für uns einfach besser positionieren . Also, nur dafür verwende ich get all auf der rechten Seite, oder tut mir leid, die linke Seite hier. Also das ist die, die ich benutzen werde. Ich werde jetzt einfach den Bildschirm rüber schieben, um die Dinge für uns besser zu sehen . Da haben wir's. In Ordnung. Also, was wir dafür verwenden werden, und ich sagte Python. Und speziell, wenn wir das öffnen, können wir Beispiele für all diese verschiedenen Sprachen sehen. Und Python ist das, was wir wollen. Und wir werden uns sowohl den HTTB-Client als auch die Anforderungsbibliothek ansehen In Python können Sie das so oder so machen, aber für uns müssen wir uns beide Versionen ansehen , um uns eine Vorstellung davon zu geben. Und Sie sehen hier, wir haben Header. Ich werde einfach die Header da rauskopieren. Und wenn wir hier gleich zu Goto zurückkehren, können wir weitermachen und unsere Variablen-Header erstellen Jetzt hat sie geschweifte Klammern und es ist ein Wörterbuch. Unseres muss ein Array für unsere Header sein. Das sind eckige Klammern. Das füge ich einfach ein. Jetzt werden wir einen Fehler haben. Einfach weil, nun ja, wir haben Schlüssel-Wert-Paare. So funktioniert ein Array nicht. Was ich tun werde, ist, in die Mitte zu gehen und dieses Zitat, den Doppelpunkt und das andere Zitat hier hervorzuheben . Und ich werde dort einfach das Doppelpunkt-Leerzeichen einfügen . Also entfernen wir im Grunde die Anführungszeichen um ihn herum und machen sie zu einer einzigen Zeichenfolge. Und Sie sehen, am Ende von devolve kopieren Sie beide. Wir haben das schon durch ein Komma getrennt, und wir werden hier in der Mitte dasselbe tun Löschen, Kohle ist im Weltraum. Wir haben hier also zwei Saiten, und das werden unsere Überschriften sein Und ich habe das von dem du solltest das entweder von der Anfrage oder vom HTTP-Client von Python bekommen können . werden sie beide genau gleich Bei dieser Information werden sie beide genau gleich sein. Und ich werde das weiter vergrößern, einfach weil das die einzige Information ist , auf die wir uns hier wirklich konzentrieren sollten. In Ordnung. Also nochmal, die Header hier. Ich habe einfach die Informationen hierher kopiert. Und das ist im Wesentlichen der, wie hier steht, unser Host- und API-Schlüssel. Das werden wir hier speziell für Rapid API verwenden. Und das wird sich ändern, wenn mein Gehirn dort eine Pause einlegt, pro Datenbank, pro API. Das wird also immer anders sein. Nun, die URL, die wir wollen, nun, wir können Verbindungen animiert sehen db.p.rapidpi.com Und dann, in ihrer Anfrage, haben wir diese Nun, das wird für uns nicht reichen. Lassen Sie uns einfach runtergehen und zu Python Quest gehen, und das wird unsere Basis-URL sein. Wenn wir das einfach kopieren und hier zurückschauen. Wir können eine Var-URL erstellen. Und das ist unsere Basis-URL. Nun, ich sagte, wir werden get all verwenden, und daher kommt diese letzte Variable. Ich habe das einfach dort erstellt. Und hier muss man ein wenig aufpassen, wenn man Dinge kombiniert, weil man alles zu einer URL zusammenführen könnte, und dann kann man alles zusammenführen lassen, um das Genre zu umrunden usw., aber was ich hier machen werde, ist, wir gehen, wir gehen, wir gehen zurück, und wir können sehen, dass das mit Schrägstrich N endet, schnellem api.com-Slash-Anime Dinge kombiniert, weil man alles zu einer URL zusammenführen könnte , aufpassen, wenn man Dinge kombiniert, weil man alles zu einer URL zusammenführen könnte, und dann kann man alles zusammenführen lassen, um das Genre zu umrunden usw., aber was ich hier machen werde, ist, wir gehen , wir gehen, wir gehen zurück, und wir können sehen, dass das mit Schrägstrich N endet, schnellem api.com-Slash-Anime . Also müssen wir das im Hinterkopf behalten. Wir kehren zum Python-HTTP-Client zurück . Und wir können hier unten sehen, wir haben Slash Anime, Fragezeichen, Seite eins usw., richtig? Also werden wir den Slash-Anime ignorieren und uns alles danach schnappen Und wir werden zurück zu Goto springen . Und da haben wir es. Dann können wir die Suchanfragen sehen, Full Metal, Genre, Fantasy, nach fünf Rängen sortieren, aufsteigend sortieren, los geht's. Das alles haben wir Jetzt können wir einfach unsere Basis-URL mit dem zusammenführen , was wir hier haben. Also als weiteres Beispiel, wenn ich zum G One Anime kommen würde. G ein Anime, nach Rang sortiert. In Ordnung. Und ich springe zurück, nur um es dir hier zu zeigen, und ich gehe zum HTV-Client Wills Anime, aber dann genau hier, B-Ranking-Slash eins Das wäre ein Beispiel. Lesen Sie hier eine weitere Variable. Stimmt das? Wir sagen Ranking abrufen. Das ist eine Zeichenfolge. Und das könnten wir tun. Jetzt können wir das einfach gegen Get Ranking austauschen, wir wollen oder wieder reinsetzen. Deshalb trenne ich hier gerne, dann kann ich einfach gezielt ändern, was ich dort haben will. Und wenn du hier Suchergebnisse und solche Dinge einbauen würdest , sehe ich die Suche hier, das Genre und all das. Du kannst das als Platzhalter eintragen, so wie wir es hier hinten mit dem Wetter gemacht haben, richtig Damit haben wir das, und dann können wir sehen, was wir brauchen? Nun, wenn wir einen Blick darauf werfen, wird es wieder alles herholen. Wenn wir hier unten im HTTP-Client nachschauen, sehen wir G-Antwort, und wir schauen uns das alles an, und wir sehen hier unten, sie nur UTF h dekodieren. Das ist dass sie nur UTF h dekodieren. Das ist also alles Sie dekodieren lediglich UTF 8. Das sollte also alles sein, was wir für diese API tun müssen. Wenn Sie nun mit einer anderen API arbeiten, müssen Sie möglicherweise das vollständige JSON-Parsing durchführen, wie wir es bei freiem Wetter getan haben Also hier haben wir nur unsere Antwort und alles, was wir tun ist die Zeichenfolge von UTF H. Wenn wir nun die Antwort hier drucken, führen wir sie aus und denken daran, dass wir alles bekommen Wir müssen ein paar Sekunden warten. Und los geht's. Wir haben eine ganze Liste, also können wir uns Comedy-Fantasy-Episode 16 ansehen , bei der die Folge wahr ist. Wir können das Bild hier auf WebP sehen. Wir haben einen Link, der direkt dazu führt. Sie könnten also diesen Link nehmen und Ihren Benutzern diesen Link zur Verfügung stellen. Wenn Sie das wollen, aber Sie können sehen, dass hier alles als ihre Daten enthalten ist . Und wir können individuell auf all das zugreifen. Und nur um dir zu zeigen , dass wir hier am Anfang lockige Zahnspangen haben Wenn wir hier reinkommen, bekommen wir nur Daten, sie kommen richtig durch Also müssten wir einen Weg finden, die Informationen, nach denen wir suchen, tatsächlich zu sortieren. Also in diesem Fall, da wir Jason nicht zurückbekommen, ist das wohl etwas nervig. Aber wie Sie hier sehen, müssen wir den zusätzlichen Schritt machen, obwohl uns die API oder die Seite gesagt haben, dass wir nur die UTFA analysieren müssen. Das ist in Ordnung. Aber da wir die zusätzlichen Daten haben wollen , haben wir die Zeichenfolge mit der JCN-Klasse analysiert Und wie Sie sehen können, kann ich jetzt diese Daten abrufen, das erste Element davon, weil Daten eine Reihe von Elementen waren Und dann kann ich mir den Titel der ersten Folge schnappen, die, glaube ich, die erste Folge sein würde, oder? Zumindest das Ergebnis. Und wenn wir das auf den zweiten Punkt ändern, sollten wir da unten einen anderen Namen bekommen. Ja. Also haben wir Brotherhood. Ich gehe zum nächsten. Wir haben den Eroberer von Shambala, Ich habe das noch nie gesehen. Aber da hast du's. Sie sehen, es ist nicht allzu schwierig, mit diesem Python zu arbeiten oder das Python-Beispiel darin umzuwandeln. Also unsere Arrays, wir haben sie reinkopiert und sie hier als Array statt als Wörterbuch in GD-Skript eingefügt hier als Array statt als Wörterbuch in GD-Skript Wir haben die Anführungszeichen in der Mitte gelöscht. Unser API-Schlüssel ist also eine lange Zeichenfolge und unser API-Host eine lange Zeichenfolge. Wir wechseln hier zwischen HTTP-Anfrage und HTTP-Punkt-Client und der Anforderungsbibliothek für die beiden Python-Optionen hin und her HTTP-Anfrage und HTTP-Punkt-Client und hier zwischen HTTP-Anfrage und HTTP-Punkt-Client und der Anforderungsbibliothek für die beiden Python-Optionen , um hier unsere Basis-URL sowie die verschiedenen Suchanfragen zu erhalten sowie die verschiedenen Suchanfragen , die wir hier tatsächlich eingeben können. Und alles, was wir in der Anfrage tun, übergeben wir unsere URL, und in diesem Fall füge ich einfach to plus mein G A und die Header Nun, wenn Sie mehr als das haben, zum Beispiel, wenn Sie eine haben, in der Ihnen gesagt wird, dass Sie pushen müssen, oder? Du musst statt G posten . Hier kommen diese Standardwerte ins Spiel, oder? Wir können also einfach die HTTP-Client-Methode unter Square Post eingeben Die Standardeinstellung ist G. Deshalb geben wir dort nichts ein. Aber wenn du jemals posten müsstest, statt G, würdest du es genauso machen. Du würdest es einfach nach den Überschriften hinzufügen. In Ordnung, also los geht's. So geht's: Es gibt sowohl eine große Sammlung von APIs, mit denen Sie arbeiten und mit denen Sie üben können Und wenn Sie das tun möchten, stellen Sie Ihrem Kunden Dinge zur Verfügung. wie benutzt man ihre Python-Beispiele und konvertiert sie, damit wir sie im GD-Skript verwenden können. Jetzt haben Sie also eine größere Sammlung, mit der Sie arbeiten könnten. Sie wissen jetzt, wie man hier mit Headern arbeitet. Und ich habe dir gezeigt , wie man statt G einen Beitrag schreibt . Jetzt wird das ausgestrahlt , weil wir nichts posten Wir kriegen das für sie. Ja? Und das sollte uns für den API-Teil abrunden . Und als Nächstes schauen wir uns an, was Web-Sockets sind, warum sie nützlich sind und wie wir sie verwenden können und warum wir sie vielleicht verwenden möchten. 63. Was sind WebSockets (gefüllter Raum): Hallo zusammen. Willkommen. Und heute werden wir darüber sprechen, was Web-Sockets sind? Was sind sie? Was sind sie arm? Nun, wenn Sie die Programmierung wüssten, die es wahrscheinlich hier gibt, hätten Sie diesen Begriff vielleicht schon einmal gehört, aber was genau sind sie? Was sind Websckets und wie funktionieren sie? Nun, am Ende dieser Lektion werden Sie hoffentlich ein Selbstverständnis davon haben, werden Sie hoffentlich ein Selbstverständnis davon haben was Web-Sockets sind und welche Magie sie uns bieten können Einfach ausgedrückt sind Web-Sockets ein Kommunikationsprotokoll, das bidirektionale Daten- oder bidirektionale Datenübertragung in Echtzeit zwischen einem Webbrowser und einem Webserver ermöglicht Daten- oder bidirektionale Datenübertragung in Echtzeit zwischen einem Webbrowser und einem Webserver Sie können es sich als eine virtuelle persistente Verbindung vorstellen , die offen bleibt und eine sofortige Kommunikation zwischen den beiden Enden ermöglicht zwischen den beiden Enden Um das besser zu verstehen, stellen wir uns vor, Sie chatten mit einem Freund in einer Messaging-App. Wenn Sie eine Nachricht senden, erhält Ihr Freund sie sofort, oder? Das liegt daran, dass die Messaging-App ein ähnliches Konzept hat. Es stellt eine Verbindung zwischen Ihren Geräten her, die eine Kommunikation in Echtzeit ermöglicht. Nun, wie funktionieren Web-Sockets? Nun, wenn eine Webseite, die Web-Sockets unterstützt, in Ihren Browser geladen wird, sendet sie eine spezielle HTTP-Anfrage an den Server mit der Aufforderung , eine Web-Socket-Verbindung herzustellen. Sobald der Server die Anfrage genehmigt hat, wird die persistente Verbindung hergestellt und sowohl der Browser als auch der Server können Daten in Echtzeit aneinander senden Daten in Echtzeit aneinander Die Magie von Web-Sockets liegt in ihrer Fähigkeit, bidirektionale Kommunikation zu handhaben Das bedeutet, dass der Server nicht nur sofort Daten an den Browser senden kann, sondern der Browser auch Daten in Echtzeit an den Server zurücksenden kann. Es ist wie eine Live-Konversation zwischen dem Browser und dem Server. Web-Sockets sind unglaublich nützlich für die Erstellung von Anwendungen, die Aktualisierungen in Echtzeit erfordern , wie Live-Chats , Online-Spiele, Börsenticker und mehr Sie machen das ständige Aktualisieren und Abrufen von Seiten überflüssig ständige Aktualisieren und Abrufen von Seiten machen Ihre Webanwendungen effizienter und reaktionsschneller Wenn Sie also eine andere Art von Erklärung benötigen , um das zu verstehen, können Sie sich das so vorstellen, als würden sich zwei Personen treffen, möglicherweise zum ersten Mal, Person A, der Client, Person B, Server, sie treffen sich, sie geben sich die Hand. Und sie versuchen, eine Verbindung herzustellen, richtig? Sie treffen sich, geben sich die Hand und entscheiden ab diesem Zeitpunkt, ob sie diese Verbindung aufrechterhalten und Informationen austauschen, ein Gespräch miteinander führen oder weggehen wollen und Informationen austauschen, . Wenn sie nicht sprechen wollen, dann ist die Verbindung, wie wir sagen können, geschlossen, und sie gehen getrennte Wege. Wenn sie sich jedoch dafür entscheiden, ihr Gespräch fortzusetzen, wurde die Verbindung zwischen beiden Mitgliedern, beiden Parteien, akzeptiert , und jetzt können sie Informationen live in Echtzeit austauschen. Hoffentlich hilft Ihnen eines dieser drei Sho-Beispiele dabei, genau zu verstehen , wie sie funktionieren. Und obwohl Sie es haben, ist das eine einfache Einführung in Websocket, was sie sind wie sie verwendet werden können Und sie sind ein unverzichtbares Werkzeug, wenn es um einen Großteil der modernen Programmierung geht , und hängt das wirklich davon ab, in welchen Bereich Sie, würde ich sagen, mit Ihren Entwicklungsfähigkeiten einsteigen möchten mit Ihren Entwicklungsfähigkeiten einsteigen Sie helfen jedoch dabei , die Echtzeitkommunikation zwischen Ihrer Anwendung und dem Server zu ermöglichen , die Echtzeitkommunikation . Und wenn Sie tiefer in die Programmierung eintauchen, werden Sie feststellen, dass Web-Sockets ein leistungsstarkes und vielseitiges Tool sind. Erstellen Sie interaktive und ansprechende Anwendungen. Denken Sie jedoch daran, dass sie nicht nur mit Servern funktionieren , die sich woanders befinden. Es gibt einige existierende Anwendungen, die Websockets verwenden , mit denen Sie Ihre eigenen Tools erstellen können mit denen Sie Ihre eigenen Tools erstellen Wir werden uns das im nächsten Video ansehen. 64. Eine Verbindung aufbauen: Ordnung, also lasst uns weitermachen und uns ansehen , wie wir hier eine Web-Socket-Verbindung mit uns selbst einrichten würden eine Web-Socket-Verbindung mit uns selbst und wie wir uns mit etwas verbinden könnten. Und das, womit wir uns verbinden , wird OBS sein. Wenn Sie möchten, können Sie jetzt nach dem Websocket-Server-Plugin suchen, dem Websocket-Plug-In dem Websocket-Server-Plugin suchen, für OBS Studio, wenn Sie dem folgen und einfach das Installationsprogramm ausführen möchten und einfach das Installationsprogramm ausführen möchten Ich sollte dir nur ein oder zwei Minuten Zeit nehmen. Und was Sie sehen werden, ist wenn Sie auf OBS zu Tools gehen, sollten Sie dort eine Option für Web-Socket-Servereinstellungen sehen. Und wenn du darauf klickst, hast du dieses Fenster hier, Popo Stellen Sie sicher, dass der Websocket-Server aktiviert ist. Und alles, was wir brauchen, ist, dass wir hier ein paar Informationen Wenn wir also Connect Info anzeigen, dann werden die IP und der Port Ihres Servers angezeigt. Und die IP ist das Wichtigste, was wir davon erwarten, weil wir den Port bereits hier in diesem Fenster sehen können. Jetzt, hier unten, wirst du sehen, wann oder wie viele Leute sich damit verbinden. Und wie Sie sehen, haben Sie auch die Möglichkeit, einen Benutzer von hier aus zu werfen. Also, von hier werden wir unsere Informationen bekommen , nur damit du es weißt. Und wieder werden wir die IP und die Server-Ports genau hier haben wollen . Sie können also weitermachen und diese Informationen mitnehmen, sich daran erinnern und sie zur Seite legen. Und lassen Sie uns hier anfangen. Ordnung. Also das Erste, was wir tun müssen, ist, hier einen Kontrollknoten habe , dass ich hier einen Kontrollknoten habe , meine Szene, nichts Großes, mit dem wir arbeiten können. Und ich werde ein Skript hinzufügen und einfach einen Websocket-Client aufrufen . Ist nicht wirklich wichtig Und jetzt sind wir bereit, diese Verbindung herzustellen. In Ordnung, also wie machen wir das? Nun, wir werden eine neue Steckdose brauchen, richtig, um loszulegen Also können wir eine Variable namens Socket erstellen. Und das entspricht einem Web-Socket-Peer-Peer-Punkt Nr. Wir wollen ein neues Objekt erstellen, oder? Ein neues Objekt, dieser Web-Socket. Und ich werde auch hier die Socket-URL eingeben. Speichere das einfach als Variable. Buchse RL. Und das wird deine IP-Adresse sein. Aber nicht nur in irgendeiner Weise. Wir werden WSS haben, ClonAs dann unsere IP, und ich kann sie nicht einfügen, also muss ich sie 100 Punkt Null Punkt 19 eingeben Ich weiß nicht, ob es fehlschlägt, dann schauen wir uns das andere an Also innerhalb unserer Bereitschaft werden wir hier unsere Verbindung herstellen. Also Socket Dot stellt eine Verbindung zur URL und wir geben einfach unsere Socket-URL ein. Nun, das kann optionale Parameter annehmen, aber wir tun es nicht. Das ist nichts, was wir hier eingeben sollten. Als Nächstes gibt uns das hier unsere Prozessfunktion. Und das, was du tun musst, ist komplett. Und das ist im Grunde ständig, man kann es sich vorstellen , dass ständig, man kann es sich vorstellen ständig eine sehr, sehr kleine Menge an Informationen ausgetauscht sehr kleine Menge an Informationen nur um die Verbindung auf beiden Seiten aufrechtzuerhalten. Andernfalls, wenn nichts empfangen wird, wird die Verbindung unterbrochen und Sie werden von diesem Web-Socket getrennt , richtig? Sie werden von diesem Server getrennt. Ich und niemand mag das. Ordnung, um sie jetzt zu verwenden, müssen wir entscheiden, was wir tun werden, und wir können das anhand des Zustands bestimmen, in dem sich unser Socket befindet. Und die Zustände, die es erhält, lassen uns wissen, ob es geöffnet ist, geschlossen ist oder ob es immer noch eine Verbindung herstellt. Also lass uns weitermachen und das speichern. Der Balkenstatus entspricht dem Zustand Socket Dot Get Ready. Und jetzt kann uns dieser Staat sagen, was es ist. Jetzt können wir sagen, ob State hier gleich Websocket ist, und hier sind alle unsere Also sagen wir State Open. Und ich werde dort nur für einen Moment vorbeigehen. Und wir werden hier auch unsere anderen erstellen. Wir werden sagen, ob Staat gleich Staatsschließung ist. Und damit bleibt unser letzter, der geschlossen wird. Nun, wir könnten auch eine zum Verbinden haben, aber es gibt kein richtiges Point Board. Jetzt, wo der Staat schließt, müssen wir hier nichts tun. Wir müssen nur sichergehen , dass wir zu diesem Zeitpunkt noch an der Umfrage teilnehmen, damit wir wirklich richtig schließen können Und lass uns sehen, lass uns anfangen. Lassen Sie uns weitermachen und das tun , wenn unser Staat geöffnet ist. Nun, hier werden wir eine wilde Schleife haben, und hier werden wir unsere Paketinformationen bekommen , die uns gegeben wurden. Also können wir sagen, Wil Socket Available Pack Account. Solange Daten an uns gesendet werden, oder? Wir haben also Pakete. Wir machen weiter und drucken einfach aus, was das ist, also sagen wir Pack Base. Und dann, was das zweite Argument angeht, werden wir weiterreichen, was auch immer das Paket ist, richtig? Steckdose. Ja. Paket. In Ordnung. Und das ist alles, was wir tun müssen, solange es geöffnet ist. Schauen wir uns hier unten an, wo unsere Steckdose geschlossen wird. Und Barinformationen, wir können weitermachen und Barcode machen, und das wird in der Lage sein, Socket, Closecode zu bekommen. Auf diese Weise können wir bei Verbindungsabbrüchen einige Informationen darüber erhalten , warum oder vielleicht unsere Verbindung fehlschlägt Es versucht also, eine Verbindung herzustellen, und dann wird es sofort geschlossen Wir können wieder herausfinden, warum damit wir einige Informationen an uns zurückschicken können. Und wo wir gerade von Vernunft sprechen, das wird unser nächstes Mal hier sein, das wird Socket Get close Reason sein. Wir können dann weitermachen und unsere Optionen hier einfach ausdrucken. Und das wird einfach per Websocket mit Code, Platzhalter, Grund, Platzhalter und sauberem Platzhalter geschlossen Grund, Platzhalter und sauberem Platzhalter Geh. Da hast du's. Da kannst du es sehen, die Netze sind geschlossen, der Code, der Grund, sauber. Am Ende noch eine. Und wir werden diese mit Code, Grund und dann Code nicht gleich minus eins ausfüllen , Grund und dann Code nicht gleich minus eins Alles, was uns noch bleibt , ist die Abfrage zu beenden, und das können wir tun, indem wir einfach set process false aufrufen Wenn Sie das also auf False setzen, was auch immer hier drin ist, wird diese Prozessfunktion nicht mehr ausgeführt, bis Sie sie wieder auf true setzen Ordnung. Damit sollten wir in der Lage sein, uns mit unserem zu verbinden, wir sollten in der Lage sein, uns mit dem OVS da drin zu verbinden Also, wenn wir einfach unser Fenster öffnen? Ich denke, unser Fenster ist geschlossen. Mach einfach weiter und mach das auf. Da ist es. In Ordnung, also werde ich einfach weitermachen und hier auf Ausführen klicken Aber ich werde dafür sorgen, dass wir diese Seite sehen können, wenn ich das mache Ich werde einfach weitermachen und das überprüfen. Warte eine Sekunde und wir sehen, dass wir keine Verbindung haben. Der ernste Teil wird nun die Frage sein , warum. Nun, lassen Sie uns einen Blick darauf werfen. Nun, der Grund, warum es keine Verbindung herstellt, ist, dass wir nichts mit dem Port gemacht haben. Nun, der Port kann sein, wenn Sie Ihre eigene Anwendung erstellen, er könnte so ziemlich alles sein, was Sie wollen. So lange er noch nicht benutzt wird. Und die Art und Weise, wie wir hier am Ende unserer URL einen Port hinzufügen , ist nur ein Doppelpunkt. Und dann den Port , der dort in der Diensteinstellung verfügbar war , also vier, vier, fünf, speichern Sie das. Und wenn wir zurückschauen und es ausführen, geben wir ihm hier eine Sekunde. Da haben wir's. Wir können sehen, ob wir verbunden sind. Wir können sehen, wie lange wir verbunden sind, eingehende und ausgehende Nachrichten wurden nicht identifiziert, weil wir hier und unsere Informationen keine Passwörter verwenden , und wir haben die Möglichkeit, darauf zuzugreifen. Wenn wir uns hier die Goto-Seite ansehen, können wir sehen, dass hier unser Informationspaket ist Es sieht aus wie eine Reihe von Zahlen, aber es enthält Daten Vertrau mir. Wir können einfach nicht genau sehen, was es ist. Also werden wir das gleich hier beheben. Und darunter können Sie sehen, dass, wenn wir den Benutzer, der hier unser Client sein wird , rauswerfen , wir sehen können, dass der Websocket geschlossen wurde und er mit dem Code 40 11 geschlossen wurde Der Grund für die Sitzung wurde für ungültig erklärt. Der Grund dafür ist, dass unsere Sitzung für ungültig erklärt wurde und dass sie sauber abgeschlossen wurde, was gut ist Aber wie bekommen wir Daten aus diesem ganzen Paket hier heraus , Paket für Byte Nun, Socket Dot Paket abrufen. Das ist ein Pull by Array. Also haben wir das als UTF-8-Format, also müssen wir den Text daraus herausholen Nachdem wir also Socket Dot Get Packet Here ausgeführt haben, werden wir Yet string von UTF 8 aufrufen Und speichere es. Und wenn wir es erneut ausführen, wenn es eine Verbindung herstellt, können wir sehen, dass wir die tatsächlichen Daten haben, die darin enthalten waren. So können wir die Version sehen, die wir bekommen haben, und die RPC-Version Und die Informationen, die wir hier verwenden, habe ich hier mit der aktuellen Version des Servers, den ich verwende, Ihre könnte anders sein, weil ich davon ausgehe, dass Sie sie brandneu bekommen werden . Ich habe das jetzt schon eine ganze Weile installiert. Ich werde einfach weitermachen und aufhören, hier zu rennen. Und Sie sehen, wir haben dort keine Kick-Nachricht bekommen. Aber wenn ich es hier starte und den Kick-Button drücke, siehst du, da ist unsere Kick-Nachricht. Ordnung, also leider kann ich dir über diesen Punkt hinaus nicht wirklich weiterhelfen. Bis dahin, wie können Sie hier eine Verbindung herstellen da das Abrufen von Informationen oder das Senden auf eine bestimmte Art davon abhängt wem Sie verbunden sind und wie sie ihre Daten haben wollen, ich denke, man könnte sagen, strukturiert , und wie sie Daten an Sie zurücksenden , Sie müssen möglicherweise Daten auf unterschiedliche Weise daraus herausholen, aber in Zukunft Was Sie tun können, ist, wenn wir die Kontrolle behalten, wir können auf Websocket Peer klicken Und wenn wir runterkommen, können wir sehen, dass hier all unsere Eigenschaften, unsere Methoden und all unsere Informationen mit dieser speziellen Sache hier zu tun dieser speziellen Sache hier und wie man alles hier benutzt Sie können also weitermachen, Sie können es durchgehen, sich das ansehen und ich schätze, das mit der Dokumentation oder was auch immer Sie integrieren möchten, abwechseln. Und an diesem Punkt, glaube ich, ist es quasi Glück. Ich finde es schade, das zu sagen, aber wir haben Sie verbunden, es liegt an Ihnen, Ihre Dokumentation zu lesen und herauszufinden, wie Sie diese Informationen austauschen können 65. Daten mit WebSockets senden: Okay, ich habe hier eine Schaltfläche und eine Linienbearbeitung zu meiner Szene hinzugefügt, nur für ein paar Bilder hier Und über die Taste ist das Presssignal mit meinem Web-Socket-Client verbunden Und ich werde Ihnen zumindest die Idee zeigen wie man, sagen wir, eine Nachricht über diesen Websocket sendet sagen wir, eine Nachricht über diesen Websocket Jetzt geht es uns gut, ich zeige es dir. Fakt ist, du kannst es da unten sehen, aber wir werden es gleich hier sehen. In der Presse werden wir also einen Nachrichtenbildschirm für diese Variable haben, und dieser wird auf unseren Text zur Bearbeitung der Zeile eingestellt. Text. Hör mit dem automatischen Ausfüllen auf. Hört auf damit. Also haben wir das. Und jetzt müssen wir das tatsächlich schicken. Nun könnten Sie diesen Sendeteil in eine eigene Funktion integrieren, was wahrscheinlich eine kluge Idee wäre , weil Sie dann einfach send aufrufen könnten , wann immer Sie Daten senden müssen. Aber so würden wir es senden. Also sagen wir: Socke es, pack es, und dann müssen wir unsere Botschaft eintragen Wir können unsere Botschaft jedoch nicht einfach so eintragen . Das wird nicht funktionieren. Aber wir könnten zum Beispiel mit unserem UTFA-Puffer reinkommen , und dieser wird ihn kodieren Wenn wir also weitermachen und das ausführen, stellt hier immer noch eine Verbindung zu OBS her Wenn wir beispielsweise Hallo, Senden eingeben, können wir sehen, dass unser Wipe-Socket geschlossen wurde , weil die Kodierung an Jason gesendet wurde, aber eine binäre Nachricht empfangen wurde. Sie können also sehen, dass wir den falschen Datentyp senden. Hier muss also die Art der Information sein oder sie basiert auf Ihrem Projekt. Es hängt davon ab, womit Sie verbunden sind und warum Sie sich die Dokumentation ansehen müssen. Alternativ ist es auch eine JSON-Punkt-StringFIO-Nachricht, wenn Sie es auf diese Weise tun JSON-Punkt-StringFIO-Nachricht Und dann können wir das wie folgt in UTF 8 kodieren, und das wird uns in diesem Fall das gleiche Ergebnis liefern Unser Socket wird geschlossen. Und natürlich möchten Sie beim Senden wahrscheinlich sicherstellen, dass der Status hier offen ist. Aber da haben wir's. Da ist die Idee, wie Sie Daten über diesen Web-Socket senden würden . Nun, wie ich schon sagte, hat nicht wirklich funktioniert. Wir wurden geschlossen, weil wir die falsche Art von Daten gesendet haben, sodass wir unsere Verbindung verloren haben. Aber Sie müssen einfach die Dokumentation darüber lesen, was auch immer Sie versuchen, eine Verbindung herzustellen und welchem Programm Sie sprechen möchten. Richtig? Wenn ihr also Python installiert habt, euch das gerne ansehen und diesen Code kopieren, um euren eigenen kleinen Web-Socket-Server in Python zu erstellen euren eigenen kleinen Web-Socket-Server in , um mit Dingen herumzuspielen. Aber letztendlich verwenden wir Async und Web-Sockets, natürlich müssten Web-Sockets importiert werden Und alles, was wir hier tun, ist eine asynchrone Funktion zu erstellen, und das ist im Grunde nur der Start unseres Servers für uns, oder tut mir leid, hier unten starten wir unseren Aber hier oben auf unserem Server sehen wir uns vier Nachrichten im Web-Socket an, also richtig, jedes Mal, wenn wir hier eine Nachricht senden, wird unsere Nachricht von UTF 8 dekodiert Hoppla. Und dann drucken wir die Nachricht aus, die wir vom Kunden erhalten haben Also, wenn das, sagen wir, eine Chat-App wäre, dann würdest du sie nehmen und sie an jeden schicken , mit dem sie sprechen, richtig? Basierend auf ihrem Ausweis oder was auch immer. Und hier warten wir einen Moment und schicken die Nachricht zurück. Wir senden die Nachricht an GOTO zurück, damit wir sie uns ansehen und sehen können, dass wir Daten sowohl senden als auch empfangen können, und zwar direkt, hin und her Und dann starten wir einfach den Server auf dem lokalen Host , der in GoTo, falls Sie es nicht wussten, die IP-Adresse einen lokalen Host hat Es ist 127,0 0,0 0,1. Wir verwenden dafür auch den Port 5.000. Dass wir einfach auf unserer Konsole unten unten ausdrucken , dass der Server gestartet wurde, und dann unsere beiden Schleifen hier sind im Grunde nur, dass unser Server kontinuierlich läuft. Ordnung. Also wenn ich reinkommen und das starten würde, könnten wir sehen, dass der Server hier gestartet ist. Und ich werde weitermachen und das auf der Gatto-Seite ausführen, damit wir diese nette Verbindung herstellen können Oh, und das können wir jetzt wegen dieser Schicht nicht sehen. Das ist in Ordnung. Ich werde es dafür einfach etwas leiser machen. Okay. Also da ist es. Und du wirst sehen, ich mache weiter und tippe hier ein, sag Hallo, neue Person. Willkommen im Chat. Und ich freue mich riesig. Ich drücke meinen Senden-Button und los geht's. Wir können die Nachricht von unserem Kunden sehen. Wir können also sehen, dass wir hier Daten auf unserem Web-Socket-Server empfangen . Und wenn wir das verstecken, können wir es hier auf unserer GTO-Version sehen . Das Paket, das wir zurückbekamen, war eine Nachricht, die uns der Server geschickt hat, in der es hieß: Ich habe Ihre Nachricht erhalten und wiederholt , was unsere Nachricht war. Sie können also sehen, dass das funktioniert, es geht nur darum, das zu haben oder zu formatieren, was Sie senden, oder? Sie senden das korrekt, je nachdem, mit was auch immer Sie eine Verbindung herstellen. Sie sehen also, dass diese Methode hier funktioniert oder diese Einrichtung hier mit einem einfachen Web-Socket-Server und Python hier funktioniert, aber dieses Format funktioniert nicht wenn Sie eine Verbindung herstellen oder Daten an OBS senden. Hier kommen also einige dieser Lektüre ins Spiel, aber ich wollte dir zeigen, dass ich dir die funktionierenden Web-Sockets mit einem Server zeigen wollte . Und Sie sehen, was wir hier haben, ist unsere Grundausstattung einen Chatbot zu erstellen oder einen Chatroom zu erstellen, was wir hier schon gemacht haben, nur mit unserem Server und Client. Sie müssen nur unterscheiden, welcher Kunde wer ist und an wen er die einzelnen Nachrichten sendet. Ich meine, du hast quasi einen Chat eingerichtet, zumindest zwischen einem Server und einem Client. Aber bevor ich anfange weiter zu schlendern, bitte. Es gibt einige Beweise, ich schätze, man kann sagen, dass das Senden dieser Daten funktioniert Es hängt nur davon ab, wie es formatiert ist und womit Sie verbunden sind. In Ordnung. Ich werde das wieder da hinstellen. Also, wenn Sie das Video pausieren und weitermachen und es herauskopieren möchten, wenn Sie möchten. Und Sie haben Python auf Ihrem Computer installiert. Wenn Sie dies tun und Ihren eigenen Server erstellen möchten , versuchen Sie es. Passen Sie also auf, dass Sie einen guten Server haben, und so stellen wir Verbindungen her und verwenden Websockets 66. Was ist anders als die Desktop-Entwicklung?: Ordnung, alle willkommen zurück, und wir werden uns hier mit dem Bereich Softwareentwicklung befassen. Nun, was unterscheidet Softwareentwicklung von Spieleentwicklung? Nun, lassen Sie uns das besprechen. der Softwareentwicklung oder bei Desktop-Anwendungen werden Programme erstellt, die direkt auf dem Computer eines Benutzers ausgeführt werden. Diese Anwendungen dienen einer Vielzahl von Zwecken, von Produktivitätstools bis hin zu kreativer Software und allem, was dazwischen liegt. Als Entwickler von Desktop-Anwendungen werden Sie sich darauf konzentrieren, intuitive Benutzeroberflächen zu entwerfen und effiziente Lösungen zu entwickeln, die den Bedürfnissen der Benutzer entsprechen Einer der Hauptunterschiede zwischen der Spieleentwicklung und Entwicklung von Desktop-Anwendungen liegt in ihrem Verwendungszweck Während Spiele für Unterhaltung und Interaktivität konzipiert sind , sind Desktop-Anwendungen darauf ausgelegt, ein bestimmtes Problem zu lösen oder die Produktivität zu steigern In der Welt der Softwareentwicklung werden Sie auf eine Vielzahl von Anwendungen stoßen, z. B. Textverarbeitungsprogramme, z. B. Textverarbeitungsprogramme Tabellenkalkulationstools, Bildbearbeitungsprogramme, Videoplayer und Die Möglichkeiten sind grenzenlos, und Sie haben die Möglichkeit, Tools zu entwickeln, die sich positiv auf das Leben der Menschen auswirken können Darüber hinaus können Sie als Entwickler von Desktop-Anwendungen mit verschiedenen Programmiersprachen arbeiten mit verschiedenen Programmiersprachen Einige dieser beliebten Optionen wären Python oder C SHARP, die Sie zusammen mit GdsCRP verwenden könnten, um Ihre Anwendung zu erweitern oder um mehr Funktionen zu , die Sie normalerweise nicht Natürlich ist dies optional, aber die Fähigkeit wäre für Sie da Ein weiterer wichtiger Aspekt der Softwareentwicklung für Desktop-Anwendungen ist die Benutzererfahrung. Im Gegensatz zu Spielen, bei denen Immersion und Gameplay im Mittelpunkt stehen, Desktop-Anwendungen Wert auf Benutzerfreundlichkeit und Effizienz Du bist bestrebt, intuitive Benutzeroberflächen zu entwickeln , die die Aufgaben der Benutzer einfacher und unterhaltsamer machen Aufgaben der Benutzer einfacher und unterhaltsamer Nun, eine Sache, die auch bei der Softwareentwicklung sehr wichtig sein wird bei der Softwareentwicklung sehr wichtig , ist, wie alles insgesamt aussieht, wie Sie Ihre Anwendung präsentiert haben. Wenn Ihre Anwendung aussieht, als wäre sie in den Tagen von Windows 95 erstellt worden , dann wird sie alt und veraltet aussehen und sie wird im Vergleich zu einer anderen Anwendung nicht attraktiv sein , auch wenn Ihre weit überlegen sein könnte. Wenn es nicht so gut aussieht, werden es nicht so viele Leute ausprobieren. Es ist einfach die unglückliche Realität der Welt. Sie müssen nicht nur ein Programm erstellen , das außergewöhnlich gut funktioniert, es muss auch gut aussehen. Es wird Ihnen also nicht schaden, auch einen Kurs in der Art Benutzererfahrung oder Benutzeroberfläche zu belegen, um anschließend daran teilzunehmen einen Kurs in der Art Benutzererfahrung oder Benutzeroberfläche , um Ihre Fähigkeiten im Bereich Benutzeroberflächendesign zu verbessern , falls das Sinn macht. Und das natürlich nur, wenn Sie sich dafür entscheiden Zukunft den Software-Weg einzuschlagen. Aber da haben Sie eine einfache Einführung in die Softwareentwicklung für Desktop-Anwendungen. wir tiefer in diesen Abschnitt eintauchen, werden wir uns mit einigen unserer wichtigsten Tools befassen. Ich denke, wir können sie hier aufrufen, wenn wir TDScript verwenden Und bei einigen Dingen kann ich Ihnen mit einigen Ihrer Entwurfsprinzipien helfen, um eine benutzerfreundliche Desktop-Anwendung zu erstellen 67. Anker: Hallo, alle zusammen. Und bevor wir anfangen, tatsächlich etwas zu erstellen, müssen wir über Anker sprechen. Was sind Anker Nun, Anker sind leistungsstarke Tools, mit denen Sie reaktionsschnelle und flexible Benutzeroberflächen für Ihre Spiele und Softwareanwendungen erstellen reaktionsschnelle und flexible Benutzeroberflächen für Ihre Spiele und Softwareanwendungen Anker werden effektiv verwendet, um Ihr UI-Element an unterschiedliche Bildschirmgrößen und Seitenverhältnisse anzupassen Ihr UI-Element an unterschiedliche Bildschirmgrößen und Seitenverhältnisse Lassen Sie uns darauf eingehen. In Goto sind Anker unsichtbare Verbindungselemente, die Benutzeroberflächenelemente an den Rändern des übergeordneten Containers oder Bildschirms anbringen Benutzeroberflächenelemente an den Rändern des übergeordneten Containers oder Bildschirms Sie definieren, wie sich das UI-Element skalieren und positionieren soll wenn sich die Größe des übergeordneten Containers oder Bildschirms ändert Dadurch wird sichergestellt, dass Ihre Benutzeroberfläche auf verschiedenen Geräten und Auflösungen konsistent und benutzerfreundlich bleibt auf verschiedenen Geräten und Auflösungen konsistent und benutzerfreundlich Um Anker besser zu verstehen, stellen wir uns vor, dass Sie im Hauptmenü Ihres Spiels eine Schaltfläche für die Benutzeroberfläche haben Hauptmenü Ihres Spiels eine Schaltfläche Sie möchten, dass die Schaltfläche unabhängig von der Bildschirmgröße oder dem Seitenverhältnis in der unteren rechten Ecke des Bildschirms bleibt von der Bildschirmgröße oder dem Seitenverhältnis in der unteren rechten Ecke unabhängig von der Bildschirmgröße oder dem Seitenverhältnis in der unteren rechten Ecke des Bildschirms Um dies zu erreichen, würden Sie die Position der Schaltfläche in der unteren rechten Ecke des übergeordneten Containers oder des Bildschirms verankern die Position der Schaltfläche der unteren rechten Ecke des . Dazu würden wir uns also unseren Button schnappen, und diese kleinen grünen Stecknadeln sind unsere Anker. Wenn wir sie also alle in die untere rechte Ecke verschieben und uns die Szene hier ansehen würden, egal wie groß wir sie machen, würde sie immer in der unteren rechten Ecke bleiben, wohingegen, wenn wir sie auf ihrer Standardeinstellung belassen würden, die sich in der oberen rechten Ecke , tut mir leid , in der oberen rechten Ecke, tut mir leid, in der oberen linken Ecke wäre tut mir leid, in der oberen linken Ecke Und das haben wir eingestellt. Und wenn wir das jetzt überprüfen würden, würden Sie sehen, dass es in dieser Position relativ zur oberen linken Ecke bleibt, unabhängig davon, wo sich die untere Ecke befindet. Und wie Sie sehen können, spielt die Unterseite keine Rolle und wir können sie komplett vom Bildschirm entfernen , indem wir sie klein machen. Wenn sich unsere Anker jedoch oben links und unten links befinden und wir uns das ansehen würden, würde es in dieser Position bleiben, aber es wird sich auch unten ausdehnen, weil es so nah am Boden sein wird und so nah an der Oberseite in Richtung der anderen Ecke. Und wir können natürlich immer noch vorbeigehen. So können Sie sehen, wie sich die Anker darauf auswirken können, wie Ihre Benutzeroberfläche am Ende des Tages aussehen wird Wenn wir das also in der unteren rechten Ecke haben wollten, werden wir unsere Anker in der unteren rechten Ecke platzieren Und jetzt wird dieser Teil unserer Benutzeroberfläche immer in dieser Position relativ zu dieser Ecke bleiben Wenn du das Spiel jetzt auf verschiedenen Geräten spielst oder die Größe des Fensters änderst, so wie du es dort siehst, passt die Schaltfläche ihre Position automatisch an die Anker an, sodass sie immer in der unteren rechten Ecke bleibt der unteren rechten Ecke In Goto können Sie jetzt die Anker-Voreinstellungen verwenden, um das gewünschte Verhalten von UI-Elementen festzulegen das gewünschte Verhalten von UI-Elementen Zu diesen Voreinstellungen gehören oben, links, rechts und unten. Anker sind Elemente an den angegebenen Kanten des übergeordneten Containers oder Bildschirms Vertikaler Mittelpunkt, horizontaler Mittelpunkt, verankert die Elemente an der vertikalen oder horizontalen Mitte des übergeordneten Containers oder des Bildschirms Füllen Sie hier unsere letzte Option aus, verankert das Element an allen vier Kanten, wodurch es mit dem übergeordneten Container oder Bildschirm dehnt und skaliert Wenn Sie also beispielsweise möchten, dass ein Bild immer den Hintergrund ausfüllt, wenn wir zum Beispiel reinkommen und hier ein Farbrechteck machen immer den Hintergrund ausfüllt, wenn wir zum Beispiel reinkommen und hier ein Farbrechteck und den Bildschirm füllen Wir kommen rein. Wir haben diese schöne dunkle Farbe. Wir haben hier ein dunkles Braun. Vielleicht möchten wir ein subtiles Dunkelgrün als Hintergrund verwenden. Und wenn wir die Anker nicht berühren, lassen wir alles standardmäßig stehen, und Sie können sehen, dass wir hier ein Problem haben In diesem Fall können wir jedoch einfach die Voreinstellung Bull Wreck verwenden, um unsere Stecknadeln in allen vier Ecken zu platzieren Jetzt wird unser Bildschirm immer vollständig mit diesem Hintergrund bedeckt In unserem Fall unsere Farbe. Durch die Verwendung von Anker-Voreinstellungen und die Anpassung ihrer Werte haben Sie also die volle Kontrolle darüber, wie Ihre UI-Elemente auf Änderungen der Bildschirmgröße und des Seitenverhältnisses reagieren Änderungen der Bildschirmgröße und des Seitenverhältnisses Ordnung, da haben Sie eine Einführung in Anker in Indem Sie die Leistungsfähigkeit von Anchors nutzen, können Sie ansprechende und anpassungsfähige Benutzeroberflächen für Ihre Spiele und Software erstellen für Bei Spielen gilt dies natürlich in der Regel nur für Ihr Heads-up-Display , sodass ein nahtloses Benutzererlebnis auf verschiedenen Geräten gewährleistet auf verschiedenen Geräten 68. Layout suchen: In Ordnung. Das erste, was wir tun werden, ist, wir werden zuerst unsere Suchleiste erstellen und was wir hier erstellen werden. Werden wir unsere eigene kleine Desktop-Anwendung erstellen , mit der wir nach einem Anime suchen können nach einem Anime suchen und die uns eine Ergebnisliste gibt. Es wird alle Bilder für alle Ergebnisse für jeden einzelnen Anime haben. Ich werde den Titel haben. Ich werde die Genres haben. Und wenn wir auf eins klicken würden, würde es sich öffnen. Es wird uns eine Zusammenfassung geben. Es wird eine größere Version des Bildes haben. Und wenn wir es uns genauer ansehen wollen , könnten wir auf einen externen Link klicken, um zu uns zu gelangen, der in unserer Standardanwendung geöffnet wird, was Ihr Standard-Webbrowser wäre, wenn Sie auf einem PC sind. Und öffne dafür die Anime-Seite. Und das erste, was wir in diesem Video hier tun werden, ist, die Suchleiste und die Schaltfläche zu erstellen , die du dafür geschickt hast. Aber wir werden damit beginnen, hier einen Hintergrund einzufügen weil das irgendwie langweilig ist, oder? Wir öffnen es und wir haben dieses langweilige, graue Bild. Los geht's. Wir haben diese langweilige graue Kiste. Es ist nicht allzu aufregend. Und selbst wenn wir eine Linie in der Mitte ziehen, es nicht besonders ansprechend sein . Sieht irgendwie nach M aus, oder? Also das Erste, was ich tun werde, ist meine brandneue Szene hierher zu bringen. Natürlich habe ich es Main genannt. Es ist eine UI-Szene. Mein Root-Knoten ist also ein Steuerelement. Und ich werde weitermachen und hier ein Textur-Rect hinzufügen. Ich werde das als meinen Hintergrund umbenennen. Und was die Textur angeht, bin ich einfach online gegangen und habe einen Anime-Hintergrund gefunden weil es ein Anime-Hintergrund ist, der zu Anime passen würde. Also habe ich einfach einen gefunden und ihn reingebracht. Also, das ist offensichtlich viel zu groß für meine Bewerbung hier. Sie werden also feststellen, wenn wir den Griff nehmen, können wir ihn nicht ändern, aber wir können ihn vergrößern, aber wir können ihn nicht verkleinern. Also gehe ich im Inspektor auf der rechten Seite in den Erweiterungsmodus Inspektor auf der rechten Seite in den und ändere ihn von „Größe beibehalten“ auf „Größe ignorieren“, „ Mit Portion anpassen“, „Höhe anpassen“. Ich nehme einfach „Größe ignorieren“ und verkleinere das Ganze, bis PS alle unsere Seiten abdeckt So etwas in der Art. Und dann werde ich weitermachen und den Anker auf Bull Wrack setzen. Und los geht's Das wird sich einstellen. Das wird zu hell sein, als dass wir etwas darauf zeigen könnten. Also werde ich tatsächlich in den Sichtbarkeitsbereich von Min Spector gehen den Sichtbarkeitsbereich von Min Spector Ich gehe in die Modulation. Eigentlich werde ich das mal selbst modulieren. In diesem Fall wäre das egal. Aber wenn Sie Modulate verwenden, würde es sich auch auf alle seine untergeordneten Elemente auswirken, da dies der Hintergrund ist, es wird keine Kinder haben Es wird also in Ordnung sein, aber wenn Sie nur diesen einen Knoten beeinflussen wollen, verwenden Sie einfach Self-Modulate, und ich werde ihn einfach abdunkeln , weil meiner ziemlich hell ist Ich denke, etwas in der Nähe wird wahrscheinlich gut sein. Also, wenn ich weitermache und das durchführe, okay? Das ist mein Fenster. Das ist nicht so schlimm. Es ist nicht zu hell, um etwas wegzunehmen, obwohl wir in meinem Fall viele Weiße haben Ordnung. Also das wird mein Hintergrund sein. Also, was ist mit der eigentlichen Suche? Nun, die eigentliche Suche, wir werden das tatsächlich in einen Container stecken . Und das wird in einen sogenannten VBox-Container gesteckt einen sogenannten VBox-Container Und das ist ein vertikaler Container, oder? Alles, was Sie hineinlegen, wird also vertikal gleichmäßig verteilt Also, wenn ich einfach weitermache und eine Textur reinbringe, sagen wir, diese Textur genau hier, oder? Benutze das als Beispiel. So wie Sie es sehen, werden wir einfach auf folgende Weise weitermachen . Also da hast du's. Natürlich werden wir nicht alle da drin haben, aber Sie verstehen schon, was ich meine. Und nur um mal einen Blick darauf zu werfen, wenn wir da drin eine Steuerung hätten, die da drin wäre, würde das keinen Unterschied machen. All das würde gleich bleiben. Ich lösche all diese Go. Das liegt daran, dass unser Steuerelement standardmäßig Größe Null hat. Lege es unter Layouts. Da ist es. Es ist Transformation. Sie können also sehen, dass unsere Y-Größen in diesem Fall komplett Null sind. Und wir können sehen, dass unsere Transformation tatsächlich größer ist, sodass wir sie nicht kontrollieren können. Wir würden also unseren eigenen Container innerhalb des Zertifikats haben Lassen Sie uns also in unserem Fall weitermachen und obwohl Container nett sein könnten, denke ich, dass wir hier einfach ein Mrvust-Setup verwenden Lassen Sie uns jetzt eine Zeile für unsere SRT machen, ich kann sehen, dass mein Hintergrund sich wirklich versteckt, also werde ich das einfach noch optimieren Verdunkeln Sie es etwas mehr, damit meine Linie tatsächlich etwas hervorsticht Platzhaltertext, suche hier nach Anime. Und wir werden weitermachen und auch damit eine Schaltfläche hinzufügen. Und der Text dazu wird es nur sagen, Sir. Das ist ein bisschen breiter. Da haben wir's. Jetzt können Sie sehen, dass wir Grau auf Schwarz haben. Das wird es sein. Es ist ein bisschen schwer zu erkennen. Aber das Einzige, was wir im Moment wirklich dagegen tun können , wäre, in die entgegengesetzte Richtung zu gehen und einen leichteren Ansatz zu wählen, was völlig in Ordnung ist, wenn Sie das tun möchten, vielleicht so etwas. Natürlich hängt das von Ihrem Hintergrund ab, aber das ist etwas, das behoben werden kann , wenn wir zum nächsten Abschnitt kommen, in dem wir wirklich darüber sprechen, alles aber das ist etwas, das behoben werden kann , wenn wir zum nächsten Abschnitt kommen, in dem wir wirklich anzupassen Also nichts sieht sehr standardmäßig aus und alles sieht viel professioneller aus, würde ich sagen Nun als kleiner Tipp hier, wenn es um UI geht, wenn Sie hier tatsächlich nach oben kommen, haben wir zwei Magnete. Einer wird hier ein Kinderspiel sein. Wie Sie sehen, haben wir ein paar intelligente Schnappschüsse im Gange, und das andere wird uns ein schönes Raster geben , mit dem wir rasten können. Und das wird dazu beitragen , dass die Dinge gut aussehen Wir sehen, dass das bis in die Mitte reicht. Lassen Sie uns das so konstruieren, dass es sich auf die obere Mitte bezieht. Und ich mache das Gleiche mit meinem Button hier. Ein Okay. Und jetzt, was das angeht, werde ich offensichtlich ein bisschen zu high sein. Wie wird sich das anfühlen? Mal sehen, ob ich das durchführe. Schauen Sie sich das an. Okay. Ich habe aber das Gefühl, dass ich das vielleicht da reinbringe und erweitere, damit wir hier unser ganzes Feld ausfüllen können. Dann schalten wir unsere Suchschaltfläche herunter. So klein wir können , also vielleicht machen wir es so mit einer Box dazwischen. Wenn wir so etwas bekommen, denke ich, das ist in Ordnung für das, was wir hier wollen. Zumindest bin ich meiner Meinung nach kein UI- oder Experte, aber zumindest stimmt alles mit dem Raster überein. Also haben wir einen guten Start hingelegt. Beachten Sie nun, dass mein Knopf und meine Linie darauf auch die gleiche Höhe haben. Das ist nur eine weitere Sache , die es etwas zusammenhängender aussehen lässt und ihm den Anschein gibt, schöner zu sein , als es vielleicht Ordnung, also mache ich weiter und nenne sie, also nenne ich das meine Suchleiste, und das wird meine Suchschaltfläche sein, Das wird hier ganz oben stehen. Und gibt es noch etwas, das wir in diesem Buch behandeln könnten? Ich gehe die Suche durch. Ich glaube, das ist es, und dann werden wir unsere Suchergebnisse haben. Wir werden unsere Suchergebnisse in einem separaten Video veröffentlichen. In Ordnung. Also da ist unsere einfache Suche. Wir können jetzt reinkommen und anfangen, Dinge einzugeben. Wir haben einen. Attack on Titan ist sehr beliebt und wir können unsere Suchtaste drücken. Offensichtlich macht es momentan nichts. Aber du verstehst die Idee, oder? Aber stell einfach sicher, dass das gut aussieht. Also wissen wir, wo die Mittellinie genau hier ist. S eins, zwei, drei, vier, so, eins, zwei, drei, vier, also merkt man das. Wir sind vier Blocks weiter links und vier Blocks weiter rechts, also halten wir dieses Gleichgewicht auch in den Bildern aufrecht Ich dachte, ich hätte das auch ganz schnell erwähnt. Wir müssen also von derselben Größe aus expandieren, also bleiben wir relativ ausgewogen. Und abgesehen von diesem leeren Raum sind wir visuell an beiden Enden ziemlich ausgewogen. In Ordnung. Das war's für die Suche. Im nächsten Video werden wir den Abschnitt so einrichten , dass unsere Ergebnisse angezeigt werden. 69. Ergebnislayout: Ordnung, wir werden weitermachen und unseren Suchergebnisbereich einrichten unseren Suchergebnisbereich Und ich möchte hier nur etwas nachträglich notieren. Wir werden hier auch eine Optionsschaltfläche haben. Und das wird für unsere Genres sein, für die wir eine Drop-down-Auswahl haben werden. Und ich werde meine Optionsschaltfläche in Genre Optas umbenennen und Sie werden feststellen, dass ich einfach meine Suche verschiebe, meinen Button mehr nach rechts und die Linie etwas weiter nach links, und ich muss hier die Anker für meinen Optionsbutton setzen die Anker für meinen Optionsbutton Ich glaube, das war zentriert. Es ist so. Jetzt können wir reinkommen und ich kann die Größe ändern und gut sein. Wenn wir wollen, können wir jetzt weitermachen und uns komplett auf die Spitze stützen . Das wäre auch in Ordnung. Ordnung. Also lasst uns weitermachen und unseren Ergebnisbereich einrichten. Dafür werde ich weitermachen und hier einen Scroll-Container hinzufügen . Und das wird uns ermöglichen oder ermöglichen, unser Mausrad zu benutzen und die unser Mausrad zu benutzen Scrollleiste an der Seite zu haben, wie wir es hier sehen. Richtig? Und das wird Fall sein, wenn wir etwas im Inneren haben, das länger oder breiter ist als die Box, die wir hier verwenden. Also, ich denke, wir werden darin gut zurechtkommen, und das wird uns dann zu viel sein. Da. Nun, selbst das wird meiner Meinung nach ein bisschen zu viel für die Informationen sein , die wir hier haben werden. Aber wer weiß? Vielleicht können wir es zum Laufen bringen. Also werde ich meinen Scrollcontainer in Salts Container umbenennen . Ordnung, mit unserem Scrollcontainer können wir sehen, dass wir hier dieses kleine Dreieck haben. Und wenn wir mit der Maus darüber fahren würden, würde uns das nur sagen, dass ein Scrollcontainer dazu gedacht ist, mit einem einzigen untergeordneten Steuerelement zu funktionieren Das wäre wie eine V-Box oder eine H-Box usw. In unserem Fall werden wir eine V-Box verwenden. Es wird also ein vertikaler Box-Container sein. diese Weise können wir weiterhin Elemente vertikal hinzufügen, und wir können direkt nach unten scrollen, wenn wir den Wert überschreiten. Also werden wir den VBox-Container hier hinzufügen Und von dort aus können wir wirklich nichts tun. Also machen wir uns auf den Weg zu einer neuen Szene. Ich werde hier einen anderen Knoten auswählen damit ich einen H-Box-Container als mein Dach erstellen kann. Ich werde zwei Blöcke I erstellen und mal sehen, zwei oder sechs. Vorerst gehen wir einfach sechs Breiten. Nun, das wird natürlich alles davon abhängen, wie Sie Ihre sortieren möchten . Jetzt werde ich von vorne beginnen, das heißt , ich fange von links an und stapele mich nach rechts. Wenn wir am Ende beginnen, beginnen unsere Artikel auch am Ende. Also, sobald ich hier ein Textur-Rect hinzufüge, gebe ich ihr standardmäßig das Goto-Symbol Sie sehen also, wenn Sie am Ende beginnen , wird es von dieser Seite aus beginnen Fangen Sie am Anfang an. Ich fange von links an und fange in der Mitte an. Ich baue von der Mitte aus. Ordnung, also werde ich es einfach benutzen , um von vorne zu beginnen. Auf diese Weise wird unser Bild von unserem Anime immer links sein. Und das wird ein Anime-Vorschaubild, ein Anime-Bild, ein Anime-Bild sein Anime-Bild, ein Anime-Bild Nennen Sie dieses Anime-Ergebnis, nehme ich an, aus meinem Container Und jetzt möchte ich direkt neben dem Bild hier denken lassen. Ich denke, wir wollen den Titel oben haben und dann direkt darunter, all unsere Genres. Wenn wir also weitermachen und das tun, brauchen wir natürlich eine V-Box, weil wir einen Steckplatz in unserer H-Box belegen müssen, oder? Andernfalls können Sie reinkommen und wir können hier etwas Text hinzufügen und wir fügen ein weiteres Etikett hinzu, es wird also direkt daneben stehen. Aber wir wollen es direkt darunter haben, oder? Wir wollen in die Vertikale gehen. Wenn ich es zum Beispiel einfach so belasse und die Box hinzufüge, siehst du, wenn wir diese beiden Labels innerhalb der VBox hinzufügen, wird daraus ein vertikaler Stapel wie dieser Stimmt das? Also werden wir das tun. Aber wir werden die Ausrichtung hier so einstellen , dass sie in der Mitte liegt. Und wir legen fest, dass das erste Label Anime-Titel sein wird. Das zweite Label wird, wenn ich es umbenennen kann, Anime-Genres sein. Und wir nennen diesen Container einfach Anime Info. Mir gefällt nicht, wie nah das an diesem Bereich ist, also werde ich hier zu meiner H-Box gehen. Und im Inspektor gehe ich ins Kino Constance. Markieren Sie das Trennfeld und ich kann hier eine benutzerdefinierte Menge hinzufügen. 20 Pixel. 30 Pixel, wer weiß, oder? Es liegt ganz bei Ihnen , sich das anzusehen, testen und zu sehen, was Ihnen gefällt. Ich lasse es vorerst einfach auf 30. Und ich werde das Anime-Ergebnis meiner Szene speichern. Das ist in Ordnung. Wenn ich jetzt zur Hauptszene zu unserem Ergebniscontainer zurückkehre , klicke ich auf den VBox-Container Wenn ich jetzt reinkomme und sofort mein Anime-Ergebnis eingeben kann mein Anime-Ergebnis wirst du sehen, ob ich Control D verwende und es einfach dupliziere. Da haben wir eine ganze Menge. Und wenn wir es ausführen, sieht es so aus, wie es aussehen würde, und wir können dank des Scroll-Containers durch all unsere Ergebnisse scrollen. In Ordnung. Nun, genau wie bei der achten Box, wie wir dort eine benutzerdefinierte Trennung haben können. Wir können auch mit unserer V-Box eine benutzerdefinierte Trennung haben. Ich möchte das jedoch erst anfassen, wenn wir unsere Vorschaubilder und das da drin haben, und dann komme ich vielleicht zurück und optimiere es. Aber damit haben wir unseren Ergebnisbildschirm eingerichtet. Wir müssen lediglich für jedes Ergebnis, das wir haben, ein Ergebnis instanzieren und die entsprechenden Informationen eingeben. Wählen Sie hier vorerst alle meine Ergebnisse und ich lösche sie einfach. Okay. Und das reicht für diese Portion. Als Nächstes schauen wir uns an, tatsächlich eine Suche durchführen, um ein Zertifikat zu erstellen , dass wir in der nächsten auch unsere Ondas ausfüllen könnten in der nächsten auch unsere Ondas ausfüllen 70. Eine Suche durchführen: Oh, Junge. Okay, lassen Sie uns weitermachen und uns unsere Ergebnisse ansehen Für die Ergebnisse werden wir nun diese Anime-Datenbank verwenden Wenn Sie zurückgehen und sich den API-Abschnitt ansehen, wenn wir über Rapid API und die Konvertierung von Python zu GD-Skript sprechen , werden wir diese Datenbank verwenden. Deshalb habe ich gerade den Code aus dieser Vorlesung kopiert. Also haben Sie das nicht getan, oder Sie müssen zurückgehen und einen Blick darauf werfen, um sich zu erinnern, wie das geht, oder um zu sehen, um welche Datenbank es sich handelt, machen Sie weiter und machen Sie das. Richten Sie sich ein. Ich werde hier einfach ein Skript auf meinen Hauptknoten legen. A und ich werde einfach alle meine Variablen einfügen . Wir haben also unsere Header, die wir uns angesehen haben. Wie man es einrichtet. Ich habe meine Basis-URL hier und ich habe meine drei Gets hier, richtig? Es hat uns erlaubt zu bekommen. Ich glaube, es erlaubt uns vier verschiedene, wir haben, zwei davon, drei von ihnen, tut mir leid. Wir haben alle, wir haben Genres und Ranglisten. Nun, ich denke, wir werden dafür nur alles bekommen müssen, anstatt Genres zu finden. Aber wer weiß, vielleicht? Vielleicht können wir Oh, nein, wir brauchen unsere verschiedenen Genres, um unser Drop-down-Menü auszufüllen . Also ich denke, das Ranking ist das, was wir nicht brauchen werden. Wir holen uns einfach alles und suchen uns Genres. Ich werde die Nummer eins loswerden. Und dann haben wir hier unseren Such - oder Suchleisten-Text, unser Genre, nach dem wir suchen werden, unser Genre, nach dem wir suchen werden, und EXT steht für die Erweiterung des Bilds , das wir jetzt bekommen werden . Mal sehen was wir hier noch brauchen werden? Brauchen wir standardmäßig noch etwas anderes? Ich glaube nicht, dass wir bis dahin noch etwas brauchen. Also lass uns weitermachen und ich schätze, das Erste, was wir tun werden , ist unsere Genres zu finden und unsere Optionstaste auszufüllen. Lass uns das machen. Wir werden eine HTTP-Anfrage benötigen. Also füge ich der Szene einen hinzu. Und ich werde das meine Genre-Anfrage nennen. Einfach so. Und genau so werde ich weitermachen und mein Signal für das Signal, das die Anfrage abgeschlossen hat , mit meinem Hauptskript verbinden , hier den Löschvorgang. Das brauchen wir nicht. Jetzt, in unserer Schreibfunktion hier, kann ich weitermachen und unsere Genre-Anfrage bekommen, und wir können diese HTTP-Anfrage stellen, richtig? Und das wird unsere URL plus unsere ET-Genres sein. Und wir können unsere Header als zweites Argument übergeben. Wenn wir diese Daten zurückbekommen, denken Sie daran, dass wir sie analysieren müssen, also werden wir sagen, wir werden eine neue Variable namens response erstellen Wir setzen das auf body, string aus TFight und wir werden sehen, was passiert, wenn wir die Antwort einfach ausdrucken und schauen, was wir zurückbekommen Okay. Also können wir all diese einzelnen kleinen Diktatare eines einzigen Schlüsselwerts sehen, und es scheint, dass all unsere Genres Werte der Schlüssel-Underscore-ID sind Okay? Also in unserer Antwort hier müssen wir das Jsonifizieren lassen, weil wir im Moment technisch gesehen nur eine lange Zeichenfolge haben Moment Wir können das also unsere Genres nennen, wenn ich die JSON-Zeichenfolge buchstabieren und an unsere Stelle setzen kann, und an unsere Stelle setzen Kein Fehler ist gut. Und jetzt können wir reinkommen und die Antwort ausdrucken. Wir können sagen, vier Genres und Genres drucken Genre, und wir wollen uns die Tonart für Unterstrich, kleines I, kleines D merken . Also wenn wir das jetzt spielen, sollten wir alle unsere Genres haben Da haben wir alles für uns ausgedruckt Preisgekrönte Action-Suspense für Etti Avantgarde, Sport, übernatürliche Fantasie, Gourmet, Drama, Wir haben es verstanden. Wir können jetzt alle Genres hier sehen. Fantastisch. Jetzt müssen wir sie also tatsächlich in das Optionsmenü aufnehmen , das wir haben, oder? Oder Genre-Auktionen. Also haben wir sie ausgedruckt. Was wir tun müssen, ist sie hinzuzufügen. Sie werden sagen, Genre, Auktion, wir müssen das tatsächlich in die Finger bekommen Genre-Optionen. Beim Artikel. Und jetzt fügen wir die Genre-ID hinzu, die wir ausdrucken. Und jetzt spielen wir es, wir können es uns ansehen, und da sind all unsere Gegenstände. Jetzt sehen wir, dass es ein bisschen größer ist als das, was es war. Also stößt es dort irgendwie auf unsere Suchleiste. In diesem Fall möchte ich es mir vielleicht ansehen und es dann vielleicht rüberschieben, jetzt wo ich weiß, wie groß es ist Wie man irgendwo da drinnen ein Gleichgewicht findet. Sieht das aus? Ich finde , das sieht gut aus. Wenn wir jetzt tatsächlich an unserem Projekt beteiligt sind. Los geht's. Jetzt haben wir hier alle unsere Optionen. Schauen Sie sich diese immer bei all unseren Optionen an. Fantastisch. Wir haben also unser Genre festgelegt und können dort eingeben , was wir wollen. Jetzt wollen wir ein Substantiv oft oben haben. Also werde ich tatsächlich einen Artikel hinzufügen, bevor wir überhaupt anfangen Also bereit, und ich werde das einfach auf einstellen. Nein, das gefällt mir. Und das sollte standardmäßig automatisch ausgewählt sein. Ich irre mich nicht? Da hast du's. Und statt keins, wenn du willst, könntest du es zum Genre wählen lassen, wenn du willst. Der Punkt ist, wenn wir das ausgewählt haben, werden wir keine Genres einführen, oder? Es wird bei unserer Suche leer sein. Aber da haben wir's. Wir haben den Genre-Teil ausgefüllt und sind bereit, unsere Suchanfragen zu erstellen. Und jetzt brauchen wir die eigentliche Suche , um all unsere Informationen zu erhalten, richtig? Und Sie können hier sehen, ich erhalte eine Seite, aber meine Größe beträgt 1.000 Artikel pro Seite. Das könnte also mehr als genug sein , um eines davon auszufüllen. Also werden wir Get All in unserer nächsten Anfrage hier verwenden. Lassen Sie uns also weitermachen und hier eine weitere PTP-Anfrage hinzufügen. Und das werden wir die Anime-Suche nennen. Und wir werden auch das Signal „ Anfrage abgeschlossen“ verbinden. Und genau wie bei den ersten beiden hier werden wir den Hauptteil analysieren, richtig, die Zeichenfolge von UTFA abrufen und dann haben wir eine Variable, nicht Genres, sondern diese Und wir werden jetzt eine Liste all unserer Animes haben. Also, wenn wir sie ausdrucken und dann gehen, dann können wir das wohl vorerst hypothetisch machen Eigentlich richten wir unseren Button ein. Bisher verbindet unsere Suchtaste, wenn sie gedrückt wird, das Drucksignal. Und hier ist unsere Anfrage Also bekommen wir unsere Anime-Suchquest, und wir hätten URL plus G und geben das zweite Argument in unseren Headern Und vorher müssen wir tatsächlich einen Teil der Zelle füllen Unsere Genres, falls wir welche haben, müssen wir ergänzen. Sie haben sie dort gebaut. Okay. Also sagen wir, hol alles. Dann werde ich die Variable oder get all in Klammern setzen Variable oder get all in Klammern , weil wir hier Platzhalter hinzufügen werden, Also Prozent und dann ein Paar eckige Klammern. Und das geht in die Suche nach dem ersten, Platzhalter und Genre oder Genres für das zweite In Ordnung, also lassen Sie uns mit dem beginnen, was wir bekommen müssen? Wir müssen unseren Suchtext bekommen. Unser Suchtext wird also das sein, was sich in unserer Suchleiste befindet. Wir werden also sagen, dass Suche unserer Suchleiste, dem Text, entspricht. Und dann löschen wir unsere Suchleiste. Oder tatsächlich müssen wir das in diesem Fall nicht tun, da wir eine tatsächliche Suchsuche durchführen. Und wir werden sicherstellen, dass Suche nicht einer leeren Zeichenfolge entspricht. Auf diese Weise müssen Sie eine tatsächliche Suche durchführen, und auf diese Weise erhalten wir tatsächlich Ergebnisse zurück, egal was passiert. Es spielt keine Rolle, ob wir kein Genre haben. Es ist nur wichtig, ob wir eine Suche haben. Nun, wir haben die Genre-Teile noch nicht eingerichtet, aber lassen Sie uns weitermachen und sicherstellen, dass wir hier Ergebnisse erzielen können. Also kommen wir her und sagen Danke bei der Titan-Suche. Und da haben wir es. Wir haben eine Menge Informationen, und wie Sie sehen, läuft die Ausgabe über und es wird weniger Text gedruckt Wir haben also viel mehr Informationen als uns die Ausgabe zur Verfügung stellen will, was völlig in Ordnung ist Aber wir können sehen, dass das Wichtigste ist, wir all diese Informationen aus unserer Suche sehen können all diese Informationen aus , sodass wir wissen, dass unsere Suche zumindest funktioniert. Ordnung. Also, was ist mit unseren Optionen hier? Nun, für Genre-Optionen wählen wir unser Optionsmenü. Wir werden das ausgewählte Signalelement verbinden. Verbinden Sie das hier mit unserem Hauptskript. Und wir werden hier eine temporäre Variable erstellen. Und wir werden dieses Genre Text nennen, und dann entspricht es den Genre-Optionen, unserer Optionsleiste. Aber Artikeltext, und wir übergeben den Index, der automatisch mit unserem Signal an unsere Funktion übergeben wird , oder? Also bekommen wir unseren Index. Wenn wir in unserer Drop-down-Leiste auf etwas klicken, erhalten wir den Text dieses Elements, und dieser wird hier auf unseren Genretext gesetzt. Und jetzt sagen wir , einfach ausgedrückt, wir können hier einfach ein Match verwenden, wenn wir wollen. Sag Match-Genre-Text. Und wenn es mit dem übereinstimmt, was wir anbieten, sprechen Sie, welches wir verwenden, wählen Sie das Genre aus. Also, wenn du keins benutzt, dann würdest du auch keins da reinschreiben. Wenn es dem entspricht, dann entsprechen die Genres einer leeren Zeichenfolge. Und wir werden diesen Unterstrich als Platzhalter verwenden. Wenn es also nicht um ausgewählte Genres geht, dann sagen wir einfach, dass Genres dem Genretext entsprechen Richtig. Nun, wenn wir das testen wollen, können wir weitermachen und jedes Mal, wenn wir eine neue Option auswählen, Genres ausdrucken. Wir werden also jedes Mal, wenn wir etwas auswählen, Sport, Comedy, unten in unserer Ausgabe sehen . Wir sehen also, dass das alles gut funktioniert. Und wenn wir hier oben „ Genre auswählen“ auswählen, wird nichts ausgedruckt, da es eine leere Zeichenfolge handelt. Also da hast du's Unsere Genres funktionieren und wir haben unseren Suchtext. Das Letzte, was wir tun müssen, wenn wir unser Ergebnis erhalten , ist zu wissen, wie viele Ergebnisse wir haben. Und auf dieser Grundlage können wir unsere Ergebniselemente hinzufügen, oder? Wenn wir also hier reinkommen, führen wir hier eine Suche durch. Eigentlich möchte ich, dass es ein bisschen schöner aussieht Also werde ich JSON Spring Pi-Animes verwenden. Auf diese Weise wäre es etwas einfacher zu erkennen, was wir uns ansehen Ich werde Titan erneut angreifen, eine Suche durchführen und ja, ich werde es nicht ausdrucken. Da haben wir's. In Ordnung, also nehme ich Titan, damit ich besser sehen kann , was wir hier vor uns So wollte ich nicht , dass wir ganz nach oben fahren Wir sehen also, dass alles in Daten enthalten sein wird. Okay. Also werden wir Animes drucken und in den Datenbereich gehen Und das werden wir überprüfen. Zurück auf Titan, mach eine Suche. Und ungültig Get Index the. Okay? Was habe ich hier falsch gemacht? Denk einfach, oh, das wird uns nichts geben. Das hat uns tatsächlich einige Dinge gegeben. Das ist interessant. Oh, das ist ein kleines D, deswegen. Ich hatte ein Problem mit der Groß- und Kleinschreibung. Gehen wir zu Daten. Gehen Sie von der Suche aus und schauen Sie sich das an. Und ich werde einfach ganz nach oben scrollen. Okay. Also, jetzt haben wir all das. Also können wir für jedes Ergebnis in den Daten etwas Neues erstellen, oder? Wir können also sagen, wir könnten unsere Animes jetzt wieder einstellen, also sagen wir, Animes sind Anime-Daten Auf diese Weise enthält es jetzt nur noch die Daten, anstatt diesen zusätzlichen Schlüssel grundlos durchgehen zu müssen diesen zusätzlichen Schlüssel grundlos durchgehen Jetzt können wir weitermachen und nachschauen. Wir können vier Anime und Animes sagen. Anim wird hier für eine Sekunde vorbeischreiben, wir haben keine Instanz oder wir haben nichts geladen, um daraus eine Instanz zu erstellen Also werde ich hier sagen, dass das Balkenergebnis dem Anime-Ergebnis entspricht. Und wir werden das G laden und zurück zu Anime und Animes kommen Wir werden RI für Result, Instance, Result , Instanziate ausführen Oh, weil wir es dort weitergeben lassen. Ordnung. Also sagen wir Anime-Ergebnis. Ja, weit davon entfernt, dass wir hier eine Verwirrung haben. Es versucht, es aus der Funktion hier zu holen, also denkt es stattdessen, dass es sich um eine Ganzzahl handelt. Also lass uns weitermachen und diese Änderung dieses Anime-Ergebnis Punkt instantiieren nennen dieses Anime-Ergebnis Punkt instantiieren Ordnung. Jetzt bekommen wir eine VBox, die sich in unserem Ergebniscontainer befindet Und Kind. Und wir sind bei RI, richtig? Und wenn wir das jetzt ausführen und eine Suche durchführen , sollte das Ergebnis unseres Angriffs auf die Titan-Suche vollständig vervollständigen. Da haben wir's. Und sieh dir die Menge an Suchergebnissen an, die wir für den Angriff auf Titan haben. Und das hier, Highschool-Suche. Und wir haben so viel mehr. Was wir also tatsächlich tun müssen, ist, das zu löschen, denn obwohl Sie es nicht sehen konnten, sind unsere Ergebnisse übereinander gestapelt fügen unsere neuen Ergebnisse zu unseren alten hinzu Bevor wir also all diese durchsuchen, müssen wir zu unserem VBox-Container gehen Und lass uns sehen. Haben wir ein klares oder so? Ordnung. Ich sehe keine Möglichkeit, es einfach zu löschen, also können wir noch eine weitere Schleife durchlaufen , bevor wir uns darauf einlassen. Also können wir entweder eine Weile oder eine For-Schleife machen. Also, wie wollen wir sagen, während R VBox Container Punkt Children Wird uns das eine Ganzzahl zurückgeben? Eltern in einer Reihe von Referenzen. Okay, das wird dazu kommen. Also wollen wir Kinder zählen. Die Wilchild-Anzahl ist also größer als Null. Wir erhalten unseren VBox-Container und trotzdem den Child-Index Null, auch wenn wir ein untergeordnetes Objekt haben , das immer noch einen Index von Null hat Also werden wir im Grunde ständig das oberste untergeordnete Element entfernen bis wir nichts mehr übrig haben, oder ein Viertel Steck da einen kleinen Abstandshalter rein. Mal sehen, ob wir reinkommen, Tack Piton Search, wir haben das L ausgefüllt Und wenn wir uns den Remote-Ergebniscontainer oder die VBox ansehen würden , wir haben sie alle Also, was es jetzt ist, was wir tun werden, wenn wir eine weitere Suche durchführen, wir werden uns die oberste hier schnappen Es wird nachschauen. Ja, wir haben immer noch mindestens ein Kind hier drin. Schnapp dir den nächsten, der hierher verschoben wird, lösche ihn und so weiter. Wenn ich jetzt reinkomme und du die Seite im Auge behältst, wenn du dich daran erinnerst, wie klein das geworden ist, kommst du rein und machst dieselbe Suche, Highschool-Suche , und wir sehen, dass das nicht kleiner geworden ist, als wir das gemacht haben Obwohl es ein bisschen dauern wird, sie alle durchzugehen und zu löschen, was ein kleines Problem darstellt Es ist also möglicherweise einfacher, die gesamte VBox vollständig zu löschen Okay, versuchen wir stattdessen, einfach die gesamte VBox zu löschen und eine neue zu erstellen , wenn wir sie brauchen, also sagen wir, wir bekommen unseren VBox-Container Und dann fügen wir einfach eine weitere hinzu. S V NuBx entspricht VBox-Container, NuGet unserem Ergebniscontainer, untergeordnetes Neubox hinzufügen, richtig ? Also werden wir sehen, wie das jetzt funktioniert. Das sollte hoffentlich viel schneller gehen, da wir derzeit nicht potenziell 1.000 Ergebnisse durchgehen . Das Gleiche gilt für Titan-Suche . Alles klar. Wir hatten eine Nullwert-Option, also kommen wir rein und sagen, was hier richtig gelaufen ist. Ergebniscontainer, und wir sagen einfach jedesmal get child child zero brvBx In Ordnung, lass uns das versuchen. Ordnung, also lösen wir das Problem, indem die VBox ändern, anstatt sie direkt zu bekommen, da sie sich ständig ändert und einen anderen Namen Natürlich hätten wir es hier einfach unsere neue Box nennen können, und das hätte es wahrscheinlich auch gelöst Aber stattdessen ändern wir es einfach in Yet Child Zero. Und das machen wir auch hier oben, wenn wir frei sind. Und da es so aussieht, als würden wir versuchen , beide Dinge gleichzeitig zu tun, entfernen und hinzufügen, habe ich einfach angerufen und 0,1 Sekunden gewartet, was in Ordnung ist. Es ist eine Zehntelsekunde. Es wird dich nicht umbringen. Also, wenn wir es jetzt starten, können wir weitermachen und einen Suchangriff auf Titan Search starten. Warte eine Sekunde. Da hast du's. Da sehen wir an der Seite, wie groß unsere Bar hier ist. Wenn wir High School oder irgendwelche Animes eingeben , die damit auftauchen, und wir suchen, stellen wir fest, dass die Leiste kleiner wird, weil es mehr Ergebnisse geben wird Und wir stellen fest, dass das Ganze einfach blinkt, was sich einfach komplett klärt Da hast du's. Und Sie sehen, wir haben dieses kleine Schnäppchen. Und um Ihnen dann zu zeigen, dass es nicht darum geht, Ergebnisse zu erzielen, können wir zu diesem Angriff zurückkehren jetzt sollten wir unser größeres Schnäppchen machen Da hast du's. Ordnung, also im nächsten Video werden wir weitermachen und mal sehen Vorschaubild Wir werden unsere Vorschaubilder und unsere Informationen hier machen unsere Vorschaubilder und unsere Also die Titel und die Genres. Wir werden diese Informationen als Nächstes ausfüllen. 71. Thumbnails, Titel, Genres: Ordnung, lassen Sie uns weitermachen und diese Vorschaubilder, Titel und Genres hier ausfüllen Verkleinern Sie das einfach ein wenig, damit es hier etwas schöner aussieht Geh. Ordnung? Also das wird hier offensichtlich in unserem Anime sein hier offensichtlich in unserem Anime Also werden wir hinzufügen, ist in Ordnung. Und lass uns sehen. Wir müssen unser Ziel erreichen Lassen Sie uns weitermachen und wir beginnen damit , dass wir uns unser Ergebnis ansehen. Siehst du, wir müssen erst mal Info animieren und dann zum Anime-Titel Also sagen wir RI und wir können sagen: Get Child, Get Node. Ordnung. Wir werden hier einfach Get Node verwenden. Und von hier aus können wir sehen, wie wir nach unten gehen, um Info zu animieren. Mein Fall, und da drin können wir den Anime-Titeltext bekommen Und das können wir auf Anime setzen. Ich glaube, in unseren Ergebnissen heißt es Titel. Finde es ganz schnell heraus, ich teste einfach unsere Hauptszene und führe einen Such-Tack auf Titan durch, Suche Und es ist keine Funktion, die nicht existiert, sie wird auf Null gesetzt. Ich irre mich, Tippfehler, in Ordnung, also haben wir jetzt alle unsere Titel hier eingerichtet Jetzt ist die Frage, wo befinden sich diese Genres? Und was das angeht, weiß ich es hier ehrlich gesagt nicht aus dem Kopf. Aber was ich tun werde, ist JSON, Stringify und Animes zu drucken und unser erstes Ergebnis zu erhalten Ich möchte, dass das einfacher anzusehen ist. Also füge ich hier als zweites Ergebnis zur Pi-Zeichenfolge ein Leerzeichen hinzu, und ich führe das einfach noch einmal aus. Und das wird viel sauberer sein, wenn man sich das hier unten anschaut. Zusammenfassung der Statusrangliste. Wirklich, Genre ist nichts. Es hat keine. Das ist ziemlich interessant. Ja, es sieht so aus, als ob es einfach Genres genannt wird. So sehr wie der Titel. Wir holen uns unseren Knoten und holen uns die Texteigenschaft davon. Und dieses wurde Anime-Genres genannt. Und das entspricht Anime-Genres? Ja. In Ordnung. Also, wenn wir uns das jetzt ansehen, schauen wir uns das Tag auf Titan SERT an. Und nein. Ungültig? Ja. Oh, weil es dadurch ein Array bekommen hat. Okay, also wir müssen das in eine Zeichenfolge umwandeln. Lass uns einen Blick darauf werfen. Wenn wir also zu Suchhilfe und dann zu Array gehen, schauen wir uns das an? Lass uns sehen. Hat ein Array zwei beliebige Zeichenketten? Ich glaube nicht. Nein, das scheint es nicht. Also das ist in Ordnung. Wir können es einfach in eine Zeichenfolge umwandeln und STR angeben und es so mit einem Paar Klammern jedoch, Ich glaube jedoch, dass wir hier nicht das gewünschte Ergebnis erzielen werden Wenn wir also weitermachen und diese Suche abschließen, können Sie sehen, dass wir diese eckigen Klammern bekommen und das ist immer noch involviert. Also sollten wir stattdessen hier eine Schleife laufen lassen. Ich sage vier Genres in Anime-Genres. Sagen wir also, Text plus entspricht Genre und ich setze ein Komma mit dem Leerzeichen . Wissen Sie was? Ich denke, wir werden das separat machen, nur um Probleme zu vermeiden. Also werden wir hier zwei Zeilen haben. Also, wenn wir mehr Genres drin haben, fügen wir ein Komma mit dem Leerzeichen und dann fügen wir das Genre Auf diese Weise enden wir nicht mit einem Komma am Ende unserer Liste Jetzt fügen wir Genres nur noch hinzu , wenn wir Genres hinzufügen müssen Unser erstes Ergebnis wird also nicht nur ein Paar eckiger Klammern sein . Es wird leer sein. Oh, nun ja, in diesem Fall wird es komplett unser Standard-Ding sein, wird es komplett unser Standard-Ding sein aber wir können Action-Drama, preisgekröntes Action-Drama, Drum, Suspense, Action-Drum, Suspense sehen preisgekröntes Action-Drama, Drum, Suspense, Action-Drum, Suspense Eine Menge Action-Drama. Einige davon, da haben wir's. Abenteuer, Komödie, Fantasy. Unsere Standardsteuer muss da raus. Mir geht es also gut. Das können wir einfach hier klären , oder? Oder wir können es einfach hier klären. So oder so ist es völlig in Ordnung. Und ich glaube, ich werde meine gleich dort löschen. Kein Problem. Also, wenn wir es jetzt ausführen, sollten wir startklar sein. Und da wir zwar haben wir zwar das Com am Anfang, aber etwas schade. Sollte eine einfache Lösung sein. Ich sollte eine schnelle Lösung sein. Kein Problem. Sobald wir mit all dem fertig sind, sollte ich einfach Oops anrufen können Eigentlich ja, Punkttext. Ordnung. Also haben wir einfach das Präfix gekürzt Also haben wir außerhalb unserer Vorschleife, als wir fertig waren, unsere Texteigenschaft genommen und sie dem gleichgesetzt, was auch immer unser Text auf unserer Genre-Stele ist Und wir nennen Trim-Präfix und wir kürzen gerade das Kommazeichen In Ordnung. Also da hast du's. Das sollte das komplett beheben. Wenn wir also jetzt eine Suche starten, wir die Suche verschärfen. Los geht's Wir sehen, dass alles auftaucht, was Justin tun sollte. Es ist großartig. Jetzt müssen wir uns unser Bild ansehen. Wie bekommen wir dieses Bild für jedes unserer Dinge? Nun, wir werden hier noch ein HTTP benötigen. Und wir werden das Image Quest nennen. Und du hast es erraten, wir werden das Signal „Anfrage abgeschlossen“ mit unserem Hauptskript verbinden . Und ich werde das weiter nach oben verschieben. Und ich glaube, ich werde es hier zusammen mit dem Rest unserer Sachen aufstellen und die verteilen. In Ordnung. Also, wenn wir das bekommen, haben wir das, was wir hier haben würden: unsere Bilder hätten wir hier. Also müssten wir unsere Suche hier zusammenstellen. Wir bekommen eine Menge davon. Also in unserer Anime-Suchanfrage, über unserer For-Schleife, wollen wir es oben machen. Mal sehen. Lass es uns hier oben machen. Sobald wir unsere Anime-Daten haben , werden wir unsere Anfrage stellen. Sie werden Image, Quest Dot sagen. Suche. Und wir platzieren unsere URL, die Animes sein wird Und ich glaube, es heißt einfach Image Und um das zu überprüfen, können wir weitermachen und Gotcha ausdrucken, klar Und wir brauchen unseren JC Five-Fakt nicht, wir können ihn hier überprüfen bevor wir mit dem Drucken beginnen Ja, das Bild ist genau das, was wir brauchen. Perfekt. Siehst du, jetzt machen wir eine Suche. Oh, ungültig „ Bild auf Base-Array abrufen“. Das ist eine kleine Stadt, oder? Wie ist es auf einem Bs-Array? Lass uns sehen. In Ordnung, also machen wir weiter und fordern ein Anime-Bild an. Und dann in unserer Vorderschleife hier. Nein, hier unten, wo wir unsere Anfrage bekommen. können wir tun, wir können unsere Technologie entwickeln, unser Image neu speichern. Und wir können hier abgleichen , je nachdem, um welche Art von Erweiterung es sich handelt. Also werden wir EXT der Erweiterung zuordnen. Wird das unseren Fehler vorerst beseitigen ? Okay. Also müssen wir unsere Verlängerung herbringen , bevor wir etwas tun können. Also sagen wir XT, kurz bevor wir unser Ergebnis erzielen. EXT entspricht dem Bild von Anime. Noch eine Erweiterung. Und das wird uns das Ende der URL geben, es wird uns PNG, JPEG, Web-P, TGA geben JPEG, Web-P, TGA Und auf diese Weise können wir, wenn wir die Erweiterung zuordnen, EG abgleichen Wir können JPEG oder JPEG abgleichen. Wir könnten Web P abgleichen, oder wir könnten TGA abgleichen Und wie üblich stimmt nichts davon überein. Wir machen weiter, werfen einen Platzhalter ein und drucken einfach die Systeme aus , die sagen, ich kann kein Und innerhalb all dieser Dinge werden wir weitermachen. Wir machen image, load und wir laden aus dem Puffer, also laden wir E und G aus dem Puffer. Und das wird unser Körper sein. Das ist unser Körper, und wir machen dasselbe bei Ali, nur verschiedene Typen. Aus JPEG aus dem Puffer laden, P aus dem Puffer laden und TGA aus dem Puffer Ordnung. Also das wird uns unser Image geben. Wir können weitermachen und danach möchte ich Du machen. Ordnung. Also machen wir weiter und holen uns eine neue Variable, Textur Image, Textur neu. Wir machen Texture Dot Set Image. Und wir geben What do you Oh weiter, weil wir immer noch in der Batterie sind. Diese Schicht und die Tabulatortaste. Ja. Also setze das Bild, und was wir da einbauen werden , wird unser variables Bild sein. Und dann werden wir uns die Textur zurückgeben. Auf diese Weise können wir es an anderer Stelle verwenden, das heißt, wenn wir unsere Anfrage hier stellen, entspricht unser Vorschaubild unserem Rückgabewert aus unserer Anfrage Ich kann richtig buchstabieren. Im Moment müssen wir natürlich hier drin, bevor wir fertig sind, bevor wir fertig sind, unser Vorschaubild hierher bringen, das ist unser Anime-Bild Hol dir den Knoten, Anime. Sollen wir Manfo hinzufügen Nein. Tun wir nicht. In Ordnung. Also was für Zeug. Hier ist ein Anime-Bild , das mit API ist, glaube ich. Anime-Bild. Tun. Textur entspricht Textur Eigentlich ein Vorschaubild. Wie ist es hier? Ordnung, und es sieht so aus, als würde ich hier auf eine Lücke hinweisen, also müssen wir das zu Ende korrigieren Vielleicht kehre ich zur Bildtextur zurück . Und das nur, wenn die Pfeile zeigen, oder? Wenn Sie hier also diese Pfeile haben, die auf void zeigen und sagen, dass bei Ihrer HTTP-Anfrage für die Bildanforderung void zurückgegeben wird, müssen Sie dorthin gehen und es in Bildtextur ändern. Wir zeigen darauf, weil Sie hier abbiegen, das Ende. Und ich würde dir das jetzt zeigen, aber ich verbrauche tatsächlich alle meine Anfragen pro Tag. Also muss ich das pausieren und es entweder direkt am Ende dieses Videos werfen oder beim nächsten Mal darauf zurückkommen und dir zeigen, wie es funktioniert. Ich denke, das reicht vorerst da ich keine EPI-Anfragen mehr habe Ich habe mein Tageslimit erreicht. Also das reicht hier und wir sehen uns im nächsten Abschnitt. In Ordnung, ich musste also keinen kleinen Wechsler machen. Ich habe die Informationen, die wir oben in unserer Animate-Suchanfrage hatten, komplett verschoben oben in unserer Animate-Suchanfrage Ich habe diese, ich habe die drei Zeilen nach unten verschoben und in einer Wartezeit hinzugefügt Also weisen wir unsere Erweiterung direkt nach den vier Schleifen natürlich Animate und dann Image Dote Extension zu, damit wir wissen, um welche Art von Bild Wir erhalten dann unsere Bildanfrage und führen die URL-Anfrage und führen die URL-Anfrage Anime-Bild. Und wir sollten dort wahrscheinlich auch unsere Header weitergeben . Dann warten wir Und dieses Mal haben wir in der Vergangenheit immer einen Timer erstellt , um eine bestimmte Zeit zu warten. Dieses Mal verwenden wir ein „Warten“, um auf unser Signal „Bildanfrage, Anfrage abgeschlossen“ zu warten, also warten wir bis wir die Informationen erhalten haben, die wir benötigen. Und dann stellen wir die Textur unseres Anime-Bildes auf unsere variable Textur ein, und hier habe ich eine kleine Änderung vorgenommen. Ich habe die Textur hier so geändert, dass sie nur noch eine globale Variable ist. Nun, global in der Form , dass wir in unserem Drehbuch ganz oben stehen. Und wenn ich nach unten scrolle, wo ist es hier, habe ich weitergemacht und wir machen hier dasselbe. Wir geben einfach keine Textur zurück. Ich habe nur Textur als externe Variable erstellt, was bedeutet, dass ich hier wieder reinkommen und die fehlende Textur wieder in den Bereich Void einfügen musste . Der Grund, warum ich das gemacht habe, ist, dass es, aus welchem Grund auch immer, als Ganzzahl und nicht als Daten zurückgegeben wurde . Also habe ich es einfach so geändert, dass wir die Daten hier, hier setzen , aber die Variable existiert außerhalb dieser Funktion. Deshalb müssen wir nicht zurückkehren. Und auch um Probleme zu vermeiden, habe ich wirklich Probleme, aber API-Limits hier. Ich habe weitergemacht und meine Größe auf drei reduziert, sodass ich nur drei Ergebnisse erhalte , weil wir für jedes Ergebnis, das wir erhalten, einen API-Aufruf tätigen, oder? Oder nicht wirklich ein API-Aufruf, aber wir machen einen UR-Aufruf, weshalb wir die Header hier nicht benötigen . Was denke ich Nicht für das Bild? Also, wenn du das höher halten willst, könntest du. Es wird überhaupt nicht weh tun. Es sind nur drei , das wird viel schneller sein. Wenn wir zur Standardeinstellung kommen, die 100 ist, und das öffnen, ist das schon gefangen und wir sagen schon Angriff auf Titan, das ehemalige SERT. Das sollten wir uns hier ansehen. Und wir sehen, wir haben unseren Namen, wir haben unseren Anime und wir haben all unsere Genres darunter. Richtig? Also da hast du's. Bla bla, bla, Sam, und wir SERT, Bum. Wir sehen, dass alles einwandfrei funktioniert. Und wenn du willst, wenn du 1.000 machen würdest, so wie ich es da oben gemacht habe, würde es nur ein bisschen länger dauern. Ich weiß nicht, warum ich dachte, ich würde meine zusätzlichen API-Aufrufe dort verwenden , aber ich glaube, ein leichter Gedankenverlust. Wir können reinkommen und Sie können sehen, dass wir irgendwohin kommen , von dem ich glaube, dass die High School noch mehr Ergebnisse gebracht hat, oder? Wir kommen rein, gehen so und du kannst sehen, sieh dir die Bar an. einfach weiter so winzig, immer noch, immer weiter, weil wir all diese Bilder loswerden müssen und es hat endlich aufgehört. Und Sie können sehen, dass wir alle Bilder haben, all diese. Nichts fehlt. Aber da hast du's. Also das funktioniert. Wir mussten unsere Texturvariable einfach so verschieben , dass sie ganz oben in unserem Skript steht, anstatt sie zurückzugeben. Und ich kann diese auskommentieren, wir können jetzt unsere Genres nehmen. Und im Grunde haben wir unsere Erweiterung und Bildanfrage nach unten verschoben und Bildanfrage nach unten Das sind die einzigen Änderungen , die ich dort vorgenommen habe, oder? Bevor ich anfange und zu viel hinzufüge, weil ich denke das einfach zum vorherigen Video hinzufügen werde. In Ordnung, bitteschön. Also funktioniert es einwandfrei Und als Nächstes schauen wir uns an, wie wir unsere Seite mit der Zusammenfassung der Geschichte und unseren anderen Informationen wie dem externen Link und all dem öffnen unsere Seite mit der Zusammenfassung der Geschichte und unseren anderen Informationen wie dem externen Link und all dem 72. AnimePage: Ordnung. Lassen Sie uns also weitermachen und unser Panel zeigen , das sich mit den Details für unsere Sendung öffnet, wie zum Beispiel unsere Zusammenfassung, und wir haben eine klare Sicht auf unser Vorschaubild Und wenn wir wollen, können wir auch den Titel und die Tags dort einfügen , wenn wir wollen Jetzt bin ich zu meinen Ergebnissen übergegangen und habe nur eine Schaltfläche mit der Aufschrift „Ansicht“ hinzugefügt. Nun, es gibt eine Vielzahl von Möglichkeiten, wie Sie das tun können, aber ich habe nur eine, auf der „ Ansicht“ steht. Und in meiner Hauptszene habe ich ein Fenster hinzugefügt. Ich habe nur einen Text direkt drin. Und beachten Sie, dass Sie das Fenster selbst nicht bewegen können, weil Sie es nicht in die Hand nehmen Sie müssen also in den Inspektor gehen und zum Layout gehen und transformieren Da ist es am Fenster und an der Position. Und dann, wenn du die Dinge im Inneren bewegen willst , die Kinder davon sind, wie mein Vorschaubild hier, das nur eine Textur ist, oder? Ich muss zum Layout Transform gehen und hier mit meinen Zahlen spielen , um die Dinge zu verschieben Zum Beispiel die Position hier, wenn ich sie verschieben möchte, muss ich so vorgehen, um sie zu platzieren. Aber ich denke bei meinem Vorschaubild an die linke Seite Ich werde auch ein Label hinzufügen, und das wird mein Ende eines Titels sein Ich werde hier ein paar Wörter eintragen, damit ich mir ein Bild davon machen kann , wo dieses Etikett platziert ist. Ich gehe zum Layout Transform und suche mir einen guten Platz, um es zu positionieren, sagen wir, was ist, wenn wir über 300 gehen? Das ist vielleicht etwas zu übertrieben, 203 20. Oh, das stimmt. Wir sind in der Mitte. Ich glaube schon. Lass uns sehen. Ich habe das auf 200 gesetzt, was eigentlich weit oben wäre. Das ist interessant. Also würde ich es vielleicht etwas mehr untermauern wollen, 50 fallen lassen. Also gut, ich nehme 160 und reduziere es vielleicht um zehn. Also kann ich es da vom Rand wegbekommen. Also das wird unser Titel sein. Und ich werde weitermachen und das nur mit Anime-Titelauswahl duplizieren . Nennen wir das unsere Anime-Tags, richtig Und hier werden wir Drama, Action, Fantasy usw. haben . Das wird also niedrig sein. Unser Titel. Also komm runter, layouten, transformieren und wir senken RY auf 30, 30 könnte ungefähr richtig sein. Vielleicht 40. Nur um es ein bisschen zu klären. Und jetzt brauchen wir etwas für den Text. Also, was wollen wir da reintun? Wir könnten das Etikett etwas wortreich machen. Wir könnten ein Rich-Text-Label machen. Nun, ich denke, das werden wir tun. Ich hatte ein schriftliches Textetikett, genau wie Sie es hier auf der Seite sehen Der Nachteil ist, dass wir nicht wirklich etwas sehen können. Ich mache einfach weiter und füge hier einen Haufen Text ein , damit wir eine gute Vorstellung von unserer Größe bekommen , um dort einfach ein bisschen zu spammen, unserem Layout zu gehen und zu transformieren Größe. Das sind 100. Ich denke, 300 sind dort wahrscheinlich gut. Vielleicht 400 dort. Und schauen wir uns diese Position an. Und wo genau werde ich das haben wollen? Wollen wir es direkt unten haben. Es könnte die beste Option dafür sein. In welchem Fall, was sind die X für diese? 179. Hast du irgendwelche Ups Das ist die Größe. Eine Position 160. Und dann reduziere ich es um etwa 100, und das wird unsere Geschichte sein. Wo eine Zusammenfassung hingehört. Also sagen wir Anime-Synopsis Also gut, so wird mein Fenster aussehen. Ich muss das vielleicht anpassen , nachdem ich gesehen habe das Vorschaubild eingefügt Aber vorerst werde ich damit zufrieden sein. Und ich werde zu meinem Anime-Ergebnis zurückkehren. Ich werde meinem Anime-Ergebnis ein Skript hinzufügen und das gedrückte Signal verbinden. Ich werde das hier wieder verbinden. Trennen Sie die Verbindung , schließen Sie das einfach erneut an. In Ordnung. Und wir werden oben ein paar benutzerdefinierte Dinge benötigen. Also werden wir hier ein benutzerdefiniertes Signal haben und es wird Details anzeigen. Und wir werden hier eine benutzerdefinierte Variable namens synopsis haben , die einfach eine Zeichenfolge sein wird Und wir werden hier unsere fertige Funktion haben. Und wenn dieses Objekt in unsere Szene geladen wird, werden wir es mit unserem benutzerdefinierten Signal mit unserem Hauptknoten hier verbinden unserem benutzerdefinierten Signal mit unserem , auf dem das Skript steht. Also machen wir Self Dot Connect und zeigen Details an, die aufrufbar sind, und denken daran, dass das erste Argument ist, womit Sie es verbinden möchten, also wollen wir drei Eltern nach oben gehen, sagen Get Node, und Punkt Punkt Punkt Punkt Punkt Punkt Punkt Punkt Punkt Punkt Punkt Schrägstrich machen. Das bedeutet für uns drei Eltern. Und das zweite Argument wird der Name der Funktion sein. Also werde ich es Show Window nennen. Und ich platziere das auf der Innenseite des G-Knotens statt auf der Außenseite. Und los geht's. Und ich mache weiter und mache diese Funktion, bevor ich sie in meinem Hauptskript-Show-Fenster vergesse. Wenn jetzt unsere Taste gedrückt wird, senden wir das Signal aus, unser benutzerdefiniertes Signal aus und zeigen Details an. Und wir werden ein Komma setzen , weil wir damit einige zusätzliche Details oder zusätzliche Informationen übergeben einige zusätzliche Details oder zusätzliche werden, richtig Also werden wir eine Textur übergeben, also werde ich eine neue Variablensortierung erstellen Also Thumbnail, das wird unserer Anime-Bildtextur entsprechen unserer Anime-Bildtextur Das wird also das Miniaturbild sein für dieses spezielle Objekt ist Und wir nehmen diese Textur und schicken sie mit unseren Signalen rüber Wir werden diese Daten rüberschicken, und wir werden auch unsere Zusammenfassung schicken müssen Unser Titel und unsere Genres. Das sind eine Menge Informationen hier. Und das werden wir auch tun müssen. Also lass uns sehen. Lassen Sie uns hier unten sehen, dass unser Titel gleich ist. Und das bekommen wir vom Anime-Titel hier. Anime-Titel. Und das sind alles Dinge, für die wir bereits Text festgelegt haben. Und es wird uns sagen , dass Genres nicht definiert sind. Genres entsprechen Anime-Genre-Text. Und die Zusammenfassung ist bereits oben definiert. Fantastisch. Ordnung. Also schicken wir jetzt all unsere Informationen rüber. Jetzt kopiere ich einfach all diese Argumente, damit ich sie in die richtige Reihenfolge bringe. Gehe zurück zu meinem Hauptskript, meiner Funktion „Fenster anzeigen“, und ich füge meine Argumente ein. Also, was wir damit machen werden, ist, naja, zuerst müssen wir tatsächlich unser Fenster zeigen. Also werde ich mein Fenster da unten platzieren und Pop Up Centered aufrufen, und Pop Up Centered aufrufen sodass es genau in der Mitte des Bildschirms erscheint. Dann hole ich mir mein Vorschaubild hierher, die Textur, die im Fenster zerstört wurde, und setze ihre Textur auf Vorschaubild, die Daten, die wir Wir müssen den Anime-Titel festlegen. Anime-Titeltext entspricht Titel, Anime-Bücher, Tags, Text entspricht Genres, und dann brauchen wir eine Zusammenfassung Die Anime-Synopse tun es. Text. Fügen Sie Text mit einer Rich-Text-Bezeichnung hinzu, fügen Sie Text und Zusammenfassung Im Moment haben wir noch keine Zusammenfassung unserer Objekte übergeben keine Zusammenfassung Also müssen wir einen Blick darauf werfen und sehen, wie das strukturiert ist Also werde ich meine Stringify-JCN-Datei hier auskommentieren. Auf diese Weise kann ich mir den Namen der Zusammenfassung ansehen den Namen der Zusammenfassung Ich bin mir ziemlich sicher, dass es nur Zusammenfassung heißt , aber ich möchte Ich werde einfach weitermachen und das ausführen und eine Suche durchführen Diese greifen wieder Titan an. Und ja, ja, ja, das ist in Ordnung. Das muss nicht da sein. Das solltet ihr nicht da drin haben. Das habe ich vorhin vergessen zu löschen. Aber wir haben das Ergebnis, und das ist die Hauptsache, nach der ich gesucht habe. Und ja, es heißt einfach Synops. Ordnung. Also lass uns sehen. Wenn wir einfügen, machen wir unseren Genres einen Text in der Erweiterung und dem Vorschaubild Wir legen die Textur fest, wir legen den Text fest. Und kurz bevor wir es hinzufügen, fügen wir unser Objekt hinzu, richtig, unsere Ergebnisinstanz, wir werden weitermachen und müssen die Zusammenfassung festlegen Also mache ich Synopsis. Klar habe ich das richtig buchstabiert. Ja, ja, alle Kleinbuchstaben entsprechen einer Anime-Zusammenfassung. In Ordnung. Ich werde weitermachen und das noch einmal überprüfen. Sag Angriff auf Titan, suche. Wird durchlaufen. Wir haben keine Probleme. Fantastisch. Jetzt ist unser Blick fast überall, was ein bisschen bedauerlich ist. Aber ich bin mir sicher, dass wir das beheben können, indem die Größe manuell einstellen. Aber ich werde weitermachen und einfach auf Ansicht klicken, also sollten wir dieses Vorschaubild bekommen Nun, lass uns eins nehmen, das zwei Tags und Genres hat zwei Tags und Genres Und wie Sie sehen können, muss ich alles nach rechts verschieben. Und dafür sind diese Tests da, oder? Schauen wir uns also Title Inspector an, also lasse ich es einfach hier laufen. Und lassen Sie uns versuchen, 2025250 sieht besser aus. Und ich mache dasselbe mit unseren Tags 250 und unserer Zusammenfassung 250, und unserer Zusammenfassung Also wurde alles umgestellt. Und mal sehen, wir können bei Bedarf durch unsere Zusammenfassung nach unten scrollen Bedarf durch unsere Zusammenfassung nach unten scrollen Ordnung. Das Reg. Wir haben das eingerichtet. können unser Fenster nicht wirklich schließen, also müssen wir das hier für uns selbst reparieren. Also machen wir weiter und schließen das. Und dafür müssen wir zu unserem Fenster gehen und das angeforderte Signal schließen. Wir stellen eine Verbindung zu unserem Hauptanschluss her, und ich werde einfach weitermachen und das nach oben verschieben. Geh. Wenn wir also eine Anfrage zum Schließen bekommen , dann immer, wenn wir auf das X in der Ecke klicken. Alles, was wir tun werden, ist, das Fenster zu verstecken. Also holen wir uns unser Fenster und rufen einfach Hide an. So einfach ist das. Und lass uns sehen. Was können wir hier mit unserer Box machen? Nun, wir könnten sie breiter machen. Was ist mit unserem Anime-Titel? Ich glaube, wir können es einfach so einstellen, dass es klickt. Ordnung. Nun, was sind diese Auto-Wrap-Modi konkret? Da es sich dabei nicht um Herb Force handelt, wird der Text, sagen wir, willkürlich innerhalb des die Nase begrenzenden Rechtecks umgebrochen, sodass Bruchlinien möglich sind. Ja. Okay, das klingt gut. Sanftes Brechen, nein. In Ordnung, also werde ich Word Smart verwenden Oh. Vielleicht werden wir das nicht benutzen. Das hat es da komplett kaputt gemacht. Willkürlich. Nein. Ein Wort könnte mit einem Wort einhergehen , aber das passt einfach nicht hin. Also, richtig, was ich tun werde, ist, einfach auf Cliptext zu klicken. Ich mag es nicht, dass das ein bisschen ging . Diese Größe ging nur an eins. bist du nicht. Also, was können wir hier tun? Also, was ich tun werde, um das Problem zu beheben, ich möchte nur, dass sich meine Schaltfläche hier in meiner animierten Infobox befindet Auf diese Weise entspricht es nur unserem Titelgenre und dann unserem Button Und ich habe meinen Button auf Ich bin kein Button gesetzt. Ich habe meine Anime-Infobox hier aufgestellt. Ich stelle die Horizontale so ein, dass sie gefüllt ist, und drehe sie, um sie zu erweitern. Und jetzt werde ich den Anime-Titel so einstellen, dass die horizontale Ausrichtung in Mitte und die vertikale Mitte erfolgt. Und ich werde das Gleiche mit den Genres hier machen , in der Mitte. Und für den Button-Text sollte der Button-Text zentriert sein, obwohl das gut sein sollte. Also lass uns weitermachen und das öffnen, um zu sehen, wie es jetzt aussieht. Sagen wir, Angriff auf Piton in Ordnung, also los geht's. Es erstreckt sich also über den ganzen Weg. Oh, der ist ein bisschen zu weit gegangen. Aber das könnte ein Problem für mich sein. Das könnte etwas arrangieren, rumalbern. Das könnte es dort gewesen sein. Versuchen wir es noch einmal und stellen sicher, dass das nur etwas war , das ich in Okay gelassen habe, also dass es sich einfach über den ganzen Weg erstreckt weil wir einen Titel oder so etwas haben. Ordnung. Nun, du siehst, es geht nur darum, jetzt mit diesem Zeug herumzuspielen und etwas zu bekommen, das dir gefällt. Also vielleicht komme ich einfach zurück zu meinen Anime-Informationen und vielleicht schalte ich das einfach aus. Vielleicht schalte ich Phil einfach aus. Ich gehe einfach zurück und sehe es mir an. Siehst du, das sieht jetzt gut aus. Auch hier haben unsere Buttons einfach nicht etwa die gleiche Größe, es geht also nur darum , damit herumzuspielen und danach etwas zu finden , das Ihnen visuell gefällt. Aber das Wichtigste ist, wir können runterkommen und uns eins aussuchen, bumm, und los geht's. Leider haben wir in der SEC einen ohne Tags ausgewählt. Obwohl wir bereits einen ausgewählt haben, können wir einen anderen auswählen, und das hat keinerlei Auswirkungen. Wir erhalten immer noch die Titel-Tags, und ich kann den gesamten Standardtext dort sehen. Wir müssen das klären. Also lass uns sehen. Es wird in unserem Hauptskript stehen. Lass uns sehen, bevor wir den Text setzen. Wo ist es? Nun, wenn ich das aus Versehen lösche, haben wir dann immer noch? Das ist die Frage. Lass uns sehen. Zusammenfassung, lösche das alles Und mal sehen, ob das funktioniert, oder ob wir noch eine alte Zusammenfassung da drin haben Richtig und lassen Sie uns wieder damit weitermachen. Lustig, ich habe es nie wirklich gesehen. Also lass uns sehen. An seinem ersten Tag in der Mittelschule. An seinem ersten Juniortag. Okay, also ja, wir haben immer noch alten Text drin. Also müssen wir sicherstellen, dass wir das löschen , wenn wir die Titelzusammenfassung da drüben als Text setzen Also bevor wir das tun, lassen Sie uns weitermachen und unsere Anime-Zusammenfassung machen Ein großes Textetikett hat eine klare Funktion. Und das sollte ich lösen. Und jetzt schauen wir uns das an. am ersten Tag der Mittelschule, zweiter, Gabby Braun und Falko Der nächste, Aaron Yeager. Wahrscheinlich hat er das falsch ausgesprochen. Vor Jahrhunderten kann man freundlich abschlachten. Lass dich nicht von den Titanen bedrohen. Da hast du's. Also haben wir das jetzt komplett aktualisiert und es ist der richtige Text drin. In Ordnung. Es liegt also an dir, wie du das visuell aussehen lassen willst. Aber das ist es, womit wir uns befassen. So machen wir es und so haben wir uns entschieden. Alternativ, wenn du willst. Ich zeige Ihnen einen alternativen Weg, wie wir das machen könnten, wenn Sie dort keinen Knopf verwenden möchten. Und um das beizubehalten, anstatt hier ein Textur-Wrack zu verwenden, könnten wir reinkommen und ich werde einfach mit der rechten Maustaste klicken und auf Typ ändern klicken und das in eine Texturschaltfläche ändern Und dann kann ich das für normal einfach reinziehen. Und jetzt haben wir diesen Knopf. Mal sehen, ob wir irgendeinen Text anpassen müssen. Ich glaube nicht, dass wir das tun würden, aber tatsächlich könnten wir den Text, wir müssten vielleicht spezifizieren , dass er normal Lass uns dieses Mal mit Narrato gehen. Und ja, okay. Also das würde es kaputt machen. Also müssten wir ausdrücklich spezifizieren, dass das normal ist. Ich werde es mir hier ansehen. Anime-Informationen. Das. Und es wird Textur, Unterstrich, normal sein. Okay. Also das wäre nur ein kleines Alter. Also, wo wir unsere animierte Bildtextur einstellen, machen wir Punkttextur, Unterstrich, normal, so Und das sollte nur ein einziger Zeilenwechsel sein. Und das funktioniert richtig, oder? Wir haben unsere Vorschaubilder da drin und es sah genauso aus Und da das jetzt eine Schaltfläche ist, die unsere Textur hat, könnten wir sie so einrichten, dass, wenn wir darauf klicken, anstatt auf die Schaltfläche „Ansicht“ zu klicken, richtig? So können wir das animierte Bild dort aufnehmen. Ich werde dieselbe Kopie kopieren. Also klicke ich bei unserem animierten Bild auf Drücken und stelle dann sicher , dass sie dieselbe Funktion aufrufen Und jetzt wirst du sehen, wie wir reingehen? Ich kann auf das Vorschaubild klicken, unser Fenster aufrufen und normal unterstreichen Veränderung. Aber das sind zwei Texturlinien, die wir ändern mussten. Wenn du diesen Weg gehen wolltest, den Button, dann können wir darauf klicken, los geht's. Und das ist vielleicht ein bisschen natürlicher oder ein bisschen besser für dich, und dann könnt ihr diesen Button einfach zusammen komplett entfernen. Also werde ich es einfach vor dem Blickfeld verstecken , damit du es irgendwie so sehen kannst. Und dann kannst du es dort haben. Also da hast du's. So können Sie es machen unsere Knöpfe da drin haben. Und wenn Sie das dann loswerden möchten, machen Sie einfach das eigentliche Vorschaubild dafür anklickbar, um unser Fenster zu öffnen Das ist alles was du tun musst. Schließen Sie ein Drucksignal an, ändern Sie dies von einer Textur-Rec - in eine Textur-Schaltfläche und ändern Sie dann unsere gesamte animierte Bildpunkttextur animierte Bildpunkttextur mit normalem Unterstrich Und da hast du es. Also, wir haben das alles geklärt, ich werde nur kommentieren dass es hier unten wieder gedruckt wird. Wieder einmal brauchen wir es nicht mehr. Los geht's. Wir können jetzt also nach Animes suchen, eine Zusammenfassung erhalten, die Tags sehen, Titel abrufen und wir können durch eine große alte Liste mit 1.000 oder 2000 oder so vielen, wie wir wollen, blättern eine große alte Liste mit 1.000 oder 2000 oder so vielen, wie wir wollen Und es wird ein API-Aufruf pro Suche sein. Ähm, eigentlich werden es anfangs zwei APIs sein, weil wir dort unsere Genres hinzufügen müssen. Ich werde das einfach auskommentieren. Stell das wieder da rein Ihr hättet das nicht kommentieren lassen sollen. Ich habe das nur ausgeschaltet, um einige API-Aufrufe zu sparen , während ich einige Dinge getestet habe, oder? Jetzt können wir reinkommen und quasi übernatürliche und eingefrorene Suchen durchführen übernatürliche und eingefrorene Suchen Nicht eingefroren. Es ist eiskalt, wonach ich gesucht habe. Es ist eiskalt. Suche nichts nach Übernatürlichem. Wie wär's mit Fantasy? Interessant. Also bekommen wir dort nichts. Wenn wir zu No Genre wechseln, weht da Brise. Science-Fiction. Das könnte der gewesen sein, nach dem ich gesucht habe Hat Pi gehandelt. Brise Vibration Ich würde. Also war ich einfach völlig daneben nur um sicherzugehen, dass das funktioniert, oder? Wir gehen zur Aktionssuche. Und da hast du es. Wir haben nur eine Aktion. Also, wenn wir all die haben, wenn wir zum Drama gehen, werden wir noch weniger haben. Wir können sehen, dass wir es immer weiter herausfiltern können , wenn wir die Genres verwenden wollen. Wir müssen eine Suche eingeben, aber die Genres sind versteigert. Ordnung, also los geht's. Da hast du es Wir haben unsere kleinen Pop-Ups. Wir haben unsere Informationen. Wir haben unsere Suchanfragen. Also da hast du's. Sie haben jetzt eine Desktop-Anwendung , mit der Sie vielleicht Samatam finden können Vielleicht finden Sie etwas, das Sie sich ansehen können, wenn Ihnen langweilig wird. Und ich möchte Sie ermutigen , weitere Funktionen hinzuzufügen. Fügen Sie vielleicht eine Favoritenliste hinzu, wenn Sie möchten, oder eine Beobachtungsliste oder so. Auf diese Weise haben Sie etwas , das Sie im Auge behalten können. Ordnung. Das war's für diesen Abschnitt Und wir werden weitermachen und zu unserer nächsten Woche übergehen , in der wir über einige der fortgeschritteneren Anpassungen sprechen werden, damit Ihre Programme wirklich einzigartiger und professioneller aussehen einzigartiger und professioneller aussehen 73. Schriftarten: Okay, eines der Dinge, die wir tun können, um unsere Anwendung oder Spiele von anderen abzuheben und einzigartiger zu machen oder Spiele von anderen abzuheben und oder professioneller auszusehen Nun, eines dieser Dinge sind Schriften. Heutzutage können Schriften oft überprüft werden, vor allem von neueren Entwicklern, aber Schriften können den gesamten Bereich Ihres Spiels oder Ihrer Software verändern . Und es ist wie wenn man eine Schrift für ein Restaurant hat, oder? Wenn Sie eine Schrift haben , die nur sagen ein bisschen nach rechts geneigt ist und ihre Zeichen, dann haben wir den Eindruck, ob wir uns dessen bewusst sind oder nicht dass es etwas Dickes ist, oder? Wir haben das Gefühl, dass sich diese Buchstaben schnell bewegen , wenn sie sich so nach vorne beugen, vor allem, wenn sie sich nach rechts beugen Mit diesem Eindruck können wir intern davon ausgehen, können wir intern dass dies ein Fastfood-Restaurant ist Und wir haben all das, ohne den Namen des Ortes zu kennen oder zu wissen, was für ein Ort er ist, wie groß er ist, welche Art von Essen dort serviert wird. Wir wissen nichts, außer dass die Buchstaben auf dem Schild geneigt sind So mächtig können Schriften sein. Denk darüber nach, ob du Say Dead spielen würdest, also Oh, nicht Dead Souls. Dunkle Seelen. Dead Souls ist eine ganz andere Sache, aber stell dir vor, du spielst Dark Souls und wir hätten diese sprudelnde Schrift Die gibt es überall. Es würde nicht passen , weil es nicht die gleiche Atmosphäre hätte Stimmt? Ich würde mich fehl am Platz fühlen Es würde dich vom Gefühl des Spiels ablenken, oder es würde die oder es würde Ernsthaftigkeit des Spiels und die ernsten Töne , die es ausstrahlt, beeinträchtigen Schriften können also sehr mächtig sein, wenn sie verwendet werden. Es ist also wichtig, diese Dinge nicht zu übersehen. Also werde ich zu unseren Anime-Ergebnissen übergehen und hier unseren Titel verwenden, und hier unseren Titel verwenden damit wir uns einen guten Überblick darüber verschaffen können Jetzt, ohne irgendwelche wirklichen Anpassungen zu berühren, gehe ich einfach rein und gehe zum Themoide-Bereich im Themoide-Bereich im Inspektor, wobei mein Und Sie können bereits sehen, dass wir Farben für die Schrift, den Schatten und den Umriss haben Schatten und den Umriss Wenn ich also die Schrift auf Weiß setze, stelle ich den Schatten vielleicht etwas transparenter ein. Okay? Wir haben hier was am Laufen. Wir können zum nächsten Abschnitt übergehen , das sind Konstanten. Wir können dem Schatten einen Offset geben. Okay. Jetzt haben wir also Text, der von der Seite verschwindet. Wir können dem eine Gliederungsgröße geben , die unseren Text wirklich viel sichtbarer machen kann. Schatten auf den Umriss. Das könnten wir auch tun. Das wird unsere Schatten da unten wirklich aufwerten. Und wir könnten einen Zeilenabstand hinzufügen. Wir können die Schriftgrößen reduzieren und wir könnten, lassen Sie uns auf 23 erhöhen. Und in diesem Fall sind das alle Optionen, die wir hier wirklich haben, aber lassen Sie uns weitermachen und den Offset hier etwas mehr erhöhen , und vielleicht ändern wir den Schatten etwas violetter ist. Okay, damit wir mehr von diesen coolen Tönen drin haben können Und jetzt lass uns weitermachen und wenn wir unsere Hauptszene drehen, werde ich weitermachen Wir werden unseren üblichen Angriff auf HTONFMERsearch durchführen. Und Sie können bereits sehen, dass, obwohl wir nicht viel getan haben, das bloße Hinzufügen dieser Gliederung zu diesem Standardtext schon dazu geführt hat, dass dieser Text hervorsticht und Ihnen noch schon dazu geführt hat, dass dieser Text hervorsticht mehr auffällt Und wir haben kaum etwas getan. So können Sie sehen, wie wichtig selbst kleine Änderungen an Ihren Schriften sein können Jetzt bleiben Sie natürlich bei diesen Standardschriften. Weil wir tatsächlich einige benutzerdefinierte Schriftarten insgesamt verwenden können. Mach einfach weiter und schalte all diese wieder aus. Wenn wir in den Bereich Schriftarten gehen, können wir hier eine benutzerdefinierte Schriftart verwenden. Möchte dort nicht abschalten. Das ist in Ordnung. Ich öffne hier einfach das Drop-down-Menü und wähle eine neue Schriftdatei aus. Ordnung. Und ich werde das öffnen, ohne dass die Schrift in der Vorschau angezeigt werden kann. Hoppla. In Ordnung Es erscheint in vier Punkten. Wir müssen keine Optionen auswählen, wie wir es in Three Point X getan haben. Deshalb habe ich hier gerade eine Schriftdatei heruntergeladen. Sie ist im TTF-Format, und ich werde sie einfach in den Schriftbereich ziehen, und Sie können sehen, dass wir einfach so eine neue Schrift haben Nun, wir haben dort nicht viele Optionen eingestellt, aber wie Sie sehen können, können wir immer noch hier reinkommen und unsere Seiten und alles, was sich hier draußen befindet, optimieren und immer noch die gleichen Steuerelemente haben, die wir zuvor hatten Und wie ich schon sagte, ich gebe nur einen Überblick. Das. Selbst wenn Sie eine Gliederung erstellen, wird das wirklich auffallen. Ich füge nur diesen einen kleinen Faktor hinzu. Ordnung. Nun, in Goto Four scheint es so, als könnten wir komplette Varianten hinzufügen Also können wir unsere Basisanleihe haben. Sie können für alle Fälle einige Ersatzanleihen einrichten. Und Sie können verschiedene Merkmale einstellen: Futter, Figuren im alten Stil, stilistische Sets und Alternativen Sie können also wirklich hierher kommen und damit beginnen Schriftarten ganz spezifisch anzupassen Sie können also fast so detailliert vorgehen, wie Sie möchten. Aber was toll ist, ist die Tatsache, dass wir die Schriftgröße kontrollieren können, auch wenn wir im Moment keine benutzerdefinierte Schrift in Bind haben . Dadurch haben wir zumindest etwas mehr Kontrolle darüber, wie sie im Allgemeinen aussehen soll, und wir können uns später immer noch für eine Schriftart entscheiden , was wiederum hervorragend für das Prototyping ist, sodass wir schnell etwas herausbekommen können Aber da haben wir's. Wenn wir benutzerdefinierte Schriftarten verwenden können und du siehst, ob ich das zurückgesetzt habe, Oh, die Schrift ist verschwunden. Los geht's. Da siehst du. Sie können völlig neue Schriftarten haben, indem einfach unsere Datei hineinziehen. Sie verwendet TTF, und ich glaube, Sie können sie auch als OTF-Datei verwenden Aber es ist so einfach, die Datei in den Schriftbereich der Thmovides zu ziehen Schriftbereich der Thmovides Und wir können sehen, ob wir immer wieder weitermachen, wir machen weiter und machen das nochmal ganz schnell und sagen dann „Suche verschärfen sagen Und da kannst du dir das ansehen. Wunderschön. Nun, das ist offensichtlich ein bisschen zu groß für einige unserer Titel hier, aber Sie verstehen schon, was ich meine. Jetzt müsstest du reinkommen und jeden einzelnen Teil deiner Benutzeroberfläche ändern , und das kann extrem nervig werden oder extrem lange dauern, bis das passiert. Und es gibt einen schnellen, es gäbe einen schnelleren Weg, um so etwas zu tun. Und das würde uns zum nächsten Video führen, in dem wir anfangen, über Themen zu sprechen. H. 74. Benutzerdefinierte Motive: Ordnung. Nun, ich habe dir gesagt, , deine Schrift auf alles anzuwenden, dass es einen einfacheren Weg geben würde, deine Schrift auf alles anzuwenden, und dieser einfachere Weg wird eher durch das sein, was wir Schriften oder Themes nennen Also können wir reinkommen und ich werde hier einfach weiterzoomen, und ein Thema wird für die Knoten gelten , auf denen es sich befindet, sowie für alles , was ein Kind davon hat. Wenn wir es also hier auf unseren Hauptknoten kleben, dann wird auf alles in unserer Szene dieses Thema angewendet. So würden Sie also ein dunkles und ein helles Thema machen . Für zwei Beispiele würden Sie einfach die Themendatei austauschen und alles wird sich ändern. Wenn wir also einfach mit unserem ausgewählten Hauptknoten hierher kommen , der unser Kontrollknoten für unsere Szene ist, gehen wir zu unserem Inspektor, kommen zum Thema und gehen Sie einfach zum Drop-down-Menü und wählen Sie ein neues Thema aus. Und du wirst unten feststellen, wir jetzt diesen Theme-Tab haben, und wenn wir ihn öffnen, können wir alle unsere Optionen sehen. Und das sind unsere Vorschauen für all unsere Buttons und Slider, wie ihr hier seht Wir können also herumspielen und im Grunde sehen, wie alles aussehen wird, auch wenn wir keine Dinge in der Szene haben In Ordnung, diese Vorschau ist also fantastisch für uns hier. Jetzt haben wir ein neues Thema und wir können unsere Schrift einfügen Ich nehme einfach unsere Schrift, und wie Sie auf der rechten Seite sehen, haben wir hier eine Standardschrift. Wenn ich sie einfach hineinziehe, teilt sich jetzt alles diese Schrift so schnell. Alles teilt sich. Was natürlich fantastisch ist. Aber was ist mit allem anderen, richtig? Was ist, wenn wir die Dinge einzigartiger und besonderer aussehen lassen wollen? Nun, wir können weitermachen und uns auf den Weg machen, um Artikel zu verwalten. Und damit eröffnet sich eine neue Szene, die ich hoffentlich hier festhalten werde. Das wurde nicht aufgenommen. Einen Moment. Versuchen Sie es mit Windows 7. Da haben wir's. Ordnung, wir haben unseren Manager hier und ich gehe einfach zu Artikel importieren. Und im Editor-Theme klicke ich einfach unten auf Alles auswählen . Import ausgewählt. Und da haben wir's. Sobald das alles erledigt ist, kann ich hier weitermachen und wieder raus. Und jetzt habe ich alle meine Sachen. Jetzt kann ich alles vom Inspektor aus kontrollieren. Sie können all die verschiedenen Dinge sehen, alles von der Drehbox, Fortschrittsbalken, all meinen Popups, Bedienfeldern, der Optionsschaltfläche, den Menüschaltflächen, Beschriftungen, den Zeilenänderungen bis hin zu meinen Schiebereglern, Containern und Tonnen und Tonnen von Dingen, für die wir unsere Checkbox nicht verwendet haben Alles kann hier auf der rechten Seite geändert werden hier auf der rechten Seite Also können wir hier auf die Farben unserer Knöpfe eingehen, oder? Und wir sehen, dass eine Schriftfarbe weiß ist, und Sie können sehen, dass sie sich sowohl in unserer Szene als auch in unserer Vorschau zu Weiß geändert hat . Wir können Schriftfokus oder Schriftfarbe sagen, richtig? Vielleicht ist es eher rot. Also so etwas in der Art. Fantastisch. Wenn ich jetzt mit der Maus über die Schaltfläche fahre, können Sie sehen, dass wir jetzt visuell erkennen können , wann sich unsere Maus darüber bewegt Aus unserer Vorschau, weil wir es hier natürlich nicht machen können, weil es nicht läuft, aber wir können es in unserer Vorschau hier testen Und wie ich schon sagte, wenn du nicht alles im Inspektor durchgehen willst , kannst du das auch direkt hier im Theme-Manager-Bereich tun , hier auf der Registerkarte. Also bearbeiten wir unseren Button, also öffne ich ihn einfach und du wirst hier eine riesige, riesige Liste sehen. Und gib mir dafür einen Moment. Ich werde dir das zeigen. Ordnung. Also wie gesagt, alles, was Sie hier auf der Seite sehen , wird angezeigt, wenn wir das öffnen, sodass Sie hier alles sehen können, all die Teile, die wir zur Bearbeitung hinzugefügt haben Also haben wir den Button bearbeitet. Also, wenn ich das öffne, können wir sehen, dass alle dieselben Eigenschaften hier sind, aber nicht nur das, sie sind auch so organisiert , wie Sie sie sich vorstellen können. Und du kannst auch hier reinkommen und sie umbenennen. Wenn Ihnen die Gliederungsgröße nicht gefällt, können Sie sie umbenennen , wie Sie möchten. Hier sind alle unsere Farben. Es ist also sehr einfach für uns, vorzugehen. Wir kommen zur Schrift. Nein, ich habe die Umrissgröße, die Schriftgröße, das. Schauen wir uns also hier an, diese kleinen Themen nicht, sondern den Stil Gehen wir also zur Normalität über, einem normalen Aber hier. Ich werde einen Flat-Box-Stil machen. Gib dem einfach eine Sekunde. scheinen einen kleinen kleinen Schluckauf zu haben Die Themen scheinen einen kleinen kleinen Schluckauf zu haben. Aber das ist in Ordnung. Mach das auf. Und Sie sehen das hier im Inspektor, also möchten Sie den Inspektor vielleicht trotzdem benutzen, müssen es aber nicht. Und Sie sehen, jetzt kommen Sie rein, ich kann hier Rahmen hinzufügen. So können wir unseren Schaltflächen diese Rahmenbreite hinzufügen natürlich auch die Farbe unserer Rahmen auswählen . Wir können hellgrün wählen und einfach anfangen, sie hinzuzufügen. Wir können also so etwas machen, wenn wir wollen. Aber wir können hier reinkommen und einfach Ecken hinzufügen. Wir können unsere Ecken abrunden. Und jetzt, ohne etwas Kompliziertes tun zu müssen, haben wir diese schönen abgerundeten Tasten, und weil Dinge wie die Optionstaste alle von der Basistaste kommen , ist auch alles abgerundet. Und wenn du zum Beispiel viel extremer werden wolltest , dann ist das das. Wir kommen hier der Entwicklung runderen und runderen Buttons eines runderen und runderen Buttons näher und kommen Erstellen eines kreisförmigen Buttons immer näher Siehst du, damit können wir bei diesen eigentlichen Knöpfen nur so weit gehen , also behalte das einfach im Aber trotzdem haben wir zumindest meiner Meinung nach wunderschöne Knöpfe, die schöner aussehen als diese spitzen, kastenförmigen Abgerundete Ecken sehen für mich einfach immer schöner aus. Vielleicht bevorzugst du die Punkte, aber ich bevorzuge sie immer, wenn auch nur eine leicht abgerundete Ecke, oder? Also, selbst wenn wir einfach mit einer Drei reinkommen, richtig? An unseren Ecken würde das für mich immer noch ein bisschen besser aussehen als diese Punkte zu haben Aber du kannst reinkommen und sie komplett ändern, so oft du willst Und wenn Sie dann damit zufrieden sind , all Ihre verschiedenen Aspekte Ihres Themes zu ändern , können Sie einfach in das Drop-down-Menü hier gehen und Ihr Thema speichern. Und das können Sie ein paar Mal tun und wann immer Sie dazu bereit sind , wann immer Sie die Möglichkeit haben möchten , verschiedene Themen zu ändern. Alles, was Sie tun müssen, ist einfach Ihr Theme zu laden und es hier in die Theme-Eigenschaft einzufügen. Und du kannst es im Code machen, oder? Greifen Sie einfach auf die Theme-Eigenschaft zu und laden Sie Ihre Theme-Datei hinein. Und da hast du es. Du hast dein Theme angewendet. Sie haben verschiedene Themenoptionen eingegeben. Okay, wenn Sie also erst einmal ein paar Themen eingerichtet haben möchten , können Sie dies jetzt natürlich mit einer hellen und dunklen Umschalttaste einrichten mit einer hellen und dunklen Umschalttaste Also wenn ich für eine Sekunde zu Hootie zurückkehren würde. Wenn wir weitermachen und das auf ein stellen, mal sehen. Es ist kein Umschaltknopf. Es ist eine Check-Taste, die einfach reinkommen und suchen lässt. So werden sie hier genannt. Ich werde weitermachen und das einfach rüberbringen. Es wird nicht wirklich wichtig sein. Und der Stil ist der Grund, warum wir diesen Hintergrund haben. Das ist vorerst in Ordnung. Nehmen wir an, wir haben diesen Check-Button. Ich mache weiter und drücke das umschaltbare Presssignal und hänge es an mein Hauptskript Ich werde alles tun, weil diese Art von Aufstand entstanden ist, weil ich nicht weiß, Themen scheinen dazu zu führen Dinge die ganze Zeit innehalten, zumindest auf meiner Seite Also, wenn ich einfach hier runterkomme und je nachdem, ob es gedrückt ist oder nicht, richtig, wir können verschiedene Themes laden. Also werde ich sagen, ob Taste gedrückt wurde, weil das das Argument ist, das übergeben wird, wenn wir es umschalten, ob die Taste gedrückt wird Wenn es also wahr ist, wenn es aktiviert ist, dann setzen wir es auf Thema zwei Sonst kommen wir rein und setzen es auf Thema eins, speichern das. Und alles, was wir tun, ist, den Knoten zu finden , auf dem es ist, richtig? Wir müssen also nicht self eingeben, aber ich mache das trotzdem gerne, die Theme-Eigenschaft abrufen und wir laden nur unsere Theme-Datei. Das ist alles, was wir tun. Das ist jetzt, wenn ich das mache. Ich kann einfach auf diesen Schalter klicken Und einfach so können wir zwischen einem hellen und einem dunklen Modus wechseln Es ist also so einfach, dass, wenn Sie Themen austauschen möchten, es für Sie einfach zeitaufwändig sein wird aufzubauen und zu all die verschiedenen Themen aufzubauen und zu erstellen, die Sie haben möchten. das Gute ist, wenn du nur ein helles und ein dunkles Theme haben willst und natürlich noch eine Menge anderer Themes erstellen willst auch noch eine Menge anderer Themes erstellen willst, kannst du diese Theme-Dateien behalten da wir sie als Theme speichern, oder? Du kannst sie nehmen und du kannst sie in Zukunft in andere Projekte einbringen , und du kannst dich einfach bewerben, und jetzt hast du einfach ein helles und ein dunkles Thema für alles bereit, oder? All deine zukünftigen Projekte. Aber so einfach ist das. Es ist eine Codezeile , um das Thema zu ändern. Es ist genauso einfach wie das. Stellen Sie die Theme-Eigenschaft so ein , dass Ihre Themendatei geladen wird. Ordnung. Themen sind also mächtig. Sie können sogar dann verwendet werden, wenn Sie nur Ihre Schriftart für all Ihre verschiedenen Knotentypen festlegen möchten . Anstatt Zeit zu verschwenden, erstellen Sie einfach ein Thema , fügen Ihre Schriftart hinzu und schon kann es losgehen Ordnung. Nun, ich werde hier noch eine Notiz machen, falls du etwas aus deinem Theme entfernen möchtest Gönnen Sie sich diesen Moment, denn das wird offensichtlich für eine Sekunde gesperrt, weil Themen aus welchem Grund auch immer, oder? Nehmen wir an, wir wollen etwas aus unserem Theme entfernen , weil wir es vielleicht nicht brauchen oder weil es unser Projekt nicht beeinträchtigt, was auch immer. Ordnung. Wir können hier einfach auf die Schaltfläche „Artikel verwalten“ gehen und das Ganze wieder öffnen und das Ganze wieder schließen, oder? Wir können einfach Artikel bearbeiten. Wir können so etwas wie Editor, Troll-Editor-Popup, Farbvoreinstellung finden Troll-Editor-Popup, , aber Editor den Gürtel, richtigen Söhne da, die Hilfe auf dem Also all diese Dinge, die hier oben sind, spielen keine Rolle. Sie beeinflussen uns nicht, also können wir hier reinkommen und wir können einfach anfangen, all diese Dinge zu löschen , die keine Rolle spielen. Auf diese Weise sieht es auch etwas sauberer aus. Natürlich musstest du das nicht von Anfang an reinbringen . Sie können nur ausgewählte Artikel mitbringen, wenn Sie möchten. Aber wenn du ein Theme machen willst, finde ich es besser, wenn du es trotzdem für alle machst . Auf diese Weise kannst du, wie gesagt, das Thema einfach in jedes Projekt einbringen und sofort loslegen. Da hast du's. So kannst du Dinge entfernen, die du vielleicht nicht mehr in deinem Theme haben möchtest. Da hast du's. Die Themes sind sehr leistungsfähig und sehr nützlich. Sie verleihen Ihrem Programm ein professionelleres Aussehen, lassen es weniger fehlerhaft aussehen, besonders bei anderen Goto-Entwicklern und ermöglichen Ihnen mehr Anpassungsmöglichkeiten für Ihre Benutzer, Kunden, Kunden usw. Nun, das wird natürlich ein bisschen besser funktionieren , oder es ist die Softwareseite als die Spiele-Deb-Seite, aber vielleicht fällt dir etwas Einzigartiges ein, das du auf der Gameplay-Seite machen kannst In Ordnung, das reicht für diesen. Als Nächstes werden wir darüber sprechen, dass unsere Fenster tatsächlich herausspringen und vom Betriebssystem gesteuert werden vom Betriebssystem gesteuert Und damit meine ich, wenn wir reinkommen, weiß ich, dass es für uns jetzt schwer zu erkennen ist , weil wir mit Themen herumspielen. Ich werde diese standardmäßig hier loswerden. Dieses Fenster, das wir gerade irgendwie durcheinander gebracht Wir können es nicht bewegen, oder? Es wird quasi in diesem Fenster stecken bleiben. Also machen wir daraus ein eigenes Fenster und das wird vom Betriebssystem gesteuert. 75. Mehrere Fenster: Ordnung, lassen Sie uns darüber sprechen, dass Windows vom Betriebssystem gesteuert wird Und was ich damit meine, ist, dass Sie sehen, dass dieses Fenster hier ein eigenes Fenster ist , das vom Betriebssystem gesteuert wird Wir können uns nicht bewegen Wir bewegen es nicht unbedingt irgendwohin. Es ist einfach irgendwie da. Halte durch. Das wird viel einfacher sein. Einen Moment. In Ordnung, wenn ich hier einfach in den Displaymodus komme und wir uns das ansehen Wir können sehen, dass es sich um ein eigenes freistehendes Fenster , das an jedem beliebigen Punkt bewegt werden kann Es ist hier nicht im Haupteditor gefangen, oder? Aber oh, das ist ein bisschen zu groß. Aber wenn wir reinkommen und unsere Suche erneut durchführen würden, sagen wir Titan. Das war eine Sache der Zeit. In Ordnung, komm runter, wann immer wir eine Sendung finden, klicke sie an. Und jetzt können Sie an unseren Fenstern sehen wie es hier feststeckt, oder? Es ist nicht kostenlos. Und der Grund dafür ist, dass es hier in unser Hauptfenster eingebettet ist . Es wird also nicht sein, es ist nicht kostenlos, oder? Es wird nicht von unserem Betriebssystem gesteuert. Also das werde ich dir zeigen , wie man das macht. So kannst du dein eigenes Fenster haben. So öffnen Sie beispielsweise ein Einstellungsfenster, ein Einstellungsfenster und ein Einstellungsfenster, wenn Sie Software erstellen. Sie können das nehmen und das Fenster verschieben. Es muss nicht in einer beliebigen Anwendung stecken bleiben . Läuft. Und das ist so ziemlich eine Standardsache. Es wäre also gut für uns zu wissen, wie das geht. Also, wenn wir das einfach ganz schnell ausschalten, einfach in unser Skript springen und wir können das mit einer Codezeile beheben, und das war's. Wir bekommen also ein Viewport, und das wird das Viewport unseres aktuellen Fensters bekommen , oder Das Hauptfenster unseres Programms. Und alles, was wir tun werden, ist, Unterfenster einzubetten und diese Eigenschaft auf Box zu setzen Das ist es. Wenn wir das jetzt ausführen, können wir sehen, dass es immer noch genau gleich funktioniert. Und wenn wir weitermachen und unsere Suche machen. Plastic Attack Titan, was auch immer, wir blättern durch unsere Ergebnisse. Spielt keine Rolle. Bla. Lass uns das auswählen? Jetzt hat es ein eigenes Fenster. Wir können es verschieben, es kann einen eigenen Fenstertitel haben und es wird vom Betriebssystem selbst erstellt und verwaltet. Drei Größen und wir können alles machen, was wir können, genau wie unsere anderen Fenster. Es ist also so einfach , diese kleine Funktion hinzuzufügen. Es wäre sehr nützlich. Ein anderes Beispiel dafür ist, wenn Sie, sagen wir, einen solchen Tab haben möchten, um Punkte rückgängig machen zu können, genau wie Sie es hier tun können Wir ziehen es einfach raus. In Ordnung. Auf geht's. Also öffnen wir das Setting hier und können einfach sagen: Make Floating. Und jetzt ist es ein eigenes Fenster, oder? Und es wird vom Betreiber verwaltet. Also funktioniert das genauso wie das, was wir gerade mit den Dewey Embedded Sub Winds gemacht haben Also müssen wir es schließen und das kann gleich wieder da rein Und das kannst du mit jedem hier machen. So können Sie es zum Beispiel mit dem Skript hier machen. Sie können einfach hier auf diese Schaltfläche klicken, und jetzt ist das Skriptfenster eine eigene Sache. Und wenn Sie zwei Monitore haben, können Sie das Ganze jetzt einfach auf den zweiten Monitor legen, und Sie können sich auf die eigentliche Szene auf einem Bildschirm und Ihren Code auf dem Bildschirm konzentrieren . Sie können also sehen, wie nützlich es wäre, schwebende Fenster wie dieses allein durch die Entwicklung zu verwenden und je nach Ihrer Anwendung produktiver für den Endbenutzer zu sein, was natürlich bedeutet, dass Ihr Produkt mehr gefallen wird, dass es mehr Spaß macht wie nützlich es wäre, schwebende Fenster wie dieses allein durch die Entwicklung zu verwenden und je nach Ihrer Anwendung produktiver für den Endbenutzer zu sein, was natürlich bedeutet, dass Ihr Produkt mehr gefallen wird, dass es mehr Spaß und dass es zu einer Präferenz wird, und diese eine kleine Funktion, diese eine Codezeile könnte die Benutzerbasis Ihres Programms, Ihrer Anwendung. Natürlich muss Ihr Programm von Anfang an gut sein , aber ja. Aber da hast du es. Das ist alles, was wir tun müssen , um diese schwebenden Fenster zu erstellen und unsere Fenster von unserem Betriebssystem steuern anstatt in unserem Hauptfenster festzustecken. 76. Menüleisten: Lassen Sie uns also weitermachen und darüber sprechen , wie wir eine Menüleiste erstellen können. Mit Menüleisten beziehe ich mich auf das, was Sie oben in den meisten Anwendungen mit Dingen wie Datei, Bearbeitung, Ansicht, vielleicht Ebeneneffekten usw. sehen meisten Anwendungen mit Dingen wie Datei, . Ordnung. Also, wie können wir weitermachen und das machen? Nun, ich habe hier eine neue Szene, die hier eine Menüleiste als meinen Stammknoten verwendet . Und ich platziere einfach ein farbiges Rechteck in den Hintergrund, denn ohne haben Sie nicht wirklich etwas da hinten und Sie können es nicht wirklich vom Rest Ihres Programms unterscheiden oder unterscheiden. Nun, abhängig von deinem Design und davon, wie deine Sachen aussehen sollen, möchtest du das vielleicht. anderen Fällen möchten Sie vielleicht etwas, das sich von anderen abhebt, auch wenn es sich nur um einen geringfügig anderen Farbton als den Standardhintergrund handelt, mit dem Sie arbeiten. Also für mich will ich nur, dass diese dunkelrote, irgendwie kastanienbraune Farbe zur Geltung kommt Und falls Sie neugierig sind, die Farbe der Hexadezimalfarbe ist 391715 Okay. Also, was können wir tun? Wie können wir Riegel und Ohrringe hinzufügen? Wenn wir weitermachen und das hier abspielen, muss ich das gleich hier für Sie aufnehmen . Oh nein, das erfasst automatisch. Fantastisch. Es ist ein bisschen groß. Also werde ich es ein bisschen runterschalten. Aber wie Sie sehen können, gibt es für uns natürlich nichts, worauf wir klicken könnten. Es ist nur eine Bar. Es passiert nichts. Es ist also nicht sehr interessant. Wie wir also tatsächlich Elemente zu diesen Menüleisten hinzufügen können , können wir natürlich über Code tun. Aber wir können uns tatsächlich selbst davon befreien , indem wir einen anderen Knoten verwenden. Und wenn Sie das wirklich wollen , wenn Sie nur einfache Menüpunkte haben, wäre das auch der schnellste Weg Ordnung, also gehen wir in die Menüleiste und wenn wir einfach das Menü innerhalb des neuen Knotens suchen, was, falls es eine Weile her ist und Sie das aus irgendeinem Grund nicht gesehen haben, fahren Sie fort und lassen es wieder erscheinen, genau dort Gehen wir weiter zum Suchmenü und wir haben die Menüleiste, aber was wir wollen, ist die Menüschaltfläche an dieser Stelle Und jetzt können wir mit dieser Menütaste weitermachen und sie zum Beispiel Bo-Button nennen und ihr einen guten Namen geben. Der Text wäre natürlich File, Bio nicht Bilk. Ordnung, da haben wir's. Und ich werde nur sichergehen, dass es eine gute Größe hat, fülle es Und das ist der Punkt , an dem wir jetzt reingehen, unsere Szene öffnen und sie ausführen können . Und du wirst sehen , ob wir darauf klicken. Wir haben hier so ein winziges Pop-up , aber da ist nichts drin. Der einfachste Weg, Dinge hinzuzufügen wäre unsere Menüschaltfläche. Wir haben diesen Abschnitt namens Items. Wir können „Element hinzufügen“ sagen, oder? Dann können wir sagen wie neue Datei, Element hinzufügen, öffnen, neu hinzufügen. Vielleicht haben wir gespeichert, und lassen Sie uns schnell noch eins hinzufügen. Und im Inspektor ist alles in Ordnung . Also, wenn das alles ist, was Sie für jede Ihrer Menütasten benötigen, bumm, los geht's. Du hast es. Jetzt kannst du darauf klicken und musst nur ein bisschen Code eingeben, um sie zu erstellen. Das bedeutet natürlich auch, dass wir unsere Schaltfläche einfach duplizieren , darüber schieben, gewünschten Optionen dort ändern können und wir haben eine zweite Menüschaltfläche. Jetzt werde ich nur einen von ihnen hier aufstellen lassen , nur um es dir zu zeigen. Aber wenn Sie nur solche einfachen Menüs benötigen , ist das alles, was Sie tun müssen. Nun, wenn Sie ein Menü haben wollen, das ein bisschen hervorsticht , wenn Sie mit der Maus darüber fahren, richtig, und es öffnet sich ein anderes Menü, wenn Sie so etwas tun möchten, dann müssen wir in den Code gehen , um darauf zuzugreifen Jetzt habe ich mein Skript einfach in meiner Menüleiste. Sie könnten sie auf Ihren Menütasten einstellen, wenn Sie möchten. Auf diese Weise kann sich jede Taste selbst steuern, was wahrscheinlich der bessere und intelligentere Weg wäre dies zu tun, wenn Sie ein echtes Produkt erstellen. Für mich ist das also keine große Sache, da ich hier nur die eine Menütaste habe. Aber noch einmal, wenn Sie vielleicht fünf verschiedene Schaltflächen dort hätten , vielleicht hätten einige von ihnen mehrere verschiedene Menüs, dann würden Sie es wahrscheinlich zumindest auf diese Weise in jede Taste aufteilen wollen . Ordnung. Also als Erstes werde ich Ihnen zeigen, wie wir diese Schaltflächen hinzufügen können Mit dieser Menütaste werde ich eine neue Datei löschen, öffnen, speichern und beenden. Ich habe also keine Elemente hier im Inspektor, und ich werde Ihnen zeigen, wie wir diese über Code hinzufügen können . In Ordnung, also werde ich eine Variable erstellen. Wir machen es fertig. Bar, nennen wir es Bile-Taste. Und das wird natürlich unser Dateiknopf sein. Die Klasse, in die wir sie umwandeln können, ist eine Menüschaltfläche. Ordnung. Also haben wir das in der Hand Jetzt können wir Flebuton Dot nehmen. Und wir sagen einfach, Artikel hinzufügen, ich glaube, es ist für uns hier Oh nein, mein Fehler. Eigentlich müssen wir uns das Pop-up besorgen, weil es ein Popup-Menü ist, das sich von selbst öffnet Also wollen wir ein Pop-up haben. Jetzt können wir hier eine Variable erstellen, wir können zum Beispiel Datei sagen, wir können sie das Datei-Menü nennen, was natürlich ein Popup-Menü ist . Da haben wir's. Jetzt können wir es gleich dem Datei-Button-Punkt Get Popup setzen. Und alles, was wir jetzt tun müssen, ist Bilemnu Punkt und wir können IM hinzufügen Und wir können ein Anzeigensymbol sehen, was bedeutet, dass wir dort ein Bild anzeigen lassen können Wenn du also möchtest, dass neben deinem Speichern-Button eine kleine Diskette angezeigt wird, kannst du das tun Wir haben auch Scheckartikel. Wenn du also etwas sein willst , das du einfach ein - und ausschalten kannst , dann kannst du es auch so machen. Der Funkcheck, der nur die Kreistaste ist. Und dann haben wir wieder das Häkchen für das Objekt und das Radio und das alles ohne die Symbole und das Untermenü, in das wir gleich kommen werden. Und was ist das für ein Gegenstand mit mehreren Bundesstaaten? Nun, schauen wir es uns an. Ich werde die Strg-Taste gedrückt halten. Und er fügt ein neues Element mit mehreren Bundesstaaten mit Textbeschriftung hinzu. Das Label ist eine Zeichenfolge, dann maxmun of state, der Standardstatus, ND, Excel, mal sehen Im Gegensatz zu normalen binären Elementen können Multistatome mehr als zwei Zustände haben, können Multistatome mehr als zwei Zustände haben wie sie in Max state definiert Bei jedem Drücken wird das Objekt aktiviert, Zustand wird jedoch um eins erhöht Der Standardwert wird durch Standardstatus definiert. Es sieht also so aus, als ob wir eine Erhöhung erhalten oder dass wir mehrere Bundesstaaten haben können. Jedes Mal, wenn wir auf die Schaltfläche klicken, ändert sich möglicherweise der Modus. Schauen wir uns das an. Wechseln wir, um den Status auf Modus zu setzen, und setzen wir die maximale Anzahl von Zuständen auf drei. In Ordnung, also lass uns weitermachen und das überprüfen. Lassen Sie uns einen Blick auf diesen Bundesstaat werfen. Wir klicken darauf? Nun, wir können darauf klicken und wir sehen, dass nichts passiert. Aber wenn wir uns ansehen würden, könnten wir die Staaten dazu bringen, dass der Staat das beeinflusst was jetzt in unserem Projekt vor sich geht Wie Sie von uns hier sehen, ist das nicht wirklich so, es wird von selbst nichts tun, oder? Es ist etwas, das zusätzliche zusätzliche Dinge erfordern wird , um uns zu helfen. Wohingegen so etwas wie ein Scheckartikel, oder? Anrufe überprüfen mich. Und wenn wir das ausführen würden, obwohl wir hier nichts haben, können wir es anklicken und Sie können sehen, dass wir dieses kleine Kästchen haben, und wir müssten einrichten, dass wir das Objekt abrufen und die Prüffähigkeit darauf oder die Prüfeigenschaft einstellen müssen und die Prüffähigkeit darauf oder die Prüfeigenschaft einstellen . In Ordnung, also wie können wir vorgehen? Schauen wir uns an, wie wir unsere Artikel wieder hinzufügen können. Können wir einfach Objekt hinzufügen sagen, und auf diese Weise können wir es in eine Zeichenfolge einfügen und wir können unsere neue Datei erstellen, glaube ich, so haben wir sie genannt. Und an diesem Punkt können wir weitermachen und diese einfach kopieren und einfügen. Wir können also sagen, dass neue Datei geöffnet ist. Ich glaube, wir hatten hier gespart und dann aufgehört. In Ordnung. Also, wenn wir das ausführen und uns unser Menü ansehen würden, würden Sie sehen, dass all diese Optionen jetzt hier drin sind, genau wie wir es getan haben, als wir es mit dem Inspektor gemacht haben. Wenn Sie es also vorziehen, es im Code zu machen, könnten Sie das tun. Wenn Sie jedoch nur ein einfaches Menü wie dieses benötigen, indem Sie den Inspektor durchgehen es am einfachsten oder schnellsten, neue Elemente zu Ihrem Menü hinzuzufügen, neue Elemente zu Ihrem Menü hinzuzufügen Nun, ich habe gesagt , dass wir neue oder Dateien haben könnten , die sich in anderen Menüs öffnen würden Und das zu tun, ist etwas komplizierter. In diesem Fall müssen wir uns dafür tatsächlich ein neues Popup-Menü erstellen . Also werde ich New Pop speichern. Und das wird ein Popup-Menü sein, das einem neuen Popup-Menü entspricht . Und ich mache einfach weiter und leiser. Popup-Menü punktuell neu. Dann müssen wir zu „ Wir können ein neues Objekt hinzufügen “ gehen , damit wir es tatsächlich sehen können. Also sagen wir newpop dot item hinzufügen. Wir sagen, das ist mein neuer Artikel. In Ordnung. Und jetzt, um das zu erstellen oder es zu einem eigenen kleinen Menü hinzuzufügen , das sich in unserem ursprünglichen Popup befindet, machen wir einfach weiter und holen uns das Dateimenü Und wir fügen einen Untermenüpunkt hinzu. Jetzt wird das Erste eine Zeichenfolge sein . Also lass uns weitermachen und einen Blick darauf werfen. Wir nennen das meinen Untermenüpunkt. Und was kommt als Nächstes? Als nächstes kommt das eigentliche Untermenü. Dies wird das neue Popup-Menü sein, das wir erstellt haben und das ich New Pop nenne. Und das ist alles, was wir eingeben müssen. Wir müssen keinen Ausweis eingeben , wir müssen keinen Ausweis eingeben. Es wird automatisch einfach am Ende unserer Liste hinzugefügt , genau wie diese. Also, wenn ich wollte, könnten wir weitermachen und das festlegen . Oh, das stimmt. Das sollte eine Zeichenfolge sein, die Popup-Menü genannt werden sollte, aber ich werde weitermachen und sicherstellen, dass wir in Zukunft damit keine Probleme haben. Wir würden weitermachen und einen Popup-Punktnamen und ihm einen Namen geben, oder? Ändern Sie diese Eigenschaft. Also nennen wir diesen neuen Popnamen. Ups, das sollte eine Zeichenfolge sein. Da haben wir's. Und wir haben das auf die String-Variante geändert. Da haben wir's. Das ist es, wonach es suchen wird. Also, wenn wir es jetzt ausführen würden, wann sind wir hier angekommen? Als Indexname für den Typ Zeichenfolge. Worauf beziehen Sie sich hier? Lass uns sehen. In Ordnung, sieh dir das Problem an. Stimmt. Und der GB-Skriptname ist klein geschrieben. Ich habe vor Kurzem mit C Sharp gearbeitet, also bin ich da ein bisschen durcheinander geraten Und das andere Problem ist, dass wir das tatsächlich als untergeordnetes Element in unsere Speisekarte aufnehmen müssen . Also gehen wir zum Dateimenü, fügen Child hinzu und wir würden unser neues Popup-Menü hinzufügen. Da haben wir's. Wenn wir es jetzt ausführen, können Sie sehen, dass wir unsere Datei haben, wir öffnen sie. Und jetzt haben wir dieses Element namens Untermenüelement, und es hat einen Pfeil, der nach rechts zeigt, was darauf hinweist, dass es geöffnet wird und dort unser neues Element ist. Das ist mein neuer Artikel. Machen Sie weiter und nennen wir das alles unser Setup. Und gehen wir zu unserem Es ist unser letztes Menü, glaube ich, oder? Und wir können uns verbinden. Und wir können ein Signal anschließen. Welches Signal? Nun, das ist unklar. Schauen wir uns also das Popup-Menü an. Methoden. Wir schauen uns diese Theme-Eigenschaften, Konstanten, Schriften, Schriftgrößen, Symbole, Stile und Signale nicht Konstanten, Schriften, Schriftgrößen, Symbole, Stile und Signale Los geht's. ID-Fokus, ID-Druck, Indexdruck und Menüwechsel. Das sind alles Signale , die wir uns ansehen können, und wenn wir sofort darüber nachdenken, könnte ich mir vorstellen, dass wir uns entweder ID Press oder Index Press ansehen werden. Wird ausgelöst, wenn ein Objekt mit einem bestimmten Index gedrückt oder sein Beschleuniger aktiviert wird. Der Beschleuniger hat mit dem Multi, dem Multistate zu tun . Und werfen wir einen Blick auf ID Press, das ausgelöst wird, wenn ein Objekt mit einer bestimmten ID gedrückt oder der Beschleuniger gedrückt wird Nein, wenn die ID negativ ist, entweder explizit oder aufgrund eines Überlaufs, wird stattdessen zum entsprechenden Index zurückgekehrt Die Frage ist also, welche wollen wir uns ansehen? Also, ich denke, ich werde mich dafür an den Index halten. Also werde ich meine Indexpresse anschließen. Komm rein, schließ die Indexpresse an. Es wird ein Pult sein, das auf Self verbunden ist. Und wir werden sagen, wir nennen diesen Artikel. Ich nenne es Element ausgewählt und erstelle eine neue Funktion dafür. Nun, ich nehme an, das ist Index Press, wir werden hier einen Index bekommen. Das ist meine Vermutung, also werde ich es herausfinden. Ich werde den Index ausdrucken und wir werden sehen, ob das funktioniert. Wenn nicht, müssen wir zurückgehen und das Signal noch einmal ansehen. Datei. Wenn ich auf „Beenden“ klicke, erhalte ich Index drei, neue Datei, Index Null. Okay, das funktioniert also genau so, wie ich es mir vorstellen würde. Und natürlich, wenn ich in das neue Menü gehe, das ist mein neuer Artikel hier, klicken Sie darauf. Ich werde nichts bekommen, weil das ein eigenes Signal hat , dass du eine Verbindung herstellen müsstest. Wir haben den Index zum Laufen gebracht. Fantastisch. Was können wir jetzt tun? Nun, wir können uns unser Bio-Menü ansehen und sehen, welche Optionen wir haben. Oh, ich hoffe, das wurde nicht die ganze Zeit gezeigt. Also die ausgewählten Artikel indexieren, und unser Eintrag wird nur Datei, Menüpunkt, Artikeltext abrufen, den Index übergeben. Und dann werden wir hier einfach ein Match-Statement abgeben. Also Match Item, und wir werden diesem Text zuordnen, wenn er gleich New File, Open, Save Quit ist, und wir werden den entsprechenden Codeblock erstellen. Was das Beenden angeht, machen wir einfach Get Tree Dot Quit. Wenn wir das also ausführen und in unserem Menü die Option Beenden auswählen würden, sollte unser Programm geschlossen werden. Und das tut es. So würden Sie das also einrichten, um alles zu tun , was Sie tun müssen. Offensichtlich werden Ihre Optionen unterschiedlich sein und es wird je nach Ihrer Anwendung variieren. Aber so gehen Sie vor und richten diese Elemente , dass sie funktionieren. Also musst du ein Signal anschließen. In meinem Fall verwende ich das Indexdrucksignal anstelle einer ID. Und dann gebe ich einfach den Index weiter, damit ich den Text der Artikel abrufen kann. Und dann ordne ich einfach den Text ab und führe den entsprechenden Codeabschnitt aus. In Ordnung. Hoffentlich war das klar. Hoffentlich habe ich nichts blockiert, zu wichtig war , während wir das durchgemacht haben. Aber so machen Sie weiter und erstellen einige Menüs für Ihre Anwendungen, wenn Sie sich für die Software entscheiden. Natürlich benötigen nicht alle Programme die Menüleisten, aber diejenigen, die das tun, es wäre schön zu wissen, wie das geht. 77. Was sind Partikel?: Alles klar, alle zusammen, willkommen zurück. Und wir werden heute weitermachen und über Partikel sprechen. Nun, Partikel sind es ist eine ganz faszinierende Welt die die Partikel und Partikelsysteme umgibt , und ihre entscheidende Rolle bei der Spieleentwicklung. Partikelsysteme sind ein mächtiges Werkzeug , mit dem wir faszinierende visuelle Effekte erzeugen können , indem wir unseren Spielen einen Hauch von Magie und Realismus verleihen Was genau sind Partikelsysteme ? Nun, stellen Sie sich winzige dynamische Wesen vor, die auf chaotische und doch kontrollierte Weise entstehen, sich bewegen und mit der Welt interagieren könnten interagieren chaotische und doch kontrollierte Weise entstehen, sich bewegen und mit der Welt Partikelsysteme sind eine Ansammlung dieser kleinen Einheiten, die als Partikel bekannt Sie alle bilden zusammen atemberaubende Effekte wie Rauch, Feuer, Funken, Zaubersprüche und sogar Dinge, an die Sie nicht denken würden, wie zum Beispiel vielleicht Fledermäuse, die schnell aus einer Höhle fliegen, wenn Sie sie betreten bilden zusammen atemberaubende Effekte wie Rauch, Feuer, Funken, Zaubersprüche und sogar Dinge, an die Sie nicht denken würden, wie zum Beispiel vielleicht Fledermäuse, die schnell aus einer Höhle fliegen Das könnten Partikel sein. Die Magie von Partikelsystemen liegt in ihrer Fähigkeit, mithilfe einfacher Einzelelemente die Illusion komplexer Phänomene zu erzeugen , sei es die Erzeugung eines sternenklaren Nachthimmels oder einer gewaltigen Explosion Partikelsysteme geben uns die Flexibilität, visuell heilende und immersive Experimente für unsere Jetzt kannst du das entweder in zwei oder drei D machen. Und die Systeme werden größtenteils genauso funktionieren Es könnte einige kleine Unterschiede geben. Eine davon ist natürlich die zusätzliche Dimension, über die wir uns Gedanken machen müssen, was ganz natürlich ist, wenn wir von zwei D zu Rot wechseln. Und es geht darum, wie einfach es hier ist, Partikel in der Gatto-Engine zu erzeugen hier ist, Partikel in der Gatto-Engine zu Wie Sie hier sehen, habe ich meiner Szene gerade einige GPU-Partikel hinzugefügt meiner Szene gerade einige GPU-Partikel Ich verwende nur das Symbol als meine Textur. Ich gehe nur zu Prozessmaterial und wähle Material für die Partikelverarbeitung aus. Und einfach so können Sie sehen, dass im Motor bereits Partikel arbeiten. Jetzt geht es nur noch darum, eine Reihe verschiedener Werte zu optimieren und zu ändern , damit Dinge geschehen Eale würde nur die Lebensdauer verlängern. Und sieh dir das an. Das würde diese Summe vielleicht um 50 erhöhen. Und da hast du es. Wir haben dieses einfache, aber technisch gesehen ist es ein Partikelsystem, das nur aus einer Ikone besteht. Und wenn es um Dinge wie drei D geht, können Sie dieses Partikelsystem verwenden, um zusätzliche Dinge wie Wettereffekte wie Regen und Schnee zu erzeugen zusätzliche Dinge wie Wettereffekte . In Ordnung. Hoffentlich haben Sie dadurch genau erfahren, was Partikel sind, sie auf verschiedene Arten verwendet werden können, und Sie haben hoffentlich ein wenig Lust bekommen selbst mit dem Partikelsystem herumzuspielen. 78. Erstellen eines 2D-Feuers: Ordnung. Alles, was ich hier habe meine GPU-Partikel zwei D, die zu einer Szene hinzugefügt wurden. Und von hier aus werden wir weitermachen und einen Zwei-D-Feuereffekt erzeugen. Jetzt kannst du weitermachen und natürlich weiter experimentieren, dein Feuer erhöhen es für dich etwas Einzigartigeres machen. Wenn du willst, ähm, lass uns weitermachen und reinspringen. Jetzt werde ich eine Zigarette benutzen. Was ist es? Rauch-Textur. Und Sie können sie überall im Internet finden. Dieser stammt speziell von Kenny Particle Pack oder Kenny's Particle Pack. Und ich glaube, Sie finden es auf Kenny Punkt NL. Es gibt eine Menge kostenloser Ressourcen, mit denen Sie herumspielen können. Also nehme ich einfach den Rauch und bringe ihn in meine Textur. Für meine Partikel hier. Und jetzt gehe ich hier zu Prozessmaterial und klicke hier auf den Pfeil und wähle einfach neues Material für die Partikelverarbeitung aus. Ordnung. Und das habe ich bekommen. Also, das ist ziemlich groß. Also das erste, was ich tun möchte , ist, diese Skala anzupassen. Und ich werde auf den Bereich Skala hier in meinem Material zurückkommen . Gehe zur Skalenkurve und wähle eine neue Kurventextur aus, öffne sie, öffne meine Kurve. Und nur weil ich schon weiß, was ich hier platzieren werde , werde ich für die linke Seite auf etwa 0,34 sinken und die rechte Seite wird ganz nach unten passen für die linke Seite auf etwa 0,34 sinken und die rechte Seite wird ganz nach unten Und damit werde ich arbeiten. Vielleicht komme ich später zurück und optimiere das, aber damit fange ich Ordnung, also fangen wir ganz oben an, Zeitzufälligkeit, das ist Datum. Wir können etwas klarstellen. in bestimmten Situationen Verwenden Sie in bestimmten Situationen eine Kugel und Sie könnten damit herumspielen, aber ich werde nur einen Punkt verwenden. Partikel-Flaggen. Davon brauchen wir keine. Richtung. Nun, wir wollen auf dem X nirgendwohin gehen, aber wir wollen irgendwo auf dem Y hin. Jetzt wollen wir in die negative Eins, Richtung auf dem Y, weil wir nach oben wollen Die Schwerkraft können wir einfach entfernen, wenn wir wollen. Und die Anfangsgeschwindigkeit, ich werde weitermachen und 32 sagen. Ich möchte einen Blick darauf werfen. Das führt nicht wirklich nirgendwohin. Wir erhöhen das, wenn wir damit ein bisschen spielen, damit wir sehen können, dass es aufwärts geht. Und was ist, wenn ich meine Lebensdauer einfach auf 2 Sekunden verlängere? Wir können also sehen, dass es langsam Gestalt annimmt. Also werde ich einfach weitermachen und hier mit einigen davon herumspielen . Ich werde meinen Spread vielleicht auf 16 reduzieren. Jetzt haben wir nicht viele Partikel. Wir arbeiten nur mit acht, deshalb sieht es so aus, wie es ist. Aber was ist, wenn wir auf den Betrag kommen, der hier oben steht, und vielleicht sogar auf 50 steigen? Okay, das ist ein bisschen näher an einem Feuer. Und wenn ich mein Leben wieder auf eins ändere , wie sieht das aus? Das sieht okay aus. Ich glaube, ich werde hier am Anfang ein bisschen an meiner Skala anpassen Im Moment sitze ich am Anfang bei 0,19 . Wir werden sehen, wie das läuft Und bei einem Feuer brauchen wir natürlich etwas Farbe. ich in der Farbabteilung bin, gehe ich zu meiner Farbrampe. Und von der Drop-down-Liste aus ist es wie eine neue Gradientextur. Wo ist das hingegangen? Da ist es. Also klicke ich jetzt auf meinen Farbverlauf, klicke auf meine Verlaufstextur. Und jetzt klicke ich auf den schwarzen Bereich. Ich mache daraus ein gelbes. Ich klicke auf meinen weißen Bereich, ziehe ihn etwa zur Hälfte hinein und mache daraus einen roten oder einen orangefarbenen Ich klicke einfach an einer zufälligen Position in meine Textur , um einen weiteren Slot hinzuzufügen Und damit werde ich die Deckkraft einfach ganz reduzieren Jetzt haben wir quasi das Fade-Off, das Sie hier oben sehen Und ich werde das einfach ein bisschen reinziehen. Und jetzt lass uns sehen. Kannst du einen Unterschied erkennen , wenn wir so vorgehen? können wir nicht. Okay, den kleinen Trick zeige ich dir später. Okay. Also haben wir unseren gelben, unseren orangefarbenen und einen transparenten Bereich innerhalb meiner Farbpalette. Damit es mehr wie Feuer aussieht und nicht wie die Wolke, die wir gerade betrachten, scrolle ich unter Canvas-Element ganz nach unten zu Material. Ich werde auf das Drop-down-Menü klicken. Es ist wie Material für Leinwandartikel. Und für den Mischmodus stelle ich ihn einfach so ein, dass er hinzugefügt wird . In Ordnung. Also, mit diesem einen Opson-Wechsel haben wir schon etwas, das viel mehr wie ein Feuer aussieht Also, wenn du die weiße Mitte auf deinem Feuer haben willst, dann musst du nur deine Farbe nehmen und sehen, wie ich Oh, da kannst du nicht sehen Ordnung. Einen Moment. In Ordnung. Ich öffne dort das Bildschirmfoto für dich. Würdest du sehen, dass ich meine Farbe genau hier am Rand habe? Nun, wenn du die weiße Mitte haben willst, die weißheiße Mitte, die weißheiße Mitte, musst du dich nur ein wenig vom Rand wegziehen und du siehst, je näher du dran ziehst, desto größer wird der weißheiße Bereich sein, also gibt es einen kleinen Tipp für dich, den du dort für deine ursprüngliche Farbe machen kannst. Ich werde es nur ein bisschen wegziehen, vielleicht etwas näher an die Orange herangehen. Wir wollen nicht bis zu Orange gehen, richtig, weil wir nicht wollen, dass Orange zu Orange wird Ich nehme ein schönes Gelborange, ein Goldorange und ziehe mich von der Mitte weg , sodass ich das schöne , weiße, heiße Zentrum In Ordnung. Und damit haben wir quasi selbst ein Feuer angezündet . Nun, je nachdem, wonach Sie suchen, kann die Menge, richtig, variieren. Wenn wir also auf 12 gehen, können wir so etwas bekommen, wodurch wir das weißglühende Zentrum verlieren, aber das ist vielleicht etwas näher an dem, was Sie suchen. Acht war die Standardeinstellung. Je nach dem künstlerischen Bild, das Sie suchen, können Sie die Menge hier so anpassen, wie es zu Ihnen passt und was Sie wollen diesem Grund können Sie, wenn Sie zum Beispiel in einem Spiel ein Feuer betrachten und , wenn Sie zum Beispiel in einem Spiel ein Feuer betrachten eine Maschine mit niedrigeren Spezifikationen haben, beim Betrachten des Feuers eine Menge Bilder verlieren beim Betrachten des Feuers eine Menge Bilder Und wenn Sie dann wegschauen, schießen Ihre Bilder wieder nach oben, weil ein Feuer tonnenweise Partikel enthalten kann Vor allem, wenn wir mehr von drei D sprechen, nehme ich an, aber das wäre der Grund, warum Partikel, sagen wir, 1.000 Teile haben können , und dann hat jeder dieser Teile und dann hat jeder dieser Teile seine eigene Textur. Es ist also fast so, als würdest du deinem Bildschirm 1.000 Sprites hinzufügen , oder? Ganz plötzlich. Nun, damit haben wir selbst ein Feuer. Ich reduziere meine wieder auf 50, weil ich wirklich nicht das Gefühl habe, dass wir 100 brauchen. Und wir könnten reinkommen und mit so etwas wie einer Farbvariation spielen, wodurch der Farbton optimiert wird, der wie die Farbe aussieht Also, wenn wir sagen würden, erhöhen Sie das Minimum auf vielleicht 0,2 und dann das Maximum auf 0,6, oder, wissen Sie was? Lass uns das Maximum einfach ganz nach oben drehen. Und sieh dir das an. Jetzt haben wir stattdessen dieses magische Feuer. Das haben wir bald vor uns. Das könnten wir verwenden, da es in einer vertikalen Form ist, wir könnten es für so etwas wie ein Lagerfeuer verwenden Nun, wenn das nach D ginge, würden wir wahrscheinlich die Waage twittern und die Dinge noch kleiner machen , sogar noch kleiner Aber das hängt natürlich von der Texturgröße ab, die Sie zunächst verwenden. Sie können also sehen, dass wir diese beiden Varianten haben und mehr von diesem magischen Look haben können . Und genau wie in anderen Abschnitten können wir eine Kurve hinzufügen, können wir eine Kurve hinzufügen wenn wir das für unsere Variante tun möchten. Und wir können damit herumspielen, und das würde sich auf den Grundwert auswirken , obwohl sich meins nicht ändert. Das ist ein bisschen interessant. Der Mindestwert, den wir dort hatten , ist Null. Ziemlich interessant. Es wirkt sich nicht aus. Vielleicht ist es im Moment ein kleiner Bug mit der Kurve oder so. Ich weiß es nicht. Aber Sie können sehen, wie Farbvariationen dem Ganzen mit all diesen Farben sofort dieses magische Gefühl verleihen können . Wenn du willst, könntest du vielleicht Winkel oder die Geschwindigkeit anpassen, wenn du willst, das wird mit dem Drehen zu tun haben, oder? du das in Texas eindrehst, siehst du, wenn wir das ganz nach oben drehen, dreht sich das wirklich mehr wie ein Ball Das leiser ich einfach wieder runter. Orbital wird so sein, wie Sie sehen, das Ganze wird sich in einer Umlaufbahn um Ihren Punkt hier in der Mitte drehen Jetzt, wo es da oben ist, wird das natürlich keinen Unterschied machen, aber los geht's, damit Sie ein paar Schüsse sehen können Also, du kannst diese verschiedenen Arten von Effekten unterscheiden, und es sind all diese kleinen Effekte, die wir nehmen und zusammenfügen, um diese tollen visuellen Effekte in Spielen zu erzeugen Aber ich denke, das ist alles, was wir hier behandeln müssen, um dir eine gute Ausgangsbasis zu geben? Lebensdauer hängt natürlich davon wie lange das Feuer andauern wird. Siehst du den Grund, warum wir da einen kleinen Zug bekommen. Und das liegt daran, dass die anderen Brände immer noch existieren. Und wir haben ihm gesagt, dass so viele, 50, gleichzeitig existieren können. Sie dauern 200 Sekunden, also werden sie noch eine ganze Weile leben. Aber du siehst 1 Sekunde, sie sterben natürlich schnell, also werden sie immer wieder erscheinen Ein Schuss bedeutet, dass es nur einmal geht, nur ein schneller Das ist also etwas , das du für so etwas wie eine Explosion verwenden würdest für so etwas wie eine Explosion verwenden Der Strom, der hier oben wieder austritt. Und das können wir leicht anpassen. Wenn wir also bei der Richtung dort Null sagen und du kannst dort eine auf dem X sehen und du kannst sehen, ob wir es auf der Lebenszeit verlängert haben oder so, kannst du sofort sehen, wie wir vom Lagerfeuer ausgehen können Und dann, mit ein paar kleinen Änderungen, können wir das jetzt vielleicht in einen Flammenwerferangriff oder einen gleichmäßigen Feueratem für einen Drachen oder so etwas ändern oder einen gleichmäßigen Feueratem für einen Drachen oder Und alles, was wir tun müssen, ist vielleicht drei sehr kleine Änderungen vorzunehmen Aber richtig, ich werde verhindern, dass ich weiterschweife. Ich werde weitermachen und das dabei belassen. Da hast du's. Wir sind weitergegangen und haben ein Zwei-D-Feuer für unsere Welt geschaffen . Wenn Sie also etwas wie Rauch hinzufügen wollten, würden Sie das einfach als Sekundärteilchen hinzufügen, oder? Also, zur schnellen Veranschaulichung, wir haben nur ein weiteres Partikel. Wir wollen, dass das Partikel hinter unserem Feuer steckt. Ich werde meine Rauchtextur wieder reinziehen. Bei einem Material, das Partikel verarbeitet, ändere ich meine Skala mit einer neuen Kurve. Und alles, was wir tun, ist, dieselben Schritte durchzugehen , die wir zuvor gemacht haben. So wie wir es zuvor getan haben. Aber wir haben dort mitgemacht. Ich werde mich für Farbe statt für eine Rampe entscheiden. Ich werde hier einfach ein dunkles Grau in meiner Farbe verwenden. Lass uns unsere Richtung festlegen. Minus eins auf dem Y. Gib uns eine gewisse Anfangsgeschwindigkeit Die Schwerkraft ist auf Null gesetzt. Meine Ausbreitung soll ähnlich wie Rauch sein. Ich werde dem auch ein Material hinzufügen. Ein Canvas-Objekt, nur damit ich es hinzufügen kann, setze es auf additiv. Wir bekommen etwas mehr Rauch, wie Sie es dort sehen. Und wie Sie sehen, haben wir allein durch diese wenigen Änderungen fast den Look bekommen, den wir Die Summe hier und acht, vielleicht fügen wir ein paar für 12 hinzu, und alles, was wir haben, ist, dass es nicht so lange hält Ich mache einfach weiter und erhöhe die Geschwindigkeit ein bisschen. Da haben wir's. Ich werde das gleich wieder rüberbringen. Du kannst jetzt sehen, dass dieser Rauch aus unserem Feuer kommt. Stimmt. Also da hast du's. Ich ziehe das wieder runter und erhöhe meinen Rauch noch ein bisschen. Aber sie haben genau das Einfache und diese wenigen Tricks , die von Anfang an funktionieren Und Sie sehen, wir haben unserem Feuer Rauch hinzugefügt . In Ordnung. Damit haben wir also ein Feuer. Damit haben wir Rauch. Das reicht für diesen. Und als Nächstes schauen wir uns an, wie man mit Partikeln in drei D ein Feuer erzeugt . Auf diese Weise können Sie ein Gefühl dafür bekommen, wie ähnlich und unterschiedlich zwei D und drei D bei der Erzeugung von wie ähnlich und unterschiedlich zwei D und drei D Partikeln sind und wie viel von Ihrem Wissen von einem auf das andere übertragen wird . 79. Erstellen eines 3D-Feuers: Okay, Leute, wir machen weiter und erzeugen wieder einen Feuereffekt, aber dieses Mal in drei D. Also habe ich hier nur eine Drei-D-Szene, und ich mache weiter und füge einfach ein Hoppla Fügen Sie einfach GP-Partikel drei D zu unserer Drei-D-Szene hinzu. Am Anfang sind Sie vielleicht etwas verwirrt, weil Sie sowieso nirgends eine Textur sehen. Nun, um dieses Feuer zu erzeugen, was wir tun müssen, da wir zwei D-Sprites verwenden werden wir zu unseren Drop-Passes übergehen. Gehe zu Pass eins Und wählen Sie in Ihrem Drop-down-Menü einfach ein einfaches Mesh aus. Öffne das. Jetzt siehst du, dass es nach oben zeigt. Offensichtlich wird das nicht funktionieren, weil wir es, du weißt schon, von dieser Seite betrachten werden , oder? Also müssen wir es uns zuwenden, anstatt zum Himmel zu schauen. Also schauen wir in unserem ersten Pass, innerhalb unseres Flugzeuggeflechts, nach unten. Wir sehen die Orientierung, und wir können sie in diese verschiedenen Richtungen ändern. Und wenn du siehst, setze es auf X, können wir sehen, dass es uns zugewandt sein wird, was großartig ist. Nun, das andere Problem, das wir haben, ist natürlich, wenn wir uns umdrehen, das Feuer, richtig, das Flugzeug verschwindet, weil die Rückseite nicht gerendert ist. Wir schauen von der Seite, wir können es nicht wirklich sehen, also können wir es nur von einer Seite sehen. Das ist nicht großartig. Wir müssen eine so genannte Werbetafel machen eine so genannte Werbetafel Aber ich füge hinzu, füge uns diese Werbetafel hinzu , damit wir sie immer im Blick haben können Wir werden hier direkt nach unserer Orientierung Material hinzufügen und einfach ein Standardmaterial hinzufügen Und wenn wir drinnen reingehen und nach unten scrollen, sehen wir einen Abschnitt namens Billboard Wenn wir das jetzt öffnen und die Form auf aktiviert stellen. Nun, es sieht so aus, als wäre es einfach von uns verschwunden. Also lass uns versuchen, warum Billboard. Also, das funktioniert auch nicht. Wie wäre es mit einer Plakatwand aus Partikeln. Jetzt wundern Sie sich vielleicht, warum keine dieser Optionen unter Billboard funktioniert Und für uns, weil wir hier Partikel verwenden, müssen wir das tatsächlich anders einstellen Also wird keine dieser Billboard-Optionen tatsächlich für uns funktionieren Um das richtig zu bewerben, müssen wir uns also mit unserem Prozessmaterial befassen und natürlich den Partikelprozess hinzufügen Und dann beim Zeichnen, siehst du, es ist immer noch derselbe Weg, nichts hat sich geändert Wir gehen zur Transformatorleitung und schicken es an Z oder Z, Plakatwand, und okay, da funktioniert nichts Gehen wir zum nächsten über, bis zur Geschwindigkeit. Schauen Sie sich das an. Okay. Okay, es sieht so aus, als ob hier nichts wirklich funktioniert. Nun, das ist interessant. Nun, du bist vielleicht etwas verwirrt. Warum ist nichts los? Warum passiert nichts? Und deshalb ist es wichtig , dass ich auch diesen Abschnitt mit den drei D durchgehen wollte , anstatt ihn einfach Partikel zu nennen und zu sagen: Hey, dein Zwei-D-Wissenstransfer ist vorbei, denn drei D könnte ein bisschen verwirrend sein wenn du nicht daran gearbeitet hast. Wenn also die Transformatorlinien auf Z- oder Z-Werbetafel eingestellt sind, müssen wir auch unsere Ausrichtung herunterfahren und diese in Richtung Z oder Fläche Z ändern Und jetzt können wir es sehen. Und wenn wir uns umdrehen, können wir es immer sehen Es wird immer in die Kamera schauen. In Ordnung, das ist also großartig. Jetzt können wir tatsächlich damit beginnen diesen Käufer für uns Nun, wir werden in unserem Flugzeug in unser Material eindringen, richtig? also an einem vorbei, unserem Flugzeug , und das Material wird unter Orientierung gelesen. Und in Albedo, genau wie in normalen Three D, sieht alles gleich Wir werden in die Textur gehen und ich werde einfach meinen Rauch reinbringen Und du wirst sehen, dass es einen schwarzen Hintergrund hat. Nun, das ist nicht nett. Das ist nicht wirklich das , was wir geplant hatten. Ich dachte, naja, was wir erwartet hatten. Also, was wir dafür tun, ist , dass wir zum Bereich Transparenz kommen und dort Alpha einstellen. Und Sie haben hier weitere Optionen: Alpha-Scissor, Alpha-Hash und Depth Pre-Pass Nun, je nachdem, was Sie tun, kann das unterschiedliche Auswirkungen haben Aber für uns ist das Einzige, was wir speziell wollen, Alpha hier. Und für den Mischmodus werden wir ihn auf Hinzufügen einstellen, genau wie wir es in zwei D getan haben, als wir das Leinwandelement, das Material, hinzugefügt haben . Okay, jetzt kommen wir dem, was wir gewohnt sind, etwas näher . Anruf ist nicht wirklich wichtig. Wir können es auf der Rückseite lassen, nur damit es die andere Seite nicht rendert , da wir die andere Seite sowieso nie sehen. Und genau das bedeutet Anruf. Wenn wir es also nach vorne setzen, ist es immer noch da, aber es wird nicht nach vorne gerendert. Es wird die Rückseite gerendert, aber da die Vorderseite immer zu uns zeigt , werden wir sie nie sehen. Also werden wir es auf die Standardeinstellung „Rückseite“ setzen oder belassen , weil wir die Rückseite nie sehen. Wir sehen immer nur die Vorderseite. Und das wird auch die Leistung deiner Spiele verbessern , wenn du etwas in drei D machst. Auf diese Weise renderst du im Grunde nicht, was du nicht sehen kannst. Nun, was Shaded angeht, wenn wir uns umdrehen, werdet ihr sehen, dass es hier dunkel wird Und wenn es ein Feuer ist, hat es natürlich sein eigenes Licht, sodass es nicht wirklich Sinn macht das Feuer auf der einen Seite dunkel und auf der anderen hell Also gehen wir in den Bereich Schattierung unseres Materials und setzen ihn pro Pixel auf unschattiert Das Letzte, was wir in diesem Material tun müssen, ist unter Vertex-Shader aktivieren Und wenn wir das nicht verwenden, können wir weder die Farbe in unseren Partikeln noch die Farbvariation oder den Farbverlauf verwenden unseren Partikeln noch die Farbvariation oder den Farbverlauf Wir werden nichts davon verwenden können. Wenn das ausgeschaltet ist, bleibt es einfach weiß . Wir müssen die Farbe hier in Albedo verwenden, und das war's. Nun, das wollen wir natürlich nicht. Wir wollen dabei tatsächlich den Farbverlauf verwenden, deshalb werden wir diese Albedo verwenden und sie unter Scheitelpunktfarbe einschalten In Ordnung, also pass zeichnen. Wir können diesen Abschnitt komplett minimieren und wir sind fertig. Wir können einfach gezielt auf das Prozessmaterial oder unsere Partikel eingehen . Jetzt, genau wie zuvor, haben wir unsere Zeit, unsere Emissionsform und alles andere. Jetzt, da wir in drei D sind, werde ich unsere Emissionsform tatsächlich in eine Kugel ändern und meinen RTUS-Wert auf 0,4 setzen Im Grunde genommen wird uns das ein bisschen mehr Tiefe geben , sodass es nicht so flach aussieht Artikelkennzeichnungen, wir müssen uns über diese Richtung keine Gedanken machen Nun, wir wollen in die andere Richtung gehen, oder? Also haben wir unser Y gesetzt, ist es hier negativ Y? Nun, wir haben die Schwerkraft, die uns nach unten zieht. Und wenn der Abwärtstrend negativ ist, dann wollen wir positiv werden. Also sage ich einfach Schwerkraft auf Null und setze unser Y mit einer Richtung auf positive Eins. Anfangsgeschwindigkeit, ich setze sie auf vier. Und der Grund, warum ich so tief gehe, Sie sehen können, dass vier eine wirklich hohe Zahl ist, wohingegen es bei zwei D, wenn wir uns Pixel ansehen, eine sehr, sehr kleine Zahl ist. Nun, wir können sehen, dass sie sich in diesem riesigen Richtungsbereich ausbreitet, und das liegt daran, dass unsere Streuung bei 45 liegt, also reduzieren wir die Zahl auf etwa 12. Jetzt können wir etwas haben, das für ein Feuer etwas vernünftiger ist. Wir gehen. Und selbst dann möchten Sie es vielleicht noch weiter senken. 12 sieht aber so aus, als wäre es ziemlich gut für eine Zigarette. Und ich gehe rein und füge, wie wir es zuvor getan haben, meiner Skala eine neue Kurventextur hinzu. Und ich werde das zunächst verkleinern und dann gegen Ende verkleinern und hier einfach etwas finden , das für verkleinern und dann gegen Ende verkleinern und hier einfach etwas finden mich funktioniert Und ja, ich denke, im Laufe der Zeit einfach so von eins auf Null zu gehen , ich denke, das wird Meine Farbe, ich werde einen Farbverlauf verwenden, eine neue Verlaufstextur. Und genau wie zuvor werde ich hier zu Beginn eine Art Gelb verwenden. Ich werde irgendwo Orange hineinwerfen. Gegen Ende werden wir transparent sein. Wenn ich das einfach rüberschiebe, so etwas nehme und ich glaube, ich werfe noch mehr orangefarbenes Queue auf die andere Seite. Nur um dort wirklich, wirklich eine ganze Menge zu beeinflussen. Ich werfe kein Schwarz in die Bohne. Nur um ein besseres Feuergefälle zu bekommen, obwohl es, wie Sie sehen, hier völlig in Ordnung ist. Ich werfe einfach noch einen schwarzen auf diese Seite. Ordnung. Also einfach so, wir machen hier ein schönes Feuer. Und natürlich, abhängig von der Menge an Partikeln, die Sie hier hineinlegen wollen, vielleicht 200, wie Sie sehen, wird das einen großen Unterschied für das visuelle Aussehen machen . Acht ist also offensichtlich nicht die Zahl, die wir damit machen wollen. 50, die wir in zwei D verwendet haben, ist ziemlich anständig. Sie könnten also wahrscheinlich mit 50 statt mit etwa 200 davonkommen , aber Sie könnten immer mit 200 davonkommen, wenn Sie wollten. Aber in den meisten Fällen wir weitergegangen und haben unsere beiden D-Fire hier in Rot neu kreiert. Und natürlich können wir reinkommen und mit dem Q spielen, so dass wir ein magisches Feuer haben, erschaffen werden, unsere Que-Variante. Lassen Sie uns nun weitermachen und wir könnten uns das lineare Winkelgeschwindigkeits- Radio ansehen. Du kannst mit all dem Zeug spielen, wenn du willst. Winkel ist der Winkel, in dem die Textur erscheinen wird Also, wenn du damit herumspielen willst, könntest du. Also, wenn ich hochkomme, sagen wir bis zu 45 Grad, dann gibt das ein bisschen mehr Abwechslung und es sieht hoffentlich weniger Copy-Paste aus, es sieht ein bisschen schöner Aber insgesamt ist es das. Alles andere wird hier genau so sein wie bei zwei D. Sicheres kleines Setup, das wir am Anfang machen mussten. Und du wirst diese Kugel sehen, wenn du den Speerradius änderst Je größer wir das im Grunde machen, desto größer wird das Feuer sein Ich werde das einfach zurückstellen . D 0,4, nur zum Anschauen. Ja, bitteschön haben wir. Also etwas, das ich hier erwähnen werde, ist, da du in drei D bist, wirst du natürlich eine Weltumgebung haben, und wenn du Rauch hinzufügen willst, wird es genauso sein, wie wir in zwei D gemacht haben, direkt aus dem Rauch, mach den Aufbau wie in drei D hier und steck es einfach irgendwie ins Feuer. Aber irgendwann wirst du eine Weltumgebung in drei D haben. Wenn du ein beliebiges Drei-D-Spiel machst, vor allem, wenn du irgendeine Art von Nachbearbeitung haben willst. Da die Weltumgebung hier ist, habe ich der Szene einfach eine hinzugefügt. Und ich werde in eine neue Umgebung gehen, und hier und hier kommen Sie natürlich ins Spiel, und ich glaube, ich habe das einmal besprochen. Wir werden reinkommen und einen Himmel erschaffen. Das ist in den Himmel gekommen, erschafft einen neuen Himmel. Ich sage so einen seuralen Himmel. Und wir können unseren Himmel für ein Drei-D-Spiel einrichten. Aber was Sie auch in dieser Weltumgebung tun können , ist wenn wir nach unten gehen, um zu glühen, schalten Sie das ein Schau dir an, unser Feuer hat ein kleines orangefarbenes Leuchten und was besonders schön ist, wenn das Feuer hier im Mischmodus ist, wenn wir ihn auf additiv setzen , sieh dir das an. Jetzt haben wir diesen feurigen Blick , der wie Bloom aussieht, oder? Und wir können Bloom hier optimieren. Wenn wir wollten, könnte ich sehr schnell wahnsinnig werden. Da wäre deine Bloom-Option , wenn du das haben möchtest Und dein HDR-Schwellenwert, du kannst wirklich reinkommen und all diese Dinge anpassen, und du kannst hier genau sehen, wie sich das auf so etwas wie unser Feuer auswirken würde Siehst du, wir haben sogar dieses Flackern im Umlauf. Ich wollte dir nur zeigen, wie deine drei D-Partikel durch die Umwelt beeinflusst werden können, durch Optionen wie dein Bloom, deinen Mischmodus, die Aktivierung von Glow und solche Dinge Aber jetzt mache ich es hier für drei D-Partikel. 80. So codierst du jede Mechanik: Okay, schauen wir uns an, wie wir praktisch jede Mechanik programmieren können , die uns In diesem Beispiel werden wir also weitermachen und einen Doppelsprung für unsere kleine Rätselplattform oder unseren Charakter erstellen einen Doppelsprung für unsere kleine Rätselplattform oder unseren Charakter Und wenn wir darüber nachdenken, müssen wir wissen, dass wir vom Boden springen und einmal in die Luft springen werden. Um den Überblick über diese beiden Male zu behalten, müssen wir wissen, wie oft wir gesprungen sind , damit wir wissen, ob wir das können oder nicht Deshalb werde ich die Variablen hier genauer unter die Lupe nehmen, um den Überblick zu behalten, oder Anzahl der Sprünge ist standardmäßig Null. In Ordnung. Und wenn wir vom Boden springen, muss die Anzahl unserer Sprünge natürlich um eins plus eins steigen Cool. Also, was ist, wenn wir nicht auf dem Boden sind? Aber wenn wir nicht auf dem Boden sind, können wir das Gleiche tun wie hier, indem wir überprüfen, ob wir unsere Sprungtaste drücken, und hier können wir sagen, dass Anzahl der Sprünge weniger als zwei ist. Ordnung, das heißt, wir können springen, wenn wir Null haben , und wir können springen, wenn wir eins auf unserer Theke haben. Das gibt uns zwei Sprünge, oder? Null und eins. Und alles, was wir hier tun werden, ist das Gleiche, was wir tun, wenn wir normalerweise springen, oder? Wir gehen hoch und erhöhen die Anzahl unserer Sprünge. Jetzt werden Sie hier ein Problem feststellen. Wir werden einmal auf den Boden springen, einmal in die Luft, richtig? Wir haben unseren Doppelsprung. Aber wenn wir noch einmal versuchen, funktioniert es nicht. Wir sind wieder bei einem einzigen Sprung. Nun, warum glaubst du, ist das so? Nun, das liegt daran, dass unsere Zählung zu keinem Zeitpunkt zurückgesetzt wird, oder? Beginnt bei Null, richtig? Schauen wir uns das an. Wir fangen bei Null an und springen. Das ist eins, zwei, drei, vier, fünf, sechs. Nach dem ersten Doppelsprung sind wir also schon bei zwei oder mehr. Diese Aussage wird also nie wahr sein, also können wir diesen Sprung in der Luft nie wieder machen. Was bedeutet, dass wir die Anzahl der Sprünge irgendwann zurücksetzen müssen. Also, wann setzen wir diese Anzahl zurück? Wann lassen wir den Spieler seinen Doppelsprung zurück machen? Nun, normalerweise lässt man sie ihren Doppelsprung zurück machen, nachdem sie wieder auf dem Boden gelandet sind. Okay? Nun, woher wissen wir, wann wir am Boden sind? Nun, wir haben den Scheck schon, falls wir auf dem Boden sind. Also, wenn wir auf dem Boden sind, Anzahl der Sprünge gleich Null, richtig? Wir haben es einfach zurückgesetzt. Und jetzt haben wir diesen Doppelsprung. Jetzt geht's los. Also alles, was Sie tun müssen, ist langsamer zu fahren, über das Problem nachzudenken und darüber, was Sie zu tun versuchen. Denken Sie logisch darüber nach und unterteilen Sie es in jeden Schritt Und wenn Sie das tun, können Sie sich virtuell durch die Erstellung jeder Mechanik arbeiten , die Ihnen einfällt. In Ordnung So können Sie also so ziemlich jede Mechanik erstellen , die Ihnen für Ihre Spiele einfällt Und das kann genauso funktionieren du deine Software erstellst Nur natürlich nicht mit Sprüngen, sondern vielleicht die Implementierung einer Funktion oder Implementierung eines Tools oder einer Aktion oder so 81. Schwerkraft und Springen: Ordnung, also hier werden wir darüber sprechen , wie wir die Schwerkraft hinzufügen und unserem Spiel einen Sprung verleihen können Schwerkraft hinzufügen und unserem Spiel einen Sprung verleihen Und ich mache das hier in ihrem Bonus-Bereich, weil es per se nicht wirklich zu Roger passt Sie könnten zwar wieder reingehen, wenn Sie möchten, Sie könnten versuchen, dies zu einer Drei-D-Version hinzuzufügen. Aber Wahnsinn, denn wenn du zwei D-Spiele oder drei D-Spiele machst, wirst du wahrscheinlich irgendwann in der Lage sein müssen, zu springen oder mit der Schwerkraft zu arbeiten Also werde ich das trotzdem hier reinwerfen. Also, was wir hier zuerst haben, sind die drei physikalischen Körpertypen. Der statische Körper, der hier unten ist, dient als unser Boden, und der statische Körper ist etwas, das sich nicht bewegt, egal was mit ihm passiert. Du kannst dir das also wie den Boden, einen Baum, ein Gebäude vorstellen , richtig? Es ist etwas, das sich nicht bewegen wird, und es wird keine Auswirkungen haben. Der starre Körper zwei D hier , der sich auf der rechten Seite befindet, ist in unserem Bild bereits standardmäßig. So eingerichtet, dass Physik darauf angewendet wird. Das ist also etwas , mit dem man einfach interagiert, herumgeschmissen wird mit dem man einfach interagiert, für so etwas wie vielleicht einen Ball im Fußball, oder? Auf dem Spielfeld herumlaufen, es treten. Oder wenn du Sky Rim gespielt hast, all die Unordnung, das Essen, die Käseräder, die überall herumfliegen, wenn du herumrennst oder Aufhebens oder Da benutzt, richtig wenn du herumrennst oder Aufhebens oder Da benutzt Das sind alles starre Körper. Es ist etwas, das wirkt, wenn etwas mit ihm interagiert oder Kraft darauf ausgeübt wird Wenn wir das nun ausführen würden, würden Sie sehen, dass der starre Körper aufgrund dieser natürlichen Physik direkt nach unten fällt natürlichen Physik direkt nach unten und der statische Körper sich nicht bewegt Deshalb benutzen wir ihn als Boden Und natürlich auch andere Dinge wie Gebäude und so. Egal, welche Art von Physikkörper wir hier verwenden, Sie haben eine Kollisionsform, und das definiert die Form für diesen spezifischen physikalischen Körper. Und all diese haben Sprites, nur damit wir visuell sehen können, was hier vor sich geht Und wie ihr wisst, verwenden wir unseren Charakterkörper von Froger, wenn der Spieler die Kontrolle über einen bestimmten Charakter haben will und er Eingaben benötigt Nun, es gibt seltene Fälle in denen du vielleicht einen starren Körper verwendest, aber das wird zu diesem Zeitpunkt sehr spezialisiert sein diesem Zeitpunkt sehr spezialisiert Lassen Sie uns weitermachen und uns unseren Charakterkörper ansehen. Ich habe hier zwei Variablen, eine für unsere Schwerkraft, eine für unsere Körpergröße. Ordnung. Und innerhalb unseres Prozesses hier. Nochmals, das sollte wahrscheinlich ein physikalischer Prozess sein , nur weil es damit zusammenhängt, dass sich unsere physikalischen Körper bewegen. Aber für dieses Beispiel ist es in Ordnung. Um diese anstelle von Bewegung zu verwenden, verwenden wir Geschwindigkeit, und ein Charakterkörper hat standardmäßig bereits eine Geschwindigkeitseigenschaft mit vier Punkten X. Um diese Geschwindigkeitseigenschaft zu verwenden, müssen wir also bewegen und rutschen oder bewegen und kollidieren verwenden Ich werde hier „ Verschieben“ und „Schieben“ verwenden. Lassen Sie uns jetzt darüber nachdenken. Wann wollen wir, dass die Schwerkraft einsetzt? Nun, wir wollen, dass sie nur angewendet wird, wenn unser Charakter in der Schwebe ist , damit er wieder auf den Boden der Tatsachen zurückgebracht werden kann , richtig, wieder auf den Boden. Okay, nun, wie können wir sagen ob der Charakter nicht auf dem Boden liegt, und ihm dann Schwerkraft verleihen. Nun, genau das können wir machen. Goto hat eine eingebaute Funktion namens is on the floor, die für uns überprüft , ob wir uns auf dem Boden befinden Standardmäßig ist die Richtung nach oben in negativer Y-Richtung, das heißt positiv Y. Wenn wir mit etwas unter uns kollidieren, wird das als Boden betrachtet Wir können also sagen, ob es sich auf dem Boden befindet und wir haben nein gesagt. Und wir müssen dem unsere Schwerkraft hinzufügen, oder? Also nehmen wir unsere Geschwindigkeit und wir sind in zwei D und in drei D ist es dasselbe Wir greifen auf unsere Y-Achse zu. Und das legen wir mit unserer Schwerkraft fest. Nun, wir setzen das nicht gleich unserer Schwerkraft, weil wir wollen, dass unserer Schwerkraft, weil wir wollen unsere Schwerkraft uns nach unten zieht, oder? Und wenn du hinfällst, baust du Schwung auf und bewegst dich immer schneller. So funktionieren die Dinge, und wenn das Positive nach unten kommt, müssen wir addieren, dass Plus gleich Schwerkraft In Ordnung? Also, wenn wir weitermachen und das spielen, werden wir jetzt sehen, dass unser Charakterkörper genauso fällt wie unser starrer Körper. Spiel das nochmal. Stimmt? Unser Charakterkörper fällt vielleicht etwas schneller als unser vereister Körper, aber du siehst, sie funktionieren genauso. So würde man also die Schwerkraft auf eine Figur oder eine Art Physikkörper anwenden . Ordnung. Also, was ist jetzt mit Springen Nun, ich habe da oben eine Variable für meine Sprunghöhe, und das entspricht der Geschwindigkeit , mit der wir in der Luft aufsteigen Nun, wann können wir springen? Nun, wir können nur springen, wenn wir am Boden sind, oder? Anstatt zu überprüfen, wenn wir nicht auf dem Boden sind, wollen wir überprüfen, ob wir auf dem Boden sind. Es ist auf dem Boden. Und wir können das als zweites Argument hinzufügen und einfach sagen, und wir drücken unsere Sprungtaste, oder wir können es als separaten Einzug hier haben, falls das für Sie Sinn macht, je nachdem, welcher für Sie einfacher zu folgen ist Es wäre sauberer, die beiden Aussagen hier in einer Zeile zu haben die beiden Aussagen hier in einer Zeile Aber auch hier liegt es an dir. Sie möchten einfach versuchen, zu viele verschachtelte Aussagen zu vermeiden , wann immer Sie können Also sagen wir, wenn Eingabe Aktion ist , und wir wollen nicht „ gedrückt“ sagen, weil wir dann da sitzen und hüpfen werden wie ein Du willst also sagen, einfach gedrückt oder einfach losgelassen. Also, wann immer unser Finger nach unten geht oder wenn unser Finger nach oben geht , werden wir einen Sprung machen. Und das ist eine persönliche Präferenz. Ich ziehe es vor, mich selbst unter Druck zu setzen, und ich werde das zu meinem Job machen und wie gehen wir hoch Nun, wir machen das Gegenteil von Schwerkraft, oder? Wenn die Schwerkraft uns nach unten zieht, machen wir das Gegenteil, um nach oben zu gehen. Lassen Sie uns also unsere Geschwindigkeit auf unserer Y-Achse berechnen. Und wenn das Positive uns nach unten zieht, lasst uns das Negative nach oben gehen, also entspricht das Minus unserer Sprunghöhe Du siehst, wir sind am Boden und wir können weitermachen und springen Also einfach so, wir haben bereits eine einfache Sprungmechanik für uns entwickelt eine einfache Sprungmechanik für uns Und du wirst feststellen, dass wir nicht springen können, wenn wir in der Luft Wenn ich den Knopf drücke, können wir erst springen, wenn wir den Boden erreicht haben. Und wenn du Bewegung haben willst, bist du links und rechts bei der Arbeit mit deiner Geschwindigkeit wie in den meisten Spielen, wirst du es tun. Es wird genauso funktionieren wie unser Sprung hier. Also wenn wir weitermachen und nachschauen, werde ich mich aus meinem Wenn zurückziehen, also werde ich sichergehen, dass wir immer noch auf dem Boden sind. Ich werde sagen, dass Input Handeln ist. Und hier werde ich sagen, ruht euch solange wir links oder rechts halten, wir wollen uns bewegen. Ich werde richtig sagen. Dann werden wir unsere Geschwindigkeit überprüfen und diesmal auf der X-Achse fahren , weil wir uns nach links und rechts bewegen. Nun, wenn Sie in drei D sind, werden Sie mit der X-Achse und der Z-Achse arbeiten , und das wird natürlich eine größere Abhängigkeit haben. Aber für uns werde ich einfach hier hingehen. Für dieses Beispiel benötigen wir nur den Geschwindigkeitspunkt X. Und wenn wir nach rechts gehen , wird das positiv sein. Und wir können weitermachen und das auf etwa zehn setzen, und ich kopiere das für die andere Seite oder links, und wenn wir links sind, bedeutet das, dass es minus gleich ist Ich werde das anders machen, wenn. Wenn wir also nach oben drücken, springen wir, und dann haben wir eine separate Sekunde, wenn wir eine Kette haben. Wenn wir nach rechts drücken, gehen wir zu einem positiven X, wenn wir nach links drücken, gehen wir zu einem negativen X. Wenn wir einen Blick darauf werfen, sind wir fertig. Oh, da haben wir's. Hin und her rutschen. Wenn Sie diese Geschwindigkeit dort nicht erhöhen möchten, können Sie sie einfach auf eine Geschwindigkeit von X gleich einstellen, und schon fahren Sie sofort so schnell Wie Sie sehen können, gehen wir hier etwas langsam vor. Mal sehen, was passiert, wenn wir es auf 100 erhöhen. Also gut, da hast du's. Und wir können die ganze Zeit immer noch springen Nun, wir haben hier ein Problem, in diesem Fall, ob ich aufhöre, links oder rechts zu drücken, M E wird weiter in diese Richtung gehen , weil das nie eingestellt wird. Und das ist der Grund, warum die Kette ein separater Block sein muss. Wir haben also, wenn wir nach rechts drücken, wir sehen, ob wir links drücken, und wir können diese Kette beenden ein s, wenn Geschwindigkeit X gleich Null Und das ist alles was wir tun müssen. Und jetzt hört es auf, sich zu bewegen , wenn wir aufhören, unseren Knopf zu drücken. Und da ist unser Sprung. Da haben wir's. Ordnung, also los geht's. So können wir damit arbeiten, einen Sprung zu erzeugen Schwerkraft in deine Spiele zu integrieren Und ich nehme an, ein kurzes Beispiel dafür, wie Sie Geschwindigkeit anstelle von Position oder so etwas verwenden würden . Ordnung. Also das reicht für diesen kurzen Showcase. Ich zeige dir einfach, wie man die Schwerkraft benutzt und einen Sprung erzeugt, denn das ist etwas, das du wahrscheinlich wissen musst wenn du ein paar Gigs für dich selbst kreierst 82. Dateien speichern und laden: Ordnung, lassen Sie uns darüber sprechen, wie wir Dateien und die verschiedenen Dateitypen speichern können . Also beginnen wir hier mit der Textdatei, der klassischen Textdatei. Lassen Sie uns also weitermachen und wir können hier unsere Speicherfunktion erstellen. Ich habe hier eine zufällige Szene. Das Drehbuch drauf. Keine große Sache. Ist nicht wirklich wichtig, es wurde gespeichert, nur damit ich es ausführen kann. Und ich werde meine Funktion erstellen, Text speichern. In Ordnung. Also, was müssen wir tun? Nun, denk logisch darüber nach. Wir müssen irgendwo eine Datei öffnen. Wir brauchen die Schreibrechte, oder? Weil wir eine Datei schreiben und speichern wollen. Und wir wollen in der Lage sein , den Inhalt dieser Datei zu ändern. Gehen Sie also zu Zeile vier mit D und beschreiben Sie hier zwei, das meiste davon können wir tatsächlich in einer Zeile erledigen Also werde ich var F als meine Datei hier speichern. Und wir können das sauber machen , nur weil es hier nur in dieser einen Funktion verwendet wird Es ist nicht etwas, das überall verwendet werden wird. Es wird also nur vielleicht eine oder zwei Leitungen nutzen, oder? Also holen wir uns die Dateizugriffsklasse, und das nennen wir Open. Selbst wenn die Datei nicht existiert, müssen wir sie trotzdem an diesem Ort öffnen. Als Zeichenfolge gebe ich Rs weiter. Als Pooling-Sloh sollten wir es hier in unsere Seite unseres Projektordners legen unsere Seite unseres Projektordners Und ich werde weitermachen und ihm einen Namen geben und sagen, dass ich es Text Test Dot TXT nennen werde Text Test Dot Dann wird das zweite Argument der Modus sein, den wir ihm geben. Was davon abhängt , was wir tun. Jetzt speichern wir einen Text. Also, wie ich schon sagte, wir wollen in diese Datei schreiben. Also werden wir File Access Dot verwenden. Und an diesem Punkt haben wir eine Datei. Wir haben eine Datei, die geöffnet wurde , oder mein spezielles Verzeichnis mit Schreibberechtigungen für diese Datei. In Ordnung. Also, was müssen wir als Nächstes tun? Nun, wir müssen tatsächlich eine Information speichern. Nun, um das zu tun, müssen wir eine Information haben, die wir speichern können. Also habe ich das A MipSum unten mit Text in der Hand , den wir als Platzhalter verwenden Also werde ich einfach meine Variable hier oben erstellen und sie nicht Text und Ich möchte nicht verwirren. Nennen wir das vielleicht eine Geschichte, oder? Vielleicht haben wir eine Bewerbung für eine Geschichte oder Bewerbung zum Schreiben. Wir haben all diesen Text hier , den wir speichern werden. Nun, es ist nicht wirklich wichtig, was es ist, aber wir werden das tun, damit wir in den Laden gehen können. Und wir können sagen: Zeichenfolge speichern, R speichern, Zeile speichern. All diese verschiedenen Optionen hier. Im Moment sage ich einfach Store Line und dann Store Story. Der ganze Text, der in der Geschichte steht. Aber meine Ready-Funktion, ich werde weitermachen und diese Funktion zum Speichern von Haustieren aufrufen . Und wenn ich das starte, sieht es zunächst so aus, als wäre nichts passiert. Wir werden schließen und uns unsere Akten ansehen. Wir sehen Texttests, TXT genau hier, und da ist der gesamte Inhalt drin. Okay. Also, wie können wir diese Informationen tatsächlich laden? Ich werde weitermachen und alles darin löschen. Damit wir sehen können, dass die Geschichte ein D ist. Wann fangen wir damit an? Und schauen wir uns an, wie wir einen Text oder Informationen aus dieser Textdatei laden würden . Text laden. Jetzt müssen wir gleich anfangen und unsere Datei öffnen. Nur dieses Mal wollen wir die Leseberechtigungen haben, weil wir den Inhalt lesen wollen, der darin enthalten ist. Also lesen statt schreiben. Und wenn wir store string verwendet haben, können wir das jetzt als Text für unsere Datei aufrufen. In unserem Fall können wir nun weitermachen und eine Geschichte zuordnen , die dem Text in dieser Situation entspricht. Wenn wir also Text laden, können wir ihn dort automatisch ausfüllen und die Story drucken. Wenn wir uns die Ausgabe ansehen. Wir können sehen, dass unsere Geschichte gedruckt wurde, aber unsere Geschichte begann leer. Offensichtlich wurde sie problemlos geladen und wir haben all unsere Daten daraus gewonnen. Also dieser Teil ist fantastisch. Also gut, ich werde weitermachen und dir die Store-VR zeigen , falls du das anstelle von Store Line wählen möchtest Sie müssen Ihre Variablen einzeln einzeln speichern , so wie das ist Und wenn wir uns die Datei danach ansehen, stellen wir fest, dass wir nicht wirklich etwas sehen können. Wir können die Informationen, die hier drin sind, nicht wirklich sehen. Und ich schätze, es kann etwas Gutes oder Schlechtes von dir abhängen. Aber um diese Informationen zu laden, müssen wir Get Navar verwenden, und wir müssen das kontinuierlich für so viele Variablen tun , wie wir dort gespeichert haben, und sie werden in der gleichen Reihenfolge zurückkommen , in der sie gespeichert wurden Sie müssten also sicherstellen, dass Sie sie in genau derselben Reihenfolge laden , um sie zu speichern. Wann immer Sie die Datei speichern, müssen Sie also auch Ihre Ladefunktion aufrufen auch Ihre Ladefunktion und diese jedes Mal bearbeiten. Sie könnten es also so machen, und es gibt einige Leute, die das persönlich tun. Das gefällt mir nicht. Wenn ich mehrere Codeteile wie diesen oder mehrere Daten speichern möchte, sollte ich sagen. Meiner Meinung nach gibt es bessere Möglichkeiten. Und eine davon wäre nur eine JSON-Datei. Und damit speichern wir es natürlich einfach und laden es. Es spielt keine Rolle, ob wir später in der Zukunft Daten hinzufügen oder nicht. Lassen Sie uns also weitermachen und uns das ansehen. Ich werde einfach weitermachen und das alles da runterschieben. Und wir werden hier eine Funktion erstellen, richtig? Also sagen wir Funk, rette Jason. Und wie würden wir die JCN-Datei speichern? Nun, so wie wir es zuvor getan haben. Wir benötigen eine Datei mit Schreibrechten. Offensichtlich wird es kein Text sein. Es wird ein JSON sein. Und alles, was wir tun müssen ist, dass wir hier auch Line speichern können. Wir können also sagen, oder nicht, Var FDA Store Line. Und die Art und Weise, wie wir das speichern, wäre json dot springify und übergeben das Informationswörterbuch Also werde ich weitermachen und das Wörterbuch mit den gleichen drei Informationen hier erstellen den gleichen drei Informationen hier In Ordnung, wir haben also weitergemacht und fangen damit an. Wir haben den Speicher eingerichtet, oder? Line-, Stringify - und Buy-Daten speichern — das ist natürlich unser Wörterbuch, das wir hier haben Und wir nennen unsere Funktion Save Jason, also lassen Sie uns das ausführen. Okay. Das sollte lang genug sein, schließen Sie es und wir schauen in unsere Dateien und wir haben jcnFle hier. Da hast du's. So würde unser JSON Five jetzt aussehen. Und jetzt können wir das durchgehen und einzelne Informationen zuweisen, sodass wir sagen können, dass Erfahrung gleich ist, und dann einfach die Erfahrung daraus ziehen , zum Beispiel, oder wir können uns einfach für das Ganze entscheiden und einfach sagen, dass meine Daten unseren temporären Daten entsprechen sobald wir sie tatsächlich geladen haben Sie können also sehen, dass das viel besser funktionieren würde, und es gibt natürlich sogar die Ladenbar, oder? selbst wenn wir VR speichern würden, hätten wir mehrere Wörterbuchgruppen, oder? Wir haben also mehrere JC Bile- oder JSON-Lies drin. Aber schauen wir uns an, wie wir diese Informationen laden würden Also werde ich weitermachen und alles aus meinen Daten löschen. Vorerst. Eigentlich nicht, nimm es an. Ich werde es einfach auskommentieren , damit es nicht existiert. Es ist also dasselbe, als ob es zu diesem Zeitpunkt ein leeres Wörterbuch wäre. Und schauen wir uns an, wie man eine JSN-Datei lädt. Wir erstellen eine Funktion, laden Jason und wie alles zuvor müssen wir eine Datei mit den richtigen Berechtigungen öffnen Also werden wir lesen statt zu schreiben. Also, was machen wir , das anders ist? Nun, dafür benötigen wir tatsächlich ein JSON-Objekt, weil wir die Funktion, die wir benötigen, nicht aufrufen können , ohne eine tatsächliche Instanz davon zu erstellen. Also werde ich sagen, dass var J gleich JSON ist. Neu. In Ordnung. Und wir wollen es analysieren oder beim Parsen nach Fehlern suchen, also sagen wir, parse-Fehler ist also sagen wir, parse-Fehler Es wird J dot pars sein wo wir unseren Text Val übergeben, richtig F-Punkt als Text. Und jetzt können wir das überprüfen. Also werden wir sagen, ich pars error. Ist gleich Null, oder? Also doppelt ist hier gleich. Und wenn es Null ist, bedeutet das nur, dass wir keine Probleme hatten, als es darum ging, unsere Informationen zu analysieren Was bedeutet, dass es für uns sicher ist, diese Daten zu verwenden. Somit können wir weitermachen und meine Daten signieren. Ist gleich J, denn denken Sie daran, wir die Informationen analysiert haben , sodass die Informationen in diesem JSON-Objekt gespeichert werden JG-Daten. Und wenn wir hierher kommen würden, könnten wir weitermachen und wir könnten sogar alles vorher machen, oder? Also drucken wir nach Daten und stellen sicher , dass sie leer sind. Laden Sie unsere JCN-Datei und drucken Sie Ihre Daten anschließend erneut Schau dir den Lauf an. Siehst du, wir hatten ein leeres Wörterbuch und danach hatten wir alles geladen. Da hast du es also. Und es spielt keine Rolle, in welcher Reihenfolge sich diese Dinge befinden, da es sich um Schlüsselwertpaare handelt. Es könnte eine alphabetische Reihenfolge sein, es könnte eine zufällige Reihenfolge sein Solange der Schlüssel und der Wert immer noch übereinstimmen, würde das keinen Unterschied machen Aber da hast du's. So würdest du etwas für JSON-Dateien tun. Und ich persönlich habe sie früher absolut gehasst und sie um jeden Preis gemieden. Ich war zu der Zeit stur, und ich hätte zu der Zeit lieber zehn zufällige Textdateien verwendet als nur eine JSON-Datei Zu der Zeit war es eine sehr schlechte Angewohnheit, aber jetzt verwende ich JSON-Dateien, und das ist zumindest meine bevorzugte Methode, um alle meine Variablen persönlich zu speichern zumindest meine bevorzugte Methode, um alle meine Variablen persönlich Also, wenn Sie mehrere Variablen haben , die Sie speichern möchten, los geht's. Sie können weitermachen und das einstellen. Und selbst wenn Sie wollten , auch wenn Sie nur ein temporäres Wörterbuch erstellen wollten, nur um alles zu speichern. Aber das sind nicht die einzigen Daten, die wir verarbeiten können. Es gibt mehr Daten. Und vor allem die, die für Softwareentwickler hier wirklich wichtig sein wird , insbesondere für Spieleentwickler bei denen Sie Dinge wie Ihre Audio- und Anzeigeoptionen organisieren möchten , werden wir eine sogenannte Konfigurationsdatei verwenden. Nun, eine Konfigurationsdatei sieht sehr professionell aus. Und wenn Sie Sky Room modifiziert haben, tippen Sie auf die INI-Datei, Sie werden genau wissen , wie das aussehen wird. Sieht aus wie Diese Konfigurationsdateien oder I&I-Dateien sind Konfigurationsdateien. Und sie ermöglichen es uns, all unsere Informationen noch übersichtlicher und organisierter zu halten noch übersichtlicher und als beispielsweise eine JSON-Datei Ordnung, also werde ich sie einfach zur Seite schieben und wir sagen Funk, Konfiguration speichern. Und im Gegensatz zu JSNFles wird das ganz anders gespeichert Und dafür werden wir auch ein Wörterbuch benötigen. Nur dieses, ich nenne das meine Einstellungen. Also kommen wir rein und hätten, sagen wir, Display-Einstellungen hier angezeigt, richtig? Und das würde als eigenes Wörterbuch eingerichtet werden. Ich werde weitermachen und diese löschen. In diesem Display, ich weiß nicht, vielleicht haben wir eine Grafik. Nun, natürlich wird es sich schnappen , das wir voreingestellt haben. Vielleicht hat der Benutzer standardmäßig Medium. Und vielleicht ist das Option Index zwei, weißt du, was auch immer du speichern willst Okay, wir kommen runter Wir können eine andere Option wählen, wir sagen, es gibt einen Lucian und ich werde weitermachen und die Seife für uns einfach komplett mit einigen Beispielinformationen füllen uns einfach komplett mit einigen Beispielinformationen Richtig? Ich habe hier nur ein Beispiel für einige Einstellungen, ein gewisses Display , etwas Audio, und natürlich können Sie weitermachen, so viele Informationen hinzufügen, wie Sie möchten, so viele Kategorien hinzufügen, würden wir sagen. Das ist also das Wörterbuch , das wir beim Speichern und Laden für die Konfiguration verwenden werden. Das erste, was wir in unserer Speicherfunktion tun müssen , ist, dass wir eine Konfiguration benötigen, also werde ich ein neues Konfigurationsdateiobjekt erstellen. Konfigurationsdatei. Neu. Und jetzt verwenden wir etwa vier Loops. Ich sage vier Abschnitte in den Einstellungen, Tasten, Einstellungen, Punkttasten. Okay. Also für alle unsere Bereiche, also wird es Display und Audio sein. Also haben wir hier zwei Abschnitte. Also für jeden von ihnen und dann für P im Einstellungsbereich wir Innenanzeige und wir sagen , für jedes dieser HDR-Bilder mit voreingestellter Auflösung, machen Sie diesen nächsten Codeblock. Dann werden wir innerhalb von Audio denselben Codeblock für die nächste Sammlung von Schlüsseln in diesem Abschnitt verwenden. Und was wir hier tun werden, ist , einige Werte festzulegen. C-Punkt setzt den Wert, und der Sollwert benötigt ein paar Argumente. Es wird unseren Abschnitt dauern, folgen Sie unserem Schlüssel. Und dann Abschnitt mit Einstellungen und Schlüssel. Ich habe irgendwo einen Tippfehler, nicht wahr? Ja, ich verwende ausschließlich Kleinbuchstaben. Sie sollten in Großbuchstaben geschrieben sein. Los geht's Ordnung, also legen wir einige Werte in dieser Konfliktdatei fest. Und Sie stellen fest, dass wir unsere Datei noch nicht geöffnet haben oder so. Also außerhalb dieser Doppel-Vier-Schleife rufen wir jetzt C dot save und den Ort, den wir speichern wollen, auf. Also in unserem Fall, Res, Collash dafür. Ich möchte hier also darauf hinweisen, dass der Speicherort auf allen Geräten der Benutzerstandort sein wird, und das wird je nach Plattform unterschiedlich sein , oder? Mac wird sich also von Windows unterscheiden, was sich von Linux unterscheidet, es wird sich von Android unterscheiden. Aber jeder Standort wird einen Benutzerstandort haben. Also benutze ich Breed nur, damit wir es einfach im Dateisystem sehen können , ohne eine Menge Captures machen zu müssen und zu versuchen, das herauszufinden. Und ich werde das einfach als meine Einstellpunkt-INI-Datei speichern . Also, wenn ich diese Konfiguration jetzt speichere und wir sie ausführen, ist das genug Zeit. Wir schauen uns unsere Dateisysteme an und Sie können hier sehen, dass ich eine INI-Datei mit den Einstellungen habe. Wenn ich das öffne, kannst du sehen, wie alles gut in Kategorien für alles organisiert ist . Sie können also sehen, wie Confit-Dateien sowohl sehr professionell als auch sehr organisatorisch aussehen können sowohl sehr professionell als auch sehr organisatorisch aussehen als auch sehr organisatorisch Und ich benutze immer noch nur ein Wörterbuch. Technisch gesehen verwenden wir Wörterbücher und Nebenwörterbücher, um dies zu Und Konfigurationen wären, wie ich dort schon sagte, meine größte Präferenz, alles, was mit Einstellungen oder Präferenzen in einem Spiel oder einer Anwendung zu tun Einstellungen oder Präferenzen in einem Spiel oder einer Anwendung In Ordnung. Also wie würden wir sparen, nicht sparen. Wie würden wir das CiFo laden? Nun, schauen wir uns das Laden einer Konfiguration an. Konfiguration laden. Und natürlich benötigen wir ein neues Konfigurationsobjekt, das wir verwenden können. Und wir werden als Erstes nach Fehlern suchen . Also speichern wir Fehler C Punkt Load und suchen nach der Datei mit den Einstellungen. Es wird wahrscheinlich ganz unten sein, Leute. Ich werde einfach auf meiner Tastatur tippen. Da ist T und da sind meine Einstellungen I und I. Alles klar. Jetzt wissen wir also, ob beim Laden Fehler aufgetreten sind. Also können wir sagen, ob Ups. Fehler, ungleich. Okay. Wenn wir also aus irgendeinem Grund einen Fehler beim Laden haben, können wir weitermachen und einfach etwas anderes ausdrucken, das beim Laden fehlgeschlagen ist, und wir haben tatsächlich einen Fehlercode, auch diesen. Also können wir Fehlercode sagen und unsere Prozente angeben. Wir können das einfach mit dem Fehler einbeziehen. Wenn ich nun die Steuerung gedrückt halten und auf Okay klicken würde, können Sie sehen, dass wir dadurch zu diesem Abschnitt hier gelangen. Okay ist Null. Aber wenn ich nach unten scrolle, können wir hier all die verschiedenen Fehlercodes sehen. Kann nicht schreiben, kann nicht geöffnet werden, wird bereits verwendet, keine Erlaubnis, falscher Pfad, nicht gefunden, beschädigt, kann nicht erstellt werden, Timeout kann keine Verbindung hergestellt werden, Methode nicht gefunden, Link nicht gefunden, Analysefehler Sie können also alle unsere Fehlercodes hier sehen. Wenn Sie also jemals einen Fehlercode erhalten sollten, müssen Sie nur hierher kommen und ihn nachschlagen dann können Sie genau sehen, was das Problem war. Ordnung, wenn wir jetzt annehmen, dass wir keinen Fehler hatten, können wir weitermachen und unsere vier Schleifen ausführen, und ich werde einfach dieselben zwei von oben kopieren Wir haben also vier Abschnitte mit Einstellungstasten, vier Tasten und Einstellungen Und dieses Mal innerhalb der Schleife wir einfach weiter und sehen es uns an. Wir haben unseren Einstellungsbereich so eingestellt , dass ich das richtig schreiben kann. Wir setzen dies auf die Informationen, die wir aus dem Wert conf C Punkt T erhalten . Und hier wird es buchstäblich dasselbe sein , im Einstellungsbereich. Es wird ein bisschen anders geschrieben werden. Wir übergeben einfach den Abschnitt E. Und dann setzen wir unser letztes Argument einfach auf Null, was die Standardeinstellung sein sollte. Aber gib das trotzdem ein. Und jetzt merkst du , ob wir hochkommen. Beachten Sie, dass unser Meister hier Stift schreibt, oder? Für Audio. Und wir werden wissen, dass das funktioniert. Also werde ich das vermasseln. Ich gehe in meine Einstellungen auf INI und ändere Master 10-100, speichere es Jetzt führen wir die Load-Konfiguration aus. Ich werde hier einen Satz von zehn Exemplaren für Master ausdrucken lassen. Wir holen uns die Hundert, nachdem wir geladen haben. Schauen Sie sich Audiosecon Master 100 an, damit wir wissen, dass es erfolgreich geladen wurde. Da hast du's So können wir Konfigurationsdateien, JSON-Dateien und Textdateien speichern und laden . Jetzt liegt es an Ihnen, zu bestimmen , welcher Dateityp für Ihre Situation am besten geeignet ist . Aber so können Sie alle drei machen. 83. Auslöser und Pedale: Okay, lassen Sie uns über die Unterstützung der Trigger auf einem Controller sprechen , wie, Sie wissen schon, linker Trigger, rechter Trigger , L zwei, R zwei, was ist das? ZL oder ZL und Z Z, ZR. Ich schaue mir die Nintendo-Tasten nicht wirklich an, aber ich denke, das sind es Nun, leider wechseln die Switch-Controller dafür nur Klicken, sodass sie nicht wirklich Auslöser sind Sie haben nicht diese Reisezeit, diesen Reiseweg. Sie stehen entweder unter Druck oder nicht. Leider kann ich sie nicht verwenden, um Ihnen das hier zu zeigen. Also, was ich verwenden werde, ist mein Analogstick, um das für Sie zu simulieren. Aber du kannst das für diese Auslöser verwenden. Du kannst das zum Beispiel für einen Analogstick verwenden , wenn du dich vorwärts bewegst, gehst und wenn du ihn ganz drückst, läuft dein Charakter, das wäre eine weitere Verwendung für das, was ich dir hier zeigen werde. Und eine weitere Verwendung, die ich cool finde , ist, dass du dieses Konzept zur Unterstützung von Lenkrädern und Pedalen verwenden Unterstützung von Lenkrädern und Pedalen kannst, wenn du zum Beispiel ein Rennspiel entwickelst Weil du die Reisezeit hast, die funktioniert das Lenkrad gedreht wird, wie weit es nach links und nach rechts gedreht ist, wie stark dein Gaspedal gedrückt ist, wie stark die Kupplung gedrückt ist, wie stark deine Bremse gedrückt ist Sie können dies also für eine Vielzahl von Steuerungen verwenden , wie Sie sehen können. Und Sie können sich dafür so viele verschiedene Verwendungsmöglichkeiten vorstellen. Eine der alten Anwendungen ist, dass man die Schießtaste ein Stück nach unten drückt, sie zielen, man drückt sie ganz und sie schießen. Also habe ich in meinen Projekteinstellungen eine Schießtaste erstellt . Und wie gesagt, ich werde das einfach mit meinem Analogstick simulieren, weil meine Auslöser klickend sind So funktionieren sie nicht. Das ist ein Super-Nintendo-Controller , der modernisiert wurde, also habe ich nicht die richtigen Auslöser, um Ihnen das zu zeigen Also nochmal, ich werde einfach meinen Analogstick benutzen, um zu emulieren, was Sie erwarten können Also hier in der Prozessfunktion werde ich weitermachen und es für uns ausdrucken Nur damit du es sehen kannst, und das wird ein Eingabepunkt sein. Und wir werden sagen, hol dir Aktionsstärke. Jetzt siehst du rohe Stärke und Stärke und fragst dich vielleicht, was der Unterschied ist. Raw Strength ignoriert die tote Zone deines Controllers. Bei Get Action Strength wird die tote Zone berücksichtigt, oder? Also werde ich einfach Stärke einsetzen, und ich werde Schießen benutzen, um dir das zu zeigen. Also, wenn wir weitermachen und das überprüfen, kannst du das ignorieren. Nichts davon ist wichtig. Und wir können einfach hier unten in der Ausgabe nachschauen und Sie werden sehen, wenn ich anfange, mich zu bewegen, bleibe ich nach rechts, was Sie sich wieder vorstellen können, sich bewegt, um zu blockieren, oder es sind Auslöser. Wie Sie sehen, bin ich in meiner toten Zone. Und wenn ich die tote Zone verlasse, bist du da. So können Sie sehen, wie weit mein Stick hier ganz nach oben gedrückt wird , bis wir ganz fertig sind, was in meinem Fall etwa 0,98 ist Und Sie können das so verwenden, wie ich es situiert oder vorgeschlagen habe, oder Ihre verschiedenen Jetzt kann ich weitermachen und das zeigen. Und manchmal benutze ich meinen Analogstick, um zu laufen und zu rennen. Wir würden also sagen, wenn der eingegebene Punkt Axt und Stärke erhält, heißt es schießen, was Sie sich vorstellen können, einfach zu gehen oder vorwärts zu gehen oder was auch immer. Wenn die Aktionsstärke größer als, sagen wir, 0,9 ist, drucken wir „Laufen“ oder „ Schießen“ aus und dann können wir eine weitere Option wählen, ob oder aber, ob beide hier funktionieren. Und wir werden hier fast die gleiche Situation haben , wenn wir etwas eingeben, Aktionsstärke bekommen, schießen. Es ist größer als, und wir werden sagen 0,01. Auf diese Weise sind wir also im Grunde in der toten Zone und wir wissen, dass wir uns bewegen. Alles, was wir tun werden, ist , es auszudrucken und zu sagen: Gehen oder Zielen. Alles klar. Jetzt wirst du es gleich hier unten sehen. wir unterwegs sind, wenn wir unseren Sprigger teilweise gedrückt haben oder unser analoger Stack sich nur teilweise bewegt, gehen wir oder gehen wir Und sobald wir den ganzen Weg gegangen sind und ihn dort gedrückt halten, rennen wir weg oder drücken unsere Auslöser bis zum Ende, wir werden den wir Bam. Da hast du's. Sie können also sehen, wie nützlich das ist. Sie können das also in eine Serie mit einem Gaspedal aufnehmen , oder? Wie schnell oder wie schnell werden Sie sein, richtig? Sie werden also vielleicht Ihre Geschwindigkeit mit Ihrer Aktionsstärke multiplizieren lassen, und das wird zeigen, wie schnell Sie fahren, und das Gleiche gilt für das Anhalten, oder? Wenn Sie das Bremspedal betätigen, wissen Sie, wie schnell Sie die Geschwindigkeit reduzieren werden Du nimmst das und multiplizierst das mit der Stärke des Bremspedals. Und jetzt, je stärker du es drückst , desto schneller wirst du aufhören. Ordnung. So kann man so etwas wie Actionstärke verwenden, was quasi exklusiv Controllern vorbehalten ist . Sie können es auch auf dem PC verwenden. Das Problem ist bei Dingen wie Tastaturen, dass normalerweise eine Taste gedrückt wird oder ein Rotz, also entweder Null oder Eins, weshalb wir bei PC-Spielen normalerweise eine alternative Taste haben, Sie haben eine Walk-Taste oder einen Walk-Toggle, den Sie verwenden würden, während Sie beim Controller den Analogstick nur teilweise oder ganz bewegen während Sie beim Controller den Analogstick nur teilweise oder ganz bewegen. 84. Controller-Vibration: Ordnung. Also hier werde ich dir zeigen, wie du deinem Spiel Vibration hinzufügen kannst. Und wir sprechen über Dinge wie deine Controller. Nun, ich habe keinen Controller , der Vibrationen unterstützt, also kann ich den Controller nicht am Mikrofon oder auf dem Schreibtisch oder so verwenden und dich hören lassen. Da muss ich mir irgendwie beim Wort nehmen. Und wenn Sie es nicht glauben, können Sie weitermachen und die Dokumentation lesen , sie nachschlagen, suchen, und Sie werden feststellen, dieselbe Antwort auf das bekommen was ich Ihnen hier sagen werde. Also wann immer du jetzt Vibration erzeugen willst , könnte ich das hier hinstellen, oder? Ich kann es hier oder hier oben platzieren, weißt du, wo auch immer ich möchte, dass diese Schwingung auftritt. Und normalerweise hat man das bei einem starken Angriff oder wenn der Spieler getroffen wird, zum Beispiel immer dann, wenn man möchte, dass diese Vibration auftritt. Um das zu erreichen, holen wir uns einfach unsere Eingabeklasse, also starten wir den Eingabepunkt mit der Joy-Vibration. Und das erfordert vier Argumente. Das erste ist das Gerät, und hier ist die Geräte-ID. Und für den ersten Spieler, deinen ersten Controller, ist das normalerweise Gerät Null. In Ordnung. Als Nächstes werden wir die Größe unserer schwachen Motoren untersuchen. Nun, die schwachen Motoren befinden sich normalerweise an der Oberseite des Controllers, und sie sind offensichtlich nicht so stark wie die Unterseite, weil sie einfach wackeln wollen, einige da oben klappern Und der Grund, warum sie oben schwächer sind, ist, dass Sie die Unterseite des Controllers fester im Griff die Unterseite des Controllers haben als oben, oder Sie wollen es nur schütteln. Sie wollen es nicht schwer machen, die Knöpfe zu drücken oder dich daneben zu bringen. Wir können also 0,5 Saiten sagen. Das dritte Argument wird dasselbe sein, aber unsere starken Motoren. Die starken Motoren befinden sich an der Unterseite des Controllers. Normalerweise findet man das so ziemlich genau dort, wo sich die Handflächen befinden. Da wird es also schön fest eingewickelt sein. Und beachten Sie, dass diese Größen auf einer Skala von Null bis Eins liegen. Wir können also auch hier 0,5 sagen. Zu diesem Zeitpunkt wackelt der gesamte Controller also mit halber Stärke, sowohl die obere als auch die untere Hälfte Und das Letzte hier ist die Dauer, und das ist die Dauer in Sekunden, wie lange es vibrieren wird. Wenn wir fünf angeben, wird es 5 Sekunden lang vibrieren Wenn Sie also dieses Flugzeug mit einer Animation oder einem Angriff haben und wissen, wie lange es dauern wird, können Sie weitermachen und es dort einbauen Und da ich das in der Bereitschaftsfunktion habe, würde, wenn ich das spielen würde und ich einen Controller hätte , der Vibration unterstützt , mein Controller sofort für 5 Sekunden anfangen zu vibrieren , sobald mein Spiel ist Okay, es ist so einfach, Ihrem Spiel Vibration hinzuzufügen Du nimmst diese eine Codezeile und platzierst sie an der Stelle , an der du vibrieren möchtest