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