UE4 für Anfänger:innen – erstelle eine 2D-Plattform mit Unreal Engine 4 | Dev Enabled | Skillshare

Playback-Geschwindigkeit


1.0x


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

UE4 für Anfänger:innen – erstelle eine 2D-Plattform mit Unreal Engine 4

teacher avatar Dev Enabled

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Einheiten dieses Kurses

    • 1.

      01 – Kurseinleitung

      2:22

    • 2.

      02 – Projektaufbau

      9:39

    • 3.

      03 – Spielereingabe

      18:05

    • 4.

      04 – Texturen

      7:08

    • 5.

      05 – Flipbooks

      13:27

    • 6.

      06 – TileSets

      6:22

    • 7.

      07 – TileMaps

      10:06

    • 8.

      08 – Einrichten von Player

      14:37

    • 9.

      09 – Verbesserungen für die Animation von Playern

      11:10

    • 10.

      10 – Spielergesundheit

      10:39

    • 11.

      11 – Spielergesundheit Widget

      16:30

    • 12.

      12 – Enemy Base

      8:28

    • 13.

      13 – Enemy Bat

      9:01

    • 14.

      14 - Enemy Bat Bewegung

      8:43

    • 15.

      15 – Enemy Bat

      17:14

    • 16.

      16 – Schaden

      24:57

    • 17.

      17 – Player

      12:53

    • 18.

      18 – Interaktive Basis

      10:35

    • 19.

      19 – Interaktive Gesundheit

      9:07

    • 20.

      20 - Interaktives Frühling

      9:00

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

Von der Community generiert

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

853

Teilnehmer:innen

3

Projekte

Über diesen Kurs

Beginne mit UE4, indem du lernst, ein Spiel aus einer der klassischen Genres, dem 2D-Plattformer, zu machen.

- Lerne, wie du das integrierte Paper2D-System verwendest.

- Sieh dir einige Vorteile der Nutzung von UE4 für 2D-Spiele an.

- bedecke die Grundlagen der Programmieren eines player Feinde, Pickups und mehr.

Triff deine:n Kursleiter:in

Teacher Profile Image

Dev Enabled

Kursleiter:in
Level: Beginner

Kursbewertung

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

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

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

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

Lerne von überall aus

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

Transkripte

1. 01 – Kurseinleitung: Jeder, und willkommen zu diesem kurzen Überblick über den Abschnitt der Videos. Was wir bei der Herstellung eines 2D-Jump'n'Run Spiel in der Unreal Engine suchen werden. Unreal ist bekannt als eine sehr Art leistungsstarker, schwerer, 3D-basierter Motor, aber es hat einige einzigartige Funktionen und sehr leistungsfähige Werkzeuge, die es uns auch ermöglicht, diese 2D-Projekte innerhalb von Unreal zu machen. Haben Sie hier ein Beispiel für einige Projekte, die sogar auf einige komplette Projekte, die mit der Unreal Engine gemacht wurden, es mit dem vorgefertigten Animationssystem und einigen der Level-Design-Tools, die mit Unreal vorverpackt sind. Einige der Gründe, die Sie diese Art von 3D-fokussierten Engine verwenden möchten , um ein Spiel wie diese zu machen, die Sie im Hintergrund sehen können. Unreal kommt mit einigen leistungsstarken Beleuchtung in Richtung Sie können auf jeden Fall die Lichteffekte implementieren, wie Sie in einigen der Spiele sehen können, haben den Aufbau von Dingen wie Normalen und bekommen , dass normale reflektierende Oberflächenqualität, die Sie würde erwarten, in anderen 3D-Spielen zu sehen. Sie haben auch Dinge wie den ApiPath Reisenden , der wieder in Unreal gemacht wurde. Und das nutzt ein bisschen das Beste aus beiden Welten und schafft ein etwas einzigartiges Spiel, das noch nicht wirklich gesehen wurde, wo es eine Art 2,5 D Spiel ist, wo die Welt 3D ist, aber alles funktioniert von 2D Animationen zu bekommen selten ursprünglichen Gefühl JPEG, aber bringen es zu einer Art von modernen und revitalisierten Publikum hier. Andere Spiele verwenden sehr ähnliche 2.5, die 3D-Welt, aber auch 2D-Animationen. Alles, was wir haben Spiele, wie Sie gesehen haben, die eine rein 2D und wir werden in diesem Kurs suchen, wie wir beginnen können ein Verständnis davon zu bekommen, wie einige dieser Systeme zu nutzen, um ähnliche Spiele zu machen. Um dies zu tun, werden wir von einem leeren Projekt arbeiten und werden bis zu dieser Art von kompletten Ansatz Art vertikale Scheibe eines 2D-Jump'n'Run, volle Breite,ein Spieler, Spieler-Animationeneinige grundlegende feindliche KI führen dieser Art von kompletten Ansatz Art vertikale Scheibe eines 2D-Jump'n'Run, volle Breite, ein Spieler, Spieler-Animationen , automatisiert als auch. Wir werden einige verschiedene hartnäckige Klassen haben, wie die Federn und die Gesundheit Pickup. Also haben wir ein vollständiges Gesundheitssystem und dann wird all dies mit einem Fokus auf sauberen, strukturierten, wartbaren Blueprint-Code getan werden . Und nur das Erstellen dieses sehr einfachen Prototyp-Spiel wird es uns erlauben alle Funktionen zu betrachten, die in die 2D-Systeme gehen, wie das Flip-Book-Animationssystem, die Handtuch-Sets und Kachelkarten, die ein Überblick über das eingebaute Level-Design-Malsystem, das standardmäßig mit der Unreal Engine geliefert wird. So hoffentlich diese Themen und interessant für Sie, und ich freue mich darauf, Sie in den Rest dieser Videos zu sehen. 2. 02 – Projektaufbau: Um jedem ein bisschen Zeit zu sparen, werde ich mir nur einen kurzen Überblick darüber ansehen, was ich hier habe. Also habe ich ein brandneues Projekt erstellt. Ich werde nicht durch unsere Schritte gehen. Ich nehme an, Sie haben Erfahrung mit der Unreal Engine. Ich habe Dinge installiert und starten Sie Ihr Projekt. Also das Projekt, das ich hier habe, wenn Sie genau folgen möchten, ist eine Blueprint-Basis, komplett leeres Projekt, so dass hier kein Sterne-Inhalt benötigt wird. Die Qualitätseinstellungen für den Desktop wurden auf die höchste Qualität eingestellt. Es sollte also ziemlich gut aussehen, obwohl wir mit den 2D-Assets arbeiten. Und ich, bevor ich reinspringe und die Dinge bewegen und unsere Klasse Setup bekommen und in Texturen und all diese guten Dinge für das Spiel bringen. Ich wollte nur ein paar Reinigungsschritte durchlaufen , die ich in allen neuen Projekten, die ich erstelle, zu übernehmen neige. Es wird also ein paar Dinge geben, die ich mein Projekt nur aus Bequemlichkeit machen wollte , und ich wollte nicht selbst Screening Fall, du folgst mit. Ich wollte die gleichen Ergebnisse. Das erste, was ich dazu neige, ist, dass wir sehen können wenn wir standardmäßig einen neuen Blueprint oder ein neues Asset öffnen, das sich in einer Art schwebendem Fenster öffnet, das ein wenig ärgerlich werden kann. Ich bevorzuge, dass alles hier oben auf meinem Bildschirm angedockt wird. Es hat also dieses Ergebnis. Ich zeige Ihnen, was wir im Moment bekommen. Wir haben einen Plan, den wir hier benutzen können, der Wolkenkratzer ist. Und Sie können sehen, dass das kein Werkzeug geöffnet hat. Dies ist auf meinem zweiten Fenster auf extrahieren diese Idee eines... und wie ich schon sagte, wir haben diesen schwimmenden Bildschirm. Wenn wir das wollen, hey, müssen wir das nach oben ziehen und wir müssen es für alle neuen Blaupausen oder Asset tun , die wir öffnen wollten. Im Idealfall möchte ich, dass sie sich alle hier standardmäßig eindecken. Also gehe ich zum Bearbeiten, Bearbeiten von Einstellungen. Und dann nur hier können wir sehen, dass der Asset-Editor offenen Standort das von der Standardeinstellung ändert. Und sie werden das in Hauptfenster ändern. Sie haben auch viele verschiedene Optionen hier, wenn Sie wollten. Aber ich bevorzuge, dass dies standardmäßig nur das Hauptfenster ist. Das bedeutet, dass, wenn wir nichts geöffnet haben, ein Werkzeug, können wir wieder darauf klicken und wir können sehen, dass der Himmel gefütterte Blueprint jetzt genau dort geöffnet ist, wo ich das wollte. Das wird also das erste sein, was ich dazu neige, zu ändern. Als nächstes gibt es nur ein paar andere kleine Probleme, die ich mit dem Standardprojekt finde. Das ist also ein wenig schwer in der Aufnahme zu sehen. Ich weiß, dass ich das schon mal ausprobiert habe, aber Sie können sehen, wie ich hier heranzoomen, der Boden scheint von einer Art dunkleren Grau zu einem helleren Grau zu gehen. Und das Gleiche passiert, wenn wir auf Start drücken und uns umsehen. Wir können hier einige Anpassungen sehen, die mit der Beleuchtung geschehen. Nun ist dies die automatische Belichtung versucht, neu zu erstellen, was die Augen in der Regel tun, wenn Sie von einer hellen zu einer dunklen Umgebung oder umgekehrt gehen. Und es ist eine sehr nützliche Sache zu haben, aber im Allgemeinen als etwas, das Sie in einem Post-Process-Effekt oder 30 Kamera direkt steuern wollen . Und was das dazu führen kann, ist, dass Sie anfangen können etwas in Odessa zu schaffen, das Ihrer Meinung nach ziemlich cool aussieht. Und dann, wenn Sie spielen drücken, werden die Farben gesättigt aussehen und Nacht waschen. Um dies zu vermeiden, wir im Grunde haben, was wir im Editor sehen werden wir im Grunde haben, was wir im Editor sehen, genau das, was wir sehen, wenn wir auch Play drücken, es sei denn, wir überschreiben das manuell in einigen dieser Post-Process-System. Also ist es wählt dies, wir können zu Projekteinstellungen gehen, wir gehen zu Auto oder suchen einfach nur für alle Zeitbelichtung. Also Auto III, wir bringen das hier auf. Es gibt keine anderen Ergebnisse hier. automatische Belichtung ist also das, was wir abschalten wollen. Und das bedeutet, wenn wir wieder da reingehen, selbst wenn Sie ziemlich nahe kommen, können wir sehen, dass wir nicht diesen dunkleren Boden bekommen , da das nicht das ist, was wir im Spiel sehen werden. Wenn wir also Play drücken, wird das jetzt auch genau das gleiche sein wie im Editor. Also wissen wir jetzt, dass, wenn wir wollen, dass unsere Welt Dhaka, wenn er Sie berührt, aktualisieren Sie das in unserem Ansichtsfenster gerade hier. Als nächstes wollen wir nur einige unserer Ordnerstruktur einrichten. Dies wird es uns ermöglichen, wenn wir das jetzt tun, können wir einspringen und einfach anfangen, Blaupausen hinzuzufügen, Assets einzubringen, Materialien einzurichten und all diese guten Dinge so wie und wann wir sie brauchen. Und wir brauchen uns keine Sorgen um unsere Projektstruktur zu machen. Denn im Allgemeinen wissen wir, dass wir eine sehr ähnliche Struktur für so ziemlich jedes Projekt haben werden, dass wir sie bearbeiten. Also, was ich tun werde, ist im Content-Ordner , der unser Stammordner ist, ich werde einen neuen Ordner namens Assets erstellen. Dies wird also sein, wo all unsere externen Dinge, Texturen, Modale, alles wie das, was wir einbringen könnten, Nebenwirkungen werden in diesen Ordner gehen. Jetzt für diese Reihe von Videos, ich weiß, dass wir ein paar verschiedene Dateitypen benötigen werden. Wir arbeiten mit Texturen, Sprites, Flip-Büchern und verschiedenen Kachel-Assets. Also werde ich einen Ordner für jeden dieser erstellen. Die Verknüpfung, übrigens, wenn Sie einen neuen Ordner greifen möchten, ist die Umschalttaste und Eingabetaste, wenn Sie innerhalb des Ordners ausgewählt sind, möchten Sie, dass dies ein untergeordnetes Element von sein. Und das sollte es vorerst für Vermögen tun. Wenn wir am Ende etwas anderes hinzufügen, können wir immer wieder zurückkommen und später einen neuen Ordner hinzufügen. Dann zurück innerhalb des Inhaltsordners wird auch ein Blueprints-Ordner haben. Und wieder innerhalb des Content-Ordners könnten wir auch mit einem Maps-Ordner tun. Nun, da wir ich bin Maps Ordner, wir können auch gehen und speichern Sie dies auf diesem engen würde Karte sehen, hat untitled und wir können Control ns drücken, legen Sie diese innerhalb des Maps Ordner, und wir werden nur nennen diese Main . Und das wird unsere Hauptkarte sein, von der wir für den Rest des Projekts arbeiten werden. Das erlaubt uns auch, etwas anderes zu tun, nämlich einige Projektstandardwerte zu setzen. Und wir werden in einem Moment darauf eingehen. Grundsätzlich möchten wir, dass dies die Karte ist, die wir laden sobald wir das Projekt schließen und wieder öffnen. Bevor wir das tun, können wir auch einige der anderen Standardwerte wie den Charakter, der kontrolliert und Spiel, und auch den Spielmodus, der die verschiedenen Controller, die Charaktere und Dinge wie das steuert , die wird in erzeugt werden, und die In-Game-Logik, die irgendwie verfolgt wird, wenn wir Dinge wie Pickups, Scoring oder irgendeine Art von objektivem System haben . Wenn du dieses Projekt entfalten wolltest, dann nehme ich es selbst weiter. Um das zu tun, gehe ich in den Blueprints-Ordner. Wir erstellen einen neuen Blueprint und wie dies geschieht indem Sie mit der rechten Maustaste auf Blueprint Class klicken unddie Basis für den Regierungsmodus finden, die Basis für den Regierungsmodus finden, die die Spielmodus-Klasse sein wird. Wir wollen einen Namen verwenden, dieser, BP Unterstrich Gewinn könnte Basis. Also etwas anderes in dieser Auswahl von Videos zu beachten , dass ich die Standard-unwirkliche Benennungskonvention befolgen werde. So können Sie sicher sein, dass, wenn Sie etwas auf den Markt bringen oder einfach nur mit anderen Menschen arbeiten wollen , die mit dem unwirklichen Ökosystem vertraut sind, diese Namenskonvention, das ein ziemlich guter Weg sein sollte, um den Einstieg zu erleichtern. Also BP für Blueprint, unterstreichen Sie den Namen der Klasse. Und nur für den Fall, dass wir irgendwelche untergeordneten Klassen dieses Spielmodus erstellen wollten, werden wir angeben, dass dies die Basis- oder Elternversion der Klassen ist. Und das wird es ein bisschen mehr Sinn machen, wenn wir in den Rest der Videos kommen, da wir diese Art von hierarchischer Struktur ein wenig später verwenden werden. Aber im Moment können wir das öffnen. Und was wir hier tun wollen, ist auf den Standard-Klassenkopf gesetzt , der kontrolliert wird, wenn wir einen Charakter erstellt haben. Natürlich haben wir diesen Charakter noch nicht. Also gehe ich einfach zurück in den Blueprints-Ordner, klicke erneut mit der rechten Maustaste, erstelle eine neue Blueprint-Klasse. Und wir wollten feststellen, dass die Art von Charakter, die wir kontrollieren können. Also haben wir ein paar der Basis kontrollierbaren. Wir haben den Pull oder den Charakter. Jetzt ist keiner von ihnen wirklich speziell für 2D-Zeichen erstellt und wir haben tatsächlich eine Klasse, die dafür innerhalb von Unreal bereit ist. Also, wenn wir Papier tippen, im Grunde wird alles verwendet wird, ist Teil des Papier-2D-Systems. Also haben wir Flip-Bücher, die unsere Animationen sein werden, Sprites. Wenn Sie etwas wollen, das nicht animiert, haben wir Dinge wie Tom Apps, geschulte Redakteure. Und wir können hier unten sehen, wir haben ein Kind des Pornos ist der Charakter , der nur ein kontrollierbarer Porno mit ein paar zusätzlichen Dingen wie der Kapselkollider auf ihm erwartet ein skelettales Netz und solche Dinge. Und dann haben wir die Alternative, die das Papierzeichen ist, das das Kind der Zeichenklasse ist. Aber anstatt ein 3D-Skelettnetz zu haben, es einige Eigenschaften vordefiniert, wie zum Beispiel ein 2D-Papier-Flipbook, das genau das ist, was wir wollen. Also werden wir diese auswählen, wir nennen diese eine BP-Unterstrich-Spielerbasis. Also wieder, wenn wir jemals irgendeine Art von alternativen Versionen des Spielers haben , in denen wir potenziell spawnen wollen, dann können wir diese zu einem Kind unserer Basisklasse machen. All die grundlegende Logik, die ich in unserer Spieler-Basisklasse sein werde, wie die und Bewegungsgesundheitsvariablen und Dinge wie, die wir hier einfügen können. Damit können wir einen kurzen Blick und Kopf haben, aber es gibt nicht viel, was wir im Moment sehen können. Wir haben keine Sprites oder Flip-Bücher, die wir zuweisen können. Wie ich schon sagte, wird dies mit der Animation wie I. steuern. Aber was wir haben, ist ein Kapsel-Collider und eine Charakterbewegungskomponente, die es uns erlauben wird, sehr einfach die Bewegung für unsere Charakterklasse einzurichten. Also, was ist noch nicht bereit? Wir können jetzt in unseren Spielmodus zurückkehren. Wir gehen in die Standard-Pornoklasse und ändern das in die BP-Unterstrich-Spielerbasis. Das wird also im Moment nichts tun. Wenn wir auf Play drücken und sehen, hier drüben war immer noch bekommen die Regierung könnte Basis. Also das ist nicht mit Ich war im Moment, was bedeutet, dass wir auch die Standard-Pune bekommen, die, wenn Sie das noch nie gesehen haben, ist die graue Kugel. Wenn Sie dies also jemals sehen, ist dies der Standard-Pune, was bedeutet, wenn Sie nicht erwarten, dass dies verwendet wird, bedeutet dies, dass Sie wahrscheinlich irgendwo einen Schritt verpasst haben und Sie Ihre benutzerdefinierte Klasse nicht ausgewählt haben. Und das gibt uns diese Art von Fliegen rund um den Zuschauermodus Typ Bewegung. Was wir also tun möchten, ist zu den Projekteinstellungen zu gehen. Wir möchten den Spielmodus als Standard festlegen, der, den wir erstellt haben, um die Standardeinstellung für das Projekt zu verwenden. Wir tun das über den Karten- und Modusbereich. Wir gehen hier zur Spielmodusbasis. Wir ändern dies von einer Spielmodusbasis auf BP ungelernte Spielmodi Basis, die unsere ist. Wir können sehen, dass automatisch weiß, um unseren Spieler als Standardspieler zu verwenden. Und jetzt, wenn wir gehen und drücken Play, der Unterschied hier ist, dass wir keine Bewegung haben, weil auf der rechten Seite, können wir sehen, dass wir das BP ungelernte Spiel verwenden könnte Basis. Und weil wir einen Spieler in der Welt haben, hat er die BP-Unterstrich-Spielerbasis an diesem Ort erstellt. Also bin ich nur drücken F8 musste aus dem Spieler auszuwerfen, was mir erlaubt, um zu fliegen. Wir können sehen, wie er sich verändert hat. Und wir können sehen, dass wir die Spielerbasis am Anfang des Levels haben. Und der Grund, warum wir das nicht um uns herum bewegen können, weil wir keinen Code in unsere Klasse gesetzt haben, um ihm ein Verständnis dafür zu geben, was Bewegung ist. Kann sehen, es hat Dinge wie Schwerkraft bereits verarbeitet Haar obwohl. Wenn wir also besitzen, werden wir im Moment immer auf dem Boden sein , aber das ist ein guter Anfang. Das bedeutet jetzt, dass, wenn wir diesen Code zu unserem Spiel eine Klasse hinzufügen, das Projekt weiß, dass es als Standardklasse auszuwählen, um zu versuchen und die Logik zu besitzen und auszuführen. 3. 03 – Spielereingabe: Mit all dem Setup und aus dem Weg, können wir jetzt gehen und beginnen, eine Art visuelle Referenz für unsere Klasse bereitzustellen. Also innerhalb der Player-Basis, da wir die Flip-Bücher nicht haben, so dass die Animationen bereit ja, aus unseren Texturen importiert werden. Ich werde nur eine einfache Cube-Komponenten hinzufügen, die beginnen mit. Also, wenn wir gehen, um Komponenten hinzuzufügen, gehen Sie zu Würfel. Dies wird nur ein statisches Netz sein, um zumindest visuell darzustellen, wo der Spieler sein wird. Und das bedeutet, dass wir auch die Kamera-Setup betrachten können. Also ich, für die Kamera, werde ich etwas Festival verwenden, das eine Feder-on-Komponente genannt wird. Das wird wie eine Kamera sein. Boom ist ein langer Stock, im Wesentlichen ein virtueller Stick plant unsere Kamera, es ruht auf, wir können sehen, dass hier vertreten ist. Also wird der Strom am Ende unseres Stockes sein. Und das gibt uns nur ein wenig Flexibilität bei der Entfernung der Kamera. Es hat einige eingebaute Funktionalität für uns, es zu animieren oder verschiedene Arten von Kamera verzögert, um ein etwas dynamischeres Feeling Kamerasystem zu erhalten. Jetzt habe ich gerade bemerkt, dass ich immer noch meinen Würfel ausgewählt habe. Ich möchte, dass das ein Kind der Kapselkomponenten ist. Ich ziehe das in die Kapitalkomponenten, nur damit wir der Rotation der Kapsel folgen und nicht der statischen Übereinstimmung. Wenn wir dem etwas antun, dann bin ich mit dem Frühling immer noch ausgewählt. Ich gehe zu Komponente hinzufügen, finde die Kamera, und dann platzieren wir die Kamerakomponente auf, die Feder an. Also, wenn wir jetzt die Feder nehmen, wird die Kamera folgen. Wir waren fest oder bewegen es herum, wie die Kamera am Arm befestigt ist. Das bedeutet nur, dass wir auch viel weniger mit der Kamera machen müssen. Wir werden es nicht drehen oder versehentlich Dinge mit der Kamera machen, die wir nicht wollten. Und ich, weil wir das haben, können wir sehen, dass es in Unreal ist. X ist immer vorwärts. X ist links und Rechte. Warum ist Essen und Kaufen? Also wollen wir eigentlich die linke und rechte Hälfte bewegen, wie offensichtlich in einer 2D-Plattform von links nach rechts, zed, oben und unten. Und wie gesagt, Y4 zurück. Das bedeutet also, dass die Kamera derzeit in die falsche Richtung im Moment schaut, würde von der Rückseite des Charakters schauen, wenn der Blick Richtung dieses Pfeils, wenn wir in die animierte Flip-Buch bringen. Also, was wir tun werden, können wir bekommen, ich war Frühling auf und das ist eines der ersten Dinge, die wir sehen werden, ist ziemlich nützlich. Wir können den Federarm um 90 Grad drehen. Die Kamera wird dem folgen. Ich bin ich schaue auf die, was wäre unsere Spieler Animation frontal. Nun, das wird auch ein bisschen Schlüssel sein. Ich stelle mir vor, wenn wir Play drücken, wird es standardmäßig dieses Kamerabild verwenden. Und wir werden unseren Würfel sehr, sehr nah betrachten . Also, was wir tun können, ist, dass wir kommen können, um den Frühling gepackt zu haben. Ich gehe zu dieser Zielquelle. Ich bin ungefähr 600 lang. Und das bedeutet, dass, wenn wir jetzt Play drücken, können wir ein wenig mehr von der Ebene als auch nur den Spieler sehen , den wir vorerst ignorieren werden, dass die Kapselkomponenten ein bisschen aus. Wir werden dieses statische Netz nicht sehr lange verwenden, weil nur Demonstrationszwecken, wenn wir in den Basisteil der Kamera-Setup kommen. Aber ich denke, das wird gut für mich sein. Als nächstes wollen wir unsere Projekteingaben so einrichten, dass die Bindungen Tastaturen und Gamepads binden , damit wir unseren Charakter tatsächlich bewegen können. Um dies zu tun, gehen wir zu unseren Projekteinstellungen. Wir werden zum Eingabe-Abschnitt navigieren. Und gerade hier haben wir zwei Möglichkeiten. Wir haben das Action-Mapping und das Achsen-Mapping. Als eine schnelle Übersicht für diejenigen von Ihnen, die neu im Motor sind, wäre der Differenzkopf, den wir tatsächliche Mappings haben, Dinge wie Einzelpresseingaben, wie springen Wolf, CMake, Sie springen einmal, oder Interaktionstasten wie Drücken Sie E zu holen wäre ein tatsächliches Mapping ist etwas, das Sie drücken und freigeben. Und in der Regel als eine Art Ein-Aus-Schalter. Sie haben dann Zugriffszuordnungen, die einen Wert liefern, der darauf basiert, ob die Eingabe gedrückt oder nicht gedrückt wird. Wenn also nichts gedrückt wird, es ständig 0 zurück. Wenn Sie es vollständig gedrückt haben, z. B. eine Taste ist entweder eingeschaltet, wird eine Tastatur entweder eingeschaltet und vielleicht nie, wenn Sie die Taste Daniel eine oder minus eins zurückgeben. Und dann können wir auch Dinge in wie Entladen Sticks arbeiten, die eine Reichweite haben. Es wäre also zwischen minus 11 liegen. Wenn Sie also nur den Hüllkurven-Stick halb nach vorne schieben, würden Sie einen Wert von etwa einem um 0,5 abgerundeten Wert zurückgeben. Also wieder, das ist ein wenig, machen es ein bisschen mehr Sinn. Wenn wir in diesem in einem Moment gehen, werden wir nur ein paar verschiedene Eingaben für dieses Spiel haben. Wir wollen, dass unser Charakter springt. Also werden wir es haben Input-Mapping springen. Ich will, dass sie sich vorwärts und rückwärts oder links und rechts bewegen. Also werden wir eine Bewegung der rechten Achse Mapping haben. Wenn wir also die Aktionszuordnung durchführen, fügen wir zunächst eine neue Aktionszuordnung hier hinzu, indem Sie das Plus-Symbol drücken, wird dieses Mal gelöscht. Ich werde diesen einen Sprung Nacht dafür nennen, wir werden sagen, Sprung wird sein, wir können viele verschiedene Tasten hinzufügen, müssen nur eine einzige Eingabe verwalten. Das wird also nützlich sein, wenn Sie Ihren eigenen Besitz ein wenig flexibler machen wollten . So als Beispiel, könnten wir für Leute sagen, die Ws und D verwenden, Wir könnten w als eine Option zum Springen haben. Für diejenigen, die immer noch gerne die irische Auswahl verwenden, könnten wir den Pfeil nach oben auf der Tastatur verwenden. Auch zum Springen Für Leute, die mit der Leertaste vertraut sind, könnten wir Platz für den Sprung nutzen. Und wir könnten auch sagen, wir werden auch ein Testkonto für Gamepads verwenden. Also werden wir das Gamepad verwenden und diese werden das Gesicht Watson sein, links, rechts, unten und oben sein x, y, a und B, oder Dreieck, quadratisches Cyclin x zum Beispiel. Wenn Sie also nur visualisieren, wo sie auf dem Gamepad sind, werde ich mit dem Xbox-Controller-Schema gehen. Also werden wir ein verwenden und ich möchte ein springen, was Button unten sein wird. Das wird also das Gamepad sein. So können wir nun auch ein als Gamepad springen. So ist es, wie ein Sprung Eingang. Also, wenn wir eine dieser drücken und wir weisen dies der Sprungfunktion in der Charakterklasse zu. Wir werden unseren Charakter als Nächstes herumspringen lassen. Dann wollen wir unseren Charakter erlauben, sich zu bewegen. Also werden wir ein Achsen-Mapping hinzufügen. Also wird das Achsen-Mapping, wie gesagt, einen Wert zurückgeben. So können wir sehen, der Unterschied hier ist, dass dies nur einzelne Pressen sind. Wir können Kombinationen hinzufügen, aber es gibt keinen Wert zurück, während wir für den Access einen Achsenwert zurückgeben. Aber das hier, ich nenne diesen Schritt einfach richtig? Und wird eigentlich nur die richtige Funktion erstellen. Und du wirst in einem Augenblick sehen, warum. Was wir also tun werden, ist für die Bewegung links und rechts des Charakters, wir haben einen positiven Wert. Nehmen wir also an, wir waren in einem bewegen, wir wollen, dass der Charakter direkt über den Bildschirm bewegt, was unser positiver Wert sein wird. Wir weisen dies D für den WASD-Eingang zu. Also finden wir D auf der Tastatur. Das ist, wie eine Grundrechtsbewegung hier. Jetzt wollen wir auch, dass sie sich nach links bewegen können. Also werden wir eine weitere Eingabebindung hinzufügen, und wir werden diese als eine finden. Und sobald wir die A-Eingabe definiert haben, wollen wir diese Skala auf minus 1 ändern. Der Grund dafür ist, dass wir uns in einem positiven Wert über den Bildschirm bewegen, um sich nach rechts zu bewegen. Und wir wollen in den negativen Wert über den Bildschirm bewegen, um nach links zu bewegen. Und deshalb brauchen wir nicht nach rechts zu gehen. Und ich gehe nach links, wir können einfach erstellen und nach rechts bewegen, was die positive Aufgabe sein wird. Und dann ist es irgendwie genommen oder intuitiert, dass nach links der negative Wert ist. Und dann können wir dasselbe tun, wie wir es für den Sprung hatten. So können wir eine Reihe von diesen erstellen, leisten die Pfeiltasten ich Pfeil rechts. Wenn wir den Pfeil nach rechts haben, können wir wieder sicherstellen, dass er positiv ist. Und dann links. Wird unser Minus eins sein und wir können einige unübersehene Bewegung auch für das Gamepad zuweisen. So würde dieses Mal fallen. Und wir haben das Gamepad übrig. Thumbstick ist, wenn wir in der Gamepad-Welt verwenden wollen, x ist links und rechts, y ist oben und unten. Also wollen wir, dass die linke Thumbstick x-Achse die Hüfte kontrolliert wird. Denken Sie nun daran, was ich gesagt habe, dass der Achsenwert einen Wert von entweder minus 10 oder eins oder zwischen diesem Bereich zurückgibt . Jetzt, wenn der Analog-Stick in der Mitte ungeschoben ist, und das wird 0 sein, wenn der Benutzer ihn nach rechts schiebt und das wird bis zu einem Wert von eins sein. Und wenn sie es nach links bewegen, und das wird zu einem Wert von minus eins gemacht werden. Also dieser Typ hier, eigentlich eine Freundlichkeit für all das, abhängig davon , wie der Kunde den Umschlag bewegt. Das ist also alles bereit für die richtige Funktion. Also, wenn wir sie wieder zu unserer Spielerbasis bewegen, wird in den Event-Graph zu bewegen und wir können ein wenig aufräumen haben, so dass wir dies vielleicht ein bisschen leichter für die Begin Play brauchen. Wir können alles andere loswerden für weder wir gingen ordentlich die Überlappung oder das Ereignis Tick im Moment. Und anstatt alle unsere Eingabebindungen in den allgemeinen Ereignisdiagramm zu deponieren, was ich tun werde, ist sexuell darin, aber ja, ich werde ein brandneues Diagramm erstellen. Ich werde diese eine Eingabe nennen. Und wir werden alle unsere Input-bezogenen Dinge hier reinbringen. Jetzt erinnere dich an die Namen, die du gerade gekühlt hast, du betonst seine Hände. Also haben wir springen und rechts bewegen? Weil wir in nur einer Sekunde abkühlen werden. Also, um nach oben zu bewegen richtige Funktion, werden wir einfach tippen bewegen rechts? Und Sie können sehen, wir haben zwei Möglichkeiten. Wir haben die Achse oder das Ereignis. Also, wenn wir mit den Ereignissen und so wieder für mich von Rechten beginnen, und dann bekommen die Achse nur etwas, das neue Leute verwirren kann, mieten ein wenig. Grundsätzlich ist die Achse der Wert, der zurückgegeben wird, wenn Sie einige Dinge drücken, wie ich erwähnt habe, minus 10 oder eins oder dazwischen. Und dann ist das Ereignis die Option, die uns den Ausführungspin gibt. So können wir einige Funktionen davon ausführen. Also lassen Sie uns eine schnelle Druckzeichenfolge machen. Also, was das tut, und wir können den Achsenwert drucken. Wenn ich also auf Komponente komme, drücke Play, wenn ich überhaupt nichts drücke, können wir sehen, dass dies ständig läuft, also ist es irgendwie wie eine Update-Funktion oder ein Ereignis-Tick. Wenn ich D drücke, was meine richtige Bewegung ist, bekomme ich eine. Wenn ich ein drücke, bekomme ich minus eins. Gleiches für den rechten Pfeil auf der linken und rechten, können wir sagen, , Nun aktualisieren, Ich bin nicht in der einfachsten Form ist hoch. Die Achsenbindung funktioniert. Also bin ich einfach mit dem Gamepad hier verbunden. Und ich gehe jetzt nach links auf Lippenstift etwas nach rechts. Und wir können sehen, dass wir einen Wert zwischen 01 haben. Und wenn ich es nach links schiebe, haben wir diesen Wert zwischen 0 und minus eins. So werden wir die Bewegung unseres Charakters in einem Moment vorantreiben. Was ich demonstrieren wollte, der einzige Unterschied hier, der Wert des x ist genau der gleiche wie der Rückgabewert aus dem GetMethod-Rechtewert hier, der einzige Unterschied zwischen den beiden ist, ob Sie benötigen nur den Wert für eine Berechnung wie folgt, ob Sie die Ereignisse für den Ausführungs-Pin benötigen, um eine andere Funktion aufzurufen. So können wir sehen, dass ich das wieder verwenden werde und wir bekommen genau die gleichen Optionen oder Antworten. Wir bekommen eins, wenn ich D minus eins drücke, wenn ich ein drücke und ich habe das Bedienfeld wieder, und wir können sehen, dass wir diesen Wert haben, je nachdem, wie ich das Unrealistische bewegt. Also genau das Gleiche. Dies ist nur schön und praktisch, wenn Sie eine Berechnung verwenden und versuchen, die Geschwindigkeit multipliziert mit der Richtung von etwas zu bekommen die Geschwindigkeit multipliziert mit der Richtung von und Sie die Ereignisse nicht abkühlen müssen. Sie können einfach den Wert überprüfen, der aus dem Eingabe-Mapping zurückgegeben wird. So haben Sie irgendwie ein besseres Verständnis dessen, was das tut. Was wir jetzt tun können, ist von diesem, wir werden unsere hinzufügen Bewegung Eingabe kühlen. Und das ist wirklich so schwierig wie es ist. Ein Charakter, der sich bewegt. Dies erfordert einige integrierte Funktionen von der Spielerklasse auf der Charakterbewegungskomponente. Und es wird im Grunde nur Bewegung in eine Richtung hinzufügen , die wir ihm basierend auf einer Skala geben. Wenn wir also sagen, dass die Skala auf eine permanente gesetzt ist, bedeutet das, dass wir sogar ein Satz sein werden, der Richtung gegen Wert ständig steht. Wir wissen also, dass wir uns von links nach rechts bewegen wollen und wir sagen eins auf dem x, weil denken Sie daran, wir haben bereits gesehen, dass die x-Achse diese rote ist, und so wollen wir uns bewegen. Also gerade hier, y wäre vorwärts und rückwärts. Wir wollen nicht in und aus dem Hintergrund gehen und sagten, wäre auf und ab. Wir wollen nicht rauf und runter, es sei denn, wir springen. Also, wenn wir jetzt Play drücken, wird das eine Einheit und einen positiven Wert x bewegen, weil wir es hart codiert haben, um auf unserer Richtung multipliziert mit der Skala zu basieren, wird sich ständig in diese Richtung bewegen, wenn wir das. Die Art und Weise, wie wir ändern, die Sie vielleicht bereits erraten haben , basiert auf dem Achsenwert. Was bedeutet, wenn wir etwas unterdrücken, multiplizieren wir das tatsächlich mit 0, was unsere Bewegung stoppen wird. Wenn wir drücken, bewegt sich D nach rechts. Wenn wir drücken eine wird nach links zu bewegen. Dasselbe für die Araber, und wieder, dasselbe für den Entsperrstab. Es ist also wirklich so schwierig wie es ist, Bewegung auf einen Charakter zu bringen. Das ist ein bisschen Magie, weil hier im Hintergrund ein paar Dinge los sind. Sie fragen sich also vielleicht, warum ein so niedriger Wert wie einer uns relativ schnell bewegen lässt , basierend auf der Richtung, die wir ihn bewegen wollen. Der Grund dafür ist, dass wir hier nicht tatsächlich eine Einheit in der Charakterbewegungskomponente bewegen, wir bewegen tatsächlich 600 Einheiten. Was das in einer sehr vereinfachten Form tut geht in der übergeordneten C plus -Klasse viel mehr vor. Aber um die Grundlagen zu erhalten, was passiert ist, dass wir die Weltrichtung multiplizieren, indem ich Geschwindigkeit laufen werde. Also bewegen wir tatsächlich 600 Einheiten multipliziert mit dem Skalarwert. Also nehmen wir unseren Wert von 600 und wir sagen, dass, wenn Sie nichts drücken, dann multiplizieren Sie das mit 0, was wieder zu dieser Bewegung kommt. Wenn Sie D drücken oder was auch immer es zugewiesen wurde, bewegen Sie sich nach rechts auf den positiven Wert, dann multiplizieren wir 600 mit eins. Also bewegen wir 600 Einheiten in diese Richtung. Und wenn wir einen negativen Wert halten, also a oder links, dann multiplizieren wir 600 mit minus 1. Und das wird uns bewegen in einem negativen Wert oder links über den Bildschirm. Also nur um Sie wissen zu lassen, dass es hier viel zu durchschauen gibt, wenn Sie mit verschiedenen Dingen spielen wollten und bestätigen, dass das hier kontrolliert wird. Wenn wir dies auf etwas wirklich Langsames senken, wie 50, dann können wir sehen, dass die Bewegung durch diese Änderung der Geschwindigkeit völlig behindert wird. Es gibt also eine Menge, die du mit ihr herumspielen kannst. Ich werde das alles nicht durchmachen. Ich denke, dass die Benennung ziemlich Art von gesundem Menschenverstand ist. Und wenn Sie es durchschauen, können Sie sehen, wofür es verantwortlich ist. Und das wäre definitiv etwas, um mit zwischen den Videos zu spielen und einfach ein besseres Gefühl davon zu bekommen, was die Charakterbewegungskomponente es tut. Sie haben eine Menge Flexibilität mit diesem, Sie können Dinge tun, wie die Beschleunigung zu ändern , so dass Sie es länger dauern können, wenn Sie wollten, um wie ein Aufbau bis zu dieser Geschwindigkeit zu haben, ist 2048 ziemlich 0 bis voll Geschwindigkeit. Wenn wir das auf etwas Extremes wie 512 laden, dann wirst du wieder eine große Veränderung sehen, wie lange es dauert, bis wir dieses maximale Momentum erreichen. So können Sie wie ein haben, Ich nehme an, das wäre Ihre alte Art von Sonic Spiel Weg. Du hättest die Jogging-Animation, die zum Laufen führt, bis zum Sprinten führt, wenn du das volle 2014 erreichst. Das ist also die maximale Beschleunigung. Wieder werde ich das gleich heute Abend verlassen, aber Sie können alle diese verschiedenen Werte optimieren und wirklich die Art und Weise verändert, wie Ihr Charakter fühlt sich für mich richtig? Nun, die letzte Sache für die Eingabe ist dann, dass wir unsere Sprungeingaben hinzufügen. Also wieder sehr einfach. Wir wollen den Namen davon abkühlen. Action-Mapping, die wir früher gemacht haben, ganz einfach springen. Sie können sehen, es ist eigentlich eine Menge verschiedener Renditen hier für den Sprung. Und das liegt daran, dass unsere Charakterklasse ziemlich viel integriert ist , die es uns erlauben, zu ändern, wie wir springen und wie das reagiert. Aber wir wollen, dass unser Aktionsereignissprung beginnt, mit dem, den wir in den Eingabebindungen erstellt haben. Und Sie können wieder sehen, dies ist etwas anders als das Mapping der Achsen-Map. Der Hauptunterschied besteht darin, dass wir keinen Wert zurückgeben. Also, wie ich schon sagte, das wird entweder gedrückt oder nicht gedrückt. Wenn Sie also W oder den Pfeil nach oben oder a auf dem Gamepad drücken, wird das gekühlt und wenn Sie es loslassen, wird es cool sein zu sehen, dass Sie diese beiden Zustände bereits haben. Jetzt wieder, ganz einfach, es gibt all diese Funktion auf, die bereits integriert ist. Ich werde von hier ziehen. Ich werde die Sprungfunktion aufrufen. Wir haben eine Funktion Heck würde springen. Dies ist durch die Charakterklasse und hat wieder eine magische Art unter der Haube, aber es ist nur Kraft in der z-Achse für uns anzuwenden. Wenn ich also reinkomme und W drücke, dann springen wir hoch. Und das gleiche für eine auf dem Gamepad Nacht, weil dies einige Sachen bereit für uns hat Art von manipulieren und spielen mit. Wir können hier zur Spielerbasis kommen, danach suchen, hier im Detailbereich springen. Und wir haben ein paar verschiedene Dinge, die wir ändern können. Damit wir den Sprung tatsächlich ändern können. Wir können das auf maximal fünf setzen. Und wir können das machen einen Sync Tuplet Sprung. Natürlich, wenn du nur einen Doppelsprung wolltest, müssen wir, du hast einen Doppelsprung, so super einfach. Also schon einen Doppelsprung implementiert. Und dann haben wir auch die maximale HoldTime hier. Jetzt wird dies für den nächsten Ort relevant sein, etwas, das wir tun wollen, wenn wir die Basis eingebaute Sprungsystem verwenden. Wann immer wir das loslassen, wollen wir auch den Stop-Jumping nennen. Dies wird also aktualisieren, dass die übergeordnete Klasse all dies überprüft und es wird das System aktualisieren, um es wissen zu lassen, dass der Sprungknopf freigegeben wurde , der dann in diesen Sprung gedrückt wird. Also, wenn Sie Spiele wie die alten Sonic Spiele gespielt haben, Mario Spiele, oder moderne Plattform und Spiele sowie. Sie werden etwas haben, das viele Designer abkühlen, variable Sprunghöhe. Also, wenn Sie die Taste diagonal vier halten, oder wenn Sie einfach auf die Schaltfläche tippen, wenn Sie das Minimum auf Sprunghöhe erreicht haben. Während, wenn Sie es für eine bestimmte Zeit halten, werden Sie etwas höhere Spitze in Ihrem Sprung wie Website erreichen. Also wieder, sehr flexibles System bereit, innerhalb von Unreal zu gehen. Wir haben dies bereits berücksichtigt. In dem Moment, in dem wir diese variable Sprunghöhe nicht haben. Wir werden das gleiche bekommen, unabhängig davon, wie lange ein Helpdesk, weil wir den maximalen Sprung alten Zeit auf 0 gesetzt haben. Nun, wenn ich das auf etwas Extremes setze, ist 55 viel zu hoch dafür. Aber wenn ich es so lange wie ein Ganzes auf bis zu fünf Sekunden setze, wird hier Sprungkraft angewendet. Und die Art und Weise, wie wir dies verwenden würden, so dass der Spieler ein wenig mehr Kontrolle hat, ist, dass, sobald wir diese Version drücken und die Sprungfunktion stoppen, dies ausgelöst wird und wir werden früh ausbrechen und nicht erreichen, dass der Höhepunkt . Also habe ich bis zu fünf Sekunden, um es zu halten. Aber du kannst sehen, ob ich es nur für eine Sekunde halte, dann fangen wir an, nach oben zu springen und wieder runter zu fallen. Wenn ich es länger halte als bis ich es loslasse, werden wir diese variable Sprunghöhe bekommen. Denken Sie also immer daran, aus solchen Gründen, denn Dinge werden unter der Haube gemacht, die Sie vielleicht nicht sehen. Sie möchten daran denken, immer Ihren Stop-Springen zu rufen, wenn Sie eine Sprungfunktion Wenn Sie die eingebaute Funktionalität verwenden, schalten Sie dies jetzt auf etwas tiefer. Wie, ich denke, etwas wie 0,25 funktioniert normalerweise ziemlich gut für den variablen Sprung. Es wird kein großer Unterschied sein. Aber es gibt dem Spieler ein wenig von diesem Gefühl, ein wenig mehr Kontrolle über die Art und Weise, wie sie springen und analysieren sie verschiedene Arten von Hindernissen auf verschiedene Weise anzugehen. Und ich denke, für dieses Spiel werde ich es ein wenig schwieriger machen. Wir drehen den maximalen Sprung auf eins. Glaub nicht wirklich, dass wir einen Doppelsprung für diesen hier brauchen. Also nochmal, komm einfach und testet das. Das funktioniert mit allen Eingängen und ich habe die Bewegung für das Gamepad Springen mit einem. Und wieder, wir haben das VAB, wir springen Höhe, wenn ich es fertig halte. Also schickte ich meine Systeme. Beginnen wir mit, es ist ziemlich klar, was diese tun, aber kommen Sie einfach in diese Art von guter Programmierpraxis. Wir können ein paar Kommentare werfen, richtig, nett. Also, wenn ich die Knoten auswähle, drücken Sie C, Dann kommen wir zu einem Kommentar. Dieser würde nur sagen, dass er die Richtungsbewegung steuert. Und wir machen das Gleiche wieder. Also werden wir diese drücken C und wir werden sagen, dass dieser den Sprung steuert. Jetzt mag es offensichtlich erscheinen, aber die Art und Weise, dass die Kommentare, was sehr praktisch ist. Selbst für Dinge, die sehr offensichtlich sind, wenn Sie viel ausgeschwenkt haben, werden Sie nicht in der Lage sein, den Namen der Ereignisse zu sehen, aber die Kommentare skalieren basierend auf dem Zoom. So kann es nützlich sein, nur Kommentare in so zu setzen, auch wenn die sehr einfache. Also, wenn Sie jemals direkt in den Sprungbereich tauchen wollten, haben Sie überall jede Menge Nächte. Und nur Herman, ich finde, dass der Sprung sehr, sehr schnell. Damit können wir das kompilieren und speichern. Das sind so ziemlich die Grundlagen der Planbewegung. 4. 04 – Texturen: Mit einigen der lustigen Sachen, die bereits implementiert sind, können wir an der visuellen arbeiten, so dass wir aufhören können, die Assets einzubringen, insbesondere die Texturen, um die Klasse zu ändern , so dass wir tatsächlich ein bisschen mehr sehen können und skalieren, wie es aussehen wird und wie es in der Spielnacht dargestellt wird. Dafür verwende ich ein kostenloses Asset Pack, das Sie von jedem dot io erhalten können. Es heißt Pixelabenteuer. Es gibt auch ein Pixel-Abenteuer, es wird von Pixel-Frosch gemacht, und es ist völlig kostenlos zum Download. Natürlich, wenn Ihnen das Paket gefallen hat und Sie diese Arbeit unterstützen wollten, bin ich sicher, dass einige kleine, größere Spenden mehr als schätzt , wenn Sie das tun können, wenn Sie fertig sind, sie zu schreiben. Nun werde ich auch einige Dihalide zur Verfügung stellen, die Sie von unten bekommen können, die all diese Vermögenswerte oder einige der Vermögenswerte haben, die wir speziell für diese Videos verwenden werden, die neu verwendet wurden, basierend auf der Skalierung und Dinge verändert. Und ich erkläre das in einem Augenblick, warum ich diese Änderungen vorgenommen habe. Aber wenn Sie diese hervorheben wollten, kommen sie in einer sehr kleinen Größe, die Teil einer der Klassen ist. Ein bisschen von dem Problem, wenn Sie in einem Motor wie Unreal arbeiten. Aber wieder, hoffentlich verstehen Sie den Prozess des Herunterladens von etwas von jedem, wenn Sie den gesamten Pfad erhalten wollten, wie er hier kommt. Ansonsten sehen Sie so aus, als hätte es den Download für die Projektdateien zusammen mit den Videos auf die gleiche exakte Weise zu folgen. Also, was ich ihnen zur Verfügung stellen werde, werden wir die Fledermaus, die Höhen, zwei Formen des Spiels bekommen , oder sie werden nur den Frosch, die Quelle und die Level-Stücke einrichten . Diese habe ich auf eine bestimmte Weise eingerichtet, damit ich bestimmte verschiedene Ansätze zum Extrahieren, Animieren und Einrichten in einem Projekt zeigen kann bestimmte verschiedene Ansätze zum Extrahieren, . Und auch diese wurden in der Größe geändert. So ist die Art und Weise, dass Sie Dinge finden oder heruntergeladen, wenn Sie es von der Webseite erhalten. Das sind also diejenigen, die nicht berührt wurden. Wir können sehen, dass sie 32 mal 32 Pixel sind. Wenn wir uns die Jump Animation oder die Double Jump Animation ansehen, können wir das ein wenig klein sehen. Und wenn du anfängst, das zu erhöhen, dann werden wir diesen verschwommenen Effekt bekommen. Jetzt habe ich die Größe der Assets erhöht, die ich verwenden werde. Ich empfehle, zusammen mit in einer Weise zu folgen, die dies nicht tut, was es im Grunde durch ein 2D-Paket wie Photoshop oder Krita läuft. Ich habe mich entschieden, die Skala um 400 Prozent zu erhöhen und sicherzustellen , dass wir den Algorithmus auf den nächsten Nachbarn setzen, was bedeutet, dass Sie die Skalierungsfalte basierend auf dem Pixelprozentsatz erhalten und Sie keine dieser Art von Glättung erhalten um die Kanten, so dass Sie immer noch eine Pixel perfekte Art von Bild erhalten. Nun der Grund dafür, ein paar Dinge, die ich erwähnen wollte. Nun, das ist kein sehr optimierter Weg, Dinge in einen Motor wie Unreal zu bringen. Weil Unreal versuchen wird, Dinge zu komprimieren. Es komprimiert die Bildgrößen für die Leistung später nur, wenn Sie es mit einer Potenz von zwei bereitstellen. Das ist also so etwas. Warum ich sie alle in einem großen Stylesheet zusammengesetzt habe. Sie können als 1024 von 1024 Dimension sehen, die die Macht von zwei ist. Also 512 von 512, 256 von 256, und so weiter. Und deshalb ist es in der Lage, diese Vermögenswerte zu nehmen, mit denen ich das gemacht habe, und es wird versuchen, sie zu komprimieren, wenn sie in dieser Macht von zwei sind. Also ging es wahrscheinlich mit diesen. Aber wie ich schon sagte, das ist eher eine Demonstration. Ich wollte ein paar verschiedene Wege zeigen, falls Sie bekommen, bekommen Sie uns gegeben, da dies nicht das Ende der Welt ist. Es wird Ihr Projekt nicht brechen. Und es wird nützlich sein zu wissen, wie man Dinge auf diese Weise extrahiert. Das ist das erste, was ich geändert habe, ist Web oder Schule. Ich habe sie zu einer Macht von zwei Sprite Sheet gemacht. Nun ist die andere Sache offensichtlich die Größe und der Grund, warum ich mich für die größte Größe entschieden habe. Anstatt also die 32 Pixel mal 32 Pixel zu bekommen, arbeiten wir mehr mit 128 mal 128 pro Rasterraum, also pro Bild. Und der Grund ist, dass dies vermeiden wird dass einige der Projektstandardeinstellungen außer Kraft gesetzt werden müssen, wie die AI-Navigation, Suchvolumen. Wenn du das heute bedenkst, arbeiten wir mit Dingen wie, okay, Auflösungen. Sie werden Bilder haben, die jedes einzelne Bild Lebensstil des Gesetzes sein könnte, und 24 sogar 2048 von sich selbst, um diese hochauflösenden Bilder zu erhalten. Arbeit mit etwas, das nur ein 128 Pixel-Bild ist, wird immer noch relativ klein sein, definitiv nicht wegweisend sein. Wir können sehen, dass dieses gesamte Sprite Blatt nur 31 Kilobyte groß ist. Und das bedeutet, dass es viel einfacher wird, damit zu arbeiten. Wir müssen die Größe der Welt nicht ändern. Wir können immer noch mit einem Zentimeter für Zentimeter Schweißgröße arbeiten. Wir mussten auch eines der KI-Systeme außer Kraft setzen. Also denke ich, in diesem Fall wird die Arbeit mit einem etwas größeren Bildsatz die Dinge viel bequemer machen. Also, wie ich bereits erwähnt habe, wenn Sie zählen, würde ich auf jeden Fall empfehlen, zusammen mit den Vermögenswerten, die ich hier zur Verfügung stellen. Lassen Sie diese, sobald Sie diese extrahiert haben, gehen Sie zurück in die Engine und wir versuchen, einige dieser Texturen in die Engine zu bekommen und zu arbeiten. So können wir dies auf eine Reihe von Möglichkeiten tun. Die Sache, die wir importieren werden, ist eine Textur. Also werde ich in den Texturordner gehen. Sie können dorthin navigieren, wo Sie sie auf Ihrem System finden oder speichern. Gehen Sie zu Importieren Spiel-Assets, Texturen, die der Ort sein wird, und Sie finden sie einfach und wählen Sie sie alle und wählen Sie Öffnen. Und das wird sie hineinbringen. Eine andere Möglichkeit ist, das Fenster hier zu öffnen. Wir können ziehen, wählen Sie alle diese und legen Sie sie einfach in unser Projekt. Also schauen sie sich im Moment ein bisschen aus, aber das ist in Ordnung. Wir werden das in einer Sekunde reparieren. Ich bin das, was wir tun wollen. In der Tat, vor allem, wenn wir eine von ihnen öffnen, können wir einen Blick auf einige der Bewertung werfen. Zum größten Teil sehen diese in Ordnung aus, vielleicht ein bisschen unscharf an den Rändern. Es ist schwer zu sagen, aber wir können etwas tun, um dies in einem Moment zu verbessern. Also haben wir die Alpha, die wir bereit sind, müssen Sie. Das erste ist also, dass dies eine Textur ist, die bedeutet, dass wir sie nicht in die Welt ziehen können, die das im Moment nicht in der Welt sehen kann. Wir brauchen etwas, das ein Sprite genannt wird, um das zu tun. Also gehe ich zurück zum Hauptordner, dem Texturen-Ordner. Und was ich tun möchte, ist, dass wir all das packen können. Und im Grunde wollen wir die Details hier ändern und es dazu bringen, diese automatisch zu aktualisieren, um besser an unser Projekt anzupassen. Und das können wir tun, indem wir all diese auswählen. So verschieben Sie und wählen, klicken Sie mit der rechten Maustaste auf unsere Assets und gehen Sie zu Sprite Aktionen und wenden Sie es Papier 2D-Textur-Einstellungen. Und was das tun wird, können Sie sehen, dass alle Alphas berücksichtigt wurden. Es ist diesen schwarzen Hintergrund losgeworden. Und nur hier können wir sehen, was sich geändert hat, ist , dass das früher der Standard-dx t einer Hand war, es wird entschieden, dass die Benutzeroberfläche Claire sein würde und ich denke, das sieht ein bisschen schärfer aus. Und dann hier unten, das Wichtigste ist, dass es sich um 2D-Pixel geändert hat. Und das funktioniert perfekt, weil wir nicht für diese glatte Hand bemalt oder Kontakte sollten Art von Aussehen gehen. Das perfekte Pixelbild ist so ziemlich das, was wir hier wollen. Und wieder, ich denke, das begann von seiner Welt standardmäßig. wir das auf all unseren Assets tun, sparen wir viel Zeit davon, dies manuell einzurichten. Das nächste, was wir tun wollen, ist, diese in Sprites zu verwandeln , damit wir tatsächlich anfangen können, Dinge aus ihnen zu extrahieren. Bevor wir darauf hineinspringen, wollte ich Ihnen nur ein kurzes Beispiel dafür geben , was ich mit dieser Skalierung gemeint habe. Wenn ich also mit den Hütten anfange, musst du hier nicht folgen. Und wir werden das in diesem Moment auf eine bestimmte Weise tun, aber ich werde nur die Sprites extrahieren, lassen Sie es wählen, welche Option auf einmal. Wir werden im Moment mehr auf die Optionen eingehen. Und es sind die Sprites, nicht die Texturen, wie ich bereits erwähnt habe, die wir in die Welt ziehen können. So können Sie sehen, dies ist tatsächlich ungefähr die gleiche Größe wie diese Pflanze gestoppt, wenn wir drücken Play ist nicht zu weit von der Größe unseres Würfels entfernt. Also, wie ich schon sagte, ist es schon irgendwie mit den Zentimeterbasierten Weltskalierungsoptionen verbunden. Also werde ich die für NIH einfach loswerden. Und in ähnlicher Weise werde ich die Ninja-Frosch-Vermögenswerte loswerden. Wir werden nicht die kleineren Versionen benötigen, die nicht mit den Updates fertig geliefert wurden. Wir werden nur für NIH unsere Texturen hier behalten. Jetzt, im Moment, werde ich einfach loswerden, die Hots werden wahrscheinlich den gleichen Prozess in nur einem Moment tun. Aber ich wollte ein wenig mehr Details wie wir diese in unser Spiel extrahieren können. 5. 05 – Flipbooks: Der Grund, warum dies uns und Thema bringt, wenn es darum geht Dinge aus diesen Texturen zu extrahieren, ist, dass es ein paar verschiedene Möglichkeiten gibt, wie Sie es tun können. Und je nachdem, wie die Assets für Sie bereitgestellt wurden, die je nach Ihrem Team oder dem Projekt, an dem Sie arbeiten, möglicherweise nicht immer in der idealen Weise oder auf die gleiche Weise gegeben werden. Möglicherweise haben Sie einige Probleme bei der Arbeit mit hohem Drehpunkt , die sich auf Ihre Animation auswirken können. Nicht perfektes Beispiel dafür. Wenn wir zum Spielerfrosch gehen, wenn wir alle einzelnen Bilder extrahieren möchten, gehen wir zu, klicken Sie mit der rechten Maustaste auf die Textur Sprite-Aktionen und extrahieren Sprites. Das ist der Grund, warum ich vor einem Moment sehr schnell auf die heiße Textur hier drüben gemacht habe. Und ich lasse es einfach die automatische Extraktion wählen. So können Sie sehen, wie das funktioniert. Wir haben die Umrissfarbe, das ist der Umriss und jedes Bild , das es basierend auf der Transparenz um ihn herum findet. Es wird also jedes Endpixel und jede Klasse finden, die die Schaltfläche ist. Dies wird alle diese extrahieren. Also können wir das wieder tun. Wenn Sie die Benennungsvorlage ändern möchten, können Sie dieses Haar ändern und dann wird jedes eine so etwas wie t Unterstrich Spieler Frosch, Unterstrich, Sprites, etc. benannt werden . So können wir das tun. Wir können sehen, dass hier Namenskonventionen sehr nützlich, weil es die Zahlen hinzufügt. Wir wissen also, dass wir 25 dieser Bilder haben, die auf einem nullbasierten Array von Bildern basieren. Und was ich zeigen wollte, ist im Grunde, wir haben die Leerlaufanimation, die diese ersten €2 sind. Dann haben wir die laufende Animation. Wir haben die Sprunganimation und die fallende Animation oder umgekehrt. Also die ersten 11, also 0 bis 10, die Leerlaufanimation. Die Art und Weise, wie wir dann unsere Animation von den Sprites machen besteht darin, mit der rechten Maustaste auf eine Auswahl von Sprites zu klicken, die wir die Animation erstellen möchten , um sicherzustellen, dass die Nummerierung bemerkt I ist, dies wird der Anfang der Animation bis zum Ende . So wird es automatisch in die richtige Reihenfolge für uns setzen und dann ein Flipbook daraus erstellen. So schön und einfach. Denken Sie daran, das Flipbook ist unsere Animation. Die Sprites sind das Bild, das wir in die Welt bringen können und die Texturen bauen all diese Informationen auf. Wenn wir nun diese Animation mitbringen, können wir sofort sehen, dass es ein kleines Problem gibt. Also werde ich das nach oben ziehen, ich werde Ende drücken. Also wird der Endschlüssel das auf den Boden fallen lassen. Und wir können sehen, dass die Füße irgendwie nach oben springen und der Kopf nach unten bewegt. Und das liegt daran, dass es auf diesem zentralen Drehpunkt basiert. Es sieht so aus, als ob er ein bisschen schwebt. Idealerweise ist die Art und Weise, wie diese Animation funktionieren sollte, dass die Füße perfekt still bleiben und alles bewegt sich um diesen Drehpunkt nach oben und unten. Also, wenn wir gehen und hier können wir wieder sehen, das ist nicht ganz ideal, es ist nicht ganz hoch. Die Animation sollte ausgeführt werden. So können wir dies manuell beheben, wenn wir wollten, indem wir alle diese Assets auswählen. Also wieder, 0 zu 10, können wir mit der rechten Maustaste auf diese und wir können zu Assets Aktionen gehen und dann Massenbearbeitung über Property Matrix. Was dies uns tun lässt, ist, können wir ziehen und wählen Sie alle diese, verschieben und wählen Sie alle diese, gehen Sie zu den Sprite-Optionen. Und denken Sie daran, ich sagte, es ist, weil der Drehpunkt ist, dass ich platziert habe, dass das kaputt ist, weil dies von der Mitte geht und weil jedes Bild nicht die gleiche Größe hatte, wurde es auf dem Wetter, die Pixel und nicht Post-its, die sich von Bild zu Bild ändern, ist irgendwie verwirrt, ob es ist, also was wir tun wollen, ist dies von der Mitte, Mitte zu unteren Mitte zu ändern . Wenn wir das tun, können wir sehen, wie die Drehpunkte hier runter springen , und das ist eher hoch die Animation sollte aussehen. Also, das ist eine einfache Lösung, wenn Sie uns das so bekommen und das ist die Art, wie Sie mit Dingen arbeiten müssen, dann ist das völlig in Ordnung. Wir haben Wege, wie wir das in Ordnung bringen können. Nur um einem anderen Beispiel beizutreten, können wir dies in etwas wie oben links ändern und das wird es vollständig brechen. Animationen und ich spielen von der oberen linken Seite der Sprites. Also bewegt sich alles wieder zu diesem Drehpunkt. Das ist eine Möglichkeit, dass wir es reparieren können. Nein, ich werde die nicht behalten, weil ich das auf eine bestimmte Art und Weise eingerichtet habe. Also werde ich diese endlichen löschen. Wenn Sie diese Art von Prozess auch tun müssen, stellen Sie sicher, dass Sie das Ding aus der Welt entfernen. Wir haben immer noch ein Symbol eine Nullreferenz auf ein Asset, das nicht mehr existiert. Also werden wir t für alle t von der Welt loswerden. Und was ich als nächstes tun werde, ist nicht so ziemlich der gleiche Prozess, aber ich werde Ihnen zeigen, wie ich beabsichtigte, das zu funktionieren. Also werde ich wieder mit der rechten Maustaste auf den Spielerfrosch klicken. Wir gehen zu Sprites Aktionen, extrahieren Sprites wieder. Aber dieses Mal, der Grund, warum ich das in ein Raster gesteckt habe, ist, dass ich dafür gesorgt habe, alles einzurichten , was sie alles 128 Einheiten von jedem letzten Bild weggezogen hat. So können wir dies von Auto zu Raster ändern, und wir können sehen, dass das gesamte Raster findet. Es ist nicht ganz Website, wo die Bilder sind. Und wir können die Zellenbreite von 1024 ändern, die die volle Größe auf 12 acht ist. So können wir sehen, dass wir diese abgetrennt haben und dann die Höhe auf 128. Und wenn ich alles extrahiere, ist das genau die gleiche Größe. Wir haben also ein bisschen Spielraum, aber wir können sehen, dass alle Füße an der gleichen Stelle Schnitte sind. Die Animationen, in denen sich der Strom befinden soll. Ja, wieder, das ist mit der gleichen Größe Rasterplatz. Das Problem damit kommt, dass Sie diese zusätzlichen Zellen erhalten, diese werden zu Websites und als Sprite klassifiziert. Wir können etwas davon durch die Anzahl der Zellen beheben, auf die wir reduzieren wollen, die ich auf sechs setzen werde, weil wir nur diese sechs haben, die wir wirklich wollen. Aber Sie werden sehen, dass es uns auch mit der Namenskonvention hilft. Und wir können sehr einfach unsere Animationen erstellen, indem wir diese verwenden. Also, was ich tun werde, ist, dass ich das extrahieren werde. So haben wir jetzt, wie ich schon sagte, das ist ganz schön getrennt. Wir wissen, dass all dies der Leerlauf bis zum ersten leeren Raum ist. Alle diese werden bis zum nächsten leeren Platz geführt. Dann haben wir voll und wir haben Sprung. Also, was wir tun werden, erstellen Sie dieses Flipbook neu. Ich werde mit der rechten Maustaste auf dieses große Flipbook. Jetzt werde ich dieses zu halten, also werde ich nur nennen wollen FB, Full Flip Book Unterstrich Leerlauf oder Spieler im Leerlauf. Also wieder, die Benennungskonvention für Flip-Bücher ist FB-Unterstrich Name des Flipbooks, Texturen, ein t Unterstrich Name der Textur, und so weiter. Weil es so viele Sprites gibt, dass du ein bisschen faul wirst und diese nicht umbenannt wirst. Ich werde nur Shift wählen Sie alle diese und ziehen Sie das in den Sprites-Ordner, nur um sie richtig zu bekommen, wie wir jetzt wissen, dass wir diese leeren Sprites auch löschen können. Und wir können einfach in dieser Reihenfolge mitmachen und es macht den Prozess ziemlich schmerzlos für uns. Jetzt können Sie sehen, dass, weil das genau die Größe hat, die es weiß, dass jedes Bild, das tatsächlich für uns richtig funktioniert hat, zu beginnen, wir nicht bekommen, dass unerwünschte fallende Animation. Als nächstes können wir das Gleiche mit unserem Laufen machen. So wird es verschieben, wählen Sie alle diese Rechtsklick, erstellen, Flip Book, Lahmheit. Willst du FBI unterstrichen Spieler laufen. Und wir haben unsere Laufanimation. Jetzt denke ich, dass diese Geschwindigkeit ziemlich gut funktioniert. Das erste, was hier in den Sinn kommt, ist, dass der Leerlauf ein wenig intensiv aussieht, weil er so schnell animiert. Und es ist wirklich nur so gedacht, wenn der Spieler nichts tut. Ich werde die Frames pro Sekunde von 15 auf so etwas wie acht ändern. Und das sieht mir ein bisschen besser aus. Sie können das ändern, was Sie wollen, aber das ändert nur im Grunde die Wiedergabegeschwindigkeit. Wenn Sie also wollen, dass sie sehr energisch sind, dann haben wir etwas Höheres. Oder wie ich schon sagte, etwas mehr Details, wir können etwas tiefer gehen. Wieder ziehen wir alle diese in den Sprites-Ordner, den wir nicht wieder verwenden werden, aber natürlich das, was in den Flip-Büchern referenziert wird, also müssen wir diese noch existieren. Ebenso bei den Texturen ist es selbstverständlich, dass ich hoffen würde. Und das lässt diese beiden übrig. Also haben wir die fallende Animation. Jetzt ist das ziemlich interessant, wenn Sie mit so etwas arbeiten, sogar als ein einzelner Rahmen, wir müssen dieses Buch immer noch zu einem Flipbook machen, denn das ist, was unsere Komponenten in der 2D-Zeichenklasse erwarten. Also nennen wir diesen einen FB Unterstrich voll und wir werden diesen nennen, erstellen Sie diesen, sorry, und nennen Sie diesen f unterstrichen Sprung. Nun, wenn wir beide öffnen, so dass ich nur Verschiebungen Auswählen und Drücken der Eingabetaste. Wir können sehen, dass das immer noch spielt. Wir können ein wenig Speicher sparen, schätze ich. Ja, tschüss. Es ist Zeit zu 0. Das wird also nicht schleifen. Es wurde nicht tatsächlich die Animation abspielen, aber das ist nicht der Asset-Typ, den wir für diese beiden Animationen benötigen, da sie technisch Animationen sind. Also, das sind alle unsere Spieler Flip-Bücher bereit zu gehen. Wieder können wir diese Sprites packen und das werden wir in den Sprites-Ordner fallen lassen. Und dann können wir all diese leeren Zellen entfernen. Das lässt uns übrig, ich werde Bücher umblättern, damit wir unsere Spieler Flip-Bücher in den Flip-Buch-Ordner verschieben können . Und das ist im Grunde das Projektsetup, das wir mit der Struktur planen. Jetzt ist das nächste, was unser Maskenspieler ist. Der Grund, warum ich das habe, möchte ich nur ein weiteres Beispiel für West zeigen, dass bestimmte Dinge gelaufen sind. Was kann man brauchen, um dazwischen zu springen? So wurden diese genau auf die gleiche Weise aufgebaut, ein 128 Einheiten voneinander entfernt. Aber wegen der Größe dieses Spielers und des Kopfstücks, das er hat, wenn wir in die Extrakt-Sprites-Option kommen, würde der automatische hier in der Schule nicht funktionieren, weil diese beiden, die Heldentaten tatsächlich den Kopf berühren Stück. Diese würden also immer zusammen extrahiert und das erste Setup komplett unterbrechen. Also wieder, obwohl für den Frosch, der eine Art Arbeit war, wäre das für diesen keine Problemumgehung. Und Sie müssten wissen, dass die Gitter skaliert werden. Und wieder, trennen Sie dies durch eine 128 auf jedem. Und Sie können sehen, dass schneidet durch, ob Fuß auf dem Kopfstück Art berühren einander. Also habe ich nur etwas, das mir klar wurde, was ein nützliches Beispiel sein wird. Wie ich schon sagte, ich werde die Maske nicht benutzen. Ich werde dieses NIH tatsächlich loswerden, aber ich wollte nur dieses schnelle Beispiel zeigen. Ebenso passiert das Gleiche tatsächlich mit dem Bot. Wird das zusammen machen. Wir gehen zu den Bot-Sprites-Extraktionen und extrahieren das. Also wieder, weil diese Spannweiten in den Klassen berühren, diese beiden als eine einzige Fledermaus und dann funktionieren der Rest von ihnen perfekt. Also, was wir tun werden, ist, dass wir das in ein Raster verwandeln. Das ist eine komplette Breite von 1288 und wir haben Southern Fledermäuse Bilder, also teile ich es durch sieben und wir hätten eine Zelle mit einem 184. Gut zu sein, ja. Das wäre also genau der Betrag, den wir abschneiden müssen. So können wir jetzt sehen, dass sie nicht die gleiche Größe haben, aber das ist völlig in Ordnung. Denken Sie daran, dass wir diese Pivot-Überschreibungen haben, wenn wir sie brauchen, aber das ist meine Verkürzung von Rechten zwischen diesen beiden Flügeln, die bis dahin gehen, verbindet uns die Größe, die wir brauchen. Es ist vollkommen in Ordnung. Ein 120 wird aufgegriffen, was das Maximum ist, all das. Also nochmal, werden wir diese extrahieren. Wir werden ein Flipbook und für diese eine FB unbekanntgegeben Box erstellen. Und wir werden nur überprüfen, ob das funktioniert hat. Und in der Tat mussten wir keine Pivot-Offsets machen. Wie das perfekt aussieht. Also wieder, bewegen Sie diese in die Sprites. Wir können das in das Flipbuch weben. Und wir werden das im Grunde nur für den Rest von ihnen tun. Also für die Hütten, wie wir zuvor gesehen haben, funktioniert das tatsächlich, wenn wir nur die Sprites-Extraktionsanleitung ausführen, um Sprites zu extrahieren. Und dieser wird tatsächlich mit dem Auto-Extrakt arbeiten. So können wir mit der rechten Maustaste auf dieses Erstellen Flip Book genannt FB unterziehen hots. Und überprüfe das einfach. Posting von der Mitte, was wir wollen sowieso. Das ist also vollkommen in Ordnung. Und die letzte, ich werde die Option hier wählen, dass wir in den Frühling gehen, wir werden wieder mit der rechten Maustaste klicken. Wir gehen zu der Extraktoption und dass sie sich nicht erinnern kann, ob ich dies auf Gitterbasis einrichten, also werden wir einen Blick in das werfen, was ich vielleicht getan habe. Und doch können wir das alles auf dem Boden sehen. Wenn Sie ein 128 mal 128 Raster machen, bedeutet dies, dass wir nur die leeren Zellen loswerden müssen. Und dann können wir alle unsere Frühlings-Animationspunkte auswählen. Grant Flip Book genannt diese eine FB nicht offenbart Frühling. Und das funktioniert perfekt, so dass es geerdet bleibt und es macht eine kleine schiebende Animation. Also nur um wieder aufzuräumen, Flip Bücher in einem Flip Book Ordner und Sprites in den Sprites Ordner. Und Sie können Steuerelement klicken, um die Auswahl der Dinge aufzuheben, die Sie nicht möchten. Weben Sie die rein und wir sind so gut fertig, das bedeutet, dass wir all diese Fenster schließen können. Wir sind mit denen fertig, es sei denn, Sie wollten die Wiedergabegeschwindigkeiten ändern. Wir können jetzt zu unserer Spieler-Basisklasse gehen. diesem Inneren wollen wir zu unserem Sprite gehen. Und in der Tat wollte er vor allem diesen Würfel loswerden. Also löschen Sie den Würfel, wir gehen zum Sprite. Und hier können wir nun unser Standard-Quell-Flipbook in unseren FB-Unterstrich ändern, sagen wir, Spieler im Leerlauf, was uns eine Vorstellung von der Größe des Spielers gibt. Jetzt weiß ich, dass wir das ein wenig nach oben bewegen müssen, weil der Drehpunkt nicht ganz in der Mitte der Kapsel ist, also werden wir das nur ein wenig nach oben bewegen. Und dann greifen wir unsere Kapsel und ziehen die Kapselgröße Dine. Und wir wollen, dass dies wahrscheinlich nur innerhalb der Heldentaten ist. Wir wollen nicht, dass es so aussieht, als ob der Plan schwebt und wir machen die Kapsel etwas kleiner als der Spieler. Es sieht so aus, als ob es ganz schön auf dem Boden ruht. Und wenn wir das versuchen, sollte das in die Welt fallen. Und dann gehen wir, können wir sehen, dass wir uns bewegen. Es sieht nicht so schwebend aus. Und wenn wir an den Rand kommen, sieht das etwa richtig aus? Also wollen wir natürlich anfangen, verschiedene Animationen zu spielen, wenn wir uns bewegen. Aber das ist definitiv ein guter Ort, warum wir es sein müssen. Wir haben das 2D-Animationssystem jetzt in, und wir können anfangen, eine Vorstellung davon zu bekommen, wie es ist, in der Welt zu sein. Das ist so etwas wie das, worüber ich im Trailer zu diesen Videos gesprochen habe. Wir haben das Spiel bis zum Pfadreisenden, das ist ein 2D-Flipbook, im Wesentlichen bewegt sich in der 3D-Welt. Also könnten wir, wenn wir neue Dimensionen zu Toden hinzufügen, ein sehr ähnliches Spiel mit diesen 2D-Animationen haben, aber mit dieser Art von 2,5 D oder 3D-Welt zu interagieren. Also wieder, ein weiterer Vorteil, all dies zu tun, obwohl es keine Engine ist, die Leute wirklich als eine Art 2D 3D oder 2D optimiert betrachten . Wir haben einige ziemlich coole Funktionen, die wir mit der Unreal Engine machen können, mit der Art von 2D-Hybrid. Also wieder, in diesem Stadium kommen wir ziemlich weit und stellen sicher, dass Sie Ihr Projekt speichern , während Sie fortfahren, um all diese Updates zu behalten, die wir machen. Ich meine, eine andere Sache, an die ich gerade erinnert habe, wenn Sie das Projekt schließen und öffnen, werden Sie wahrscheinlich jedes Mal mit einer neuen Karte begrüßt. Also, was wir tun können, um das für meinen Sprung zu den Karten und Modus-Abschnitt zu umgehen, weil wir unsere Hauptkarte gespeichert haben, können wir den Editor Startup Map ändern. Sie erhalten die Standardvorlage, die nur die leere Karte ist, die ähnlich dem ist, was wir haben, aber nicht die, die wir mit ihm gearbeitet haben. Dann, was wir tun können, ist, dass wir das in „Haupt“ ändern. Jedes Mal, wenn wir das Projekt schließen und öffnen, wird dies standardmäßig die Karte sein, die geöffnet werden soll. Und auch wenn du das jemals jemandem zum Spielen geben willst, können wir das Spiel auf der Standardkarte auch auf Maine ändern. Also wieder, es wird mit dieser Karte begrüßt, an der wir arbeiten, und wir werden bald anfangen, Änderungen daran vorzunehmen. Um dies mehr 2D-Basis wird mit unserer gemalten Kachel-Karte und sehen halten, dass funktioniert. 6. 06 – TileSets: Bevor wir jedoch Dinge innerhalb unserer Kachelkarten malen können, brauchen wir etwas, das als Kachelset bezeichnet wird. Und um die zu bekommen, werden wir unsere Texturen noch einmal neu verwenden. Also aus den Assets und dem Texturen-Ordner, das letzte, was wir nicht verwendet haben, haben Sie vielleicht bemerkt, dass das T nicht offenbarte Terrain ist. Was wir das tun wollen, ist etwas ein bisschen einzigartiger. Also werden wir wieder mit der rechten Maustaste klicken. Zuvor haben wir Dinge als einzelne Sprites extrahiert. Was wir tun wollen, wenn dies ist, werden wir dies ändern, um einen Kachelsatz zu erstellen. Das bedeutet, dass Sie sagen können, dass es im Moment ziemlich genau gleich aussieht. Dies ermöglicht es uns, gezielt Dinge wie die Größe jeder einzelnen Zelle zu setzen und dann diese verschiedenen Zellen Dinge wie Kollisionen von dieser Option hier oben zu geben . Im Moment ist die Standard-Kachelgröße 32 mal 32. Und für diejenigen unter Ihnen, die auf der Größe der Textur achten, das nicht funktionieren, wenn Sie sich das angesehen haben. Also, jeder dieser vier, im Grunde wollte ich sein, was wir wählen. So können wir sehen, dass 32 von 32 ein wenig zu glatt ist, wenn wir Dinge malen, es wird erwartet, dass wir Dinge in Blöcken dieser Größe malen werden. Was wir also tun wollen, um das zu erreichen, ist nur bis zu 64 von 64. Und das ist sehr wichtig, dass wir diese Änderung neun machen, da dies irgendwie auf unsere Kachelkarte übertragen wird , wenn wir das etwas leichter erstellen. So wird es uns Zeit sparen und den Prozess ein wenig automatisieren. Damit bedeutet das, dass wir jetzt die richtige Auswahlgröße haben, was wir unsere verschiedenen Stücke so haben werden, also ist das der erste wichtige Schritt. Nun ist das nächste, was zu beachten ist, dass ich nur mit dieser Auswahl hier oben arbeiten werde , wenn Sie verschiedene Ebenen erstellen und diese verschiedenen Assets verwenden wollten , die ich bereitgestellt habe, dann können Sie eines dieser verwenden, nur folgen Sie dem gleichen Prozess, den ich auf dieser Auswahl hier oben für die verschiedenen Töpfe unten machen werde. Und dann können Sie mit diesen Schaltflächen Ihre eigenen Kreationen für die Levels erstellen. Jetzt ist das nächste, was wir betrachten wollen, dass sie mieten diese werden in der Welt verwendet werden. Also Dinge wie diese, werde ich dies als ein bisschen Hintergrundinformationen einstufen. So Dinge wie die Rückseite Schleifen brauchen keine Kollision wird nicht mit dem Spieler oder irgendetwas anderes interagieren. In ähnlicher Weise haben wir Bits in der Mitte gerade hier. Also diese wieder, dass wahrscheinlich nie in Kontakt mit den Spielern kommen. Also müssen wir wahrscheinlich keine Kollision winzige Sache wie diese hinzufügen , die Bits um die Außenseite. Danke. Diese Wände und die Böden und Dinge, diese werden Potential haben, mit denen interagiert werden können. Wir wollen also Kollision zu diesen Kacheln hinzufügen. Die Art und Weise, wie wir dies tun, ist ein bisschen ein repetitiver Prozess, aber wir werden jede einzelne Kachel auswählen und wir würden sehen, dass dies hier oben erscheint. Jetzt leider, wenn wir mehrere Dinge auswählen , die verschwindet und es gibt keine Art von Kopieren einfügen, die ich gesehen habe. Also, was wir tun wollen, ist wählen Sie jedes Bit, das wir eine Kollision haben wollen, gehen Sie, um Bücher hinzuzufügen. Und Sie können hier sehen, eine weiße Box ist nur ein Pad um unsere Kollisionsfliese, die uns zeigt, wo die Kollision gesetzt wird. Wenn wir das ein bisschen aktualisieren wollten. Vielleicht ist das auch ein bisschen, wenn wir etwas zu weit nach oben gehen, in ein bisschen zu hoch, können wir den Pfeil bewegen und das würde die Größe einer kollidierenden Box ändern. Oder wir können das erweitern, wenn wir wollten, übergeben Sie das sichtbare Bild. Und ich habe von diesen gehört, diese funktionieren tatsächlich ziemlich gut, wenn wir es einfach sehr eng an der Rastergröße lassen , die wir hier haben. Also werde ich einfach durchgehen und im Grunde jedes Bit auswählen und das Feld Hinzufügen drücken. also das Erste, das getan wurde. Grundsätzlich alle Außenseiten dort. Ich will alle Seiten. Also diese Tops und Wissenschaft und dann alle diese einzeln können diese Kollision auch haben. Also werde ich das hier in eine Art verkürzte Montage im Hintergrund setzen. Also muss ich es nicht in Echtzeit beobachten und du kannst mitverfolgen und ziehen, wenn es voran kommt. Okay, Also alles getan, Ich habe diese Kollider als auch gegeben, weil diese nicht einige nette Details um den Rand der Ebenen, die Sie noch auf sie springen können, nur um die Monotonie zu brechen nur dieses 1-Bit von Lund und der Grenze. Die letzte Sache ist, wenn Sie alle Ihre Kollision haben, denken Sie, Sie haben es richtig eingerichtet. Wir können hier auf die kollidierende Kachel-Option gehen. Und es wird tatsächlich alles ändern, um ein blaues Gitter zu sein basierend auf dem, was Kollision hat und was dann keine Kollision hat. So können wir sehen, dass alles, was ich sagte, eine Kollision brauchen würde ein F hat. Ich glaube nicht, dass die Spieler das jemals erreichen werden. Also wahrscheinlich nicht wert zu tun. Sie werden definitiv nicht in der Lage sein, dies zu erreichen, es sei denn, sie sind ein wenig buggy gegangen. Und ebenso ist dies nur eine Art Füllstoff visuell dafür, dass zwischen den verschiedenen Gittern zu gehen , wenn das Gemälde die Dinge ein wenig interessanter zu machen, diese alle müssen Kollision gibt es wirklich verwendet, wie Plattformen oder Ziegel, um sie zu springen. Das ist also ziemlich perfekt. Ich werde die wahrscheinlich nicht benutzen. Aber nur um Ihnen ein letztes Beispiel zu zeigen, haben wir diese Dynamik. Also, wenn Sie schwimmende Plattformen oder etwas verwenden wollten, sind diese wahrscheinlich nicht ideal, um in einer Kachelkarte zu verwenden, denn wenn Sie plotten möchten, wenn wir normalerweise in der Lage sein wollen, durch sie zu springen. Und das kann man mit einer Kachelkarte nicht ganz einfach machen. Sie möchten wahrscheinlich diesen Entwurf seines Bügels auf Ihrer Setup-Kollision auf eine andere Weise erstellen. Aber wenn Sie das aus irgendeinem Grund verwenden wollten, wenn Sie nur wollen, dass sie wie eine solide Brücke sind, durch die Sie nicht springen können. Dann wieder, sehr ähnlich, wir werden nur Kollision hier hinzufügen. Also all diese, und dann ist dies, wo dies nützlich ist, obwohl. Offensichtlich ist der hallo MOOC mit dieser Abkürzung definitiv zu groß von unten hier. Also werden wir das auswählen und wir können das einfach nach oben ziehen und es vielleicht nur ein wenig weiter nach oben ziehen , damit es keine gute Möglichkeit gibt, dies zu überlappen. Wir können die Raster-Fang-Dynastie ändern, so etwas wie 1. Also bekommen wir weniger Snob und ich würde gehen, wir können den Umriss perfekt umhergehen und das haben wir getan. Aber all diese, also dachte ich, dass dies aktualisiert wurde. Es scheint nur Informationen über die gesamten Rastergrößen zu haben. Ich hatte gehofft, dass es dies hier visuell darstellen würde, aber ich kann aus früheren Experimenten nicht bestätigen, dass es im Spiel die Kollision von dieser Buchgröße hier nehmen wird. Ich bin nicht unbedingt das, was du hier siehst. Das bedeutet, wenn Sie diese in tun, wird das Zeichen nicht kollidieren, bis sie den absoluten Boden erreicht haben , anstatt D, den toten Pixelraum um ihn herum. Das ist wirklich alles, was Sie tun müssen, um ein Handtuchset Setup zu bekommen , das bereit ist, die Kollisionen zu gehen, wie wir diese brauchen. Und wie ich schon sagte, wenn Sie den gleichen Ansatz verfolgen wollen, können Sie das für all die verschiedenen Vermögenswerte tun. Sie können wahrscheinlich schon sehen, warum ich das nicht für all die Vermögenswerte hier tun werde, um der Tutorials willen wäre das ein wenig repetitiv. Und das wird mehr als genug sein, um die wichtigsten Techniken und Prinzipien zu zeigen , die in die Erstellung unserer Kachelkarte gehen. Also können wir jetzt die Taus schließen, die wir so ziemlich fertig mit diesem für den Rest des Kurses, ich werde dies in die Kachel-Assets fallen lassen. Also werden wir nur einen Kachel-Satz auf einer Kachelkarte haben. Es lohnt sich also wahrscheinlich nicht, separate Ordner für sie zu haben. Also habe ich gerade eine Art erstellt, die einen Kachel-Asset-Ordner umfasst. 7. 07 – TileMaps: Mit unserem Tunnel an Ort und Stelle und bereit zu gehen, haben wir jetzt das Kapital, auf dem wir eine Handtuchkarte stützen müssen. So ähnlich wie bei unseren Texturen, wenn wir mit der rechten Maustaste darauf klicken, haben wir eine kontextsensitive Option. So können wir nun eine Kachelkarte aus unseren Kachel-Sets erstellen. So können wir diese Option wählen. Auch hier wird hier unten ein neues Asset erstellt. Ich werde hier eingehen und wir können sehen, wie das funktioniert. Das erste, was ist, dass der aktive Kachelsatz automatisch aus dem, den wir ein bisschen früher erstellt haben, ausgewählt wurde . Wenn Sie mehr als eine hatten, könnten Sie das hier ändern und es nimmt einige Informationen. Wieder, das Wichtige auf der rechten Seite, wir können sehen, dass wir diese Rückgängig-Pfeile haben und die Tunnelbreite und -höhe wurde auf 64 x 64 gesetzt. Wenn wir dies standardmäßig hätten, wäre es 32 mal 32 gewesen. Und wie ich schon sagte, das würde dann bedeuten, dass falsche Größen vom Kopf ausgewählt wurden , wenn wir versuchen, Dinge zu malen. Wenn wir also reinkommen und das auswählen, werden wir den falschen Brocken bekommen, wie wir sehen können. Deshalb war es wichtig, dass wir zunächst die richtige Fliesenbreite und -höhe verwenden , wenn wir Dinge aus Heckenfarbe in die Welt aussuchen. Jetzt, wenn ich diese auswähle, können Sie sehen, wie es den Pinsel ändert und wir haben die Option hier, malen Asien und füllen. So einfach, aber Sie sind wahrscheinlich vertraut mit dem, was diese tun. Und dann ist dieses weiße Gitter irgendwie so, wie Canvas es die Welt sein wird, auf die wir malen. Das nächste, was wahrscheinlich wäre, zu ändern, wie groß wir das im Moment sein wollen, wenn wir zum Beispiel alle Todesfälle ergreifen,das hineinlegen würden zum Beispiel alle Todesfälle ergreifen, , das wäre im Wesentlichen die Größe unserer Welt. Also mal sehen, wie das funktioniert. Wir können unsere Kachelkarte mit uns in die Welt ziehen, und das ist wahrscheinlich ein bisschen zu klein, damit die Planeten sie korrigieren. Also habe ich eine Kollision aus der Kamera, wurde gelehrt, dass etwas später, was wir tun wollen, diese machen dies größer damit wir das mit der Kartenbreite und der Höhe ändern können. Also wird jeder Rastereinheit Kopf 64 mal 64 sein, wie Sie es erwarten würden. Und wenn wir das mitschleppen, können wir das viel größer machen. Aber Sie würden wahrscheinlich nicht wollen, dass dies riesig ist, sonst haben Sie einen sehr großen Platz zu füllen. In der Tat, ich denke, etwas wie 60 von 40 könnte hier ziemlich nett sein. Vielleicht ein bisschen kleiner in meinen Tests, ich glaube, ich bin über 80 mal 20 gegangen. Also ist etwas breiteres getan Werkzeug. Wir werden nur eine sehr Art horizontale Ebene machen. Und dann können wir zumindest anfangen, herauszufinden, wie das System funktioniert. Also das erste, was ist, dass ich das Radiergummiwerkzeug bekommen und diese loswerden werde. Und wir wollen uns konzentrieren, wie wenn Sie mit Krita vertraut sind oder wieder, Photoshop, wir haben ein sehr flexibles letztes System hier. Also Schicht eins ist diejenige, die wir nicht im Moment haben. Wir können neue Ebenen hinzufügen, weil etwas ganz einfaches. Also werde ich einen Hintergrund und eine Vordergrundebene erstellen. Also wird der oben stehende eigentlich der Vordergrund sein. Dies ist die vorderste Ebene, und dann haben wir acht Hintergrundebene. Ich drücke nur F2, um diese umzubenennen und da diese schneller Name sind. Jetzt als ein kurzes Beispiel, um zu zeigen, wie das aussehen wird, werde ich diese schwarze Farbe hier bekommen. Also, indem Sie das auswählen, wählen Sie das Füllwerkzeug und auf dem Hintergrund, füllen Sie es einfach in schwarz. Und dann, um zu testen, haben wir das Richtige vor. Lasst uns ein wenig Hügeländerungen nehmen, um zu malen. Und natürlich wird alles, was Sie auswählen, hier gemalt. Und wir werden nur sicherstellen, dass dies über den Hintergrund malt. Das ist so ziemlich, wie wir das benutzen werden. Wir haben jetzt unseren Hintergrund ist ziemlich eingestellt und bereit zu gehen. Also wird alles hinter uns viel sein. Schwarz lackierte Farbe. Und dann können wir anfangen, auf den Vordergrund zu zeichnen, was das Bit ist, mit dem der Charakter mit dem Kuchen interagieren wird, mit unseren kollidierenden Stücken. Also ein paar Dinge Festival, diese haben eine Kollision aus einem Grund gegeben. Also werde ich diese als eine Art Umriss zum Level hinzufügen. Im Idealfall dachte ich, dass wir eine Art Quote um all diese haben würden. Und das soll auch die Kamera enthalten. So wird die Kamera immer nur diese Art von schwarzen Umrissen sehen, welche Ebene sie breiter sein muss, weil die Kamera ziemlich weit horizontal sehen kann , also brauchen wir eine gute Sache. Und so etwas wie 16 Einheiten war ungefähr, wenn die Kamera anfangen würde zu sehen, dass das Leerraum um sie herum war. Also werden wir hier wie eine Ecke haben. Ich drücke nur zed, um das zu drehen, und x wird es horizontal drehen. Also werde ich das rechts drehen, die rechte ungefähr dort. Und wir können das einfach löschen und dann eine dieser Seitenteile packen. Denken Sie daran, wir wollen, dass die Spieler hier mit diesem Stein aussehenden Stück kollidieren. Also nochmal, ich werde das einfach umdrehen und wir können das Diner hier malen. Sie können verschiedene Stücke verwenden, wenn Sie möchten. Sie sind alle so ziemlich gleich. Also werde ich das einfach umdrehen, um es wiederzuverwenden. Und das ist im Grunde, wie wir das Level aufstellen werden. Das wird also eine Menge Dinge spiegeln, es ziehen. Wenn du einen Fehler machst, dann werden wir das anordnen. Sie können auch in Auswahl- und Breitenmalwerkzeug kommen. Solange Sie das Malwerkzeug ausgewählt haben, wählen Sie die Umschalttaste aus, kopieren wir das. Und wieder, wir können das umdrehen und ihn einfach einfügen. Auch hier stellen Sie sicher, dass Sie ungefähr 16 Punkte von der Kante entfernt haben. Und Sie sollten mit der Kamera nicht den leeren Raum sehen, den wir im Hintergrund haben werden. Denn denken Sie daran, wir werden immer noch all das im Hintergrund haben. Wir können dies ein wenig für den künstlerischen Stil vereinfachen. Aber die Hauptsache ist, dass du immer noch nicht so 200 sehen willst , dass dies nicht die ganze Welt ist. Die nächste Sache, also das ist irgendwie die Grenzen gemacht. Wir können das auch auswählen. Und ich werde das einfach wieder mit Zed umdrehen. Das ist nicht ein bisschen dämlich. Die nächste Sache ist, dass wir unseren Hügel wollen. Also das ist so ziemlich nur zu bes und das ist ein wenig zu kurz viele, um es ein wenig zusätzliche Höhe hinzuzufügen. Wir werden sehen, wie das läuft. Fügen Sie das hier unten ein. Dann wollen wir, dass die auf den Boden gehen und du siehst, dass es ein bisschen einen Umriss hat. Denken Sie also daran, dass diese den Boden entlang gehen sollten , solange Sie wollen, dass sie gehen. Und dann wird dies mit den anderen Stücken verbunden werden, um sicherzustellen, dass das Mittelstück dort wegen der Umrisse. Und dann, wie ich sagte, das ist das bisschen, das ist nur Füllstoff, dass der Spieler ging, um ihn früh die Autistiker zu sehen. Also werde ich Boden gegangen ist, wenn wir eine neue Leiste wollen , nur mit einer ähnlichen Art von Setup, dass wir dann diese zusammen einfügen können. Und ein weiterer Tipp ist, wenn wir ziehen, wählen Sie diese beiden nach rechts und ziehen Sie sie dann einfach entlang. Das. Und der Friede wird immer bis zum Ende geschleppt werden. Und so können Sie sehen, es spart nur ein wenig Zeit dort, indem Sie verschiedene Stücke immer und immer wieder auswählen. Uns fehlte Flexibilität, also kann ich das einfach einfügen. Das bedeutet nicht, dass wir das brauchen, um ein bisschen weiter zu gehen. Und dann können wir etwas tun, wie wählen Sie das Füllwerkzeug und füllen Sie es dort aus. Also nochmal, du wirst wahrscheinlich etwas kreativeres tun wollen , als ich. Also werde ich das nicht am Laufen halten und das Ganze mit Kommentaren machen. Sie haben also die Grundidee, dass wir verschiedene Dinge ziehen und auswählen können, um hier einige interessante Blicke zu haben , wie gesagt, anstatt nur ein konstantes Gras-Level-Stück zu haben, so können Sie irgendwie einen Vordergrund vortäuschen und Hintergrund sieht mit den verschiedenen Verbindungen dort aus. Und das letzte, was ich auch tun werde, ist der Bereich innerhalb dieser Art von Bindung, die ich gemacht habe. Ich gehe zurück in den Hintergrundbereich, schnappe den Radiergummi und sorge dafür, dass wir das nehmen. Weil ich finde, dass diese Farbe ein wenig zu sehr mit dem Zeichenumriss kollidiert . Und sie können ein bisschen chaotisch aussehen, ein bisschen verwirrend. Und es ist schön, diesen schönen, soliden schwarzen Umriss vom Charakter zu bekommen . Also werde ich einfach alles löschen, was er Osteo hatte, irgendetwas anderes, was du mich tun siehst? Für das nächste, was Sie sehen werden, ist ein Fade zu den Endergebnissen. Wenn du in Großbritannien bist, eine Art blaue Pizza, hier ist eine, die ich früher gemacht habe. Und hier ist eine, die ich vorhin gemacht habe. Wie ich schon sagte, es ist sehr, sehr einfach. Ich habe den Hintergrund aufgeräumt. Wenn ich ein paar verschiedene Schichten von Plattformen hatte einige überlappende Dinge Köpfe sicher, dass Sie sie so aussehen lassen können , dass die sich überschneidenden, die haben würde, dass es irgendwie in der Art und Weise berücksichtigt wird, dass die Umrisse hier gemacht werden. Ich habe eine Plattform gemacht, auf der wir aufspringen können. Ich habe die Holzplattform nicht benutzt, aber das kannst du hinzufügen, wenn du willst. Und dann nur ein Stein hier unten, auf dem wir auch rumspielen können. So ist es also das Endergebnis, können Sie etwas sehr, sehr ähnlich dem bekommen , wenn Sie wollten. Die Hauptsache, wie ich gesagt habe, ist, dass, wenn wir dies in die Welt ziehen, dies wird zu berücksichtigen für die, was die Kamera können wir jeden Punkt sehen und wenn es nicht in der Lage wäre, höher oder niedriger auf der Kamera Art Ansichtspunkt oder Sichtfeld für die vertikale Seite ist nicht ganz so hoch wie die horizontale Ebene. Wenn wir jetzt auf die Karte zurückkommen, können wir anfangen, hoch zu sehen, das wird funktionieren. Also werden wir das in die Welt schleppen. Wir können sehen, dass es viel größer ist. Ich werde 0 diese Seite können wir gehen 000. Und weil der Drehpunkt oben links ist, würde nur wollen, um dies ziehen. Und wir wollen wirklich, dass das mit den Kunststoffpunkten übereinstimmt. Ich werde das nur unter den Planeten-Punkt ziehen und wir können anfangen, Dinge loszuwerden , als ob wir diesen Boden nicht mehr brauchen wollten. Wir gingen auch brauchen die Reflexion Sphäre oder das Volk, so können wir loswerden ein paar der Dinge aus der Welt skizzieren hier drüben. Nun, wenn wir Play drücken, solange das im Einklang mit dem Plastik, um den Spieler sollte auf diese Gitter fallen und kollidieren. Also haben wir etwas, das wir zufällig aussehen können. Wir können sehen, dass das Plasma irgendwie schwebt, weshalb wir es schön und früh bekommen wollten. Wir können schnell zum Plan zurückspringen diese Capture-Komponente ein wenig mehr aufbauen. Und wie ich schon sagte, wir können diese Art von Fälschung in der Größe machen und irgendwie diese Seite des Fußes ein bisschen da haben, so dass wenn wir uns ausruhen, es sieht so aus, als ob wir uns auf dem Boden ruhen. Und ich bin kein großer Fan dieser realistischen Kunden in einem Pixelkunstspiel. Also, was ich tun werde, ist für die Himmelskugel, kleiner Tipp hier, ich werde die Farben von der Sonne bestimmt machen, nicht basierend auf dem Oberlicht, das wir haben. Also haben wir unsere Lichtquelle. Wir gingen auch brauchen die Re-Cast genug Mesh. Zurück zum Wolkenkratzer. Ich werde die Helligkeit Lightspeed und Clyde Deckkraft auf 0 und die Sternhelligkeit einstellen. Was alle nicht relevant sein werden, was uns jetzt einen Klassen-Typ gibt. Ich denke, das ist nicht ein bisschen blendend und ein bisschen hell. So sieht es so aus, als ob ich tatsächlich in den Himmel gegangen bin oder so. Also, was wir tun wollen, ist, dass ich die Zenitfarbe in ein dunkleres, vielleicht ein dunkleres bläuliches Grau ändern werde. Ich werde das kopieren, weil wir diesen Hex-Wert in einem Moment wiederverwenden werden. Ich werde die Horizontfarbe in die gleiche Farbe ändern. Und das gibt uns nur eine nette Art flacher Wolkenkratzer. Wenn Sie jemals wollten, den Himmel Gemüse nur eine sehr Art von minimalen flachen Farbe sein. Ich denke, das funktioniert ein bisschen besser. Es steht nicht in Konflikt mit den Umrissen. So können wir immer noch deutlich sehen, die Umrisse, die zu allen Vermögenswerten hinzugefügt wurden, aber auch nicht zu hell ist. Es hat nicht die von Clyde. Es sieht etwas passender mit dem Stil aus. Und nur ein Test, den wir die Kamera sehen können, können hier keinen Hintergrund mehr sehen. Ich werde nichts über uns sehen. Und wir werden hoffentlich nichts auf der rechten Seite sehen. Das sieht also ziemlich gut aus. Ich kollidiere mit allem, was wir erwarten würden, dass wir kollidieren. 8. 08 – Einrichten von Player: Mit unseren Kacheln Karten Sets und bereit zu gehen. Wir haben jetzt etwas Volles am Spieler, um herumzulaufen. Also haben wir unsere ortsbasierte, im Wesentlichen, was wir jetzt tun wollen, ist zurück in die Spielerklasse und wir werden durch die Bewegung und die Animations-Setup gehen . Also werden wir das System vielleicht ein bisschen mehr entwickeln. Also zurück innerhalb der BP nicht offenbarten Spielerbasis, wir wollen das Event Tick wieder. Also eine mögliche, offensichtlich wollen wir versuchen und vermeiden das Ereignis Tick-Kühlung viele Funktionen ständig, einige Dinge wie die Animation und Überprüfung bestimmter Zustände, wir werden ziemlich viel ständig aktualisiert werden wollen, so dass wir bekommen, dass sofortige Feedback. Also werden wir dies aus dem Event Tick fahren. Dies ist die Art von Sache, die subtil, leicht zu diesem Rooney wird nicht jede Art von Leistung Lager hier hinzufügen. Jetzt wirklich, was wir tun wollen, wird es zwei verschiedene Dinge geben, die wir ständig überprüfen und aktualisieren wollen auf dem Event Tick. Wir werden die Animation basierend auf dem aktuellen Bewegungsstatus steuern wollen , ob sie sich in der Luft, im Boden, im Leerlauf, Bewegung usw. befinden. Wir werden auch die Spieler-Animation basierend auf der Richtung, der Bewegung oder der Eingabe, die der Planet drückt, aktualisieren wollen . Um dies zu tun, weil wir wissen, dass wir die beiden wichtigsten Dinge haben, die wir überprüfen wollten. Ich führe dieses Festival aus einer Sequenz. Also ich im Grunde werden wir unsere Bewegungssequenz und unsere Rotationssequenz haben. Wir können eine Umleitung in der Nacht haben, die wir wollten. Manchmal ist es schön, sich selbst zu dokumentieren, während Sie mitmachen. Wir wissen also, dass wir, wenn wir zurückkommen , einen Kommentar hinterlassen und sagen, dass dies unsere Rotation sein wird. Also mein einfacher Kommentar, nur um uns daran zu erinnern, was wir tun, ist, dass wir für die Bewegung Lüge durchgehen, dies wird die Animation sein, die auf der Bewegung basiert. Dies wird die etwas komplexere Sache sein, die ich in zwei Stufen durchlaufen werde, wird in diesem Stadium, die sehr grundlegende rudimentäre Implementierung, die wir in die Ereignisticks bekommen können , so dass wir sehr schnell visualisieren, was passiert. Ich werde ein wenig später zurückgehen und wir werden dies mit einem etwas besseren Ansatz verfeinern. Aber ich wollte beide Ansätze zeigen, damit wir sehen können , dass Y1 die Task Force ein wenig automatisiert. Das ist ein. Also zu Beginn, was wir tun wollten, ist, alle möglichen Zustände zu überprüfen, in denen wir sein können, in Bezug auf die Einstellung der Playa bewegt sich aufrecht so schnell, dass wir dies von einem anfänglichen Zweig laufen können. Und das wird prüfen, ob wir geerdet sind oder nicht. So hat die Charakterbewegungskomponente wieder all diese Art von Trakt-Flora. Und anstatt, als richtig gemahlen, wirst du überprüfen, ob wir täuschen, gleiche Art von Sache, aber irgendwie umgekehrte Logik. Es hat also eine Variable, die verfolgt wird, ob sich das Zeichen derzeit in einem Zustand des Fallens befindet. Also, ob wir zu einem bestimmten Zeitpunkt in der Luft sind, wenn wir es sind, was wir tun wollten, ist unser Sprite zu greifen so unsere Animation, dass wir gehen und wir werden das Flipbook setzen. Aber wir wollen das Flipbook auf einen bestimmten Zustand setzen, natürlich, wenn wir uns täuschen. So bewegen wir uns am Ende sowieso, beginnen wir mit der Annahme, dass wir springen. Also ändern wir dies in FB unterstrichenen Sprung, und wir werden das hier einstecken. Jetzt wird das wirklich ein bisschen ein Problem verursachen, weil wir im Wesentlichen zwei Staaten haben, die wir berücksichtigen wollen. Ob wir uns in einem positiven Vesikelwert oder einem Negativ bewegen. Also, ob wir irgendwie die Spitze des Sprungs erreichen oder von ihm zurückfallen. Im Grunde alles, wenn man nicht auf dem Boden ist, wird als Narren eingestuft. Das ist also nicht ganz das, was wir brauchen, aber das ist ein guter Anfang. Nun, weil wir das ziemlich viel wiederverwenden werden, werde ich es aus dem Flipbook holen und dies zu einer Variablen fördern. Ich werde diesen einen FB nicht offenbarten Sprung nennen. Und wir werden all dies als Variablen brauchen, während wir dies als eine nette, einfache Möglichkeit durchlaufen, dies einzurichten. Denn jetzt, da wir diesen Satz in unserem Slot haben, werden Sie sehen, dass er der Jump Animation automatisch den FB nicht offenbarten Sprungwert zuweist . Also werden wir diesen Schritt für Schritt durchlaufen und das wird einige der Variablen, die wir auch brauchen, herausgreifen. Oder wenn wir diese Logik aufgeräumt haben, werde ich hier noch einen Zweig überprüfen. Und wir wollen herausfinden, ob wir am Boden sind. Also, jetzt vorausgesetzt, dass wir nicht fallen oder steigen, und wieder, werden wir ein wenig später in Fleisch zurückkehren, die Website wird das Bodenmaterial tun. Zuallererst wollten wir nicht wissen, ob wir auf dem Boden sind und wir uns von Seite zu Seite bewegen oder ob wir völlig stationär sind. Also ganz einfach, wir können die get velocity cool hier verwenden. So können wir die Geschwindigkeit finden, die sich der Charakter bewegt. Und wir wollten überprüfen, ob das nicht gleich ist. Also haben wir dies als eine Länge, um sicherzustellen, dass wir für jede der Richtungen berücksichtigen. Dies wird also den Vektor im Wesentlichen als Float zurückgeben. Ich bin im Grunde das wird wissen, dass, wenn wir uns nach links bewegen, rechts vorwärts , ein Backup, wenn es Renditen 0 gibt, dann werden wir wissen, dass wir uns nicht in irgendeiner Richtung bewegen. Also können wir sagen, ist nicht gleich. Wenn das also nicht gleich 0 ist, dann wissen wir, dass wir uns bewegen, also wird sich das bewegen oder sich nicht bewegen. Also nochmal, was wir von hier aus machen wollen, müssen wir uns unsere Sprites und Flipbook packen. Also werde ich Control W, um diese Zeile hier zu kopieren. Und ich werde das nochmal machen. Also Control W, wie wir dies das dritte Mal tun müssen. Und hoffentlich können Sie anfangen zu sehen, warum dies nicht das ideale Setup sein wird , das wir brauchen, um diese eine Funktion immer wieder zu kühlen. Es ist eine Art Replizierung der Logik. Und wieder, Sie werden sehen, wie wir das ganz einfach in einem Moment beheben können. Aber zuerst werden wir die Dinge visuell in Gang bringen. Wir können tatsächlich damit beginnen, dies zu testen, während wir weitergehen. Im Moment, weil wir das auf nichts eingestellt haben, müssen wir noch ein paar Schritte unternehmen, bevor wir testen können. Aber wenn wir springen würden, können wir sehen, dass wir die Sprunganimation bekommen. Alles andere wird das so machen, dass es unsichtbar ist. Was wir sagen, ist, dass, wenn die Geschwindigkeit nicht gleich 0 ist, also wenn wir uns bewegen, dann wollen wir unser Flipbook hier so einstellen, dass es ausgeführt wird. Also werden wir dies auf das laufende Flipbook setzen oder dies auf eine Variable fördern , die wieder diese eine FB und der Schullauf genannt wird. Und wir werden hier unten etwas sehr Ähnliches tun. Also dieser ist natürlich, wenn wir uns nicht bewegen, also werden wir dies auf FB Unterstrich Leerlauf setzen, oder das ist ein Spieler im Leerlauf nur Nacht nur ein bisschen, wenn das Benennen Problem nicht haben. Also kann ich zurückgehen und das etwas leichter reparieren. Ich werde dies wieder zu einer Variablen fördern und das wird FB-Unterstrich im Leerlauf sein. Jetzt haben wir etwas, das diese Slots ausfüllt, damit wir das jetzt testen können. Also haben wir unsere Leerlaufanimation, es, wir tun nichts Sprunganimation, wenn wir in der Luft sind und Animation laufen, wenn wir nicht stationär sind. Also natürlich haben wir eine Art Wahrheitsrotation. Wir haben das Springen und Fallen nicht berücksichtigt, aber sie werden sehr bald kommen. Steigung für das Springen und Fallen. Ich werde Ihnen jetzt die ausgewählte Notiz vorstellen, wenn Sie das noch nicht gesehen haben. Im Grunde, was wir tun wollen, wenn wir wissen, dass wir in irgendeiner Form des Seins in der sind, wir wissen nicht, ob das eine positive oder negative Geschwindigkeit ist , die wir noch auf der Z-Achse bewegen, was wir tun werden, ist, dass wir gehen, um unsere FB Unterstrich Sprung zu enthaken, und wir werden ein Flipbook je nach einem bestimmten Ergebnis auswählen. Also werden wir unsere Dienstprogramme auswählen lassen. Wenn wir einen Platzhalter verwenden, können wir dies standardmäßig in ein paar verschiedene Variablen ändern. Und wir wollen, dass dies wieder die Rückkehr eines Booleschen ist. Also machen wir einen kurzen Boolean Check. Wir können es kopieren, ich werde hier unten Geschwindigkeit bekommen. Wir werden das in einem Moment überprüfen. Wir können das aufteilen, waren diesmal nicht an einer der Achsen interessiert, dieser Geschwindigkeit. Also teilen wir den Strukturstift auf. Wir wollen wissen, ob wir uns in einem positiven oder negativen Wert in der z-Achse bewegen. Also oben und unten im Grunde, und was wir tun werden, ist, dass wir sagen, wenn das kleiner oder gleich bestimmten Flügen ist. Also werden wir den genauen Datenpunkt berücksichtigen, den wir auf die Spitze treffen, dann werden wir das in unseren Platzhalter übergeben. Ich werde das in einen Booleschen Wert ändern und wir haben jetzt eine Überprüfung, um herauszufinden, ob wir vertikal in einem positiven oder negativen Wert bewegen oder nicht . Gut, weil wir wissen, dass dies ein boolescher Wert ist, dies in wahr oder falsch geändert. Also, wenn das wahr ist, also wenn wir kleiner als gleich 0 sind, ist das wahr. Dann wissen wir, dass dies unsere fallende Animation sein wird. Und das hier heißt furchtbar. Ich gehe zurück und repariere diese Neun, weil das schlimmer ist, als ich erwartet habe. So FB Unterstrich Narr sollte spielerisch sein und FB Plaid springen. Okay, das wird es viel einfacher machen, nicht in einer guten Ordnung zu finden. So gut, ich sagte, ist, dass, wenn das kleiner oder gleich 0 ist, wenn das richtig ist, dann wissen wir, dass wir täuschen. Wenn es falsch ist, dann wissen wir, dass wir einen positiven Wert haben und wir immer noch springen, aber wir haben noch keine flache Spitze erreicht. So können wir auf Play drücken. Wir werden nochmals überprüfen, ob das funktioniert. Also haben wir Springen und Fallen. Und das scheint ziemlich perfekt zu sein. So gibt es uns nur diese Art von Ideal, wie sich die Spieler bewegen. Es gibt uns ein wenig mehr von diesem visuellen Feedback und es füllt ein bisschen polierter sofort, dass wir wissen, in welche Richtung wir vertikal bewegen. Also werde ich das einfach wieder in Jump stecken, diese zu einer neuen Variablen befördern. Und ich bin froh, diese Namen zu geben, weil wir in der Klasse sind. Das ist offensichtlich, was das sein wird. Die Namenskonvention hier ist mehr, so dass es in einer schönen, genauen Art und Weise im Katalog-Browser ausgerichtet ist und es leicht zu finden ist, wie Sie von den Listenoptionen gesehen haben , dann ist das die Bewegung eingerichtet. Dies ist der schnelle, schmutzige Ansatz, um die Bewegung in Gang zu bringen. Wir haben jetzt irgendwie nur für so ziemlich alles, was wir nicht Animationsfluss haben. So springen, bowlen, bewegen. Und das mache ich. Ich werde dann bereit sein zu gehen. Um das zu beenden. Wir wollen diesen Rotationskommentar hier unten ansprechen. Also werde ich die nur ein bisschen nach oben bewegen, nur um uns ein wenig Platz zu geben und das ein bisschen weiter zu bewegen. Für die Rotation, was wir wollen, ist unser Sprite im Grunde ein paar verschiedene Möglichkeiten, wie wir das tun können. Wir können die Größe unserer Sprites eingeben. Also, Rechte zu konfrontieren, wäre positiv auf der Skala x hier und minus man würde uns im Wesentlichen umdrehen lassen. Nun, wenn wir etwas haben, was an unseren Charakter gebunden ist, wenn irgendetwas wie einen Projektilpunkt oder eine PowerApp hat, die wir werfen wollten, kann dies verwirrend werden, weil die Power-Ups immer noch hier sein werden. Das müsste ich auch berücksichtigen. Und es könnte auch das Ausmaß der Dinge verändern, die gespalten werden. Und so im Allgemeinen werde ich vermeiden, diese Art des einfacheren Ansatzes zu tun, den ich vermute, dass wir stattdessen tun wollten, ist, dass wir sie tatsächlich nur vollständig drehen werden. Und wir können damit sehen, dass wir das auf der Z-Achse tun wollen, beeinflussen wir die Ansicht unserer Charakterrotation. Also werde ich dies standardmäßig auf 0 setzen, nur damit wir jetzt eine Vorstellung davon haben , was wir anstreben und was wir tun können. Wir können dies entweder durch unseren Input angetrieben tun. Also wissen wir bereits, dass wir es haben. Verschieben der Rechtsachse Und wir können überprüfen, ob dies mehr als oder weniger als 0 ist. Wenn es mehr als 0 ist, drücken Sie rechts, weil weniger als mit Drücken der linken. Das Problem ist, dass, wenn wir dies ändern, wenn der Spieler einen Knopf drückt, es könnte ein wenig zuckend werden, wenn die Pflanze ständig drückt. Stattdessen werde ich das wieder von der Geschwindigkeit vertreiben. Also werden wir das gerne ändern, um zu passen, wo sich der Charakter in der Welt bewegt. Etwas wie ist die vertikale Geschwindigkeit? Wir können das teilen, da wir nur an der Bewegungsgeschwindigkeit interessiert sind, die wir hier haben. Ich werde daraus ziehen und wir werden einen Vergleich verwenden. So können wir die Vergleichsfloats Operationen erhalten und dies wird ausgeführt werden. Wir können diese Bewegung neu geschrieben Knoten laufen, um diese ordentlich zu halten sowieso, so bekommen wir eine schöne Zeile hatte, in der Tat, Ich werde das gleiche hier oben tun. Hallo, ich nehme ein bisschen Platz ein. Also doppelklicke ich nur, dass, wenn Sie nicht mit diesem Doppelklick auf einen Draht vertraut sind, Ihnen eine Umleitung Nacht geben wird. Und was wir tun wollen, ist im Grunde, wir können überprüfen, ob dies mehr als ein bestimmter Wert ist. Also, wenn es ein positiver Wert ist, bewegen wir uns, richtig? Also wollen wir, dass das Essen ins Auge fällt. Wenn es ein negativer Wert ist, dann, wenn Sie sich nach links bewegen. Wenn also mehr als 0 oder weniger als 0 ist, was unsere Verbindung mit Wert hier ist, dann bewegen wir uns entweder in eine positive oder negative linke Richtung. So können wir die Rotation des Charakters einstellen, weder der sicherste Weg, dies zu tun , weil der Anlagencontroller viele unserer Rotationsaktualisierungen verfolgt. Wir wollen, ich werde einen Controller spielen. Und wir wollen die Kontrollrotation davon einstellen. Das bedeutet also, dass wir, weil wir bereits eine Klasse haben, die das Rotations-Setup der Klasse übersieht und beobachtet, anstatt irgendeine Art von beleidigender Logik dagegen zu haben, wir einfach die Informationen verwenden können, die in unserem Player-Controller verfolgt und das aktualisiert. Sie werden das aufteilen und das hier einstecken. Denken Sie daran, dass wir die EU beeinflussen wollten, die Zed-Rotation, die Standardwerte bewegen sich richtig ist, wie es ist. Also werde ich das bei 0 belassen. Wir können das hier unten kopieren, und wir können das auf 180 setzen, wenn sich der Charakter in eine linke Richtung bewegt. Damit wir das noch einmal testen können. Lassen Sie mich schreiben, dass das so geschieht, wie wir es erwarten würden. Und links. Das ist absolut alles umdrehen. Und das ist ein Problem mit der Kamera, aber das bedeutet nicht, dass unsere Logik funktioniert. Also werde ich wieder in den Frühling gehen. Im Grunde passiert dies, weil ich das alles gerade als Überprüfungen erwähnt und im Controller aktualisiert habe. Ich werde nicht auch einige von der Kamera und Feder, ähm, Setup. Also im Grunde, was passiert, wenn Sie nicht sicher sind, wie der Moment ist, wenn wir links drücken, wird der gesamte Schauspieler umgedreht. Die Kameras zeigen immer noch in die gleiche Richtung. Aber wenn ich das von hinter der Kachelkarte und nicht von vorne betrachte. Also, um das zu stoppen, werden wir unseren Frühling greifen. Wir würden dies ändern, um die Steuerrotation zu verwenden. Also wieder, dies ist ein weiterer Vorteil der Verwendung dieser Playa und Fro Rotation, weil einige Dinge innerhalb unserer eigenen Klasse in der Lage sein werden, dies zu referenzieren. Also wollen wir jetzt, dass ich auf die gleiche Rotation erben würde, ist der Controller verfolgt. Und das bedeutet, dass wir uns keine Sorgen machen müssen, die Tonhöhe zu erben. Du wirst die Reihe beenden. Also im Grunde, was das bedeutet, ist, wenn wir diesen Tipp haben, wenn die Komponente, auf der diese platziert wird, bewegt wird, drehen Sie sie oder irgendetwas. Also als ein kurzes Beispiel, wenn wir das in die Welt bringen und ich werde F8 Kopf drücken. Also mit Backpack auf die, können wir sehen, wie die Kamera die Rotation erbt, wenn wir diese bewegen. Also tun wir es nicht unbedingt. Und das wäre auch, wenn Sie einen Charakter rollen würden. Wenn Sie an einem bestimmten Punkt eine Animation abspielen, möchten Sie natürlich nicht, dass dieser Frühling weitergeht. Folgen Sie der gleichen Rotation, die der Charakter in all diesen möglichen verschiedenen Richtungen nimmt. Wir wollen immer, dass das gerade zugewandt ist. Also, was wir tun werden, ist, dass wir alle diese übernehmen und sicherstellen, dass es folgt, dass die Puna Kontrolle Irritation. Das heißt, wenn wir Play drücken, können Sie sehen, dass wir nach links und rechts drehen und bewegen können. Und die Kamera ist immer noch nach vorne gerichtet, da sie über den Player-Controller korrekt aktualisiert wird. Wir haben alle unsere Animation geht. Wir würden uns wünschen. Also die Schrift der Sache, nur um den Code aufzuräumen, ist, dass ich reinkomme und diesen Kommentar loswerde. Und ich denke, wir können mit diesen neun Funktionen tun. Dies nimmt also ein wenig Platz ein und wir können potenziell ein wenig Leistung sparen, indem wir diese auch in Funktionen fallen lassen. Also werden wir davon Gebrauch machen. Was ich tun würde, ist, all diese Notizen zu schnappen. Also in Bezug auf die Bewegung und die Animation wird mit der rechten Maustaste auf einen dieser Knoten, wird dies zu einer Funktion reduzieren. Und wir werden dieses Update-Flipbook nennen, denn das ist wirklich, wofür es verantwortlich ist. Okay, Also das ist, was ein Flip-Buch Logiken gehen und wir können sagen, es hat uns nicht viel Platz und das Ereignisdiagramm gespart. Ebenso können wir das gleiche tun und wir ändern dies, um die Spielreizung zu aktualisieren , indem wir diese in eine Funktion zusammenbrechen und diese eine Aktualisierung Kavitation benennen. Und wieder, nur ein wenig aufgeräumt, so dass dies schön und leicht zu lesen ist. Wir werden wahrscheinlich keine Notizen umleiten müssen, also werde ich die einfach loswerden. Und damit können wir sehen, dass wir hier viel Platz gespart haben. Und ich wollte sehr einfach sein, durch unseren Code zurück zu springen , wenn wir die Animation aktualisieren wollen ist, dass wir in einem Moment tun werden, wir wissen, dass wir in der Flip-Book-Funktion suchen müssen. Und wenn wir jemals die Art und Weise ändern wollen, wie die Rotation funktioniert, können wir direkt in unseren Rotationsbereich springen. 9. 09 – Verbesserungen für die Animation von Playern: Wie ich bereits erwähnt habe, wurde die Flip-Book-Animation Updates nicht in der idealsten Weise durchgeführt. Dies ist sehr Art von Handbuch auf einer Basis pro Aktie Basis Situation. Wir müssen die gleiche Funktion weiter abkühlen. Und wieder, das ist auch nicht wirklich ideal. Was wir also tun werden, ist zu versuchen, etwas von diesem Prozess mit etwas zu automatisieren , das als Enum oder Zähler bezeichnet wird. Wenn Sie diesen Begriff noch nicht gehört haben, bedeutet dies im Grunde, dass wir einen anderen Wert erstellen können , der sie durch Ganzzahlwerte dargestellt verfolgt werden kann. Es ist sehr einfach zu durchlaufen und wir haben einen Aufzählungsstatus für jeden der verschiedenen Zustände, in denen der Player sein kann. Dies bedeutet, dass wir einen Status für den Player basierend auf dem, was passiert, speichern und die Flipbuch-Animation nur einmal festlegen können , basierend auf dem Zustand, in dem wir uns gerade befinden. Wieder, wie bei allem, wenn Sie das noch nicht gesehen haben, wird es viel mehr Sinn machen, wenn wir gehen und diese schöne erstellen. Also lasst uns wieder in unser Blaupausen Foto gehen. Dies ist im Wesentlichen eine Art von Blueprint. Wir finden dies durch Klicken mit der rechten Maustaste, gehen zu Blueprints und Enumeration. Ich werde das hier e nennen, eine Bewegung anwenden. Beachten Sie hier, dass es keinen Unterstrich gibt. Die Namenskonvention für Enums ist E ohne Unterstrich hier. Und dann der Name dessen, was sie repräsentieren, könnte man es so etwas nennen wie E-Bewegungszustände, Staaten, was immer du wolltest. Ich denke, diese Art von bekommt die Idee über. Und wie ich schon sagte, wir wollten hier rein kommen und wir werden einen neuen Aufzählungszustand schaffen. Sie können also sehen, dass es ganz Berlin leer ist. Schließlich müssen wir, wir können den New Button ein paar Mal drücken und ein paar verschiedene Enumeratoren bekommen. Also, das wird nur automatisch benannt sich selbst. Dies sind nur eine Art benannte Darstellung und wir werden einfach eine für jeden der verschiedenen Zustände erstellen. Also werde ich umbenennen, muss Idle, rennen, voll springen. Ok? Sie werden also feststellen, dass diese mit nichts verbunden sind. Sie bieten kein bestimmtes Flipbook an. Wir weisen ihnen nichts zu. Dies sind rein eine Repräsentation, die es uns ermöglicht, den aktuellen Zustand leicht zu aktualisieren und sie bequem zu verfolgen, während wir durch unsere Logik gehen. Wir geben ihnen Beschreibungen, wenn wir wollten, aber das ist nicht nötig. Und etwas, das normalerweise auch eine gute Praxis ist, ist die Bereitstellung einer Art Null- oder Standardstatus. Also werde ich einen weiteren Zustand hinzufügen und diesen als Standard benennen. Generell, wenn wir einen Hit der Staat, so das bedeutet, dass etwas schief gelaufen ist. Dies kann also wie eine Überprüfung sein, dass etwas nicht korrekt aktualisiert wurde. Aus irgendeinem Grund wäre dies ein, zum Beispiel, alle unsere Bewegung Kontrollen von Filz und wir sind nicht zurückgekehrt, die in irgendeinem Zustand überhaupt waren. Das würde bedeuten, dass wir wie irgendwo zwischen Leerlauf, Sprung und voll sind, was wir nicht berücksichtigt haben. Also werden wir dies auf Standard setzen, und ich werde nur auf diesen Pfeil klicken, um dies nach oben zu verschieben, denn im Allgemeinen wird dies der erste, ähm, Zustand sein , den wir bereitstellen. Also, wenn das geschehen ist, können wir das schließen. Wir haben jetzt unsere neue Variable, und das ist, was wir werden diese als Variablentyp in unserer Spielerklasse verwenden. Wenn wir also auf die Variablen-Option kommen, klicken wir auf diesen Namen, diesen Bewegungszustand. Und für den variablen Typ möchten wir die Dropdown-Liste verwenden, unsere E-Bewegungen oder E-Planbewegung finden. Also die Sache, die wir gerade einen Namen selbst erstellt haben, und wir können jetzt sehen, wenn wir das hineinziehen, bekommen wir unseren variablen Pin. Und wenn wir etwas tun, wie verwenden Sie unsere ausgewählte Note, die wir ein paar Mal gesehen haben 9, können wir sehen, dass wir Dinge zwischen Standard, Idle, laufen, springen und voll auswählen können . Wir könnten dies auch als Variable festlegen. Also noch einmal, im Idealfall, was Sie tun wollen. Wir kommen rein. Ich habe das neben der Veranstaltung getrunken. Beginnen Sie mit dem Spiel, bewegen Sie dies um ein wenig, und wir werden nur sicherstellen, dass, wenn das Spiel beginnt, wir werden dies auf den Standardzustand setzen irgendwie Standardwerte sowieso. Aber wieder, wenn wir etwas testen, sagen wir, dass wir nur den Sprung testen wollten, dann könnten wir vergessen, dies irgendwann zurückzusetzen. Es ist also gut, dies zunächst auf einen Standardwert zu setzen. Wenn wir dann unser Flipbook aktualisieren, behalten wir dies im Auge und aktualisieren dies basierend auf dem, was der Spieler tut. Also zurück in die Flip-Buch-Updates, werde ich dieses Endliche loswerden, können wir das beiseite schieben. Wir werden etwas davon wiederverwenden, wenn wir durchmachen. Aber Mäuse zu Tode werden entkernt und in nur einem Moment aus dem Update Flip Book entfernt, wir können den Bewegungszustand wieder einstellen. Auch wenn Sie damit nicht vertraut sind, wenn wir hier nur eine Variable setzen, wird es die Ausführungsstifte zwischen diesen Bissen erstellen. Und wir wollen im Grunde, dass dies die Rückkehr einer Reihe von Kontrollen ist. Also werden wir am Ende dieses mit unserer ausgewählten Notiz sehr vertraut sein, da dies einige wirklich nützlichen, leicht zu lesenden automatisierten Code auf verschiedene Arten bieten kann . Was wir also tun wollen, ist, dass wir dies auf die Rückkehr einer Reihe von Logik setzen, die unseren selektierten Knoten verwendet. Nun, das erste, was wir überprüfen können, noch einmal, wir haben viel davon bereit zu gehen. Wir können mit der Überprüfung beginnen, ob der Platz auf dem Boden. So ist das, wie eine geschliffene Logik. Also gehe ich einfach zu Control X und Control V also haben wir das nochmal gebraucht, damit wir es einfach wiederverwenden können. Das ist also schön, wenn wir auf dem Boden sind, ist das falsch, natürlich bedeutet das, dass wir untätig sind. Also werden wir das auf falsch setzen. Also gehen wir davon aus, dass wir uns nicht bewegen. Das hinterlässt uns noch mehr Logik, die wir hier brauchen. Dies wird also sein, diese wahre Variable wird auf der Rückgabe der nächsten Auswahlnotiz basieren, die wir verwenden. Also verwenden wir hier eine andere Select Notiz. Wir können sehen, dass es durch die Bewegungszustände zu all diesen führt. Diese Pins erwarten also alle die Bewegungszustände. Und was wir jetzt tun wollen, ist zu überprüfen, ob wir fallen oder nicht. Also, wenn dies nicht der Fall war, was bedeutet, dass wir die nächste Auswahlnotiz durchziehen und überprüfen. Wir wollen jetzt wissen, ob wir uns täuschen oder nicht. Also wieder, wir können X und Control V kontrollieren, so dass wir wissen, was wir wiederverwenden und alle Bewegungen, die Staaten, die wir bereits in den Overhead untersucht haben, berücksichtigen. Wieder, wenn das wahr ist, machen wir uns zum Narren. Wir sind bereit, wissen, dass wir wissen wollen, in welche Richtung wir gehen. Also können wir dies nicht auf springen oder voll einstellen, weil dies zwei Optionen sein könnte. Das lässt uns wissen, dass dies eine weitere Auswahloption hier oder ein anderes Szenario ist dem die Auswahl und ich nur arbeiten werden und das wird die Rückkehr dieses Esel sein. Denken Sie daran, dass unser positiver oder negativer Check die vertikale Bewegung ermöglicht. Also wieder, Control X, Control V. Also haben wir jetzt alle unsere Schecks. Also wissen wir, dass, wenn dies zurückkehrt, wir keine Auswahl Hälfte benötigen. Dies bedeutet, dass, wenn dies wahr ist, dann sind wir täuschen, weil wir einen, einen negativen Wert gerade hier bekommen . Also sagen wir voll für wahr und springen für falsch. Das macht also unsere Sprungbewegung aus. Die verschiedenen Optionen, die daraus kommen können, das lässt uns nur eine Option hier. Bei dieser Auswahl wissen wir also, dass sich dies nicht bewegt. Also haben wir Idol, das bedeutet, das würde sich bewegen, aber auf dem Boden, was bedeutet, dass dies unsere Lauflogik sein wird. Also gehen wir in den Bewegungszustand von R1. Und dann ist das, dass ich Logik fallen würde. Also werden wir im Bewegungszustand entweder springen oder voll sein. So können wir einige Kommentare hinterlassen, nur damit wir leicht später darauf zurückkommen können. Also werde ich sagen, dass dieser hier speziell nach der Bewegung sucht. Ich denke, das wäre die Geschwindigkeit, in der wir uns bewegen, wenn wir scheitern, dass wir wissen, dass wir nicht in der Luft sind, also werden wir nach der Bodenbewegung suchen. Also lassen Sie eine gemeinsame Hälfte davon. Und das hier, wenn wir uns nicht in der Luft oder im Boden bewegen und dann werden wir im Leerlauf zurückkehren. Also kommen einige nette Kommentare zurück. So erinnern Sie uns nur irgendwie daran, was diese tun, und der beste Weg, darüber nachzudenken, wenn das wieder völlig neu für Sie ist, ist diese Art von Narren durch. So wie dies aktualisiert wird, wird die erste und dies tun wird, wählen, welche Bewegungen dies gerne setzen. Also, wenn die Geschwindigkeit nicht gleich 0 ist, dann werden wir nicht nur falsche Kopf zurückgeben, wir gehen und überprüfen die nächste Auswahlnote, weil das bedeuten würde, dass es wahr ist. Dann werden wir diese Logik überprüfen. Wieder. Wenn das nicht der Fall ist, wenn das stimmt, dann gehen wir zurück und sehen, was unsere letzten Kontrollen und Arie sein könnten. Und das wird uns irgendeine Art von Bewegung geben. Also, das funktioniert eigentlich schon, wenn wir die letzte Phase hatten, die unser Flipbook bewerten wird, und hoffentlich wird dies der Bit sein, der verfestigt, warum das so nützlich sein kann. So können wir alle diese ausgewählten, nur eine dieser Satz, um Buchnotizen hier zu spiegeln. Also Control X, Control V, ideal in der Lage, das Sprite mit, dass auch wachsen. Also werden wir dieses Sprite in das einbinden. Wir werden das hier anschließen und wir werden diesen nützlichen Auswahlknoten noch einmal verwenden. Was wir also tun werden, ist, dass wir das Flipbook auswählen, das wir basierend auf unserer Enumeration anzeigen möchten, dass wir Trakt haben. So wird es von hier wieder ziehen und auswählen. Ganz einfach. Das wird wirklich, wieder, ziemlich interessant sein, denke ich für diejenigen von Ihnen, die das vielleicht noch nicht gesehen haben, aber wir können den Drag in den Bewegungszuständen in den Index kontrollieren. Also werden wir den Zustand erhalten, und wir werden sehen, dass das automatisch liest, wie viele verschiedene Zustände dies hat und einen ausgewählten Knoten für jeden dieser Zustände zur Verfügung stellt. Das bedeutet also, dass wir dieses Flipbook nur einmal leben können , basierend auf dem, was hier zurückgegeben wird. Dies wird wieder ein gutes Tell Zeichen sein, also werden wir den Standard leer lassen dies absichtlich leer lassen. Also nochmal, wenn wir jemals sehen, dass unser Sprite nichts spielt , dann wissen wir, dass etwas schief gelaufen ist und wir den Zustand nicht aktualisiert haben. Andernfalls können wir all diese Werte nehmen, die wir hier beginnen. Wir werden den Leerlauf in den Leerlauf stecken, den Sprung in Jump, laufen in r1 und volles Intervall so ziemlich wie Sie es erwarten würden. Und dann stellen Sie sicher, dass wir sie sehen können. Und das ist wirklich unsere State Machine Art Setup und bereit zu gehen. Sie mussten überprüfen, was mit der Player-Animation zu tun ist. Es bedeutet, dass wir diese Verzweigungslogik nicht brauchen. Wir können die ganze Nacht loswerden. Wir werden die Set-Flip-Book-Funktion nur einmal aufrufen und das Ergebnis dessen weiterleiten , was mit unseren Bewegungsstaaten passiert und wie das verfolgt wird. So können wir das auch in ein wenig sehen, wie ich hier unten eine Sequenz hinzufügen werde, und Sie werden sehen, dass dies ständig aktualisiert wird, damit wir String drucken können, nur dass wir irgendwie auch visualisieren können. Hi, das ist in Betrieb. Wir können den Enum-Status in eine Zeichenfolge konvertieren und dies wird, wenn wir dies spielen, für uns den Überblick behalten. Also übergeben wir nichts, was bedeutet, dass wir im Leerlauf sind. Wenn ich springe, dann springen wir und dann täuschen, springen, falten und rennen. All dies wird also genau anhand von Highlight-Bewegungen verfolgt. Status wird aktualisiert und basiert auf so ziemlich den gleichen Kontrollen, die wir zuvor hatten. Aber anstatt Verzweigungsprüfungen überall zu haben, haben wir jetzt gerade diese eine Art logischer Fluss von vollen drei Zuständen basierend auf dem, was ausgewählt wird und die Berechnung abstinent ist, Knoten auszuwählen. Dann wurde all dies abgeschlossen, indem das Flipbook basierend auf dem aktuellen Bewegungszustand eingestellt wird. Auch hier sehr leicht zu lesen, sehr einfach zu verwalten. Und das bedeutet auch, dass, wenn wir jemals etwas anderes hinzufügen wollten, wenn wir Dinge wie einen Doppelsprung oder eine Wolfsrutsche hinzugefügt haben, alles, was wir tun müssen, wir keine zusätzlichen Zweigaussagen hinzufügen müssen. Normalerweise müssten Sie eine weitere Überprüfung woanders unterbrechen. Bereit? Brechen Sie die Art von Fluss der Logik, die wir hatten Overhead. Alles, was wir tun müssen, ist, zu unseren Bewegungen zurückzukehren. Sie würden zwei neue Dinge hinzufügen. Ich würde sagen, Whoo, Rutsche und Doppelsprung. Das würde sofort zwei neue Bücher hinzufügen, gerade hier. Und dann können wir einfach eine andere Logik von hier ableiten. Also wieder, wenn wir in der Luft sind und wir werden auch gleiten, dann würden wir einen anderen ausgewählten Knoten dafür überprüfen und entweder springen voll, fast wie oder wenn wir springen und es ist das zweite Mal, dass wir es mit geschrieben gedrückt haben noch eine kleine Anmerkung hier, dass wir nur für einen Moment auf Doppelsprung haben, ändern Sie diesen Bewegungszustand. Und wieder, dies wird so ziemlich automatisch für uns aktualisiert. Und dafür gab es kein echtes wie automatisiertes System. Aber ich denke, das ist irgendwie zu diesem Zustand zu kommen, wo es irgendwie wiederverwendbar und flexibel klingt , da wir es für diese Art von Projekt schaffen können. Also, kurz bevor Sie das einpacken, stellen Sie sicher, dass wir zurück gehen. Wir wollen nicht ständig sprinten. Wenn Sie jemals eine andere Sequenz hatten, eine andere Ausführung Ben aus der Sequenz, können wir mit der rechten Maustaste darauf klicken und Ausführungsstift sieben entfernen, ich mache nur das Flipbook und die Rotation Update. Und es gibt immer sicherstellen, dass wir das kompilieren und speichern. Wir brauchen die Spielerbewegung nicht mehr offen zu sein. Und ich denke, das bringt uns in eine ziemlich gute Zustände , wo der Spieler ist ziemlich viel Taschenlampe. Wir lassen sie alles tun, was wir wollen, auf die robusteste Art und Weise , die ich mir vorstellen kann, es für ein kleines Projekt wie dieses zu tun. Ich denke, was wir jetzt tun können, ist, dass wir auf die Interaktion mit anderen Dingen übergehen können ,damit das Haus, Pickups und Dinge genutzt werden können, oder die Feinde, um wirklich jede Art von Gefahr oder Gefahr für damit das Haus, Pickups und Dinge genutzt werden können, oder die Feinde, um uns zu bieten. Wir müssen mit der Implementierung einer Gesundheitsfunktion beginnen. 10. 10 – Spielergesundheit: Also mit der Bewegung ziemlich vollständig auf der Bühne implementiert, ich denke, es ist ein guter Zeitpunkt, um zu beginnen, zu schauen, wie wir mit anderen Dingen im Spiel interagieren können , die wir geplant haben. Also die Feinde, die Pickups, sie werden uns irgendwie ordentlich machen, um dieses Konzept von Gesundheit und Schaden zu haben. So können wir beginnen, indem wir unserem Spieler ein Gesundheitssystem hinzufügen, was wir jetzt tun werden. Und dann schauen wir uns an, wie wir das visualisieren und das aktualisieren können , basierend auf dem, was in der Welt interagiert wird. Also lassen Sie uns mit der Gesundheit beginnen ist sehr einfaches Konzept. Wir werden dies in Floats verfolgen, nur weil ich weiß, dass es einfacher für uns sein wird , das mit dem Widget-System ein wenig später zu implementieren, könnten wir dies als Ganzzahlwert darstellen, besonders wenn Sie ein Gesundheitssystem hatten, in dem es genau wie Herzen oder so, würden Sie einen heißen Weg zu einer Zeit nehmen, die perfekt als int wäre. Aber für jetzt werde ich zwei neue Variablen vom Typ float erstellen, eine mit dem Namen Standardzustand und eine mit dem Namen Gesundheit. Als nächstes können wir dies so kompilieren, dass wir Zugriff auf diese beiden neuen Variablen haben. Und was wir tun wollen, ist, dass ich die Standardgesundheit auf einen schönen runden Wert von 100 setzen werde. Also werden wir mit einer 100 Gesundheit beginnen, und die Gesundheit selbst wird auf 0 verlassen, um damit zu beginnen. Jetzt auf dem Bau Skript, Sie tun können, ist auf der Veranstaltung beginnen spielen als auch. Aber im Allgemeinen Dinge wie diese, Leute gerne in das Konstruktionsskript setzen , so dass wir wissen, noch bevor wir anfangen zu spielen, werden wir unsere aktuelle Gesundheit auf die maximale Gesundheit zurücksetzen , die wir haben können oder die Standardeinstellung Gesundheit. Also werden wir den Standard per Steuerelement ziehen und die Gesundheit durch Ziehen einstellen und ganz einfach Gesundheit auf Standardzustand setzen. Also, jetzt wissen wir, dass wir wieder einige Tests machen können, wenn wir das abhaken wollen. Aber im Hauptspiel, im Vollspiel, wenn überall mit den Dingen hier herumspielen und wir wollten schnell etwas zwischen den Widgets testen und das auf einen anderen Wert setzen. Wir wissen, dass, wenn wir aufhören zu spielen oder wenn dies aktualisiert wird und der Konstruktor, dass wir unseren Hauptgesundheitswert auf das Maximum setzen, das wir haben wollen. Um dies noch einmal zu demonstrieren, wenn wir einfach auf das Spiel beginnen, werden wir viel anfangen zu debuggen, denke ich mit Druckzeichenfolgen, nur um sicherzustellen, dass die Dinge sinnvoll sind, während wir durchgehen. So können wir einfach sagen, dass unsere Gesundheit auf den Bildschirm gedruckt wird und wir beginnen mit der 100 Gesundheit. Also, das ist mein Sohn einfach, das ist unser Update, um Gesundheit zu haben. Wir haben jetzt dieses Konzept. Natürlich wollen wir als nächstes das Konzept des Schadens haben. Der Schaden ist also sehr einfach, und in der Tat werden wir ein Ereignis verwenden, das mit jeder Schauspielerklasse im Spiel vorgebaut wird. Und das ist eine Funktion, die jeden Schaden genannt wird. Also haben wir das Ereignis irgendeinen Schaden, wir können sehen, dass das Ziel ein Schauspieler ist. Und das Tolle daran ist, dass wir ein bisschen Casting umgehen können und genau wissen, mit was wir kommunizieren, wenn es um Schadenssysteme geht. Wir können eigentlich nur sagen, wenn etwas eine Funktion darauf hat , die erwartet, dass Schäden behandelt werden, cool Die jede Schadensfunktion, Übergabe einiger Informationen, in der Regel die Schadensbeträge und lassen Sie diese Klasse Workout und ein -Handle , diese Logik, die es steuern soll. Es ist eine sehr Art objektorientierter Ansatz zur Programmierung. Es entkoppelt viele Referenzen, kann Ihre Projekte bei IDEO behalten und einfacher zu warten und spart auch, in einigen Fällen auch die Leistung. Was wir also tun werden, wenn ein Schadensbetrag übergeben wird, wir das aktuelle Haus auf einen neuen Wert setzen. Also werden wir das beurteilen, und wir wollen, dass dies die aktuelle Gesundheit ist. Also werden wir die aktuelle Gesundheit abzüglich eines Schwimmer bekommen, was der Schaden sein wird, der übergeben wird. Also, wenn wir eine 100 Gesundheit haben wird 20 übergeben. Wir werden das in unseren Gesundheitswert geben, und wir würden 80 Gesundheit haben. Nun, wieder, wir können hier ein paar Debugging machen. Es ist immer schön, Dinge zu debuggen, während wir durchgehen. Also werde ich ein temporäres und Puts erstellen, im Allgemeinen würde ich das Ereignisdiagramm oder sogar außerhalb der Projekteinstellungen nicht erstellen und einfügen. Aber weil dies vorübergehend sein wird, ich mich nur daran, das später zu entfernen. Und sagen wir, wir werden H. drücken also werden wir die Schlüsselbindung für h finden, H für Outs. Und wenn wir das drücken, werden wir die Lage jeden Schaden nennen oder Schaden anrichten. Und der Grund, warum dies als Schaden bezeichnet wird, wenn Sie nicht vertraut sind, ist, dass wir verschiedene Arten haben. So könnten wir dies an den Ereignispunkt Schaden binden, radialen Schaden. Wenn wir also Schaden anrichten, bedeutet dies, unabhängig von der Art des Schadens, der an uns weitergegeben wird, wird dieser abgefeuert und die Gesundheit weggenommen. Also werden wir nur die Standard-Funktion „Schaden anwenden“ nennen, den Schauspieler, den wir beschädigen wollen. Es ist ein bisschen seltsam, aber das wird unser Selbst sein. Also denken Sie daran, dies ist nur eine Debug-Funktion hier, so dass wir überprüfen können dass unser Gesundheitssystem funktioniert und der Schaden, den wir weitergeben wollen, sagen wir, dass 20 Einheiten Schaden, die ich vor einem Moment erwähnt. Und wenn wir wollten, ob wir verschiedene Dinge überprüfen wollten , wie zum Beispiel, von wem der Schaden verursacht wurde oder von ihm angeregt wurde. Dies wäre für Dinge wie wenn Sie unterschiedliche Offsets hätten, vier Arten von Schäden. So ballistischer Schaden gegen explosiven Schaden und solche Dinge. Sie könnten herausfinden, was die anfängliche. Es war also nicht, ob Sie den vollen Schaden anrichten sollten oder wie eine modifizierte Version, die darauf basiert. Wieder, wir werden nur für eine sehr einfache Art von Schaden gehen. Ja, zwanzig Flugeinheiten des Schadens. Und was wir tun wollen, ist, wenn das abgekühlt ist, werde ich eine weitere Druckschnur machen. Und wir werden den Wert unserer aktuellen Gesundheit drucken. Und das wird ein paar Probleme haben, die ich in einem Moment beheben werde, und Sie werden sehen, was diese sind, während wir debuggen. Also komprimieren wir H und wir können sehen, dass der Schaden auf 0 abgekühlt wird. Also sollte ich der Plan nicht tot sein? Wenn wir dich noch ein paar Mal hassen, gehen wir in Minuswerte. Was wir also tun wollten, um jede Seltsamkeit wie das zu stoppen, wo wir den Spieler möglicherweise töten könnten, nachdem sie bereits getötet wurden, war dabei, dies auf einen bestimmten Wert zu verklumpen. Also werden wir von hier ziehen, wird dies zu einem Flug klemmen, wird sicherstellen, dass das Minimum 0 ist. So können wir jetzt nie über die 0 Schwelle gehen. Und das Maximum, das ich auf Standardzustand einstellen werde. Also, wenn wir ein verwendet haben, dies in einer Weise, wo wir, eine sehr häufige Sache, die Sie sehen werden, ist, dass Gesundheitssysteme im Grunde in negativen Schaden übergeben werden können . So könntest du minus 20 Schaden hineingehen. Offensichtlich wird ein Minus, Minus und Minus positiv sein, so dass Sie beginnen, auf diese Weise Gesundheit zu Ihrem Spieler hinzuzufügen. Wir werden wahrscheinlich nichts so verwirrend in dieser Playlist bekommen. Wir werden nur eine sehr einfache AddHealth-Funktion hinzufügen. Es gibt Probleme, die mit dem Versuch kommen, das Schadenssystem als Heilsystem zu verwenden . Einige der Logik, besonders wenn Sie beginnen, Modifikatoren hinzuzufügen und zu versuchen, Dinge wie zu ändern und ein wenig verwirrend zu werden. Aber um dies zu berücksichtigen, könnten wir sicherstellen, dass wir nichts erlauben, einen Wert an Satis zu übergeben, im Wesentlichen Betrug, Ich nehme an, vorbei an unserem Maximum an Standard Gesundheit Valley. Und den letzten Schritt wollen wir in das Konzept des tatsächlichen Sterbens noch einmal hinzufügen. Wenn wir also zu diesem 0 Gesundheitswert kommen, werden wir ein paar Dinge überprüfen ob die Spieler gestorben sind und eine neue Funktion erstellen, die dafür bereit ist. Also werden wir hier einen neuen booleschen Wert erstellen, und ich nenne diesen einen B ist tot. So kann es nützlich sein, die Zustände der Spieler zu verfolgen scheint ein bisschen offensichtlich, aber wir wollen wieder Dinge zu vermeiden, wie wenn die Pflanze getötet wird und dann aufnimmt, wie lassen wir sie wieder zu beleben? Und wenn ja, und der Schaden wieder, können sie ein zweites Mal sterben? Um so etwas seltsames zu vermeiden, stellen Sie sicher, dass dies standardmäßig auf offensichtlich falsch ist. Wir wollen nicht, dass sie anfangen zu sterben, aber dann. Wir bekommen einen bestimmten Wert, dann wollen wir das so einstellen. Also, was wir tun werden, ist, dass wir hier einen Zweig überprüfen werden. Und wir werden sagen, wenn die aktuelle Gesundheit, anstatt von diesem Stift ziehen, Sie könnten, wenn Sie wollten. Ich mag es, die zusätzliche Variable zu haben, wie wir steuern können, ziehen Sie dies in meinem teureren oder irgendetwas, und dann können wir einen Vergleich machen. Also, wenn das kleiner oder gleich ist, und wieder, einige Leute werden dieses ein bisschen seltsam Programm finden. Dies ist Sie wollen, können Sie sagen, kleiner als oder gleich, wenn Sie wollten, weil wir diesen Klumpenwert haben wir nie unter 0 bekommen sollten. Aber wieder, dies kann sich an jedem Punkt ändern und andere Programmierung könnte kommen, finden Sie, dass sie nicht wollen, dass dies verklumpt wird. Aber natürlich willst du immer noch, dass etwas weniger als 0 tot ist. Also Bilanzierung für solche Dinge, werde ich nur sagen, weniger als oder gleich 0 für die Gesundheit wird als tot eingestuft werden. Das ist also kein Programmierversehen. Es ist nur etwas, das ich gerne mache, weil man nie weiß, wie das Projekt in Zukunft gehen wird. Wie ich schon sagte, du könntest mit jemand anderem arbeiten. Sie könnten kommen und entscheiden, dass dieser Klumpen irrelevant, nicht nützlich ist, oder sie wollen die Klemme auf eine andere Weise verwenden, in diesem Fall könnten Sie beginnen, in negative Zahlen zu gehen und immer noch nicht Ihr Plaid sterben lassen. Wenn das stimmt, dann sagen wir, dass das ein toter Spieler ist. Und wieder, nur für diese zusätzliche Sicherheit, wahrscheinlich nicht etwas, das wir in einem so einfachen Projekt brauchen, aber ich werde sagen, dass wir dies nur tun können, wenn die Gesundheit kleiner oder gleich 0 ist. Und mit ihr in einem UND-Booleschen Scheck. Und wir sind nicht schon tot. So können wir sagen, ist das nicht gleich wahr ist. Und ein einfacher Weg zu sagen, dass, sorry, ist einfach zu sagen, ist nicht wahr, also NICHT Boolean. Also, wenn wir nicht schon tot sind und die Gesundheit kleiner oder gleich 0 ist. Also wieder, das ist die Art von Kontrollen, die Sie in werfen wollen , nur um sicherzustellen, dass Sie seltsame Dinge haben können. Und ich habe es in einigen Spielen gesehen, wo sie diese Arten von Kontrollen nicht gemacht haben. So wie ich das vorhabe, denke ich, wir werden wie eine Mario oder Sonic Death Animation haben. Wenn du stirbst, wirst du in die Luft gestoßen. Sie haben die Eingabe aus dem Player entfernt. Und Sie werden irgendwie den Bildschirm von dem animieren, was ich in einigen Spielen gesehen habe , weil sie keine einfache Überprüfung wie diese gemacht haben, ein anderes Projektil wird sie treffen. Ich vermute, dass sie auch nicht ungleich waren, um Check zu überprüfen oder zu verklumpen. Und was passiert ist, dass die Todesautomatisierung weiter spielt und im Wesentlichen weiter in die Todesschleife eintritt, bis sie aufhören, von etwas getroffen zu werden, obwohl sie technisch schon einmal gestorben sind. So mag es ein bisschen übertrieben erscheinen, aber das sind nur irgendwie nett, einfache Kontrollen auf der Anzeige, dass Sicherheit. Sie werden nicht ein bogey suchen Spiel, wo Sie mehrere Male in einem einzigen Leben sterben können , und das ist das Schlimmste, was auch. Vor allem, wenn Sie ein Leben basiertes Spiel haben, dann könnte das beginnen, die meisten Menschen Leben wegzunehmen, obwohl Sie nicht einmal auf diese Phase reagiert haben. Also, wenn das falsch ist, brauchen wir nichts zu tun. Natürlich, wenn das falsch ist, werden wir einfach immer noch um das Niveau laufen, in dem es gut geht. Du könntest, wenn du wolltest, hier könnte sein, wo du, wenn das falsch ist, wenn das falsch ist,etwas Schaden erlitten hast. Möglicherweise möchten Sie einen Rückstoßeffekt oder eine blinkende Animation wiedergeben. Also in einer Art Unbesiegbarkeit Zeit, diese Art von Sache, die hier getan werden kann. Was wir aber berücksichtigen wollen, wenn das wahr ist, werden wir eine neue Funktion spielen. Also werden wir hier eine neue Funktion hinzufügen und wir werden nur nennen, dass ein Spieler gestorben ist. Und jetzt in dem Moment, in dem wir nichts haben, um wirklich ins Haar zu legen, also werde ich eine weitere Druckschnur hinzufügen. Das wird so sein, wie ich ein wenig später Thema bin. Aber noch einmal, nur damit wir das testen können, wird es funktionieren. Wir machen die Jodid-Funktion. Kühlen Sie sich davon ab und wir werden einfach Tasten spielen, String drucken. Also komm wieder rein, komprimiere h, bis die Gesundheit den ganzen Weg nach unten gegangen ist und wir können sehen, dass ein anderer Spieler gestorben ist, und das wurde korrekt verfolgt. Wir wissen also, dass das alles so funktioniert, wie wir es wollten. Und das Wichtige noch einmal, um sicherzustellen, dass diejenigen, die ich mich gelohnt habe, können wir weiterhin H drücken und wir bekommen keine mehrfachen Iodid-Funktionsaufrufe. Also wissen wir, dass das kein lizenzierter Safe ist. Wir sind nicht in der Lage, in irgendeiner Art unendlichen Todes einzutreten. Das ist also so komplex, wie unser Gesundheitssystem sein muss. Wir können später wieder kommen und einige Verbesserungen vornehmen. Ich denke, die nächste Sache wird das Hinzufügen einer Art von Visualisierung zum Gesundheitssystem durch die Verwendung von Widgets sein. Das ist wahrscheinlich alles, was wir in zwei Hälften tun müssen. Und jetzt können wir die Spielerklasse schließen. Ich wieder, stellen Sie sicher, dass Sie kompilieren und einen Punkt speichern. Ich scheine eine übrig gebliebene Kachel-Karte für Gerechtigkeit gehabt zu haben. Ich werde nur den alten löschen und sicherstellen, dass wir hier das Richtige haben. Das ist perfekt. Und das bedeutet, dass, wenn ich gut voran gehen und erstellen Sie unsere Widgets für die Gesundheit des Spielers. 11. 11 – Spielergesundheit Widget: Um mit diesem Prozess zu beginnen, werden wir nur einen neuen Ordner erstellen , den ich cool UI wird dies in der Basis von Blueprints Ordner platzieren. Und dann innerhalb von hier würde nur eine brandneue Widget-Klasse erstellen. Finden Sie diese, wir werden mit der rechten Maustaste. Wir gehen zu den Optionen der Benutzeroberfläche, also nicht unter Blueprints diesmal, werde ich hier zur Widget-Blueprint-Option gehen, die Namenskonvention für diese Klassen wird WPP-Unterstrich sein. Also Widget Blueprint unterstrichen, und dann der Name der Klasse, Ich werde nur diese diese Spieler Gesundheit nennen. Innerhalb der Klasse. Wenn Sie nicht vertraut sind, werden wir hier einen sehr kurzen Überblick nehmen. Aber was wir in der Mitte hier haben, ist eine Leinwand. Das ist also irgendwie wie der Arbeitsbereich, in dem wir unsere verschiedenen Elemente hinzufügen können, um die Schnittstelle zu bilden. In diesem Fall wird das nur ein Gesundheits-Bot sein. Aber das könnte auch Dinge wie Menüs ausmachen. Wir könnten Schaltflächen, Text und viele andere Dinge hinzufügen . Also diese Leinwand hier, und wir können sehen, dass sie auf der linken Seite dargestellt wird. Wir haben unsere Leinwand. Und wenn wir Dinge auf die Leinwand ziehen würden, werden wir sehen, dass in diesem Bildschirmbereich gerade hier erscheint. Zeichnen Sie die Gesundheit Mühe. Was wir brauchen, ist ein Fortschrittsbalken. Das ist also ziemlich perfekt eingerichtet. Wir haben die Kontrolle darüber, das zu füllen. So können wir dies mit einem Wert füllen, der in diesem Fall unsere Gesundheit repräsentieren wird. Ich werde das nur rausziehen, um das ein bisschen länger zu machen. Und ich denke, das sollte eine ziemlich anständige Größe sein. Nun ist die Art und Weise, dass dies funktioniert, wir haben bei diesem Prozentwert nur IN hier auf der rechten Seite, wenn wir diese ausgewählt haben. Und im Grunde, wenn wir das nach oben und unten ziehen, haben wir die Kontrolle darüber, wie voll das ist. Jetzt können wir sehen, dass dies ein normalisierter Wert zwischen 01 ist. Wir müssen also ein wenig später eine schnelle Berechnung durchführen, um unseren Gesundheitswert zu berücksichtigen und diesen zwischen einem Wert von 01 anzuzeigen , basierend darauf, wie viel Gesundheit der Spieler übrig hat. Nun eine andere Sache ist, wenn Sie einen meiner anderen Inhalte oder Tutorials gesehen haben, können Sie mit meiner Verachtung dieser Gradient Abstimmung Art von Regenschirm Textur hier vertraut sein. Also das Wichtigste und erste, was wir tun werden, ist, dass wir zu den Eltern fallen, gehen auf die Stil-Option hier drüben. Und wir wollen das Hintergrundbild und das Bundesbild ändern. Also haben wir diese seltsame Gradient-Sache nicht oben hier gelaufen, und es wird auch hineinzoomen. Dies ist eine nette Möglichkeit, einen Hinweis zu springen und herauszufinden, wie den Stil Ihrer Gesundheitsleiste aktualisieren und ändern. Wenn du etwas Brauch hättest, das du in den Motor bringen wolltest, um sie zu benutzen. Also habe ich nichts dafür gemacht. Ich bin im Allgemeinen mit diesen zu tun, nur um sie ein wenig moderner aussehen zu lassen und für diesen minimalen Ansatz zu gehen , ist, dass wir das Hintergrundfestival herunterfallen. Idealerweise hätten wir eine Textur, die wir eingebracht haben, besonders für so etwas und ich irgendwie Pixeltextur, wäre es ziemlich gut, da wir das nicht haben? Und natürlich wird die Verwendung der Bilder, die wir haben, nicht wirklich zu nassen. Was ich stattdessen tun werde, ist zu diesen Ansichtsoptionen hier unten zu gehen. Ich werde sie umschalten, um den Engine-Inhalt anzuzeigen. Ich suche nur nach einem weißen Quadrat. Und wir können hier sehen, wir haben die weiße quadratische Textur und das wird vollkommen gut. Es spielt keine Rolle, wie groß es ist, denn das ist alles basierend auf diesen Optionen nur hier skaliert, wir können sie sehen. Ich habe gerade eine schlichte weiße Textur im Hintergrund, die immer noch diesen Keil hinterlässt. Also eine Gradient-Sache für die Füllung. Also nochmal, im Stil, ich werde das nur kopieren, wir können mit der rechten Maustaste klicken. Kopieren Sie das und fügen Sie es dann in das Bundesbild hier ein. Und wir können sehen, dass auch ersetzt wird. Jetzt in diesem Fall, aus welchem Grund auch immer, das nicht wirklich richtig funktioniert hat. Wenn das passiert, dann können wir einfach einen der anderen auswählen und vielleicht wieder auswählen, nur damit wir die gleiche Textur auf beiden verwenden. So müssen wir es weniger aus dem Motorinhalt ziehen. Also werden wir die gleichen weißen Quadrate extra in beiden Slots verwenden. So können wir schön, das sieht sofort viel besser aus als es getan hat und funktioniert immer noch und genau die gleiche Weise, weil diese Skalierung basierend auf den übergebenen Bildern automatisiert geschieht . Also erhalten wir immer noch die volle Option, diesen Prozentbalken zu ändern, und das wird entweder scheitern oder vollständig unsere Gesundheit abbauen, sobald Sie diesen Schritt gemacht haben, das nächste, was wir tun wollen, ist sicherzustellen, dass wir zurück die Ansicht Optionen und dann Engine-Inhalt anzeigen. Andernfalls erhalten wir noch viel mehr Informationen in dieser Suchleiste. Dann wollen wir, im Allgemeinen, Ich denke, Dinge wie Gesundheit haben eine ziemlich einheitliche Farbe, die ich denke, die meisten Leute würden so grün zustimmen, wie ich dies von blau ändern und ändern Sie dies in eine Art von grün zu gelb Tönung hier. Und wieder, ich denke, das wird ziemlich gut für unser Gesundheitssystem sein. Jetzt eine andere Sache, die Sie ändern können, wenn Sie noch nie den Fortschrittsbalken verwendet haben, können Sie auch ändern. Dies wird die Farbe der Gesundheit zu aktualisieren, wie wir diesen Prozentsatz leichter ändern. Wenn Sie auch die Hintergrundfarbe ändern möchten, können wir unserem Stil auch die Farbe geben. Also werden wir den Farbton des Hintergrunds ändern und wir können dieses etwas dunkler oder heller machen oder etwas ganz anderes funktioniert, je nachdem, wie Sie das aussehen wollten. Und ich werde einfach einen schönen, einfachen grauen Hintergrund suchen. Schieben Sie diese auf etwas dunklere Grau gerade hier. Vielleicht nicht voll schwarz, aber ein dunkelgrau mit einem schönen hellgrünen Gesundheitsbot sollte ziemlich gut aussehen. Also für den Prozentsatz können wir das lassen, weil wir all dies im Code tun werden. Aber das gibt uns eine schöne Möglichkeit, zu visualisieren, was passiert, bevor wir den Code in Gang bringen. Nun, was ich im Moment tun wollte, natürlich, wenn wir das einfach weitermachen, haben wir das nicht gekühlt. Wir werden das nicht im Spiel sehen. Also, bevor wir irgendeine Logik hier hinzufügen, und gehen wir zurück zu unserer Spielerklasse. Und innerhalb der Spielerklasse können wir damit beginnen, unser Gesundheitsbudget zu erstellen und sicherzustellen, dass wir dies anzeigen. Es ist also ganz einfach. Wenn Sie noch nicht mit Widgets gearbeitet haben, was wir tun möchten, ist auf dem Spiel beginnen, wir möchten ein Widget erstellen. Also werden wir nur die Create-Widget-Funktion aufrufen. Und von diesem wollen wir in das Widget übergeben zu erstellen, das wird unser WPP Unterstrich Spieler Gesundheit sein. Und viele Leute denken vielleicht, dass das jetzt funktioniert , wenn Sie auf Play drücken, nur um zu überprüfen, dass es nicht ist. Und das liegt daran, dass wir das Objekt erstellt haben, aber wir nichts damit gemacht haben. Das gibt es also, aber wir haben einfach nicht gesagt, dass es angezeigt werden soll oder wie man sich verhalten soll. Was wir also tun wollen, ist aus dem Rückgabewert jetzt, wo wir das haben, wir werden dies zu einem variablen Festival fördern weil wir dies ein wenig später verwenden werden. Wir wollen später verschiedene Funktionen abkühlen und Werte in unserem Budgetsystem aktualisieren. Es wird also nützlich sein, einen Verweis darauf zu haben. Also werden wir dieses eine Gesundheits-Widgets nennen, Ref. Also haben wir eine Referenz und I2, das Gesundheitshaushalt Wann immer wir etwas damit wieder tun müssen. Und dann werden wir von hier aus eine Widget-spezifische Funktion aufrufen, die zum Ansichtsfenster hinzufügen ist. Also haben wir die Ansichtsfenster-Option und das nimmt ganz einfach dieses Objekt und wir werden dem System sagen, es auf dem aktuellen Bildschirm des Spielers anzuzeigen. Also, das bedeutet jetzt für kommen, können wir sehen, dass wir unser Widget haben. Natürlich ist da etwas etwas etwas seltsam passiert. Aber wir können oben links sehen, dass wir unsere Gesundheit haben, die wie erwartet zeigt. Es scheint irgendwo entlang der Linie, die Update-Flip-Book-Funktion hat etwas mit der Sprung-Animation gebrochen. So scheint es, als habe ich einfach nichts in der Sprünge gefüllt, nur für den Fall, dass Sie das gleiche Problem haben. Ich werde das im Video behalten. Das hätte zugewiesen werden sollen. Oh, ja, ich glaube, das hat vorher funktioniert, aber das würde nur zwei Schecks verdoppeln. Jetzt können wir vor Androgen springen und all das ist völlig in Ordnung, nur für den Fall, dass Sie das gleiche Problem bekommen. Die Hauptsache war der Schwerpunkt der Gesundheit Bahasa, aber nicht die Gesundheit Teil zeigen. Natürlich können wir Schaden erleiden. Wir haben immer noch unsere Funktion, unseren Schaden zu kühlen, unsere Art von Debug. So können wir sehen, dass ich H mehrmals gedrückt habe , dass wir beim Debuggen haben, dass der Spieler gestorben ist. Aber das sinkt natürlich nicht mit unseren Gesundheits-Widgets. Das wird der nächste Schritt sein. Also zurück in der Widget-Klasse, müssen wir nur einige Funktionen hinzufügen, um zu registrieren, wenn ein Integritätswert aktualisiert wurde. Und ich wollte Ihnen zunächst zeigen, wie ich immer noch viele Leute sehe, die dies in solchen Tutorials online tun. Und es ist eine Angewohnheit, die ich Leuten helfen will aus dem herauszukommen, und es ist eine Art schlechte Übung. Und ich zeige Ihnen, warum, wenn wir durchmachen. Also werden wir es auf die schlechte Art und Weise machen, nur damit, wissen Sie, um dies in der Art und Weise zu vermeiden, wenn Sie es in der Zukunft sagen, und was Sie sehen könnten, ist, dass die Leute auf den prozentualen Wert hier herabkommen und wir haben eine verbindliche Option, und wir haben dies zu einer neuen Funktion kombiniert. Also, wenn wir diesen Knopf drücken, das bringt uns nur von der Konstruktion ein paar hier in die Grafik, wenn Sie. Also das Design von Jahren, in denen wir alle unsere Visualisierung, alle unsere Elemente, und flesh out dieses Widget. Und dann ist das Diagramm irgendwie wie unser Ereignisdiagramm im Wesentlichen in allen anderen Blaupausen. Dies ist, wo wir alle unsere Logik setzen und im Grunde das Hinzufügen dieser Bindung wird nur automatisch eine Funktion erstellt, um den Rückgabewert dieser Funktion an unsere Widget-Elemente zu binden . In diesem Fall ist es also ein Wert, Float-Wert, weil dies an den gefunkenen Prozentwert gebunden ist. Nun, der Grund, dass das schlecht ist, was Sie Leute tun, ist, dass sie das Spielergedicht bekommen. Daher verwenden wir die Standardfunktionalität. Und sagen wir, sie tun einfach etwas Einfaches wie Casting, um sicherzustellen, dass es die Spielerbasis ist. Wir wissen, dass wir innerhalb der Spielerbasis unsere Gesundheitswerte haben. So können sie dann zum Gesundheitswert kommen. Und dann stecken sie das an und stecken das möglicherweise an. Jetzt wird das nicht funktionieren, weil diese Berechnung, die ich erwähnte, wir müssen, um diesen Wert zu normalisieren. Aber nochmal, wir werden das nicht behalten. Das ist ziemlich schlimm. Dies ist nur ein Beispiel dafür, wie man es nicht macht, damit Sie wissen, was Sie vermeiden müssen und dann werden wir sehen, warum. Also, was das jetzt tut, wickeln wir dies mit Casting in die schwarze Klasse und überprüfen dann, was der aktuelle Gesundheitswert ist. Wenn wir also Play drücken, können wir sehen, dass jetzt aktualisiert wird. Und ich muss das ziemlich viel drücken und dann wird die Gesundheit auf 0 runtergehen. So wissen wir, zumindest haben die Aktualisierung. Aber mal sehen, warum das keine so gute Idee ist. Was hier eigentlich passiert, ist, dass dies etwas wie ein Tick-Ereignis funktioniert. Also, wenn wir Druckstring hier wegwerfen, und wir werden nur drucken Element stimmt nicht mit dem überein, was das sagt. Und dann drücken Sie „Play“. Selbst wenn die Gesundheit nicht aktualisiert wird, auch wenn wir einfach völlig im Leerlauf sind und nichts tun ein Werkzeug. Wir haben unsere gebundene Funktionalität hier, nur überprüfen ständig läuft. Und in diesem Fall wird nicht nur ständig ausgeführt, sondern ständig in eine andere Klasse umgewandelt und diese Art von Speicherort und alle Variablen aktualisiert , die innerhalb dieser Klasse von nur um zu überprüfen, ob sich der Gesundheitswert nicht geändert hat. Also, das war wirklich der ganze Punkt dieser Seitentangente hier ist, wenn Sie Leute sehen, wenn Sie aus dem Inhalt fallen und sie empfehlen, eine Bindung zu verwenden, irgendwie überspringen Sie das Bit, Brady, keine sehr gute Übung. Und was wir tun wollen, ist, dass wir diese Bindung lösen, also entfernen wir diese Bindung. Wirklich einfach nie diesen Knopf benutzen. Ich denke, es war eine Art Vermächtnis von vier. Tests, die einfach nie entfernt wurden, da wirklich nicht Teil der Entwicklungspipeline sein sollten. Und während Casting und Event Ticks sind nicht vollständig Sakrileg, sie können in Spielen perfekt in Ordnung verwendet werden, wenn Sie sich vorstellen, dass Sie ein ganzes Widget hatte und ich möchte nur Gesundheit Bot Button und binden, die Amanda, Sie alle einen Text spielen. Die Symbole und alles rund um eine vollständigere Taschenlampe Art Widget. Stage, nicht nur diese Bindung und Casting, wenn Sie es fünf, 10, 15 Mal pro Widget tun könnten , nur um zu überprüfen, dass nichts passiert ist. Hoffentlich macht das irgendwie Sinn, warum wir das nicht tun werden. Also, was wir tun müssen, um das aufzuräumen, wir werden das einfach vollständig löschen, wird diese Prozentfunktion loswerden. Wir können auch zurückgehen, und wir werden unseren Health Bot von Fortschrittsbalken umbenennen, um einen Health Bot zu spielen. Nur weil, wenn wir zurück zu dem Graph-Abschnitt kommen, dass keine zeigt den Namen und eine eher logische Art und Weise, wissen wir genau, was wir betrachten. Also wollen wir eine andere funktional, was wir tun werden, ist, dass wir das in eine Funktion fallen lassen. Wir werden dieses Update Gesundheit nennen. Und das ist ein bisschen mehr ein manueller Ansatz, der etwas länger dauert, um es auf diese Weise zu tun. Aber wieder, wir sparen diese Leistung und wir haben bereits irgendwie volle Kontrolle innerhalb des Ovals, wenn das abgekühlt wird. Stattdessen, was wir tun, ist ziehen in der Spielergesundheit durch Verweis auf die Assets, die im Designer verwendet wird. Wir werden von ihm abziehen. Ich werde mit dieser Prozentfunktion abkühlen, richtig? Also der Prozentsatz, denken Sie daran, ist die Sache, die wir nach oben und unten normalisiert zwischen 01 ziehen können und wir wollen nur das zusammenhängen. Also, wenn diese Funktion gekühlt wird, was nur getan werden sollte, wenn sich die Gesundheit tatsächlich ändert. Also, wenn wir einen Gesundheits-Bonus bekommen oder wenn wir Schaden erleiden, werden wir dann diese Pin in die Gesundheitsfunktion geben und wir können das über anrufen. Jetzt noch einmal, denken Sie daran, dass dies eine Zahl zwischen 01 und unsere Gesundheit ist derzeit zwischen 0100 erwartet . Wie wir zuvor gesehen haben, ist es im Moment, wenn wir weiter abkühlen, dies wird sich nur ändern, wenn es entweder über eins oder weniger als eins ist, was in unserem Fall sein wird, wenn es 0 trifft. Wir werden also nicht sehen, dass sich der Health Bot nach oben und unten bewegt. Stattdessen ist das, was wir tun wollen, um den Wert zu normalisieren, ziemlich einfach. Wir werden das hineinziehen, weil wir keinen Flugwert haben in Prozent genannt wird, und wir werden nur dieses ändern, um Gesundheit genannt zu werden. Und dann wollen wir ganz einfach einen anderen Wert, der die Standard- oder maximale Gesundheit ist. Also werde ich hier einen weiteren Wert hinzufügen und diesen in einen Float ändern und diesen einen Max Gesundheit nennen. Grundsätzlich wird ein normalisierter Wert nur unser aktueller Wert geteilt durch den Maximalwert sein . Also ziehen wir das von hier her. Und wir werden unsere Gesundheit durch unsere maximale Gesundheit und Plug-in, die normalisiert Wert teilen . Das gibt also immer einen Wert zwischen 01 zurück. Wenn das nicht vollständig Sinn ergibt, werfen Sie einfach eine Druckzeichenfolge am Ende und führen Sie einige Tests durch und sehen Sie, was passiert, wenn wir diese Funktion in einem Moment aufrufen. Aber im Grunde, wenn wir eine Gesundheit von 50 haben und wir das durch eine 100 teilen, dann bekommen wir natürlich 0,5. So bekommen wir diesen Wert von 0 zu eins, wenn wir nie über diesen Bereich gehen. Dann ist die Art und Weise, wie wir dies verwenden, so ist dies eigentlich die Gesundheitsfunktion bereit, für uns zu gehen. Denken Sie daran, dass wir diese Referenz auf der Spielerklasse haben, also kehren wir hierher zurück. Und was wir tun wollen, ist, wenn wir anfangen zu spielen, lassen Sie uns eine Funktion erstellen, die wir auf dem Begin Play Festival namens Update Health aufrufen werden. Okay, und innerhalb der Update-Gesundheit erhalten wir unsere Widget-Referenz. Wir werden diese Funktion hier nennen, was wieder die Gesundheit aktualisieren war. Und wir wollen nur weitergeben, was unsere gegenwärtige Gesundheit ist. Und dann denken Sie daran, dass das durch maximale Gesundheit geteilt wird, was in diesem Fall unsere Standardgesundheit ist. Denn denken Sie im Konstruktionsskript daran, dass die Integrität als Standardzustand festgelegt wird. Und wir sind auch im Gesundheitssystem, wir sorgen dafür, dass wir nie über das Maximum hinausgehen , wird nie mehr als Standardgesundheit sein. Deshalb haben wir uns auf diese Weise eingerichtet. Und so werden wir irgendwie neun zusammenkommen. Und der Grund, warum ich dies auf Begin Play mache, ist, sich daran zu erinnern , wie wir irgendwie mit dem Widget hier herumspielen können. Also, wie ich sagte, ist wirklich schön, dass wir kommen können, überprüft die verschiedenen Stile, wenn wir jemals wollen, um die Farbe des Hintergrunds unserer Health Bar überprüfen , können wir immer mit diesem Prozentsatz spielen hier. Wir können dann kommen und mit verschiedenen Farben spielen einige verschiedene Bilder. Und wir können vergessen, dies entweder vollständig oder minimal zurückzusetzen. Was wir also in unserer Spielerklasse tun wollen, ist sicherzustellen, dass wir die volle Kontrolle darüber haben. Also werde ich erst mit dem Spielen beginnen, wenn wir die Widgets erstellt haben. Wir werden auch nur unser Update, unsere Funktion abkühlen , und wir lassen das tun seine. Jetzt. Die nächste Sache ist, wenn wir Schaden nehmen, können wir das auch hier unten tun. Also zwischen unserem Brunch, um zu überprüfen, ob wir gestorben sind oder nicht. Wieder, wenn wir die Gesundheit aktualisiert haben, werden wir wollen, um die Aktualisierung der Gesundheitsfunktionen zu kühlen. Also werden wir einfach von ihm ziehen, die Update-Funktion hier abkühlen. Und denken Sie daran, wenn Sie das zwischen zwei Ausführungsstiften tun, wird es immer den Trichterausführungsgesandten füllen. Was nun passieren sollte, ist, obwohl wir unser Widget hier nicht aktualisiert oder geändert haben. In der anderen Art von visuellem Element dieser, wir nennen, dass funktionale beginnen Spiel, das herausfinden wird , dass wir volle Gesundheit für die Gesundheit arbeiten. Und dann, wenn wir ohne Debug-Gesundheitssystem herumspielen, so dass die Debug-Schaltfläche, die wir den Schaden zugefügt haben, dann sollten wir unser Widget zu sehen aktualisiert werden. Also hier haben wir volle Gesundheitspresse H, und das geht ein kleines Prozent nach unten, basierend auf dem, was ich hier habe. Also 20%, die Byte-Rechte für diesen normalisierten Wert betrachtet. Wenn ich diese 50 Schaden mache, also die Hälfte unserer Gesundheit, dann verlieren wir eine halbe Bar und dann die nächste Hälfte, die wir gestorben sind. Also nochmal, wir können einfach überprüfen, ob unser Mund definitiv das Richtige tut. Und sagen wir 1909, wir sollten wie der kleinste Splitter von Gesundheit haben. Und wir können sehen, dass wir so ziemlich ein Haus haben und wieder, noch einmal, und wir sind gestorben. Wir wissen also, dass dies korrekt funktioniert. Das ist die Hauptsache. Deshalb möchten wir, dass diese praktische Art von Debug-Funktionen nur um zu überprüfen, wenn wir neue Systeme machen, dass sie korrekt implementiert werden bevor wir überhaupt Feinde und solche Dinge haben, können wir leicht testen Dinge mit dieser Nacht. Was ich tun werde, ist, dass ich auch, das ist ein bisschen schwer zu finden. Ich werde diesen Debug nur in einem Kommentar aufrufen und ich werde dies rot machen. Ich werde also nie vergessen, dass wir das irgendwann wahrscheinlich entfernen wollen. Wir wollen nicht, dass das verschickt wird, weil wir natürlich nicht wollen, dass die Pflanzen mit der Tastatur herumspielen und dann plötzlich gesund werden. Also kommen wir zurück und denken daran, das zu entfernen , wenn wir mit dem Gesundheitssystem fertig sind. Also zurück in den Widgets, das ist so ziemlich alles. Also überprüfen wir nur noch einmal. Wir haben das alles, machen es aufgeräumt und müssen wirklich hier reinkommen. Wir können sehen Lassen Sie uns einfach einen Wert normalisieren, stellen Sie sicher, dass wir unsere Bindung hoffentlich nicht wieder haben, das macht Sinn, warum wir nichts an eine Widget-Funktion binden, ob das eine Schaltfläche ist, ACEF-Text, Fortschritt gekauft und nichts wirklich gebunden werden muss, ist schöner, um diese volle Kontrolle zu haben. Und Sie können jetzt sehen, dass diese Funktion nur zu diesen bestimmten Zeiten gekühlt wird , dass wir denken, etwas müssen auf den Plänen Gesundheit aktualisiert werden, so auf dem Spiel beginnen. Und im Moment im Schadenssystem sollte das sein, was wir in der Widget-Klasse und dem Spieler für eine Weile tun müssen. Also, was wir tun werden, in der Tat, wir werden den Spieler in nur einem Moment für den Schaden des Feindes verwenden. So können wir einfach das Widget klassifizieren, stellen Sie sicher, dass wir alle unsere Updates kompiliert und gespeichert haben. 12. 12 – Enemy Base: Also, bevor Sie in den Spieler Gesundheit und Schaden System springen , wenn Sie mit den Feinden interagieren, versuchen, das aus, bevor wir überhaupt etwas haben, um es wirklich zu testen, gegen. Auch hier denke ich, das Beste, was zu tun ist, ist eigentlich eine Pause von der Spielerklasse zu diesem Stadium zu machen. Und wir werden zunächst die grundlegende Anatomieklasse implementieren. Und dann ging ich zurück in die Klasse und wir können das gegen den Spieler überprüfen , wenn sie miteinander interagieren. Also vorerst werden wir in der Tat die Player-Klasse schließen, wenn Sie noch die offene haben und innerhalb aller Blueprints Foto OCR einen weiteren Ordner hinzufügen, dies werden wir ein paar Klassen hier verschachtelt haben. Oh cool, dieser Feind. Und obwohl wir nur einen Feind in diesem Satz von Videos erstellen, wollte ich die Idee der Vererbung vorstellen und zeigen, wie wir eine Art Hierarchie erstellen können, all die verschiedenen Entitätstypen, bei denen die Basisklasse eine Menge der allgemeineren Funktionalität und Variablen. So werden wir den Ansatz genommen und dann können Sie diese leicht auf Ihre eigenen anderen Feinde wie Pilzfiguren oder stationäre Art von Kunst, Feinde oder alles, was Sie wirklich hinzufügen wollten, erweitern Ihre eigenen anderen Feinde wie Pilzfiguren oder stationäre Art von Kunst, . Aus einer Basisklasse werden wir mit der rechten Maustaste klicken und jetzt erstellen wir eine neue Blueprint-Klasse. Und ich werde die Papier-2D-Zeichenklasse wieder verwenden. Wenn wir also feststellen, dass mit Papiercharakter der Grund ist, dass, wenn wir jemals eine getan haben, um detaillierte Art von KI-Implementierungen hinzuzufügen , und dies alles bereit ist, in diesem Charakterbewegungssystem zu gehen, das automatisch eingerichtet werden, um Navigationsvolumina zu berücksichtigen und mit ihnen zu interagieren. Nicht nur das, dies wird auch unsere Flip-Bücher und alles andere haben, was wir brauchen, um Dinge zu animieren und einzurichten, und einschließlich der Schwerkraft, die der Kapsel-Client ist und alles, was wir benutzt haben. Also für diesen hier wird das unsere Basisklasse sein. Dies wird die übergeordnete Klasse sein, von der alle anderen Gegner erben. Also werden wir dieses eine BP Unterstrich feindliche Basis nennen. Was wir nun innerhalb der Basisklasse machen, haben wir versucht, die Logik hier so generisch wie möglich zu halten. Wir berücksichtigen also alles, was jedes Kind dieser Klasse tun muss. Das wäre also Dinge wie absichtliche Bewegung, aber vielleicht sogar das ist ein bisschen zu spezifisch, denn wie ich bereits erwähnt habe, war eine der ersten beiden Ideen, die mir in den Sinn kamen die feindlichen Pilze, die eine Art von Bewegung sehr wahrscheinlich. Und dann war der zweite der Feind der Törtchen. Also habe ich bereits mit der Idee eines Charakters kommen, der in das setzen möchte , bewegt sich kein Werkzeug, das zu spezifisch sein könnte, aber sie werden nur Dinge wie Gesundheitswerte, ein Sieg, verlieren Art von Todeszustand, wenn die Pflanze und Fallen mit ihnen, vielleicht ein beschädigter verursachender Zustand und solche Dinge. Das ist also etwas generischer, dass untergeordnete Klassen wahrscheinlich benötigen. Aber die andere gute Sache über die Verwendung dieses Papiercharakters, wir haben auch alle anderen Dinge, die Kinderklassen, die wir auch brauchen. Also haben wir unseren Kapsel-Collider. Also wieder, wir haben bereits die Kollisionseigenschaften aller untergeordneten Klasse eingerichtet und bereit zu gehen. Und wir haben auch die Sprites-Komponenten. Also wieder, alle unsere Kind-Klassen müssen irgendwie visuell dargestellt werden, wahrscheinlich mit dem Papier 2D-Sprite, weil wir einen 2D-Jump'n'Run verwenden, also wieder, dies hat ein paar der Komponenten, die bereits hier sind, dass wir gehen, um in der Zukunft zu brauchen. Und ich werde das nicht wirklich füllen. Der Grund dafür ist, dass dies sicherstellen wird, dass, wenn wir ein Vergiss haben, eine visuelle Darstellung für unser Kind oder geerbte Klassen zur Verfügung zu stellen. Wenn wir das leer lassen, wird das ein sehr klarer Indikator dafür sein, dass wir in der Kind-Klasse einen Fehler gemacht haben und vergessen haben, etwas zu tun. Was wir inhalieren müssen, sind ein paar Variablen. Das werden also unsere Gesundheitspfleger sein. Dies wird sehr ähnlich zu unserem Spiel eine Charakterklasse sein. Wir haben einen Float-Wert. Die erste, Ich werde eine Standardgesundheit nennen. Und ich werde das kopieren. Also kontrollieren und w, um das zu kopieren, und wir werden diese eine Gesundheit nennen. Und auf die gleiche Weise möchten wir, dass dies immer die Gesundheit am Anfang auf die Standardeinstellung „Gesundheit“ gesetzt. Und lassen Sie uns die Standardeinstellung geben diese auch einen Standard von 100. Wir können dies in untergeordnete Klassen ändern, wie Sie später sehen werden. Aber wir gehen nur davon aus, dass sie alle mit einem flachen bis 100 beginnen, wie der Spieler es tut. Das nächste, was wir tun wollen, ist ein beschädigtes System wieder hinzuzufügen, alle unsere Kinderklassen, alles, was davon erbt, wird wahrscheinlich irgendwann Schaden erleiden müssen. Wir können hier wieder in den Ereignisdiagramm gehen. Wir können die Funktionen entfernen, die wir nicht brauchen, was so ziemlich alles von natürlich sein sollte und kommen und die auf jeden Schaden hinzufügen. Also, diese Funktion, die wir zuvor verwendet haben, das Ereignis jeglicher Schaden, wir wollten im Grunde die gleichen Berechnungen machen, nehmen die Gesundheit weg von dem, was übergeben wird. Und in der Tat, sagen, dass wir einfach zurück zu unserem Spieler und innen von hier springen können , weil wir, wenn Sie das gleiche getan haben, wie ich alles auf die gleiche Weise genannt habe, können wir das tatsächlich einfach kneifen, also kopieren wir das aus einer Klasse. Es wird erkennen, dass die Namen übereinstimmen und wir können das einfach in zwei Hälften passieren. Also ich täglich in diesem Stadium, wieder, wir gehen für eine sehr Art von grundlegenden Minimum, MVP, Minimum lebensfähige Produkte für dieses Projekt. Aber hier möchten Sie vielleicht anfangen, Dinge wie Komponenten, vernünftige Komponenten wie eine Gesundheitskomponente zu untersuchen, weil wir bereits Logik zwischen Klassen kopieren. Dies bedeutet also, dass dies als eine Art Komponente oder Schnittstelle verwendet werden könnte. Also brauchen wir keine Messwerte zu halten. Aber dafür wollen wir einfach nur die Dinge zum Laufen bringen. Und das ist nicht unbedingt eine schlechte Programmierpraxis, aber wir wollen auch nicht Hunderte von Videos nehmen nur um eine einfache Plattform funktionieren zu lassen. Das wird also die Gesundheit des Feindes aktualisieren, wenn wir Schaden erleiden. Und wir haben bereits den nächsten Teil der Logik hier fertig. Wir werden also keine visuelle Gesundheitsdarstellung zeigen. Wir können dieses Bit überspringen, aber wir könnten genauso gut voran gehen und die Gesundheit erneut überprüfen, um sicherzustellen, dass wir verfolgen, ob damit oder nicht, wir können das auch kopieren und wir werden sicherstellen, dass wir die Funktion des Spielers nicht kopiert aber wir werden etwas sehr Ähnliches in unserer feindlichen Klasse implementieren. Also würden wir das alles kopieren, wird hierher zurückkommen. Wir fügen dies in das Ereignisdiagramm ein. Wir können ein kleines Problem haben. Und das ist, dass wir diesen Boolean noch nicht gemacht haben. Aber wenn Sie das jemals bekommen, können Sie sehen, dass wir eine leicht weiße Linie darüber haben, was bedeutet, dass dieser Wert nicht existiert. Wenn wir Kompilieren drücken, haben wir jetzt schön und einfach, dies zu beheben. Wir können irgendwo in der Nähe dieser weißen Linie mit der rechten Maustaste klicken und wir können ihm sagen, dass die Variable erstellt werden soll. Ist das. Also haben wir nicht, dass die Traktate dort auch ohne zusätzliche Kosten für uns drin sind. Also machen wir nicht dasselbe, damit wir nicht die Fähigkeit haben, wie wir es nicht wollten, aber der Spieler, bei dem wir nicht mehr als einmal sterben wollen, könnten wir etwas haben, wo der Spieler ständig auf einen Feind springt und es auf eine konstante Art von Death Loop. Was jetzt, wo ich das sage, ziemlich lustig sein könnte, aber es könnte auch ein bisschen buggy aussehen. Nicht ganz die Mechanik oder die Ergebnisse, die Sie wollen, aber wir machen die gleiche Überprüfung Hälfte. Also, wenn die Gesundheit kleiner oder gleich 0 ist, dann sind wir tot. Auch hier bin ich mir voll bewusst, dass wir mit Verklumpung dieses, aber nur um unseren Code zukunftssicher zu machen, aber nur um unseren Code zukunftssicher zu machen,auch sicherstellen werden, dass nichts durch diesen Anwendungsfall rutscht und wir keinen, einen Feind irgendwann mit minus 50 haben Gesundheit, die noch am Leben ist. Und auch wenn es nicht tot ist, also können wir es nicht mehrmals töten, dann werden wir unseren Feind töten. Stellen Sie sicher, dass wir setzen, ist, dass wahr zu sein. Und dann machen wir diese Funktion wieder. Und wir nennen diesen einen Feind gestorben. Das hier wird ein bisschen anders sein. Ich werde hier keine Logik reinlegen. Was ich tun werde, werde ich einfach ein neu geschriebenes Weiß hinzufügen, nur damit wir etwas visuelles und einen Kommentar rund um die Umleitungsnacht haben. Okay, also ein netter einfacher Kommentar, sagen Sie uns einfach, was diese Funktion tut. Also haben wir diese Funktion gemacht, die in der Elternklasse vollständig leer gelassen wird . Und dies wird erwartet, dass in vollständig überschrieben nur in den Kind-Klassen verwendet wird. Jetzt könnten wir hier etwas tun, wie die Zerstörungsfunktion zu kühlen. Aber in der Kind-Klasse möchten wir vielleicht etwas tun, wie das gemeinsame Haar setzen, Animationen spielen, Teilchen signiert und solche Dinge. Also wollen wir die Klasse nicht zerstören, bevor das passiert ist. Und wir können die Art und Weise, wie Funktionen aufgerufen werden, nicht ändern. So konnten wir zuerst Kuhn unser Kind Funktion und dann die Elternfunktion nachher erben und zerstören. Aber auch hier kann es einige Anwendungsfälle geben, in denen wir nicht einmal wollen, dass es zerstört wird. Vielleicht werden wir Leichen in der Arena übersät haben. Vielleicht wird das Teil des Mechanikers sein, wo sie existieren müssen. Um solche Probleme zu vermeiden, bin ich im Allgemeinen nicht cool. Zerstörungsfunktionen in der übergeordneten Funktion ruft ein Werkzeug auf, wenn die übergeordneten Klassen. Aber ich werde eingerichtet haben, dass die Funktion bereit ist, dass gekühlt werden , so dass die Gesundheit gefangen ist und wir wissen, dass der Feind gestorben ist. Es erspart uns, die gleiche Funktionalität immer und immer wieder in allen unseren Kind-Klassen zu implementieren . Aber wir bekommen diese Freiheit und Flexibilität, um den Funktionen die einzigartige Logik und Funktionalität hinzuzufügen , die auf der Klasse basiert, die diese Funktion aufruft. Also, was wir tun werden, werden wir das nennen. Wir wollen immer noch, dass dies gekühlt wird, obwohl nichts passiert. Denn in jedem Kind dieser Klasse und ich, wenn die Gesundheit als verfolgt wird und es als toter Feind eingestuft wird. Und das wird immer noch abgekühlt werden. Wir werden in Kürze hoch sehen. Dies kann immer noch in der Child-Klasse verwendet werden , wenn Sie damit nicht vertraut sind, aber das ist ziemlich viel es. Das ist also unsere feindliche Basisklasse, die bereit ist zu gehen. Das ist das Projekt, zumindest die Variablen und Funktionen, von denen ich denke, werden die generischsten sein. Die Dinge, die jede Klasse, die ich mir vorstellen könnte, brauchen würde. Und sie sind definitiv die einzigen Dinge, die ich zurück in die Klasse gegangen bin, müssen vermeiden, dass wir dies auch in dieser Klasse manuell implementieren. 13. 13 – Enemy Bat: Also werfen Sie den nächsten Blick in das Vererbungssystem, wie wir verschiedene Klassen erhalten können, um Funktionalität und Variablen und Eigenschaften von ihren Elternklassen zu erben , können wir jetzt beginnen, unsere feindlichen Fledermäuse zu erstellen. Und das können wir tun, indem wir in unsere Feinde Ordner zurückkehren. Und hier, von der feindlichen Basis, werden wir mit der rechten Maustaste darauf klicken. Und wir haben hier eine Möglichkeit, eine Child Blueprint-Klasse zu erstellen. Diese Klasse erbt nun alles, was wir gerade in unserer Basisklasse implementiert haben. Ich werde nur diesen einen BP Unterstrich feindlichen Fledermaus nennen. Und wir können sogar hier sehen. Wenn Sie also noch einmal mit der unwirklichen Klassenvererbungsstruktur nicht vertraut sind, können wir sehen, dass die übergeordnete Klasse die feindliche Basis ist. Wir können zu diesem navigieren, was gerade hier sein wird. Wir können sehen, dass die feindlichen Basiselterklassen, die Papierfigur, die wir ursprünglich gewählt haben, klicken wir auf diese. Dies führt uns zu einer C plus plus Klasse, die wir alle diese Dinge definieren werden. Also erben wir im Grunde nur die Capture-Komponente, Sprite-Komponente und alles Ähnliche von unserer C Plus Plus-Elternklasse in diesem Fall. Also werde ich einfach die Planetenklasse loswerden. Das brauchen wir nicht mehr innerhalb des Feindes. Aber was wir tun wollen, können wir beginnen, einige der Visuals hier hinzuzufügen, so dass wir unsere Sprites in diesem ein hinzufügen können. Also denken Sie daran, wir werden das loswerden, meine Eltern-Version. Dies wurde absichtlich leer gelassen. So können wir dies mit dem animierten füllen, aber wir werden auch die Größe der Kapselkomponente ändern wollen , damit wir dies einfach zu einem perfekten Kreis machen können. 34 und 34 scheinen also gut zu sein. Es bedeutet, dass wir nicht von der Spannweite getroffen werden. Aber ich denke, das wird akzeptiert werden wollte zu alt in dieser Art von Spiel aussehen. Und dann nur um ein paar Dinge wie wieder zu überprüfen, nur für den Fall, dass Sie nicht vertraut sind. Innerhalb des Konstruktionsskript-Festivals können wir sehen, dass wir ein cooles, normales Konstruktionsskript haben, das dann das übergeordnete Konstruktionsskript abkühlt. Also, was das tut, wenn wir darauf doppelklicken, führt uns das zur Elternklasse. Und wir können sehen, dass im Grunde die Reihenfolge der Ausführung darin besteht, dass wir unser eigenes Funktionsfestival abkühlen, das wir tun könnten, hier etwas wie eine Druckzeichenfolge hinzufügen, was bedeutet, dass wir im Konstruktionsskript drucken würden , was auf der Druckzeichenfolge sein. Und dann würden wir Stunde Elternversion kühlen, die nur die Gesundheit einstellen wird. Ja, wenn wir, die die verschiedenen Wege tun. In der Tat werde ich das zeigen, nur um diesen Punkt zu erreichen. Also sagen wir drucken String. Wir werden sagen, das ist ROM-Kind. Und dann werden wir in der Basisklasse auch hier eine Druckzeichenfolge machen. Und sie sind nur klar, dass dies ein bisschen verwirrend sein wird , weil die Art, wie es auf dem Bildschirm scrollt, aber hoffentlich sollte das Sinn ergeben. Wir werden sagen, offensichtlich. Das wird also deutlich machen, ob diese Schulen von keiner Änderung kommen , um orange zu sein. Nur damit es ein bisschen offensichtlicher ist. Und das können wir schon sehen. Wir haben viele verschiedene Dinge , die Konstruktionsskripte ziemlich ständig ausgeführt werden, wenn Sie etwas ändern etwas im Editor kompilieren. Also, wenn wir nur die Eltern einbringen würden, würden nur diesen übergeordneten Funktionscode bekommen. Ich bewege das, denn wieder wird das Konstruktionsskript gekühlt, wenn wir etwas im anderen Set bewegen. Also, was das tut, ist, dass es in den Zustand einstellt und dann die Druckzeichenfolge kühlt. Im Vergleich dazu, wenn wir die Fledermaus mitbringen, können wir sehen, dass dies das Kind kühlt. Es scrollt nach unten, damit wir sehen können, ob ich es für eine Weile lasse. Der erste sollte blaues, untergeordnetes Kind sein. Also ruft das zuerst die Kinderfunktion auf, dann die Eltern. Und irgendwie schleifen, dass jedes Mal, wenn Sie eine bestimmte Anzahl von Einheiten kaufen. Also, das ist die Oda, er, Meine, wir können das ändern, wenn ich das schnell anschließe und dann diese so einbinde, diese, die ich in die Eltern Construction Script Weste fällt. Es sollte ich nicht ein Elternteil und dann ein Kind lesen, weil wir unser Konstruktionsskript auf dem Elternfest abkühlen und diese Druckzeichenfolge abkühlen werden. Und dann werden wir unsere Druckzeichenfolge in der Klasse abkühlen , von der wir sie tatsächlich direkt aufrufen. Also nochmal, ich bringe einfach die feindlichen Fledermäuse rein und es ist ein bisschen schwer, gegen nichts zu sehen. Ich habe die Seite gespürt, aber ich mache es kein anderes Audit. Also haben wir Eltern und Kind, Eltern und Kind. So können wir sehen, dass es in der richtigen Reihenfolge geht. Diese Art von macht also Sinn, wie wir die Struktur der Reihenfolge haben , in der Dinge gekühlt werden, wenn Sie Dinge von anderen Klassen erben. Weil wir dies nutzen werden, während wir mit der Button-Klasse durchgehen. Und genau das meinte ich damit, dass wir Dinge in den feindlichen Ereignissen überschreiben können. Wir hätten so etwas tun können, wie die Zerstörungsfunktion hier zu platzieren. Ich stelle nur sicher, dass wir, wenn wir diese Funktion überschreiben, die Version des Kindes feiern, die die Effekte spielen wird. Und dann die übergeordnete Funktion aufzurufen, die die Zerstörung der Klasse behandeln würde. Aber wie ich bereits erwähnt habe, selbst mit dieser Art von Überschreibung, kann es Situationen geben, in denen wir nicht wollen, dass alles sofort zerstört wird, Dinge wie diese Art von permanenter und das Spiel kann ziemlich nett mit den Körpern und mit unterschiedlichen interaktablen ist, wenn die Feinde starben. Aus diesem Grund werde ich das einfach überspringen und sicherstellen, dass wir alle Funktionen ausführen, die wir innerhalb der Kind-Klasse wollen. So wie dies funktioniert, können wir die eine Funktion bekommen, die ich den Weg habe, um mit zu beginnen, so dass wir tatsächlich in Überschreiben einer anderen Funktion, die unser Feind sein wird, starb Überschreibung. Also hier in den Funktionen, anstatt das neu zu erstellen, können wir sehen, dass wir ein paar Dinge haben, die bereits in der feindlichen Basis definiert wurden. So können wir die, jede Schadensfunktion in der gegnerischen Basis außer Kraft setzen und wir können die er starb Funktion von der feindlichen Basis überschreiben. Wir haben auch eine Reihe von Funktionen, die wir von der Schauspielerklasse überschreiben können. All diese wieder, sind bereits im Allgemeinen Gesetz getan, um Klasse setzt. Aber der, an dem wir interessiert sind, ist, dass der Feind gestorben ist. Also, wie ich sagte, wir werden das cool für den Eltern halten , nur für den Fall, dass wir jemals etwas tun, ein Generic, das wir in der Basisklasse in diesem einfachen Beispiel passieren wollen, es nicht passieren, aber nur für den Fall, dass wir das getan hat, dann halten wir die Hüfte. Und Sie haben bereits gesehen, wie das mit dem Konstruktionsskript funktioniert , wenn dies zuerst aufgerufen wird, das wird im Wesentlichen kommen, nichts Geschichte Root, Knoten tun, und dann werden wir unsere eigene Logik hier nennen. Jetzt gegen alles, was ich gerade gesagt habe, ist das, was wir in der gegnerischen Hinterklasse tun werden, die Klasse zerstört. Also in diesem Fall werden wir nicht in Kraft treten, sagt viele Tutorials über Partikeleffekte und Nebenwirkungen und solche Dinge. Ich werde nur den Charakter visualisieren, der entfernt wird. Es wird also die Funktion „Akteur zerstören“ gekühlt wenn der Spieler auf den Feind springt. Aber wieder, wenn Sie etwas tun wollten, wie das Hinzufügen einer Animation schnell, dann können Sie hinzufügen, dass hier, haben Sie einen Go off Bildschirm und dann nach einer Sekunde, um es auf diese Weise zu zerstören. Aber wieder, dies wird eine schöne visuelle Darstellung sein, wird sehen, dass wir auf den Rücken springen und dann wird es verschwinden. Nun, das sieht so aus, als könnten wir sie im Moment in die Welt bringen. Wenn wir versuchen, es irgendwo auf der Kachelkarte hier zu ziehen, können wir sehen, dass es gerade darüber ruht. Aber nah genug, wir wollen dies auf 0 und auf der Y-Achse setzen. Und um das als Beratung zu vermeiden, werden wir einfach sicherstellen, dass es nicht in den Boden geht und wir können es irgendwo so lassen. So wird es impress Flugzeug I. Wir haben ein bisschen wie ein Streaming-Problem hier, das eine Sekunde dauern wird und dann das sollte sich beheben. Und wir können schon sehen, dass es ein paar Probleme sein wird, die ich hier erwartet habe. Und das ist, dass wir darauf springen können und wir werden bewegt werden, möglicherweise rückwärts geschoben werden, was ich hoffte, dass es dort passieren würde. Da wir also spezifizieren müssen, dass Licht miteinander interagiert, weiß es im Grunde nicht, auf welche Weise die Kollision gelöst werden soll. Und wir können dieses Problem nicht haben, bei dem wir auf der Y-Achse vorwärts und rückwärts bewegt werden. Sobald wir diese Art von Problem im Sinn haben, werde ich einfach wieder in die Spielerklasse gehen und wir können lösen, dass dies die Spielerklasse auf die Charakterbewegungen klingen könnte. Wir haben hier die Möglichkeit. Wenn wir nach Constrain suchen oder einfach nur mit der Eingabe von Constraint beginnen, haben wir die Einschränkung, eine Option zu spielen. Wir wollen im Grunde, dass dies einen positiven Wert auf der Y-Achse hat, was bedeutet, dass wir es nicht erlauben werden, irgendeine Richtung auf der Y-Achse zu bewegen. Wir haben immer noch Bewegung in der X und der XIJ, die von links nach rechts und oben und unten ist. Aber was das tun sollte, ist, wenn wir wieder in und springen auf die Fledermäuse wieder, können wir sehen, dass wir nur links und rechts geschoben. Also wird es genug Geschwindigkeit brauchen. Und das sollten wir nicht, was das so oft hilft, wie wir wollen, ohne uns Gedanken darüber zu machen, vorwärts oder rückwärts geschoben zu werden. Das ist also das erste Problem. Das nächste, was Sie vielleicht bemerkt haben, ist die Bernstein-Sache, etwas höher ist, aber immer auf dem Boden landet. Also, natürlich werden wir nicht. Ich bin dabei, fliegen zu können. Und wieder, wir können das leicht innerhalb des Feindes tun. Zurück zur Klasse dieses Mal, zurück zur Charakterbewegung. Und wir haben ein paar verschiedene Arten von Bewegungsmilben. Wir können die Standard-Landbewegung seltsam genug einstellen, um fliegen zu können. Also im Grunde, wenn dies initialisiert wird, wird es den Standardbewegungstyp auf Lund setzen. Und wenn wir in diesem Land Standardwerte sind, wollen wir, dass dies als eine fliegende Bewegung eingestuft wird. Also widerspricht es sich dem, aber seien Sie sich bewusst. Die Hauptsache ist, dass dies der Standardbewegungsmodus ist, der Lund ist. Und wir werden dann nicht so fliegen, wie das funktioniert, denn wenn wir reinkommen und das simulieren, können wir sehen, dass das die Schwerkraft wegnimmt. Und das ist meine Klasse als fliegende Figur, so dass sie sich Seite zu Seite bewegen kann. Wir können uns auf- und runter bewegen. Und es wird die Schwerkraft vollständig ignorieren, es sei denn, wir überschreiben sie, um Art sprudelnde Animation mit etwas Schwerkraft, einer Art Form zu haben. Aber ansonsten wird dies vollständig auf der App bleiben. Selbst wenn wir es besitzen, dann können wir aufsteigen und anfangen, auf das Bett zu springen. Also an diesem Punkt haben wir eine ziemlich stationäre, aber das nächste, was wir tun wollen, ist eine Art Bewegungslogik dazu hinzuzufügen. Ich werde das nur sehr einfach machen. Es wird von links nach rechts fliegen. Es wird nach dem Zufallsprinzip wählen, ob es in eine bestimmte Richtung bewegen will. Und dann wird es einer dieser Feinde sein, die, wenn es eine Wand oder etwas trifft, mit ihr kollidiert, während er auf seinem Weg einfach die Richtung ändert und in die andere Richtung fliegt. 14. 14 - Enemy Bat Bewegung: Die eigentliche Bewegung für diese Klasse sollte ziemlich einfach zu implementieren sein, da wir hier wieder die Charakterbewegungskomponente verwenden. Das bedeutet, wie bei unserer Spielerklasse, nur um das zusammenzufassen, was wir getan haben, können wir wirklich einige der Bewegungslogik nutzen, die bereits innerhalb der Charakterbewegung verfügbar ist und eine Richtung bietet, die sie sich bewegen muss. Und das wird so ziemlich die Logik sein, die wir brauchen, um das zu tun. Das war also auf der Eingangsbewegung, und wir können sehen, dass wir die Bewegungseingänge haben. Also werden wir etwas sehr, sehr Ähnliches tun. Wenn Sie die Spielerklasse bereit haben, können wir diese Notiz kopieren. Wir werden genau das Gleiche verwenden, gehen zurück zum feindlichen Staffel in die Klasse. Und der einzige Unterschied ist natürlich, dass, weil wir in diesem Raum kein Eingangsantrieb hatten. Wir werden dies neben dem Ereignis Tick einfügen, OK, diese Sicherung. Und dann müssen wir nur noch herausfinden, wie wir diesen Skalenwert erhalten. Also im Moment haben wir die x, na ja, die Richtung, in der wir uns bewegen. Also wieder, wir bewegen uns nach links und rechts. Wir brauchen keine Vorwärts- oder Rückwärtsbewegung oder vertikale Bewegung für unsere Knöpfe. Also, wenn wir das jetzt tatsächlich spielen, würde dies zumindest die ganz grundlegende Bewegung tun, die wir brauchen. Wir können das Haar simulieren. Wir können sehen, ein paar Dinge sind wahrscheinlich ein bisschen. Die erste ist, dass die Fledermaus nach hinten fließt. In der Sekunde würde ich sagen, er bewegt sich ein bisschen zu schnell. Und das letzte Problem ist die wichtigste Art von Punkt, dass er sich immer in diese vorwärts oder richtige Richtung bewegen wird. Also, was wir tun werden, ist, diese verschiedenen Schritte auszuarbeiten, während wir diese Klasse durchlaufen. Also ist das erste, was am einfachsten zu nähern ist, was wir die Geschwindigkeit der Bewegung ändern werden. Wir haben in der Vergangenheit wieder gesehen, dass dies auf der Charakterbewegungskomponente ist. Also mit diesem ausgewählten D, Denken Sie daran, dass wir die Standardbewegungen verwenden, um zu fliegen, was bedeutet, dass wir nicht mit der Gehgeschwindigkeit ändern, wie wir es mit dem Spieler getan haben. Stattdessen müssen wir zum fliegenden Abschnitt gehen und das senken. Also mache ich diesen Kreisverkehr zur Hälfte mit den Geschwindigkeiten der Spieler, die sich bewegen. Ich denke, die Spieler standardmäßig auf 600, also machen wir die maximale Windgeschwindigkeit bei 300. Dies bedeutet nur, dass es für den Spieler oder uns ein wenig einfacher sein sollte, irgendwie aufzuholen und mit den Feinden zum Testen und auch für Spiele herumzuspielen. Normalerweise möchten Sie, dass sich der Spieler ein wenig kontrollierbarer und mächtiger fühlt als die Feinde. So können wir sehen und das ist fixiert, die Bewegungsgeschwindigkeit, die der erste und einfache Schritt ist, der hier zu tun ist. Wählen Sie aus der Bewegungsrichtung. Was wir tun können, ist, dass wir von hier ziehen können und wir eine andere dieser geschlafen Notizen verwenden, an die wir uns gewöhnt haben. Wieder werde ich für die Dienstprogramme wählen gehen, weil ich die Art und Weise mag , wie dies das wahre oder falsche ausdrucken wird. Wenn wir dies zu einem booleschen Wert machen. Von hier aus werde ich nur ziehen und diese zu einer Variablen erstellen oder fördern. Und ich werde das nennen, dass B sich bewegt, oder? Also wieder, wir sind standardmäßig auf die positive Benennung von diesem, dass Verschiebungsrechte werden die Art der erwarteten Standard sein. Und was wir tun können, ist, dass wir das einstellen werden. Also, wenn das wahr ist, werden wir das auf eins setzen. Und wenn das falsch ist, setzen wir das auf minus eins. So sehr ähnlich wie das, was wir mit der Eingabe-Achse tun. Man wird sich positiv nach rechts bewegen, minus man wäre negativ nach links bewegen. Sehr ähnliche Logik, nur eine andere Möglichkeit, dies von einem Booleschen zu steuern. Nun, um dies zu testen, können wir sehr einfach das Auge nehmen. Also werden wir das öffentlich machen, es kompilieren. Und wir werden sehen, dass dies standardmäßig falsch ist, weil der Index hier falsch war. Und das bedeutet, wenn wir unseren Fledermaus im Editor packen, sollten wir die volle Kontrolle über die Bewegungsrichtung hier haben, indem wir feststellen, dass Boolean, wir haben den richtigen Boolean hier. Also würden wir erwarten, wenn wir das nicht angekreuzt lassen, wenn ich nach links gehe. Okay, also ist der erste Test abgeschlossen. Und wenn wir das nehmen, sollten wir Rechte bewegen. Und wir können sehen, dass wir jetzt die Kontrolle über die Fledermaus haben wie erwartet. Das wird also der nächste Teil der Bewegungsrichtung gesteuert werden. Also haben wir jetzt eine Variable zu steuern. Das funktioniert. Nun schöne einfache Art und Weise, dass wir dies auf dem Startplatz aktualisieren können , so dass wir irgendwie randomisiert die Art und Weise, dass die Fledermäuse bewegen werden. Ich werde nur die Zugriffsüberlappung entfernen. Das werden wir nicht brauchen. Was wir tun können, ist, dass wir unsere Variable ziehen können, verbinden Sie dies, und wir können einfach von hier ziehen und eine zufällige boolesche Funktion verwenden. Also ganz einfach, dies wird eine 5050 Chance haben wahr oder falsch zu wählen, wenn wir anfangen zu spielen, wir hätten keine Kontrolle darüber. Wir werden nur diese völlig zufällige Zuweisungen des booleschen Wertes verwenden. Und dann, wenn es zum Event Tick kommt, wird das berücksichtigt und unsere Fledermaus wird sich in verschiedene Richtungen bewegen. Okay, ich habe es ein paar Mal versucht, und Sie können tatsächlich etwas High sehen, wir haben eine genau 5050 Split der Randomisierung bekommen, die ich nicht erwartet habe. Also, dass für das, was es ist und was wir hier tun können, ist sicherzustellen, dass wir das noch mehr testen müssen , damit wir es wieder privat von C machen können. Wir wollen einfach nicht zu viel, um ausgesetzt zu werden, wenn es nicht sein muss. Und die letzte Sache für die Art der grundlegenden Bewegungsimplementierung, die ich sagen würde, ist, sie auf den richtigen Weg zu bringen. Also natürlich wollen wir, dass das im Moment mit der Oberfläche kollidiert. Wenn wir das nach links bewegen, dann wird das, was passieren wird, mit dieser Wand kollidieren und einfach auf unbestimmte Zeit in die Wand fliegen. Also werden wir das ein wenig später ausarbeiten, um den Fledermaus dazu zu bringen , die Richtung zu ändern, sobald er auf eine Wand wie diese trifft. Aber für jetzt denke ich, dass wir den Charakter einfach auf den richtigen Weg bringen können. Also, sobald wir eine Richtung ändern, können wir in dieser Bewegung rechts Variable, die wir verfolgen, nehmen. Und wir können es entweder links oder rechts aussehen lassen, je nachdem, wie es sich bewegt. Also wieder, um dies zu tun, Es ist sehr einfach, Ich denke, in diesem Fall, anstatt zu versuchen, Kontrolle Irritationen und Dinge wie das auszuarbeiten. Dies ist eines der Dinge, bei denen Sie es in beiden Fällen tun können. Es gibt keinen richtigen oder falschen Weg. Vor allem, wenn so etwas wie ein Feind ist, weiß ich, dass wir nichts wie eine Fledermaus haben werden. Spucken Fasern sind einige Dinge, die wir uns nicht mit der Rotationsrichtung beschäftigen müssen . Wir fügen keine Unterkomponenten hinzu. Also wollte ich Ihnen die andere Art und Weise zeigen, die ich erwähnt habe, um dies zu tun, die die Sprite-Skalierung verwendet. Also ich völlig optional, aber ich möchte Ihnen so viele verschiedene Möglichkeiten zeigen, Dinge wie möglich zu tun , damit Sie diese Optionen in Ihrem Arsenal bereit haben. Also, was wir tun werden, ist abhängig von der Richtung, in der wir uns bewegen, wir werden unsere Sprite-Komponente bekommen. Sie können dies auch tun, um den gesamten Schauspieler vollständig bis zu Ihnen, wie Sie dies verwalten, so dass Sie die Skala des Schauspielers einstellen können. Aber ganz einfach, denken Sie daran, dass eine, die ich gesagt habe, eine Option die wir mit unserem Spiel einen Charakter hätte tun können, anstatt die Rotation zu ändern , einfach unser X gal zu bekommen, setzen Sie dies auf minus eins und wir stehen vor der andere Richtung. Das werden wir also tun. Eine schöne einfache Herangehensweise hier. Und wie gesagt, nur eine andere Option, die ich dir zeigen wollte. Um das zu verwalten, werden wir zuerst die aktuelle Skala erhalten , da wir diese Neuberechnung in nur einem Moment benötigen. Und wir können dies mit der GET Weltwaage, dem Sprite, tun. Wir können den Strukturstift aufteilen. Also haben wir die x, y, und Zed. Und dann in ähnlicher Weise werden wir dann die Skala auf der Grundlage dieser setzen. Auch hier können wir die Weltskala 3D für unser Sprite einstellen. Und wieder werden wir den Strukturstift teilen wollen, nur weil, wenn Sie darüber nachdenken, wir nicht wollen, dass er das y oder den Zed umkippt. So können wir diese einfach automatisch anschließen, so dass sich diese nie ändern. Du könntest sie auf einen festcodieren. Sie können die Art und Weise vergessen, das zu tun. Die Hauptsache ist, wir wollten die Berechnung basierend auf unserem x-Wert erarbeiten. Dann werden wir das letzte Mal von hier ziehen, und wir werden das mit einem Schwimmer multiplizieren. Floats multipliziert mit einem Float. Der Rückgabewert wird sein, was wir den Maßstab dafür festlegen wollten. Und wie immer, werden wir von dieser letzten Pin ziehen und wir werden eine ausgewählte Notiz verwenden. Wieder, wir gehen für die Dienstprogramm-Option. Nur um zusammenzufassen, wir wollen nicht, dass ein oder B. Das ist ein bisschen zweideutig. Und natürlich, sobald wir dies drehen, um den booleschen Wert zu verwenden, erhalten wir die true oder false. Das wiederum ist sehr menschlich lesbar. Wir wissen jetzt, dass, wenn wir uns richtig bewegen, wenn das wahr ist, dann wollen wir, dass dies auf eine Weise skaliert wird. Wenn es falsch ist, dann wollen wir, dass es auf die andere skaliert wird. Und wie wir gerade gesehen haben, ist dies eigentlich ein bisschen anders, weil die Vermögenswerte gezogen werden. Es ist richtig, Art von üblich, dass die Vermögenswerte, der Spieler nach rechts gezeichnet werden, die Feinde zurückgezogen nach links ist nur etwas, was ich bei 2D-Künstler graben bemerkt habe, was bedeutet, standardmäßig nach rechts zu bewegen? Also müssen wir das tatsächlich umkehren. Standardmäßig ist, sobald der Feind beginnt sich direkt über das Level zu bewegen. Wenn das stimmt, wollen wir eigentlich, dass dies ein negativer Wert ist. Also setzen wir das auf minus eins. Und wenn das falsch ist, also wenn wir uns nach links bewegen, dann setzen wir das auf positive ein. Damit das erledigt ist, können wir das hier einstecken, das ein bisschen aufräumen, und das wird genauso gut sein, um diese Ite zu testen. Ok, und da gehen wir. Also der Fledermaus nicht, ich stehe in die richtige Richtung, je nachdem , wie dieser zufällige Boolean am Anfang des Spiels ausgewählt wird, wenn wir uns nach links bewegen, dann fliegt er Flüssigkeit nach links. Und wenn wir uns rechts bewegen, dreht es sich um und bewegt sich oder Holz nach rechts. 15. 15 – Enemy Bat: Um die Knöpfe auf die Wölfe reagieren zu lassen, wie wir es erwarten, wie wir es erwarten,wird es ein paar verschiedene Arten von Schleifen Regeln und Erwartungen geben, die ich in die Logik setzen werde nur damit wir wissen, dass wir die volle Kontrolle haben darüber, wie die Hintern könnte potenziell mit den verschiedenen Teilen der Ebenen interagieren, wie der Boden des Spielers, verschiedene Gegenstände hartnäckig wie Wölfe und so weiter, so zurück innerhalb des Feindes. Aber um innerhalb des Ereignisdiagramms zu Klasse, das erste, was wir tun wollen, ist die Art und Weise, wie wir das irgendwie von den Kollisionsereignissen umgehen werden, wie ich bereits erwähnt habe, der grundlegende Umriss davon ist, wenn die Fledermaus etwas, wir wollen, dass es entscheidet, ob es sich umdrehen sollte oder nicht. Also haben wir bereits die Hauptkomponente, die wir dafür brauchen werden, was natürlich die Kapselkomponente sein wird. Auf der Capture-Komponente können wir nach unten scrollen und wir können die Komponente Treffer Ereignisse finden und wir können dies hinzufügen. Jetzt werde ich einfach durch den Weg gehen, an dem ich diesen Teich sterben lasse. Sie möchten also vielleicht, dass Ihr feindlicher Charakter anders mit der Welt interagiert. Im Allgemeinen aber gibt es ein paar Art von Regeln, wenn es darum geht, die Art und Weise der, Ich schaue auf Spiel Design auf einem mehr Konzept und Theorie basierte Prämisse als nur die ländlichen Art Mechanik dahinter. Das erste, was mir immer am meisten auffällt, ist, dass eines der Dinge, mit denen dieser Feind potenziell kollidieren könnte, die Pflanzenklasse sein wird. Eine Sache, die ich immer sehr verheiratet finde, wenn das passiert , ist, wenn der Feind den Strand trifft und dann diese automatische Art von Logik ausgelöst hat , damit es sich umdreht und in die andere Richtung bewegt. Vor allem, wenn Sie es brechen und denken, dass der Feind ist irgendwie früh in der Ebene, nur um entweder jagen, essen, finden oder mit der Spielerklasse in irgendeiner Weise zu interagieren, um Schaden zu verursachen. Vor allem, wenn ich mich diesem wie ein sehr Old School Ionic oder Mario Spiel nähere, nicht einige der neueren, wo die Feinde passieren können und die Nabe spezifische Art der Montage ist, wo sie einen Schlag den Charakter werfen, als zum Beispiel sind dies diejenigen, die rein Kontaktschäden verursachen werden. Also neige ich dazu zu denken, es fühlt sich ein wenig seltsam an, wenn die eine Sache, die der Feind tun soll, ist, ins Spiel zu gehen und Schaden zu verursachen und dann dreht sich um. Also, was ich tun werde, ist das erste, was wir davon fahren werden , ist, dass wir vom anderen Akt nach oben ziehen und herausfinden, was wir getroffen haben. Und wir wollen nur unsere Kollisionsprüfung durchführen, wenn nicht dem Spielerbauern entspricht. Also müssen wir kein Casting machen oder so was. Wie wir buchstäblich überprüfen können, ob die eine Sache, der einzige Spieler im Spiel, kontrollieren wird , wenn das Ding, das wir getroffen haben, nicht gleich ist. Der andere Porno oder das Plasma wird von hier aus einen Brunch-Check durchführen. Und wenn das wahr ist, dann können wir weitermachen und unsere Richtungswenkellogik machen. Das ist der erste Schritt für diese Art von Logik. Das nächste, was wird sein, zu finden. Wenn wir also dieses eine Kriterien bestanden haben, wollen wir auf diese Weise völlig gemocht werden und jede zukünftige Logik ignorieren. Das nächste, was wir uns ansehen können, ist, die Oberfläche zu überprüfen , gegen die wir getroffen haben oder gegen die wir interaktiv sind. Und das können wir tun, indem wir den Treffer Pin einfach hier fallen lassen. Dies bietet viel mehr Informationen über die Sache, die wir getroffen haben, wie die Art des Materials könnte es seinen Namen haben, wenn es eine Knochenbuchse hat, die Entfernung und Sie können alle zusätzlichen Stifte sehen, die wir hier haben. Jetzt ist der, an dem wir interessiert sein werden, das Normale. Und das kann uns eine Vorstellung von der Richtung geben, in der der Treffer getroffen wurde. Das nächste, was ich dafür erklären wollte, als ob etwas von oben oder unten kommt. So Decke oder Boden, oder sogar eine andere Art von Feind oder eine interaktive Klasse. All diese Dinge sollten auch ignoriert werden. So können wir sehen, wie das aussieht. Wenn wir von hier ziehen, werde ich String drucken. Und innerhalb der Druckschnur können wir den Treffer einfach einstecken. Normal wird derjenige sein, den wir hier wollen. Also lasst uns einfach eine schnelle Kompilierung dieses haben und wir können sehen was Renditen sein wird, je nachdem, ob das getroffen wird. Okay, wenn wir also gerade auf eine Oberfläche wie diese stoßen, können wir sehen, dass wir eine Menge Treffer von dieser einzigen Kollision bekommen. Grundsätzlich, solange das kollidiert, irgendwie wie ein schreckliches Chaos, werden wir diese Hitfunktion zurückgeben. Das Wichtigste, was wir hier sehen können, ist, dass dies auf einer positiven auf der X-Achse getroffen wird. Das ist also nicht wirklich die Treffer-Position des Hintern von SES wird minus eins auf der Außenseite links sein, wie wir bereits wissen, was wir tatsächlich bekommen, ist die positive Position der Sache, die wir treffen, , die sich auf einer auf der x-Achse dieser Regel befindet. Also, wenn ich das umdrehe, werde ich das nur pausieren, sobald wir das kleine bisschen von einer Ecke getroffen haben , und in der Tat, was ich tun werde, ist, wieder rein zu gehen. Ich werde das stoppen, weil das nicht lang genug sein wird, und wir können das auf etwas ziemlich Hoch erhöhen. Also das erste, was ich zeigen wollte, sind die Hits dieser Ecke, weil das nicht ganz gerade ist, aber es ist nicht unten. Wir können sehen, wenn wir diese Werte wie 0.25.9 oder zwischen 0.8 bekommen, können wir sehen, dass dies uns eine Idee gibt. Und auch nein, sorry, minus 0,2, denn das kommt von der linken Seite dieses kleinen Hügels gerade hier. Aber diese Art von an der Ecke, die die Spitze der Hügel ist , haben eine positive auf dem Zed, meist positiv auf die Zed geben uns eine Vorstellung, dass dies eine Ecke und ein Clipping der Seite, es nur Haar als gut. In diesem Fall würde ich also diese Werte annehmen, und wir können bestimmte Bereiche zusammenfassen, die wir ignorieren werden, basierend auf dem, was zurückgegeben wird. Also, wenn wir das ein wenig weiter gehen lassen, können wir eine ähnliche Sache sehen, wie wir das getroffen haben, was wir von oben getroffen wurden, ist die Art, wie wir das betrachten wollten. Wir können sehen, wenn ich einen negativen Wert auf dem Zed bekomme, weil es der Boden der Plattform ist, anstatt die Spitze dieses Hügels. Und wieder, auf dem X bekommen wir einen negativen Wert weil er von der linken Seite dieser Plattform ist. Und wir werden so ziemlich dasselbe von dem Ziegelstein und der Mauer erwarten . Und so können wir unseren Hit Normal nutzen, um Informationen über die Richtung zu erhalten , aus der wir getroffen wurden. Das erste, was wir tun wollen, ist, anstatt unsere Ein-Komponenten-Hit Anode viel, viel größer zu machen, indem wir den Strukturstift aufteilen. Denn denken Sie daran, wo Sie tatsächlich an einem dieser interessiert sind, die die x-Achse sein wird. Also werde ich das nur neu kombinieren, um Ihnen zu zeigen , dass, wenn wir das weiter machen, es ziemlich groß wird. Eine andere Art, dies zu schreiben, wie wir von hier ziehen können. Und wenn Sie nicht vertraut sind, können wir das in einer separaten Nacht brechen. Also machen sie das Gleiche. Wir können diesen Vektor brechen. Es bedeutet nur, dass wir das an einem etwas abgetrennteren Ort haben werden. Wir haben das schon ziemlich lang gemacht, also können wir wahrscheinlich ein wenig Platz sparen indem wir dies nur in einem anderen Licht trennen. Jetzt vom X, werde ich nur ziemlich streng damit sein. Wenn dies also nicht gleich 0 ist, alles, was nicht 0 auf der X-Achse ist als Treffergebnis klassifiziert, auf das ich antworten möchte. Also wieder, wir ignorieren den Wind ist ein leichter Fehler hinzufügen und diese Art von vollständigen Schleifen Hintergrundkollisionen möglicherweise ignoriert werden. Und alles, was höher oder niedriger als Xerox ist, können Sie sehen, wo ein Punkt Werte zurückgegeben werden. Selbst wenn es so ist, als würde ich eine Ecke drehen, dann werde ich das als Grund einstufen, sich umzudrehen. Also als Beispiel hier, wenn wir diese Ecke wieder treffen würden, obwohl es wie Punkt ist etwas, das wir immer noch umdrehen und die Richtung ändern würden. Jetzt könnten Sie in Bereichen hinzufügen, die zwischen minus 0,4 oder 0,4 liegen, dann könnte das das Ende eines Treffergebnisses auf dem Zed sein. Und Sie möchten vielleicht nicht auf diese Art von Sache reagieren , die völlig Ihnen überlassen ist, wenn Sie diese Komplexität hinzufügen möchten und hoffentlich macht es Sinn, wie wir diese Folie verwenden können. Aber nur um den Großteil der Logik zu bekommen, und wir werden das für den Moment schön und einfach halten. Also, was wir jetzt tun wollen, jetzt, wo wir diese Zustandskontrolle haben und wir werden unsere richtige Richtung setzen. Und nur kein Trick hier ist, dass wir die aktuelle Richtung verlassen werden. Und wir werden das so einstellen, dass die Ströme, die sich richtig bewegen, nicht sind. Also sagen wir, bewegen Sie sich nach rechts gleich, um nicht nach rechts zu bewegen? Und wir können den NOT Boolean Check hier verwenden, das übergeben, und es ist im Wesentlichen nur invertiert. Das wird also sagen, wenn Sie sich nach links bewegen und sich nach rechts bewegen, wenn Sie sich nach rechts bewegen, sich nach links bewegen , dann werden wir die Richtung der Fledermäuse umdrehen wollen und wir haben bereits eine Logik oben, um dies zu tun. Also natürlich wollen wir diesen Code nicht kopieren. Stattdessen, was wir tun werden, ist, dass wir das, wie wir es zuvor getan haben, mit der rechten Maustaste auf einen dieser Knoten klicken und es zu einer Funktion zusammenklappen können. Für diesen Namen ändern wir die Rotation technisch nicht. Anstatt es zu nennen, ändern Sie die Rotation oder Aktualisierungsrotation oder etwas. Ich werde diesen Namen nennen, den Togo Richtung zugewandt hat. Ich denke nur, das ist die genaueste Beschreibung für das, was wir hier tun. Und dann haben wir das jetzt als Funktion. Wir können das hier einpacken und wir können das hier von unserer Funktion abschließen. Ich weiß bereits, dass es hier einige Probleme geben wird , weil Kollisionen funktionieren. Diese Art von gibt Ihnen eine Vorstellung davon, was passieren könnte, weil wir mehr als einen dieser Funktionsaufrufe pro Kollision im Wesentlichen erhalten , bevor wir überhaupt die Chance haben, sich zu drehen, weil wir mehr von diesen Renditen pro Läsion bekommen, als wir vielleicht möchten. Wir können einige Zusammenstöße oder Spiegeln zu schnell passieren. Also können wir einfach überprüfen, was los ist, um zu beginnen. Man kann es irgendwie sehen, dass versucht hat, sich zu drehen und dann nicht still. Und dann haben wir hier etwas rückwärts gerichtet, damit es ein bisschen zuckend aussehen kann. Wir wollen also sicherstellen, dass wir ein bisschen mehr Kontrolle haben, vor allem an diesen engen Orten hier. Und um sicherzustellen, dass wir nicht zu viele Updates auf einmal haben. Also, um dies zu verwalten, werde ich etwas verwenden, das ein do genannt einmal bekannt als der Name würde darauf hindeuten, dass dies uns nur erlauben wird, etwas zu diesem Zeitpunkt zu tun , bis wir etwas zurücksetzen. Dies wird als Flusskontrolltor bezeichnet. Also werden wir das in het übergeben. Wir werden diese Funktionalität nur einmal danach machen, und ich habe das an die falsche Stelle gebracht. Wir wollen, dass all das passiert, nachdem ich es einmal tun würde. Und wir, denn dieser Zweig kommt als wahr zurück, dann wollen wir nur einmal umschalten und die Richtung noch einmal ändern, dies wird ein Problem verursachen, weil dies nicht automatisch zurückgesetzt wird. Wenn wir jetzt etwas treffen, wird das ein langer Weg sein, um es zu überprüfen, aber wir werden diese Wand treffen. Und wenn wir diese Ecke treffen, sollten wir hoffen, Sie diesen Flip zu sehen oder etwas zu tun. Aber weil wir das einmal an Ort und Stelle haben, bedeutet dies, dass wir nur weiter vorankommen und dass die Funktionalität nie wieder überprüft wird. Was wir als Nächstes tun wollen, ist, dass wir, sobald dies passiert ist, eine Verzögerung machen wollen. möchte nicht, dass dies sofort zurückgesetzt wird. Erinnern Sie sich an die Pumpe, das Problem ist, dass wir zu viele Treffer haben sofort mit der Wand kollidieren, bis wir irgendwie umdrehen, oder? Also werden wir hier einen Verzögerungsknoten hinzufügen. Und die Verzögerung kann etwas sehr, sehr klein sein. Etwas wie 0.1 sollte vollkommen in Ordnung sein. Und dann, wenn Sie andere Leute sehen, die dies viel verwenden, werden sie nur einen neu geschriebenen Knoten hier drüben werfen , während er in y hat übergeht und geworfen wird, um die Notiz zurückzukehren. Versuchen Sie, dies ein wenig lesbarer zu machen. Zeig dir einen Weg, wie wir das in einem Moment umgehen können. Eine ziemlich einfache Sache zu tun und den Code einfach lesbarer zu halten, aber das wird funktionieren. So können wir jetzt sehen, dass wir, wenn wir reinkommen, das hier treffen werden. Also werden wir diesen Code haben. Und dann haben wir ein anderes Problem, das wir sehen können, hat gesagt, wir werden ein bisschen diese beheben, wenn wir durchmachen. Aber die Hauptsache ist, dass, wenn ich wieder umkehre und dass die Funktionalität mehr als einmal gekühlt und überprüft wird, solange wir diese 0,1-Sekunden-Verzögerung hatten. Und wir sollten sehen, dass es wieder passiert, wenn wir hier etwas haben. Und das ist ein willkommener Perfect. Nun, abgesehen von der Tatsache, dass die Fledermaus als funktionierender Perfect nach hinten fließt. Okay, Also, bevor wir das letzte Problem fertig stellen und beheben, eine Sache wieder, wir suchen ziemlich viel in dieser Reihe von Videos nach einer Art sauber weg, um hoffentlich zu programmieren wir suchen ziemlich viel in dieser Reihe von Videos . Während wir also einige nette Dinge in Funktionen verschachtelt haben, ist alles hier sehr irgendwie blockiert, um seine eigene Sache zu tun. Ich bin eines der Dinge, die Sie ziemlich viel haben, da eine von Blaupausen abgelenkt ist hoch. Sie erhalten Spaghetti-Code und es kann schwierig sein, Ihre Codebasis zu lesen und zu pflegen. Und das ist wahr auf jeden Fall kommen, wenn nichts in eine Funktion gesetzt wird, wenn alles in der Event-Graph platziert wird, wenn Sie Looping y hier haben, was es viel schwieriger machen kann, herauszufinden, welche Schule, was wenn Sie sahen, wie Sie verschiedene Dinge auf verschiedenen Zweigen und Sequenzen hinzugefügt haben, und alles wird sich wieder in diejenigen schleifen , die irgendwann sehr schwierig werden , herauszufinden, in welche Richtung Ihre Logik fließt. Stattdessen, was wir tun werden, ist, dass wir das entfernen und das ist kein guter Weg, um voranzukommen. Wir werden hier unten ein benutzerdefiniertes Ereignis erstellen. Also bin ich nett, einfach zu beheben, cool dieses hier. Zurücksetzen, Richtung, Check ändern. Sie es also in die Namenskonvention zurückwerfen, hilft es, einfach zu schlagen. Wir wissen, dass dies eine Art von eingebauten Reset-Funktionalität kühlt ziemlich viel Zeit und Unreal, In diesem Fall wird es dieses Flow Gate sein und das tun einmal Nacht. Dann natürlich von hier aus werden wir nur von der Verzögerung ziehen und werden abkühlen und das setzt Richtungswechsel Check zurück. Also nichts zu wildes. Die meisten von Ihnen sind wahrscheinlich darauf gesprungen, als die erste Art von Fix für diese Art von Schleifenfunktion. Jetzt sehen wir mal. Ich bin nicht nur lesen viel, viel deutlicher. Das Beste ist, während Sie hier lesen, wenn Sie später Code hinzufügen, blinkende Lichter und erweitern diese Logik. Und das wird viel länger in verschiedene Funktionen gehen. Die Hauptsache ist jetzt, wir müssen nicht überprüfen, ob diese zufällige Ys von einem Teil Ihres Blueprints zum anderen gehen, doppelklicken Sie auf den Knoten, und es wird Sie hier bringen und Sie können sehen, was das abkühlen wird. Versuch, den Code so sauber, lesbar und wiederverwendbar wie möglich zu halten . Das wird also dasselbe tun. Wir wissen, dass es immer noch einen Fehler gibt, um es zu beheben. Und ich werde ehrlich sein, ich bin mir nicht sicher, warum das, was wir tun ist, dass die Fledermaus irgendwann immer noch rückwärts fliegt. So ist das passiert, also frage ich mich, ob wir hier eine Druckschnur hineinwerfen, um sicherzustellen, dass wir das nur einmal tun. Es kann immer noch ein hohes Durchfallen sein, vielleicht ist dieser nicht ganz lang genug. Und es könnte sein, dass wir das meiste CPU-Timeout umschalten, aber vielleicht nicht ganz in Richtung etwas. Ich bin mir nicht sicher, was passiert, also drucken wir das aus und sehen, was passiert. Als Ernie Gast, der ein Hallo sieht, kehrt dorthin zurück. Das scheint viel mehr an dieser Ecke zu passieren. Sie bekommen nur einen. Okay, das passiert also nicht, was bedeutet, dass ich einmal richtig funktioniert. Das ist also wenigstens eine gute Sache. Und ich werde dieses Bit behalten und als eine Art Debugging-Tutorial war das nicht beabsichtigt, dass manchmal, ich meine, das ist die Art und Weise, wie die Programmierung geht. Die Entwicklung ist in der Regel nicht zu geradlinig. Das könnte also hoffentlich als Lernbeispiel nützlich sein. Also das einzige andere, was wir tun, wir drehen unseren Booleschen Scheck, hey, wir hatten nicht einmal, dass ich verzögere, was wir wissen, funktioniert. Es bedeutet also, dass dieses Going etwas mit der Logik in unserer Toggle-Richtung zu tun haben muss. Also werden wir einfach hier doppelklicken und wir werden einen Blick darauf werfen, was los ist. Wenn wir also reinkommen, nehmen wir die aktuelle Richtung und ich sehe das Problem schon, okay? Da wir also diese Art von Kuriosität haben, die ich bereits erwähnt habe, denke ich zumindest, dass das wäre, weil wir den Feind haben, der in die entgegengesetzte Richtung geht. Und wenn wir uns bewegen, sobald wir anfangen zu spielen, drehen wir dies möglicherweise. Es ist das auch sinnvoll, warum irgendwas passiert, wenn wir uns in Richtung rechts bewegen . Weil wir bereits die meisten Anwendungen basierend auf der aktuellen Skala des Sprites angewendet haben. Also, weil wir das in den Kontext nehmen und es so umdrehen, na ja, ich denke, wir tun das ist, dass wir in einigen Fällen ein Negativ mit Negativ multiplizieren, was nicht die Richtung ändert, die wir gehen müssen. Also, wenn wir in einen absoluten Alptraum werfen, so wollen wir immer noch den Wert erhalten, aber wir werden sicherstellen, dass wir den absoluten Wert erraten. Das würde also bedeuten, dass wir in den Fällen, in denen das passiert, ein Negativ mit einem positiven multipliziert werden sollte und dann immer noch nicht in die richtige Richtung drehen sollten. Also lassen Sie mich gehen. Wir konnten sehen, dass das die Problemrichtung vorher war. Und dann gehen wir wieder. Also überprüfe einfach noch ein paar Mal. Wir lassen das alle verschiedenen Bewegungen treffen. Okay, also die Verzögerungszeit, die vielleicht ein bisschen zu niedrig war , weil wir in der Lage waren, schnell Sanitär zu ändern , die es aussehen ließ, als ich mit dem Level ziemlich organisch in einer Weise interagierte , wo es umdrehte, dass ich gerade zurück schleifen und weitermachen. Also denke ich, ich werde weiter spielen. Diese kleinere Verzögerung schien ziemlich gut zu funktionieren, dass wir ein bisschen ein Toggle hätten es möglicherweise haben können, also ist es ein bisschen länger. Aber die Hauptsache war der absolute Wert nur ein Problem jetzt. Es war also kein Problem, mit dem man anfangen sollte, weil selten eine zischende Regel haben. Aber sobald wir ein paar Mal umgedreht haben, wollen wir sicherstellen, dass wir hier die richtige Multiplikation für die Summe der Fälle berücksichtigen , in denen wir dies vielleicht schon richtig machen? Da wir dies am Anfang umdrehen mussten, weil das Sprite technisch dem falschen Weg gegenübersteht, um voranzukommen, wollen wir nur sicherstellen, dass dies aktualisiert wird, um dies zu berücksichtigen. Und damit scheint das zu funktionieren. Also überprüfen wir einfach, wie das funktioniert, wenn wir die Gebärmutter treffen. Und dann gehen wir mit links in eine Art Endlosschleife. Ich denke, das ist eher etwas für uns, in der Level-Design hier oder in der Platzierung der Fledermaus zu beheben . Ich denke, das sieht besser aus. Zeigen Sie also auf Verzögerung. Ich denke, es zumindest zwischen diesem Punkt und diesem Punkt zu machen , sieht besser aus, als es drehen zu lassen und dann nach oben und über zu gehen. Im Idealfall, was wir sowieso tun werden, ist, dass wir es nicht irgendwo platzieren, wo es in dieses Problem geraten kann. Ich würde es direkt damit in Einklang bringen und ich selbst wenn es das trifft, werden wir zwischen diesen beiden Wänden gehen. Und in der Tat könnten wir auch, wir könnten 1,5 behalten und damit einen hier unten legen. Also haben wir jetzt mehrere Feinde und das Level. Und wieder, auf diese Weise können Sie sehen, dass ich dieses Problem nicht wirklich habe. Sie werden die Dinge so ziemlich ins Gesicht schlagen. So dass ich denke, wird eine ziemlich gute Lösung mit dem getan, dass wir ziemlich bereit sind, in die Kampfsituationen zwischen dem Spieler und dem Feind zu springen, Die Ursache und den Schaden zwischen den beiden verschiedenen Klassen. Das Einzige, was auffällt, ist, dass wir bereits unsere Überschreibungen für die feindliche Klasse gemacht haben. Wir haben unseren Feind gestorben Funktionalität. Und in der hinteren Klasse aus der Basisklasse, Sie wollen nur überprüfen, ob die feindlichen Fledermäuse auch geholfen haben. Also wieder, wir haben dies auf einen 100 Standard in der Basisklasse gesetzt. Wenn Sie das ändern möchten, hey, können Sie dies ändern, um in jeder benutzerdefinierten Klasse außer Kraft zu setzen, jede untergeordnete Kundenklasse, indem Sie die Standardintegrität überschreiben. Und denken Sie daran, dass wir die Gesundheit in Ruhe lassen, da das in der Konstruktion des Skripts durch die kühle zur Elternklasse erraten der Konstruktion des Skripts durch die kühle zur wird, bevor wir tatsächlich am Ende spielen. Also, wenn Sie Fledermäuse haben eine sehr geringe Gesundheit oder so, dann könnten Sie das ändern. Aber damit sind wir bereit, jetzt zu gehen und zu schauen, wie wir den Spieler und den Feind dazu bringen können , miteinander zu interagieren. 16. 16 – Schaden: Vor dem Sprung zurück in die Spielerklasse, um einen Teil des Schadens zwischen dem Feind auf dem Spieler selbst Art angeschlossen und arbeiten zu bekommen. Mir ist klar, dass ich eine Sache überstürmt habe, die einige von Ihnen sich vielleicht gefragt haben, warum wir etwas in unserer Richtung umschalten wollten. Also innerhalb dieser Funktion haben wir gerade gesehen, dass wir diesen absoluten Wert brauchten, um die aktuelle Skala zu multiplizieren, die Skala, die wir wollen, dass die Zielskala sein. Sie haben vielleicht nur gedacht, dass dies etwas über komplizierte Dinge war. Und es ist, Sie haben wahrscheinlich gesehen, dass das einfachste, was wir hätten tun können, einfach einstecken. Also, wenn wir uns nach rechts bewegen, werden wir die Skala so einstellen, dass sie eine Sache ist. Und wenn wir uns in der linken Seite bewegen, werden wir die Skala auf eine andere setzen. Was ich vor einem Moment vergessen habe zu erwähnen, ist der Grund, warum ich das tun würde. Nun, der Grund, warum ich so eingerichtet habe, ist, wenn Sie sich ein Spiel wie Mario vorstellen, was Sie eine Art Superkraft haben könnten, die Sie skaliert oder die Art und Weise, wie das Gesundheitssystem funktioniert. Sogar du hast Mini Mario und ich bin größer Mario. Wir können dies tun, indem wir einfach die Skalierung des Sprite ändern. Wir können auch Dinge wie Animation machen. Wenn Sie nicht über die Frames Drohne in Squash und Strecken hinzufügen, können Sie etwas tun, wo Sie die Skala animieren, um es zu komprimieren, wenn Sie springen und Art von Squash es, wenn Sie Landung sind. Der Grund, warum ich dies tue, ist, dass wir diese Updates berücksichtigen können , wenn das Sprite jemals während einer Animation geändert wird, während einer Macht, wir zwingen dies nicht zu eins weil wir vielleicht die Skala unseres Sprite verdoppelt haben. Stattdessen werden wir herausfinden, was die aktuelle Skala ist. Also, wenn wir in der Größe verdoppelt haben, dann multiplizieren wir dies mit dem 1, 1 negativen. Also bekommen wir immer noch das vergrößerte oder verminderte Ausmaß unserer Sprites. Wir berücksichtigen das und multiplizieren es zusammen, um die Skala umzudrehen. Also natürlich, wenn du weißt, dass das etwas ist, das du nie tun würdest. Wenn du sicher bist, dass du nicht mit der Skala des Sprite herumspielen wirst oder was auch immer du diese Logik verwendest, kannst du sehr sicher dann einfach die Rückkehr deiner ausgewählten Note in den Schädel stecken und es so bearbeiten . Nur etwas, das ich erwähnen wollte, wie ich gerade erkannte, dass ein bisschen verwirrend sein könnte und die Leute sich fragen , warum wir es nicht nur so handlich und hartcodiert mit der Adresszeile machen . Was wir tun werden, ist zu unserer Spielerklasse zu springen. Wir werden anfangen, die Richtung aufzuzeichnen, in die wir getroffen haben. Die Dinge werden getroffen worden sein. Und je nachdem, wie dies zum Zeitpunkt des Aufpralls aufgezeichnet wird, werden wir entweder entscheiden, ob die Plaque beschädigt werden soll oder Schäden verursacht. Jetzt in diesem Fall, um die Dinge wieder zu vereinfachen, werde ich all dies in eine einzige Klasse geben. Also haben wir den Spieler vollständig in der Kontrolle, ob der Schaden angewendet wird, erhalten, was Zweifel, wieder, in einem größeren, volleren Projekt, möchten Sie vielleicht etwas wie eine beschädigte Klasse bei Schaden jetzt zu schießen einige Kommunikation zwischen den Klassen, aber wir werden versuchen, die gesamte Logik an einem Ort in dieser Instanz zu behalten. Also das erste, was wir tun müssen, sehr ähnlich zu unserem Wir werden Erkennung Setup. Wir werden die Kapselkomponente bekommen, aber jede kollidierende, die in dieser Klasse aufgezeichnet wird, werden wir den Nicht-Kompartment-Hit verwenden, da wir wissen, dass diese sich gegenseitig blockieren. Dies werden also Treffereignisse sein, nicht überlappende Ereignisse. Und das erste, was ich tun wollte, ist gegen die andere Sache zu werfen, die wir treffen, und überprüfen, ob es eine Art Feind ist, den wir getroffen haben. Also tun wir das mit der Besetzung zu BP-Unterstrich. Und ich werde die feindliche Basis anstatt den Feind benutzen. Aber wieder, wenn Sie eine erstellte Unterklassen der Basisklasse haben, bedeutet das, dass dies alle verschiedenen geerbten gegnerischen Typen berücksichtigt, wobei dieser Besetzung überprüft wird , ob das stimmt. Wenn das Ding, das wir getroffen haben, ein Feind ist müssen wir einige Dinge tun, einige Variablen überprüfen. Arbeiten mit den Daten, die auf dieser Klasse basieren, während wir durchgehen. Also werde ich nicht tun, ist, anstatt ständig von diesem Stift oder diesem Stift Licht zu setzen, wir werden nur gehen, um dies zu einer Variablen zu fördern. Und ich, das erspart uns auch das Potenzial der Neufassung. Ich gebe dem einen Namen, ich nenne diesen einen Hit und dann den Href. Und dann wollen wir von hier aus wieder anfangen, einige dieser Treffer Informationen zu ziehen. Also werden wir den Strukturstift für den Treffer teilen. Und wir wollten einige Informationen über die Richtung finden , in der der Treffer zur Verfügung gestellt wurde. Anstatt den Hit Normal zurückzuziehen, den wir in der Vergangenheit benutzt haben. Ich werde Ihnen einen anderen Weg zeigen, wie Sie diese Art von Berechnung sehen können , ist einige sehr einfache Vektormathematik um zu finden oder zu bestimmen, in welcher Richtung ein Kollisionsausschlag erkannt wurde. Es ist also sehr, sehr einfach. Alles, was wir tun müssen, ist, den Ort von uns selbst zu bekommen, oder in diesem Fall, den Ort der Sache, die wir getroffen haben, und dann vom Ort von uns selbst wegnehmen . Der Wert, der von dieser Vektorberechnung zurückgegeben wird, wird die Richtung sein, in der der Treffer des Codes. Also haben wir diese Informationen hier. Wir können den Treffpunkt sehen. Das ist also der erste Teil der Berechnung. Und ein Pull daraus und erhalten Sie den Vektor minus einen Vektor. Und dann, wie ich bereits erwähnt habe, ist der zweite Teil der Berechnung unser eigener Standort. So können wir von diesem Stift ziehen und wir können einfach nach dem get act at location Rückgabewert suchen . Es ist ein nettes und einfaches. Das wird also den Weltstandort dessen nehmen, was wir getroffen haben, unseren Standort davon wegnehmen. Natürlich wird der Rückgabewert von diesem die Richtung sein, in die wir getroffen wurden. Jetzt machen wir ein weiteres Debugging und lassen Sie uns String drucken, weil dies nicht sehr lesbar sein wird, nehme ich an, o machen es sehr einfach, mit diesem Wert zu arbeiten. Also in der Druckzeichenfolge, werden wir einfach fallen lassen würde dies die Dauer hier erhöhen, so dass wir sehen können, warum das nicht funktioniert, weil wir von diesen Informationen aus der Richtung finden wollten, die wir getroffen wurden. Und wir wollen eine Art einfachen Wert, gegen den wir immer testen können, dass wir nie in einem bestimmten Bereich sein werden. Und im Grunde werden wir sehen, ob der Treffer von unterhalb des Spielers erkannt wurde oder von der Seite des Planeten entdeckt wurde. Wenn es unter dem Spieler innerhalb dieser Toleranz liegt, dann wissen wir, dass dies als Schaden für den Gegner eingestuft wird. Also haben wir, wieder für diese Art von Mario fragen, Springen auf etwas hatte, wird diesen Schaden verursachen. Und wenn es in die Seite von uns geht, dann wird das als schädlich eingestuft werden. Und wir werden sehen, wenn wir dies testen, warum dies vielleicht nicht die Art von Wert ist, mit dem wir sofort arbeiten wollen. Okay, damit wir ein paar Dinge sehen können. Wahrscheinlich zu sehen, was im Hintergrund passiert, ist, dass wir einige ziemlich große Zahlen zurückgeben. Was wir wirklich tun wollten, ist wieder, wir sind sehr vertraut mit der Arbeit mit normalisierten Werten sind zwischen einem Bereich von 01. Nur irgendwie, was ich hier darauf hinweisen möchte, ist, dass wir uns immer daran erinnern müssen, was 67 in Bezug auf die x-Achse sein würde, wird 67 Grad sein, wurde in der Skala einiger Dinge arbeiten. Also, was wir tun werden, ist, dass wir die Klasse der Unterseite davon als 0. Und dann haben wir einen Grad von 01 zur Seite, oder zwischen 0 und minus eins zur anderen Seite. Als Beispiel, das ist wirklich das, was wir tun werden. Die Art und Weise, wie wir dies tun können, ist, anstatt die Nummer direkt zu verwenden, werden wir von dieser Struktur hier ziehen. Und wir werden diesen Wert nur normalisieren. Dies wird uns etwas geben, das sehr ähnlich ist, was wir mit dem Treffer normal weise zwischen 01 hatten, abhängig von der Richtung, die diese Informationen zur Verfügung gestellt haben. Der Hauptunterschied hier ist, wenn wir das einstecken, werde ich diesem eine Toleranz von 0 geben. Und der Hauptunterschied, den Sie hier sehen werden , ist , dass, wenn wir die Berechnung machen, auf diese Weise die Berechnung relativ zum ACTA erraten wird . Also die Sache, die wir kontrollieren. Ist die Richtung, aus der wir den Treffer sehen werden. Also sollten wir erwarten, eine Minuszahl zu sehen, wenn wir auf etwas und eine positive Zahl springen, wenn es uns von oben trifft, wenn wir mit unserem Kopf hineinspringen und umgekehrt, können wir dann sagen, ob Es trifft uns von links oder von rechts sehr, sehr leicht. Während mit dem Feind, aber was wir taten, ist dieser Hit Normal war tatsächlich die Rückkehr der Richtung, die die Objekte, die wir getroffen hatten, waren konfrontiert. Wenn du dich daran erinnerst. Ich werde zurück in 90 drücken Play springen. Jetzt löschte die Debugs. Und das hier ist ein bisschen zu hoch für uns, aber wir können sehen, dass das wie erwartet ist. Wir haben von unten getroffen, also bekommen wir einen Minuswert für den Zed. Und wir haben getroffen, dass eine von oben ist ein wenig schwer, diese Arbeit loszuwerden. So können wir sehen, dass wir noch eine nützliche Sache auf dem Boden haben, müssen wir sagen, dass wir minus 0,15 bekommen , wenn es uns leicht von der Seite auf der Z-Achse trifft. Und wir bekommen unsere zwischen 0. Also, wenn wir es lassen, ist es uns von links fast minus eins, also wissen wir, dass es von links ist. Und wenn Sie von rechts getroffen werden, dann bekommen wir fast positive. Was wir also tun wollen, ist, diese Art von Toleranz auszuarbeiten, wo wir darauf springen können. Wir können sehen, dass, als ich auf den Kopf der Fledermaus sprang, dass wir fast minus 1 bekommen oder nur ich habe genau minus eins. Das wäre also der ideale Punkt, um Schäden an der und Klasse anzuwenden , die Kilometerzählerzeichen für den Bot hat. Wir wollen auch mit diesen Werten berücksichtigen, dass wir meine bekommen können, gut, wir wollen, dass unser Sortiment Schaden erhalten würde, wäre auch. So können wir sehen, dass wir hier viele verschiedene Werte bekommen. Einige von ihnen können nur zwischen einer Einnahme und Empfangen von Schaden sein. Also, das werden wir in diesem Schritt tun. Das mussten wir also tun, um unseren Standort zu erhalten , mit dem wir jetzt die Informationen haben, mit denen wir arbeiten können. Was ich tun werde, ist, dass ich dies zu einer anderen Variablen befördern werde. Und ich nenne diese neue variable Trefferrichtung. Auch hier werden wir diese vollständige Mehrfachberechnungen benötigen, wie wir weiter und weiter rechts von Notizen erhalten , die die Dinge schön und ordentlich halten. Die Scheinwerfer waren überall hin hin. Wir werden nur diese beiden Variablen fördern, während wir weitergehen. Dieser hier, ich werde einen Kommentar schreiben, nur damit wir uns erinnern, was das tut. Also ist es schön und einfach, uns daran zu erinnern, das ist die Berechnung, aus welcher Richtung wir getroffen wurden. Und das Meiste wird nur diese schnappen und das ein wenig nach unten bewegen. Wie ich weiß, dass wir einige Verzweigungslogik brauchen, um zu entscheiden, was wir mit dem Feind tun, wenn der Treffer oder die Pflanze, wenn die Treffer, abhängig von dem Wert, der zurückgegeben wird. Also von hier aus werden wir unsere Zweigprüfung durchführen und das wäre y. Zuerst teilen wir die Logik auf, um zu sehen, ob wir Schäden bereitstellen oder erhalten. Und die Art und Weise, wie wir das tun, weil wir unsere Trefferrichtung bekommen, wird den Strukturstift aufteilen. Und der einfachste Weg, dies zu überprüfen, ist, dass wir das meiste von der Z-Achse stützen. Sehen Sie eine sehr einfache zu beginnen. Wir werden diesen Wert optimieren, während wir durchgehen. Aber jetzt werde ich überprüfen, ob dies kleiner oder gleich genau 0 ist. Also können wir das verlassen, wenn ich, das könnte etwas Optimieren brauchen, während wir weitermachen. Wenn wir also diesen Wert zurückbekommen, wird das, was wir tun, als Schaden für die feindliche Klasse eingestuft. So können wir von hier aus ziehen. Wenn das also wahr ist und wir diesen Wert zurückbekommen, würde dies als Schaden für den Feind eingestuft werden. Also werde ich sehr einfach aus ihrem Pool, von der wahren Hinrichtung Pin so viel für den angebrachten Schaden. Denken Sie daran, wir müssen nicht wissen, auf welche Klasse dies Schaden anrichtet. Und wir haben bereits an den Zielläusen oder der Schadensarzt wird in diesem Fall unser Feind sein. Der Schaden des Geistes in diesem Fall werde ich nur garantieren, dass wir den Feind töten. Also werde ich daraus ziehen, ich werde nach Gesundheit suchen. Also ein bisschen ein betrügerischer Weg, dies zu tun, aber wir werden nur passieren, was die Feinde aktuelle Gesundheit ist wie die Höhe des Schadens anzuwenden. Das ist mindestens zwei. Lassen Sie uns das sehr schnell testen und es wird ein paar Dinge geben, die ich zusätzlich zu den Todesfällen machen möchte. Aber wir haben das Todessystem im Feind eingerichtet. Also sollte das irgendwie funktionieren, während wir durchgehen und testen, dass wir bekommen haben. Wir haben einen Feind verschwindet. Und wenn wir diesen von irgendwo oben treffen, weniger als oder gleich, denken Sie daran, also haben wir eine sehr breite Art von Reichweite, die wir sehen können, dass der Schaden auf den Feind angewendet wird und sie zerstört werden weil wir diese Funktionalität im Feind haben, aber Klasse nur hier auf den Feind starb. Nun ein paar Dinge, die ich vorher tun möchte, und das ist eine Art Politur und Raffinesse. Schritt 2, das Aufprallsystem, das wir haben werden. Wieder, wenn Sie sich Dinge wie Mario und Sonic schauen wird immer wieder auf diese ziemlich viel zurückfallen. Sie machen ein paar einfache Dinge, das heißt, sie nehmen eine momentane Art Impuls weg, stoppen vielleicht die Eingabe für eine sehr kleine Millisekunde, und das wird Impuls anwenden. Es sieht so aus, als ich abprallen werde, weil wir im Moment die durchmachen. Und wenn wir durch den Feind gehen, fühlt es sich nicht wirklich so an, als wäre viel passiert. Es verschwindet nur irgendwie Füllung. Und dieser hier ist schwer zu wissen, ob das auf das zurückzuführen ist, was wir tun, ob wir tatsächlich mit ihnen interagiert haben oder ob sie gerade aus der Existenz verschwunden sind. Also, was wir tun werden, es gibt ein paar Dinge, die wir wollen, also beginnen es irgendwie mit Schwimmer. Das erste, was ist, dass die Geschwindigkeit immer in der Charakterbewegung verfolgt wird. Und ich denke, weil dies nicht physikbasiert ist, dies vielleicht kein Problem, aber nur für den Fall, dass wir etwas in der Zukunft ändern, werden wir zur Charakterbewegung kommen und die Geschwindigkeit auf 0 setzen. Also sehr einfach zu bekommen, wie, warum die Geschwindigkeit in der Charakterbewegung verfolgt wird und was auch immer das im Moment ist, wir werden das auf 0 setzen. Ich denke, das Wichtigste für die Art und Weise, die wir archiviert haben, ist, dass wir wieder von der Charakterbewegung ziehen und wir werden die Bewegung sofort stoppen. Nehmen Sie die Eingabe, die wir derzeit zur Verfügung gestellt haben, egal ob Sie von links nach rechts gehen, Sarah ist aus der Geschwindigkeit und stoppt jede Form von Bewegung, die in der aktuellen Too Bewegungskomponente verfolgt wird. Das wird uns also einen momentanen Einfrieren geben. Und dann die letzte Sache, bevor wir den Feind zerstören, habe ich gesagt, wir werden etwas Impuls hinzufügen. Also wieder, ich gehe zu Control W, die Charakterbewegung, wie es diese wieder brauchen wird, ich werde von hier ziehen und die Add-Impuls-Funktion aufrufen. Ich werde diese einfach dazwischen verbinden, um sicherzustellen, dass dies etwas tut, das wir brauchen werden, um die Geschwindigkeitsänderung zu übernehmen. Und nur um eine sehr Art extremer Reaktion auf dieses Geschehen zu zeigen, werde ich etwas wie 500 Einheiten Selbstimpuls hinzufügen, um dem Spieler hinzugefügt werden , wenn es bindet ist aus dem feindlichen Hut. Oh, da gehen wir. Also habe ich irgendwie an der falschen Stelle angefasst, aber du hast gesehen, dass wir den Impuls nach oben bekommen haben, also versuchen Sie es. Und dann haben wir, ich meine, sie sieht aus wie, hey, ich dachte, ich würde ein bisschen mehr extreme 500 Looks sein, da ich ein ziemlich guter Wert dafür sein könnte. Also stoppen wir diesen Schwung, den wir haben. Wir posieren die, der Charakter momentan und wenden dann diesen Impuls nach oben. Und in der Tat denke ich, das sieht ziemlich gut aus. Ich wollte etwas komplizierteres damit machen. In die Richtung, in die wir Dinge getroffen haben, indem wir einen Impuls hinzufügen oder zurückschlagen. Aber ich denke, das sieht im Moment ziemlich gut aus als Antwort auf den Sprung aus dem Kopf des Feindes. Damit denke ich, dass dies ein Abschnitt fast eingewickelt ist. Also werden wir einen Kommentar um dies nur noch einmal setzen. Das ist es, was das macht. Ganz einfach, ich werde nur sagen, dass dies die Logik ist, was passiert, wenn wir den Feind beschädigen? Jetzt sind hier ein paar Dinge in den Sinn gekommen. Etwas, das wir vielleicht ähnlich unserem Feind machen wollen, aber wir gehen zum Festival, werfen einmal in der Nacht einen Grund, der jemand hat. Also habe ich dafür gesorgt, dass wir das nicht immer und immer wiederholen. Und eine andere Sache ist, dass wir sicherstellen wollen, dass wir diese weniger als oder gleich der Abfrage hier verfolgen . Im Moment vermute ich es irgendwie. Womit wir arbeiten, eine sehr einfache Sache, die wir hätten tun können, bleibt an dieser Druckzeichenfolge übrig. Und jedes Mal, wenn wir etwas treffen, wenn wir verschiedene Dinge testen, wie wir irgendwie notieren können, was sich richtig anfühlt , was Klasse etwas tut, das wir als etwas übermäßig nachsichtig empfunden hätten wie der Planet kühlt Schaden, äh, welche von denen vielleicht besser gefühlt haben, ein empfangender Schaden vom Feind zu sein. Also werde ich von hier ziehen und wir machen eine Druckschnur und sehr ähnlich wie vorher, ich werde nur festlegen, dass dies viel höher für die Dauer ist, so dass wir das ein wenig besser lesen können. Und was ich tun werde, ist, dass ich in die Hüftrichtung ziehen werde aber die Struktur Pin und anstatt die ganze Information zu bekommen, denn das sieht ein bisschen umständlich auf dem Bildschirm aus. Wir interessieren uns nur wirklich für diese Etappe in der Z-Achse. Also werden wir das in den Zed stecken. Und wie ich schon sagte, sobald wir das getan haben, werden wir nur sicherstellen, dass wir das alles nur einmal tun. Und ich glaube nicht, dass wir das für den Moment zurücksetzen müssen, zumindest für den Moment, in dem wir gerade testen, bedeutet das, dass wir nur gegen einen Feind testen können, aber das ist vollkommen in Ordnung. Ich meine, wenn du es wolltest, könnten wir, obwohl wir nicht alles bereit haben und losgehen können, können wir immer davon ziehen. Wenn dies also wahr oder falsch ist, wird diese Phase dies immer zurücksetzen und wir werden das nur später abhaken, weil wir natürlich nie wollen, dass dies eine Art produktionsbereiter Code ist, mit dem wir arbeiten werden. Also werde ich hier reinkommen und wir können es nochmal testen. Wir wissen, dass das funktioniert, aber die 0, 1, 2 fühlte sich daran, richtig? Vielleicht ein bisschen nachsichtig. Und natürlich ist 0.9 definitiv hoch genug, dass auch direkt auf den Hintern abgestimmt ist. Es ist jetzt, wenn wir durchmachen, können wir das testen, wir können optimieren und wir können anfangen zu sehen. Nehmen wir also an, Wert von minus 0,1 könnte sich gut anfühlen. Also jetzt, wenn wir anfangen, einige weitere Tests mit dem Spielerschaden zu machen und wir feststellen, dass dies nicht ausgelöst wird, wenn wir das Gefühl haben, dass es sein wird, dann bekommen wir einige Informationen, die mit Sorgfalt gefüttert werden, mit denen wir arbeiten können. Also für den Schaden, werden wir eine sehr ähnliche Logik machen. Wir werden wieder alle Bewegungen stoppen wollen. Wir werden also zur gleichen Zeit für die Geschwindigkeit und die Bewegung von der Charakterbewegungskomponente zählen und sie auch einen Impuls anwenden. Also können wir alle diese Dynamik kopieren und einfügen, indem wir Control W erneut drücken, um all diese zu kopieren, werde ich das wegnehmen. Also müssen wir das wirklich in einem Moment einbinden. Und was wir tun wollen, denke ich, das wird genau das Gleiche sein. Wir werden ein wenig berechnen wollen für den Impuls, dass wir nicht wollen, dass dies gerade nach oben geht. Was wir wollen, wenn die Pflanze beschädigt ist. Und vor allem, weil die es eingestellt wurde, ständig auf uns zu bewegen. Wir wollen nicht, dass es in diesem Zustand ist, in dem die Bewegung gestoppt wird und wir werden in dieser Art von Zustand stecken, ständig vom Feind getroffen zu werden, was offensichtlich ziemlich ärgerlich für den Plan sein wird. Ich werde nur die Fledermaus Dine bewegen, da das sehr schwer zu testen ist. Wenn wir also reinkommen, um zu demonstrieren, wie das aussehen würde und die Fledermäuse ein wenig stecken geblieben sind. Okay, wir testen, es ist dieser, dieser hier. So können wir bereits sehen, dass dies in diesem Stadium ist. Wir haben das Stadium, in dem ich nicht gesehen habe, was diese Werte waren. Aber wir wissen, dass dies ein bisschen zu nachsichtig sein wird. Also habe ich nicht versucht, einen der besten Stiche zu töten. Habe es umgebracht. Also 0,4. Und in der Tat, für NIH, werden wir die Schüler ganz überspringen , weil ich sehe, dass das einige Probleme verursachen wird. Also werde ich nur sicherstellen, dass die Fledermäuse aufgereiht sind. Und ich möchte, dass dieser einfach zu testen ist. Also werde ich es hier runterlegen. Okay, also wollen wir nicht, dass der Spieler gerade hochgeht. Denn wenn wir gerade nach oben gehen, können Sie sehen, dass wir irgendwie einen kostenlosen Kill bekommen, nachdem wir ein bisschen Gesundheit verloren haben. Wir werden diese kostenlose Tötung auf den Feind bekommen. Also keine ideale Art von Antwort darauf. Und was wir tun werden, ist, dass wir die Richtung berücksichtigen , in die wir getroffen wurden, und wir werden sie etwas zurückgeschlagen für uns anwenden. Also schieben Sie es den Spieler weg vom Feind, was wird den Feind Art von Einholen mit uns geben und uns nicht in eine ständige Schleife der Gesundheit zu verlieren und vom Feind getroffen werden, ohne irgendeine Kontrolle über unseren Spieler zu haben. Also, um dies zu tun, werde ich aus dem Impuls ziehen und einen Vektor machen. Die Hauptsache, die wir hier ändern wollen, wird der x-Wert sein, der, Das wird eine Kraft anwenden. Also, was wir tun werden, ist die Trefferrichtung zu bekommen. Wir werden den Strukturstift hier teilen, werden von hier ziehen und einen Schwimmer multipliziert mit einem Schwimmer bekommen. Und dann brauchen wir noch eine Multiplikation mit Float. Der Grund dafür ist, dass wir sicherstellen wollen, dass wir in einer negativen Version in die entgegengesetzte Richtung gehen , aus der wir getroffen wurden. Also werden wir nehmen, was das war, multiplizieren es mit minus eins, und dann multiplizieren wir das mit einem Wert , der meiner Meinung nach ungefähr der gleiche sein wird wie unser Rückschlag hier. Wenn wir das also auf 500 setzen, sehen Sie, wie sich das anfühlt, und wir können reinkommen und das gegen die Fledermaus testen. Okay, das wird also nicht funktionieren, weil wir über den Boden geschoben werden. Wir werden auch etwas von diesem vertikalen Rückstoß brauchen. Wir werden also nach oben und hinten geschoben, um sicherzustellen, dass wir hier eine gewisse Geschwindigkeit ansammeln können . Und das ist so ziemlich genau das, was ich wollte. So können Sie sehen, dass es als die SS Art von Kopf auf, drücken Sie zurück und nach oben, was uns die Geschwindigkeit gibt, die wir brauchen, um weg zu bekommen und der Fledermaus zu entkommen. Und es bedeutet, dass wir nicht ständig mehrere Treffer nehmen und in dieser Art von Zustand bleiben, in dem wir mit dem Feind stecken. Also wollen wir sicherstellen, dass das auch von der anderen Seite passiert. Also, weil wir diesen Impuls invertieren, der perfekt funktioniert. Und wieder, ich denke, das ist so ziemlich die richtige Art von Kraft, die auf beiden Seiten angewendet wird. Wir kriegen den netten Hit von da oben. Also denke ich, was wir tun können, weil diejenigen, die arbeiten, ich werde das einfach zu einer Variablen fördern, die 500, die wir haben, und ich nenne das unsere zurückgeworfen für uns. Wir können dies für verschiedene Fälle ändern, wenn Sie möchten. Nun, ich denke, in diesem Zustand funktionieren sie alle ziemlich gut mit dem gleichen Wert. Also werde ich auch den Strukturstift dieses aufteilen, anstatt diese magischen Zahlen zu verwenden. Warum wir vielleicht vergessen, was das eigentlich tut. Wir können Drachen kontrollieren, hoffentlich diese Werte hier, was mich einfach nicht tun lässt. Und wir können das einstecken, damit wir wissen, dass wir einen Rückschlag für uns als Impuls für den Charakter anwenden , wenn die Feinde getroffen werden. Das Hinzufügen dieser Variablennamen hält also Dinge, die wieder etwas lesbarer und leicht den Code zu pflegen. Also letzten Schritt, wir haben unseren Impuls berechnet. Nun, eine andere Sache, die wir tun wollten, wir werden wieder Control W, den Schaden. Und wie wir es in der Vergangenheit mit unserem Test für die Gesundheit getan haben, denken Sie daran, dass wir dies auf dem Input hatten. Wir wissen, dass wir das im Wesentlichen einfach tatsächlich nehmen können. Dies wäre ein guter Zeitpunkt, um hier den Code von der Basis nach Stein zu schneiden, weil wir uns bei einem bestimmten Wert wieder Schaden anrichten wollen. Also sagen wir, es ist, wenn t wird vollkommen in Ordnung. Und wie ich schon sagte, wir wollen nicht, dass das im letzten Spiel ist, also werden wir das entfernen. Und das ist ein perfekter Zeitpunkt, um zu sehen, daran zu denken. Damit wir reinkommen können. Und wenn wir von der Seite getroffen werden, wenn ich anfange, Gesundheit zu verlieren, genauso, wenn wir von oben getroffen werden, ist dort etwas Seltsames passiert. Also schauen wir uns das in einem Moment an. Aber das wir von der Seite bekommen haben, bekommen wir wenigstens diesen Schaden weggenommen. Wenn wir von 0 getroffen werden, wenn wir sie von oben treffen, nehmen wir diese Gesundheit weg. Werfen wir einen letzten Blick hier. Wir werden diese Neun loshaken. Ich denke, wir werden das Backup der V1 anhaken und wir müssen einen guten Namen für das finden, was das tut. Und wir werden das von beiden nennen, also wollen wir, dass beide zurückgesetzt werden, die einmal tun , dass Post-Civil einen Kommentar dazu setzen wird. So schön und einfach, erinnern Sie uns daran, dass der Pflanzenschaden berücksichtigt wird. Das ist eine Art von Hit Check hier. Also, was ich tun werde, und in der Tat, nur um sicherzustellen, dass dies nicht mehr aktualisiert wird, als es sollte. Ich werde nur die Richtung ändern oder den Ort, der war, sollten sie es tun, sobald es abgekühlt ist. Wenn dies erfolgreich ist, dann wollen wir die Trefferrichtung nur einmal pro Gegner festlegen, den wir getroffen haben. Und wenn das der Fall ist, erstellen wir weitere benutzerdefinierte Ereignisse. Wir nennen diesen, zurücksetzen, Hit check. Wie wieder, das ist ziemlich genau das, was wir tun. Wir bewerten die Fähigkeit, zu überprüfen, ob wir etwas neu geschrieben haben, beachten Sie das, und wir werden diese Funktion in beiden Fällen hier aufrufen. Und wir wollten sicherstellen, dass wir dies auf dem Wahren und dem Falschen tun. Natürlich, wenn wir vergessen haben, dies einmal zu tun, dann könnten wir zurücksetzen, nachdem die Feinde beschädigt wurden. Aber wenn wir Schaden nehmen, dann wird das nicht zurückgesetzt und wir können nie wieder Schaden erleiden. Stellen Sie sicher, dass wir diese Sicherung anschließen, kann wahrscheinlich die Druckzeichenfolge für jetzt überspringen. Ich denke, was ich gefunden habe, funktionierte ziemlich gut, irgendwo zwischen minus 0,25. Wenn Sie darüber nachdenken, warum das auf dem Spieler ist, wird das sein, wenn wir zischen, streifen Sie durch diese Zone in der Klasse I von unten bis zu unseren Ecken des Spielers. Das wird ein Sweet Spot für Schäden sein. Überall sonst werden wir erwarten, dass die Feinde uns Schaden zufügen. Dass wir dort Schaden erleiden. Und das fühlt sich ziemlich gut an. Also denke ich, das ist ungefähr, wie wir wollen, dass das funktioniert und angewendet wird. Also, das fühlte sich an wie eine gute Stelle Schaden nehmen. Das war ich, dass ich ihnen begegnet bin. Ein bisschen zu viel Kraft angewendet dort. Es kann einige Seltsamkeiten mit der Kraft geben, die auf etwas angewendet wird, damit Sie herumspielen und das testen können. Aber ich denke, so weit wie die Treffer Ergebnisse Antworten gehen, und wo sind die Sweet Spots für die Anwendung und nehmen Schaden? Ich bin ziemlich zufrieden mit denen in diesem Stadium. Auch hier ist alles beabsichtigt, Sie in die Richtung zu zeigen , wie Sie anfangen können, diese Effekte zu erzeugen. Sie werden bereits erwartet, dass Sie das nehmen und verbessern, was hier behandelt wird. Ich mache es wirklich zu Ihrer eigenen mit Ihren eigenen Art von Gesundheitsschadsystemen und den verschiedenen Effekten und Dingen, die gespielt werden. Eine Sache, die mir gerade in den Sinn kam ist, dass dies immer noch problematisch sein wird. Das macht gar nichts. Also nur ein kurzer Backtrack von, Ich sagte gerade, wir werden den Reset Jacks Kopf löschen, weil das alles so schnell geschieht, dass im Wesentlichen, es sei denn, die Feinde sterben, das würde auf den Feind sterben funktionieren denn sobald das passiert ist, haben wir sowieso unsere Referenz verloren. Und jede falsche Rückkehr, ich werde dies nur zurücksetzen, um einen Nullwert zu sein. Aber potenziell den Spielkopf zu haben, könnte mehrere Male passieren , weil dies in einer Minute Teil der Millisekunde geschieht. Im Wesentlichen, was wir tun wollen, ist davon unabhängig von der Antwort. Bevor wir also in unseren Zweigscheck kommen, werfen wir eine Sequenz ein. Und aus der Sequenz werden wir es erlauben, seine Logik auszuführen, überprüfen, was wieder Treffer ist. Und dann sehr ähnlich dem Feind, zurück zu dem, was wir eigentlich tun wollten, ist eine Verzögerung. also sicher, dass wir vor einer weiteren Überprüfung einen kleinen Pools haben. Und das war, was der erste Ansatz. Also habe ich hier irgendwie übersehen momentan nicht berücksichtigt, dass wir diese Art von Verzögerung wollen , so dass wir für einen bestimmten Zeitraum nicht in der Lage sind, neue Treffer zu nehmen oder sogar berechnen. Und dann machen wir das Gleiche. Und das bedeutet auch, dass wir das nur einmal tun müssen. So können wir jetzt unseren Reset Hit Check hier unten durchführen. Und wir können das nur einmal tun, unabhängig von den Ergebnissen hier, ich gehe wieder, wir können herumspielen und sicherstellen, dass die Dinge nicht zu schnell passieren, um diese 0,1 Sekunde zu niedrig zu sein. Aber ich denke, das wird vollkommen in Ordnung sein. Also habe ich irgendwie sogar getan, Sie können sehen, dass durch Insulin sie und das war so eine kleine Verzögerung bevor dies zurückgesetzt wird, dass wir noch gehen zum zweiten Mal getroffen. Also denke ich, das wird in Ordnung sein. Die Hauptsache, wie ich sagte, dieser Fall hätte es funktioniert. In diesem Fall hätte es nicht funktioniert, weil das so schnell passiert, es sofort zurücksetzt und wir können immer noch diese mehrere Treffer pro Kollisionsprüfung hier erledigen. 17. 17 – Player: Mit dem beschädigten System und ich vollständig implementiert. Wir haben den Feind wieder dazu gebracht, Schaden zu erleiden und tatsächlich getötet oder von der Welt entfernt zu werden. Wir haben das meiste Setup und bereit für den Spieler zu gehen. Natürlich war im Moment der Platz, der nur Schaden erhält, immer noch dabei, diese Standard-Druckzeichenfolge zu nennen, die uns nur in der Spiel-Jodid-Funktion erinnert, dann wurde nichts eingerichtet. Also lasst uns da rüber springen und wir können damit anfangen, dass das funktioniert. Und wir werden überlegen, was getan werden muss der Planet am Szenario gestorben ist und wie wir dies umsetzen können. Okay, das erste ist, dass wir wissen, dass wir das bereits verfolgen. B ist toter Wert , der für uns sehr wichtig sein wird. Also werden wir die Druckzeichenfolge löschen, um loszulegen. Wir werden einschlagen, das B ist tot. Und wir werden sicher sein, dass dies wahr ist. Also nochmals, dass wir wissen, dass all unsere Kontrollen oder ob wir einen weiteren Schaden erleiden sollten, darauf beruht. Wir können das wirklich entfernen, hey, wir müssen das nicht zweimal tun. Dies würde wahrscheinlich ein wenig schöner in die Funktion passen , die die Jodnacht behandelt. Aber das bedeutet, dass dies jetzt verfolgt wird und wir gingen alle weiteren Schaden und wir gingen spielen diese Antwort, die könnte nicht mehr als einmal einrichten würde. Also in der Zange tot, gelten gestorben. Wir werden den Boolean hier einstellen. Das ist genau wie ich schon erwähnt habe, ein bisschen sauberer. Das erste, was ich denke, dass ich tun möchte, ist die Eingangswelle von der Plaza nehmen. Wir wollen nicht, dass sie in der Lage sein, bei irgendeiner Art von Endeingabe zu diesem weiterlaufen. Das allererste, was wir tun werden, ist, eine Funktion auf dem Planeten zu nennen, das zu kontrollieren. Also verwenden wir den get planet Controller und wir rufen die inaktivierte Eingabefunktion auf. Stellen Sie einfach sicher, dass dies an der richtigen Stelle angeschlossen ist. Der Player-Controller wird also das PI-Steuerelement sein, das Ziel, und das eigentliche Ziel für die Eingabe, die deaktiviert werden soll, ist uns selbst. Wenn wir also sterben, bedeutet das, dass wir, wenn wir vorwärts, rückwärts oder so etwas drücken , nicht in irgendeiner Richtung springen oder sich bewegen können. Und wieder, das ist sehr einfach, nur testbar Ich werde tun, ist zurück auf den Schaden kommen und wird dies zu einer Variablen als auch fördern, der Grundschaden für, wenn der Spieler beschädigt ist. Wenn wir dies also zu einer Variablen befördern, können wir dies von überall ändern, was uns das wieder ein bisschen einfacher macht. Und ich nenne das hier einen Schaden anrichten. Idealerweise werden wir das ändern, basierend auf der Sache, die wir treffen. Aber wieder, sehr einfaches Projekt, um die Dinge in Gang zu bringen. Dies kann leicht später geändert werden, aber dies wird uns nur erlauben, NIH sehr schnell geändert dies auf eine 100. Und es bedeutet, dass, wenn wir innerhalb unseres Planeten arbeiten, gestorben Funktion. Wenn du das jemals testen willst, können wir direkt ins Spiel kommen , okay, vom Feind getroffen. Wir können sehen, dass wir gestorben sind. Ich werde nicht weiter versuchen, mich zu bewegen, springen, zu bewegen, jedes derartige ist deaktiviert. Also erste Überprüfung ist hier getan, wir haben dieses Bit funktioniert. Also, wenn Sie sich vorher erinnern, Ich erwähnte, dass ich wieder diese Mario oder sonic retro Art von 2D-Animation replizieren wollte , wo Sie fliegen in die Luft und aus dem Bildschirm. Also haben wir schon etwas sehr Ähnliches wie bei der Arbeit. Aber anstatt den Charakterbewegungsimpuls zu verwenden, werde ich dieses Mal die ganze Sache bewegen. Also werden wir die konzeptionellen Komponenten nehmen. Und da dies die Wurzelkomponenten sind, ist offensichtlich alles irgendwie unterhalb dieser für Bewegung verschachtelt. Wir werden uns das schnappen und Impulse dazu machen. Wir müssen uns auch daran erinnern, die Kollision zu deaktivieren , damit wir durch den Boden verschmelzen können. Also, wenn wir den Drag in unseren Capture-Komponenten steuern , können wir, vor allem. Um dies zu ermöglichen, müssen wir das Set setzen, die Physik auf wahr simulieren. Und wir werden einfach diese Schlaganfall-Backup einhängen. Wenn wir das nicht getan haben, werden wir eine Warnung erhalten, wenn wir versucht haben, etwas wie das Hinzufügen von Kräften oder Impulsen zu etwas zu tun , bei dem die Physiksimulation standardmäßig nicht aktiviert ist. Wir können hier sehen, simulieren Physik ist auf false gesetzt, was bedeutet, wenn Sie versuchen, etwas zu tun Physik verwandt, erhalten wir eine Warnung oder eine Fehlermeldung kommen. Ich werde Control W drücken, um die Capsule Component wieder zu erhalten. Und jetzt, wo wir das an Ort und Stelle haben, können wir von hier ziehen und wir werden die Werbe-Impuls-Funktion machen. So sehr ähnlich wie das, was wir durch unsere Charakterbewegung gemacht haben. Kombinieren Sie sie, wir können das Gleiche hier machen. Wir werden die Geschwindigkeitsänderung auf true setzen, wird die Struktur Pin hier aufgeteilt. Und die imitiert den Impuls diesmal etwas dramatischer. Also richten wir das so etwas wie 800 oder vielleicht 900 ein. Und so ist es deutlich höher, als nur getroffen zu werden. Also wieder, wenn wir in der Presse Play kommen, können wir dies testen. Und es funktioniert einfach nicht ganz. Denken Sie daran, dass ich erwähnte, dass die andere Sache die Kollision ist, also denke ich, das wird hoch genug sein. Das Problem ist, dass wir sofort aus der Luft gestanzt wurden weil wir immer noch unsere Trefferantworten aufnehmen. Aber ich meine, das ist in Ordnung, dass wir einige lustige Ergebnisse daraus bekommen. Und wir testen, dass die Dinge funktionieren und wie sie reagieren, während wir weitergehen. Also rennen wir gerade herum. Nicht ganz die Antwort, die wir wollen, aber wir kommen definitiv näher. Auch jetzt wollen wir sicherstellen, dass all dies in die richtige Richtung geführt wird. Also das erste, was wir tun wollen, wir wollen nicht, dass alle diese potenziell gespielt werden , bevor wir deaktiviert haben, ich würde Kollision. Also habe ich hier nur ein bisschen Platz gemacht. Ich gehe wieder zu Control W, der Kapitalkomponente. Auch hier ist dies nur zu speichern y geht von mehreren Orten. Das fängt an, ein bisschen chaotisch zu wirken. Ich werde von hier ziehen, ich werde die Kollisionsantwort einstellen. Wir können dies auf alle Kanäle einstellen. Wir werden uns nicht darum kümmern müssen etwas fehlt, denn natürlich in dieser Phase mit Toten, alles, was wir wissen, ist, dass wir Kollisionsantworten auf jedem einzelnen Kanal ignorieren wollen. Über Kanäle. Wenn Sie nicht zu viel mit den Kollisionseinstellungen vertraut sind, haben wir die Kollisionsvoreinstellungen. Dies sind die Kanäle, die wir haben Tracing, Überlappung und Block und die verschiedenen Dinge, die wir entweder verfolgen können, was Dinge wie Re-Cast, Check, Gießen ins Wasser, wenn Sie etwas getroffen haben oder schauen bei etwas, das sich für Dinge überschneidet, die die anderen Objekte nicht blockieren, sondern nur dieses Ereignis im gleichen Raum erkennen. Und dann blockieren wir, was wir tun, während wir die Dinge physisch rausbewegen, was sie möglicherweise mit einer fast physischen Reaktion trifft. Also werden wir alle diese ignorieren. Also wird keiner von ihnen mehr blockieren. Sie können sehen, dass die meisten von ihnen auf Blockierung eingestellt sind. Wir werden dies ignorieren, was bedeutet, dass wir auch Dinge tun, wie durch den Boden fallen. Wir werden nicht einmal auf die Fußböden Kollisionsreaktion reagieren, was ideal ist, weil denken Sie daran, dass ich sagte, dass ein Teil des Setups uns aus dem Level fallen lässt. Also mit dem Aufspringen und dann durch den Boden fließt. Das ist also ziemlich gut. Wir können hier wieder mehr Fragen sehen. Also, was wir ein Problem mit Messer bekommen, ist die Kamera mit Dingen kollidiert, die wir vorher keine Probleme hatten, mit denen wir vorher kollidieren. Also, was wir tun wollten, wenn Sie die Kamera anbringen und verhindern wollten , dass das passiert. Wir gehen in die Feder und sehen, dass wir den Kollisionstest aktiviert haben. Und im Grunde, was geschah, als es flackerte, der Frühling an. Denken Sie daran, dass wir diesen langen Arm hier haben, versuchen, sich aus dem Weg zu stellen, wenn er in die Welt gerichtet ist, und erkennen, dass es etwas gibt, das wir möglicherweise kollidieren könnten. So wie zu bemerken, dass, wenn ich das durchschneide und es versucht, die Kamera zu bewegen, weshalb es ein wenig GEC aussieht. Wir können dies stoppen, indem wir den Kollisionstest durchführen. Und wieder, wir werden das noch einmal versuchen, sehen Sie sich die neuen Ergebnisse an. Was wir jetzt sehen sollten, ist, dass wir uns immer noch verschmelzen werden, aber das ist in Ordnung. Wir können den Y-Offset etwas ändern, wenn wir das überschreiben wollten. Aber die Hauptsache ist, dass die Kamera nicht herumspringt. Im Allgemeinen. Das wird irgendwie zeigen, dass wir nicht ein ganzes Level um uns herum haben. Das ist nicht das, was du in solchen alten Schulspielen gewöhnt würdest. Also, was wir stattdessen tun werden, ist nur eine fixiert. Die Art und Weise, wie ich mich dem nähern werde, ist, dass wir die Feder ergreifen, die ich bin Komponente bin. Wir werden daraus ziehen und wir werden die Abtrennung aus dem Fach benutzen. Ready weiß, mit welcher Komponente es verbunden ist, ist an die Capsule Component angehängt, wie Sie hier in der Hierarchie sehen können. Aber das wird den Frühling aufnehmen. Es wird sich von dem lösen, was er dem Änderungsantrag beigefügt ist, um den Standort und die Rotation zu erhalten, wir müssen diese aktualisieren, und es wird dort bleiben, wo es in der Welt ist. Und das ist mehr, was Sie gewohnt sind zu sagen, ist der Spieler Art von Fliegen auf und aus dem Bildschirm. Das ist also relativ. Wir möchten nicht, dass dies relativ ist, da es derzeit relativ zur Kapselkomponente ist. Wir wollen, dass dies seine Position in der Welt behält. Also habe ich nicht, wo es relativ zu seinen eigenen Komponenten war. Wenn der Federarm hier drüben bewegt wird, wollen wir, dass er hier bleibt, wenn der Spieler stirbt, weil du gesehen hast, dass diese Art von flog in die Ecke des Bildschirms. Und jetzt gehen wir. Also haben wir jetzt den Spieler, der die Kamera hochspringt und sagt, wo sie war. Und wir vermeiden all das Clipping-Problem. Wir können immer noch sehen, dass der Spieler durch den Boden geht. Aber wieder, in diesem Fall, nicht übermäßig wichtig, wenn Sie es wollen. Wenn dies geschieht, könnten Sie etwas so Einfaches tun , wie Sie einen sehr kleinen Impuls auf das y hinzufügen können. Wenn wir also nur einen Impulsiven wie ein oder etwas hinzufügen, wird dies uns etwas vor oder hinter dem Boden bringen. Die Feinde sind verschwunden. Das hat mich nicht umgebracht. Und sie gehen sehr kleinen Impuls. Und wieder, wenn Sie wollten, dass sie hinter dem Boden fliegen. Und Sie können sehen, dass die verschiedenen Größen, die er hinter dem Hügel fiel. Und wenn du wolltest, könntest du damit etwas kreativ werden. Sie haben gesehen, wie Sie verschiedene Offsets hinzufügen können. Auch wenn Sie eine Auswahl verwenden, können Sie etwas wie eine zufällige boolesche Auswahl hinzufügen. Und 50, 50% der Chance, dass Sie sie bekommen , mit einer ausgewählten Note hier vorwärts zu fliegen. Und das gleiche für die X. Wenn es langweilig ist, dass sie immer gerade nach oben und direkt nach unten gehen. Sie könnten eine zufällige Chance für sie hinzufügen, nach links oder rechts zu fliegen. Und die letzten Dinge, die ich all diese Tests gemacht habe, wenn ich immer noch perfekt bin. Immer noch. Wenn wir uns nach hinten bewegen, sehen Sie doch etwas Seltsames wie das passiert. Wir haben ein bisschen zu viel Kraft mit verschiedenen Kräften aufeinander angewendet. Also denke ich, was wir tun müssen, bevor all das passiert, werden wir auch diese Bewegung stoppen. Also deaktivieren wir die Eingabe, stoppen die Bewegung, die wir haben. Und nur um zu sagen, gehen Sie sehr schnell darauf zurück, wenn Sie verschiedene Impulse auf das x und das y anwenden und das zufällig anwenden wollten. Dann werde ich das in diesem Stadium nicht durchmachen, wir haben sehr ähnliche Dinge getan. Meistens wäre dies eine gute Art von Lerntests über Süden zwischen den Themen. Geben Sie einfach die Videos von Pulls und sehen Sie, ob Sie dies selbst umsetzen können. Nehmen Sie einige davon wie Nächte, die wir verwendet haben, einige der zufälligen Chat können diese zusammen setzen und Sie haben ziemlich viel das Ergebnis für einige zufällige Impulse haben. Also das nächste, was mit diesem Stoppen der Dynamik, dass wir dies bereits getan haben, sind wir bereit, Code hier zu kopieren, was nie ideal ist. Also, was wir tun werden, wahrscheinlich vertraut damit, nicht so gut. Wir werden zwei davon auswählen. Wir werden das zu einer Funktion zusammenbrechen, und wir werden diese Ratsbewegung nennen. Natürlich werden wir diese Dine-Hälfte löschen. Wir können unsere Ratsbewegungen hineinziehen, und wir hängen das einfach an den falschen Stift. So genau das Gleiche durch den Impuls zu tun ist etwas anders. Wir könnten verschiedene Überschreibungen übergeben, wenn wir wollten. Aber ich denke, in diesem Fall sind diese beiden irgendwie einzigartig genug, nicht eine, die dies in eine Funktion fallen lässt. Und ich denke, das wäre ein bisschen mehr ein Hindernis für unseren Codefortschritt, dann würde es uns helfen. Aber in diesem Fall können wir die Ratsbewegung noch einmal nehmen, Jodid ins Spiel gehen, von hier ziehen, feststellen, dass die Ratsbewegung funktioniert und diese zwischen den beiden Hinrichtungsstiften verbinden. Und das bedeutet nur jetzt, wenn wir es noch einmal versuchen, sollten wir die Bewegung haben, die aufgehoben wurde. Wir können sagen, dass es nicht der Fall ist. Das ist also keine Up-Philosophie. Ich denke, das Problem ist, dass wir keine Geschwindigkeit von der Charakterbewegung bekommen. Denken Sie stattdessen, wir bekommen Geschwindigkeit von der Kapselkomponente. So können wir entweder ersetzen oder einfach nur auf eine Art von fehlersicheren und 0 Bugs, was die Option ist, für die ich gehen werde. Und was wir wollen, ist auf der Capture-Komponente ein etwas anderer Name. Es ist die lineare Geschwindigkeit. Es ist die alte physikalische lineare Geschwindigkeit, die wir suchen. Der einfachste Weg ist also, nur linear, leicht langblättrig zu tippen. Aber wir wollen die gesamte physikalische lineare Geschwindigkeit auf 0 setzen. Und dann können wir es noch einmal versuchen. Und ich denke, das sollte alles schön lösen. Also, wenn wir die Fledermaus finden, ja, los gehst du. Also werden wir die ganze Bewegung loswerden. Die Geschwindigkeit wurde tatsächlich für die Capture-Komponente berechnet, nicht für die Charakterbewegung. Aber wieder, es könnte Fälle geben, in denen es Änderungen gibt , die darauf hindeuten, dass ich das hier belassen werde. Aber wir können sehen, dass meine unabhängig davon, wie wir uns bewegen, wenn es darum geht, dass ich diese Kraft nur in vollem Umfang anwenden werde, die wir tun wollten, das ist, dass eine vertikale Geschwindigkeit, um diese alte Schule sterben Automatisierung zu replizieren. Das ist so ziemlich alles, was du kannst, wie ich schon ein paar Mal erwähnt habe, jetzt kannst du reinkommen. Ich habe schon irgendwie aufgehört, das zu veröffentlichen. Eine andere Sache, die Sie vielleicht bemerkt haben, ist, dass wir, wenn wir sterben, nur die Sprung- und fallenden Animationen betreten , weil das ist, was verfolgt wird. Wir haben gar nichts als Todesanimation. Wenn Sie also einen importieren wollten, könnten Sie ihn einbringen. Und wie ich bereits erwähnt habe, sollte das Hinzufügen neuer Animationszustände so einfach sein, wie das Hinzufügen einer neuen Bewegung States, was unsere Enums ist, die wir hier aufgedeckt haben, nach dem Sprung hinzufügen könnten, bevor Sie eine Todesanimation haben können und fügen Sie dies hinzu, um nachverfolgt werden zu können. Also wieder, die einfache wie in der Player-Update Flip Book Funktionalität, überprüfen Sie hier und Sie können sogar einen anderen Zweig vollständig zu tun. Anstatt diesem Logikstrom Dinge hinzuzufügen, könnte es so einfach sein, als wäre es tot, dann spielen Sie die Todesanimation oder stoppen Sie alle Animationen. Wenn es nicht tot ist, dann überprüfen Sie weiter , welche bewegungsbasierte Animation wir bewerten sollten. Und dann füge ich einfach den zusätzlichen Stift hier für die Tod-Animation hinzu. Also noch einmal, nur um zusammenzufassen, warum wir mit dieser Art von automatisierten Ansatz gegangen sind, nicht vollständig automatisiert, aber Sie können sehen, wie viel einfacher es ist, nur einen neuen Bewegungszustand anzuschließen. Und es wäre gewesen, einen zusätzlichen Satz von Verzweigungslogik zur Seite zu haben. Also zwischen den Themen wieder, wenn Sie Pause machen und diese Art von Sache nur für diese Art von raffinierten Politur, dann fühlen Sie sich frei. Es ist nicht etwas, das wir hinzufügen werden, in den Themen. Aber das bedeutet, dass in diesem Stadium, wenn ich mit den Feinden und dem Spieler fertig bin, sie wirklich so viel wie erwartet interagieren. Und wie wir es wollten, können wir jetzt zum letzten Thema übergehen, das die interaktiven Klassen sein wird, die Pickups, um die Gesundheit aufzufüllen, und dass Frühlingsgegenstände als eine Art Sprungpad fungieren und bieten ein etwas interessanteres Niveau, um zu manövrieren. 18. 18 – Interaktive Basis: Um sie in die interaktiven Klassen zu bewegen, wird dies auf eine sehr ähnliche Weise wie unsere feindlichen Klassen betrachten . Wir werden also ein paar verschiedene Arten von interaktiven Klassen im Projekt haben. Daher können wir eine Menge der allgemeinen Logik von einer Basisklasse ableiten, die besagt, dass wir mehrere interaktive Klassen haben werden, in denen wir nur den einen Feind haben. Wir haben das Flip-Buch bereit für unsere heißen und Quellen, dass, wenn wir zwei Klassen zur Verfügung haben, und natürlich können Sie diese erweitern, um loszulegen. Wir werden nur sicherstellen, dass wir die Projekthierarchie halten, es schön und ordentlich. Also werden wir einen neuen Ordner mit dem Namen interactives erstellen. Im Innern werden wir unsere Hauptklassen erstellen. Die erste wird also unsere interaktive Basisklasse sein. Und natürlich, was wir wirklich brauchen, ist in der Welt zu existieren mit dem Potenzial, mit dem Spieler zu interagieren. Also für jeden, der mit Unreal vertraut ist, sind Sie wahrscheinlich bereits bewusst, dass, soweit die Klassenhierarchie Jungs oder die Klassenstruktur innerhalb von Unreal, die grundlegendste Art von Glas, die in der Welt mit einem Transformation und diese Art von physischer Entität ist eine Akteurklasse. Also werden wir einfach runterkommen und eine neue Blueprint-Klasse vom Typ Actor erstellen. Und ich nenne diese, die BP interaktive Basis unterstreicht. Wie ich in dieser Klasse gesagt habe, wollen wir diese Überlegungen berücksichtigen. Also die Dinge, die generisch zwischen den verschiedenen potenziellen interaktiven Klassen für dieses Projekt sein werden , kann ich nur zwei verschiedene Variationen sehen, die wir haben werden. Und dazwischen gibt es nur zwei Dinge, die ich sehen kann, wie sie tun müssen. Man wird mehr ein Problem mit der Art, wie die Flip-Bücher eingerichtet werden. So funktioniert es irgendwie um, dass. Und die zweite ist die eigentliche Interaktion, die wir eine Art von Kollision benötigen , oder der Spieler, um diese Interaktion abzufeuern. Und das Problem kommt von der Tatsache, dass Flip-Bücher automatisch auf spielen und diese Schleife eingestellt sind . Also müssen wir das berücksichtigen, denn das Herz wird ziemlich gut schleifen aussehen. Aber ich denke, der Frühling, natürlich, wir wollen nicht, dass ständig spielen. Zunächst einmal, wenn wir sagen, sind die Komponenten, die wir dafür brauchen, alles, was wir wirklich brauchen, ist die visuelle Darstellung für die Animation und das kollidierende Gesetz. Und ich werde diese beiden Akte oder die kollidierende Komponente trennen. Und ich werde beide trennen, so dass wir uns keine Sorgen über die Bereitstellung einer Sprite-Animation auf dem animierten Flipbook machen müssen . Und das wären einige potenziell zusätzliche Leistungskerne, die wir nicht brauchen. Was wir tun werden, ist, dass wir das gesamte Flipbook in einem Würfelgleiter einkapseln. Damit die Komponenten beginnen, werde ich eine neue Szenenkomponente hinzufügen und sie einfach über die Standardkomponente oder die Standardkomponente ziehen und ablegen . Dies ist rein so, dass wir wie einen Ankerpunkt und eine Transformation für die anderen Komponenten zu sitzen haben. Aber wir brauchen diese sphärischen Billboard-Darstellungen nicht, also werden wir das mit einer Szenenkomponente loswerden. Dann auf der Oberseite der sin Komponente wird unser Papier Flip Book zu platzieren. Dies wird also die Animation für die verschiedenen Sprites sein. Und dann stellen Sie sicher, dass wir das Papier Flipbook ausgewählt haben. Wir können die Drop-down-Liste wieder benutzen und einen Box-Collider finden. Dies wird also die Sache sein, mit der der Spieler potenziell interagieren wird. Und ich gebe diesem nur den Namen eines interaktiven Colliders. Dies wird nur machen es viel mehr Art von einfach wieder zu aktualisieren, kommen zurück wird sehr klar sein, warum wir ein Papier Flipbook ist ein 2D-Spiel. Wir brauchen diese visuelle Repräsentation. Es ist vielleicht nicht so klar, was der Collider tut. Wenn wir das jetzt genau benennen, wird es die Dinge ein bisschen einfacher machen , wenn wir zum Projekt zurückkommen. Das erste, was zu berücksichtigen ist, ist dieses Kollisions-Setup. Mit Blick auf das Papier Flipbook zu beginnen, können wir sehen, dass die Kollision, dass Kanal eingestellt ist, um alle zu blockieren. Wenn wir also ein Flipbook hinzufügen würden und es einige Kollisionsinformationen hatte, könnte dies möglicherweise wieder unter Berücksichtigung von Dingen wie der Federkomponente, als wir die USA hatten, die möglicherweise blockieren würde der Charakter für sich zu bewegen, anstatt hinzuzufügen, dass es zu verhängen passen Sie, stoppen Sie sich um die Ebene zu bewegen. Stattdessen werden wir das Optionsfeld „Kollisionsvoreinstellungen“ ablegen und dies in „Keine Kollision“ ändern. Dies wird also kein Werkzeug kollidieren, das keine Kollisionskosten bietet. Ich stelle auch sicher, dass wir überlappende Ereignisse deaktivieren, nur für den Fall, dass sich etwas ändert. Eine der Kollision wird also von unserem interaktiven Segelflugzeug erledigt werden. Wenn wir hier rüber schauen, können wir sehen, dass dies so eingestellt ist, dass alle dynamischen überlappen. Und wir können das etwas billiger machen, wenn wir nur überlegen, wie wir das verwenden werden. So im Moment können wir sehen, dass der Objekttyp ein globaler dynamischer Typ selbst ist. Das würde also im Moment bedeuten, dass sich die anderen interaktiven Klassen wie bei Fahrzeugen möglicherweise überlappen könnten , alles zerstörerische. Es könnte Dinge sein wie, Ich denke, die feindliche Klasse ist wahrscheinlich auch dynamisch. Das könnte also von einem Feind ausgelöst werden. Was wir also tun möchten, ist, dass wir dies aus dem Drop-down-Menü hier in benutzerdefinierte ändern werden. Ich werde diesen Knopf hier nehmen, der Ignoriere den oberen. Wenn Sie die oberste Reihe nehmen, werden alle Optionen darunter geändert. Also werde ich das alles außer dem Pool ignorieren lassen. Die Sache, die der Spieler kontrolliert ist das einzige, was wir wollen, dass dies interagiert. Das bedeutet also, dass weder irgendetwas anderes auf der Welt diese Funktionalität nicht auslösen wird, wird dies ein wenig billiger zu laufen machen. Und es bedeutet auch, dass wir nicht so viele verschiedene Eventualitäten mit den Kollisionen berücksichtigen müssen . Okay, das ist also unser Komponenten-Setup. Wir können jetzt wie in der Vergangenheit zum Ereignisdiagramm übergehen. Ein paar Dinge, die wir hier tun können, können wir die Funktionen loswerden, die wir wissen, dass wir nicht verwenden werden, was diese beiden sein werden. Und wir haben nur diese zwei Überlegungen, die ich erwähnt habe, die wir tun wollten, oder einen Floor als generische Funktionalität für die gesamte potenzielle interaktive Klasse. Also die erste, die ich denke, wird ansprechen, ist diese Lösung. So wie dies funktioniert, springen wir einfach schnell in das Ansichtsfenster zurück. Wenn Sie damit nicht vertraut sind, wenn wir einen Sprites für unseren Flip auswählen, haben wir die Hots und wir haben die Feder. Wenn wir das in die Welt bringen, wird das genau das tun, was wir hier haben. Dies wird Art von Post und Pumpe mit der Jagd, was ich denke, sieht ziemlich cool im Kontext der Art von Fleisch aus Ihrer Welt. Es ist ziemlich schön, diese animierten Flip-Bücher und Sprites zu haben, Dinge wie Laub bewegen sich herum, die Feinde, Schrittweise zurück und vorwärts die Pickups Art von animieren in dieser Art von Posting Weise hier bringt Ihr Niveau und macht das Labor bereits lebendig gefallen und erweckt es zum Leben. Das ist also nicht etwas, was ich zusammenkommen wollte. Aber wenn wir dann die FB Feder betrachten, dann wollen wir natürlich nicht, dass dieses ständig nichts springt, da wir nur vorbeigehen. Wir wollen, dass dies nur reagiert. Das wird also sehr reaktiv sein, weshalb wir das Ereignis-Tick entfernt haben. Und wir wollen, dass diese Animation nur einmal im Spiel reagiert , wenn sie tatsächlich Impuls für den Spieler gibt. Das wird also das erste sein, was wir reparieren. Und ich werde das einfach rückgängig machen, wie bei den Feinden. Ich möchte sicherstellen, dass, wenn wir vergessen haben, dies in den abgeleiteten Klassen zu ändern, es sehr klar ist, dass wir diesem kein Flipbook gegeben haben, weil es, naja, sie gingen alles zeigen. Also, was wir tun werden, ist, dass wir das Papier Flipbook ziehen , das kontrollieren wird, ziehen Sie es hinein. Wir werden von hier ziehen. Ich werde nach dem Schleifen suchen. Also können wir gut tun, zwei Dinge haben, wir hätten einfach suchen können, Looping setzen, oder wir können überprüfen, ob es Schleifen ist. Alles, was wir tun werden, ist sofort auf Begin Play Set, ob wir wollen, dass diese Schleife. Haken Sie dies bis zum Ausführungsstift von Anfang an spielen, dann die neue Schleife, ich werde dies auswählen und wir werden dies zu einer Variablen fördern. Und ich nenne das nur Autoplay. Ich werde das auch öffentlich machen und das kompilieren und sicherstellen, dass standardmäßig, nehmen wir an, dass wir alles automatisch spielen wollen, und dann kommen wir rein und wir werden diesen Boden ändern, die Frühlingsklasse. Also, was dies tun wird, ist dies kommen und es sollte überprüfen, ob es weiter Schleifen auf unbestimmte Zeit oder ob es sollte eine Art von Spiel es einmal Art von Sprite sein. Wir haben das öffentlich gemacht, so dass, wenn wir jemals etwas aus irgendeinem Grund außer Kraft setzen wollten, vielleicht wollten wir eine ganz besondere Art von heiß abholen. Wenn es aus irgendeinem Grund nicht animiert wird, könnten wir das leicht vom World Outliner ändern. Wenn wir es in unsere Welt fallen gelassen haben, könnten wir Overhead auswählen, die Sie gesehen haben, aber auf anderen öffentlichen Immobilien. Das ist also der erste Teil der generischen Logik, die wir tun müssen. Das nächste ist, dass wir diese neue Funktion brauchen, was passiert, wenn wir mit dem Spieler interagieren. Ich werde eine neue Funktion schaffen, wie wir es bei den feindlichen Banks getan haben. Ich nenne diese Interaktion. Und sehr ähnlich wie die feindliche Basisklasse. Wir werden hier drin gar nichts tun. Stattdessen werde ich mir nur eine Erinnerung mit einem einfachen Kommentar setzen , der besagt, dass die Funktionalität in den untergeordneten Klassen mit ihrer eigenen Art einzigartiger Funktionalität überschrieben werden soll . Aber eine Sache, die, weil das sehr einfach sein wird, können Sie dies erweitern, wenn Sie wollen. Ändern der interaktiven Collider Sets, könnten Sie diese interaktive Dinge wie Feinde haben. Also, wenn Sie Systeme implementieren wollten, wo Feinde könnten die Federn verwenden, oder sie könnten potenziell abholen Gesundheit und teilen diese Art von Gesundheitspool von Gegenständen mit den Playoffs. Ich würde dem Spieler eine zusätzliche Art von Herausforderung geben , um sicherzustellen, dass während sie die Feinde schädigen, sie sich auch nicht an Gesundheit erinnern woanders. Sie können dies leicht ändern, um in diesem Projekt berücksichtigt zu werden, was ich tun werde, ist, ich gehe davon aus, dass wir nur mit dem Spieler interagieren werden. Also für die Eingabe, so dass wir Zugriff auf alle Gesundheitsinformationen und solche Dinge haben. Ich werde eine neue Eingabe erstellen, eine Änderung vornehmen. Der Variablentyp musste das BP nicht offenbarte Player-Basisobjekt sein. Also gehen wir für diese Objektreferenz. Und ich werde das nennen, dass der Spieler rau. Und wir werden das in einem Augenblick nutzen. Also stellen wir sicher, dass wir dies kompilieren und speichern. Und das ist so ziemlich alles, was wir für unsere Interact-Funktion im Ereignisdiagramm tun müssen, wir werden den interaktiven Collider bekommen. Und wir wollten hier runtergehen. Denken Sie daran, dass wir die Überlappungen machen. Also die Überlappungen und nicht die Treffer. Der Treffer ist, was wir in den feindlichen Klassen verwenden. Der Hauptunterschied besteht darin, dass SIS Ereignisse wie eine Art Blocker wirken. Also, wenn Sie sich daran erinnern, dass die Kollision auf die Bühne aufgelöst werden musste, wo der Spieler aus seiner Linie in der y-Achse geschoben und in den Hintergrund geschoben wurde. Im Vergleich dazu können Sie, wenn Sie Überlappungen machen, zwei Dinge passieren lassen. Sie werden sich nicht körperlich aufhalten. Aber wir können ein Ereignis ausgelöst haben, wenn eine Überlappung ausgelöst oder bemerkt wird , und das verwendet die Online-Komponente, um eine Überlappung zu beginnen. Jetzt brauchen wir nicht alle Informationen, wie wir es in der Vergangenheit haben. Aber was ich tun werde, ist, weil wir unsere Interact-Funktion abkühlen wollen und wir unsere Spielerreferenz wollen, obwohl wir wissen, dass das einzige, was wir kollidieren sollten , die Spielerklasse ist. Ich werde hier einen zusätzlichen Scheck machen. Also werden wir das auf die Art von BP nicht offenbarten Spieler werfen. Sehen wir, wir haben die BP Unterstrich Spieler Basis und so die Interact-Funktion, wenn ich immer nur gekühlt werden. Wenn dies ein erfolgreiches cas-Zeug ist, ist das, was wir getroffen haben, definitiv der Plan. Und nicht nur das, aber wir können dann den Verweis auf die Spielerbasis übergeben. Was wiederum bedeutet, dass wir, wenn es darum geht, Gesundheit hinzuzufügen , Impulse hinzuzufügen, einige Informationen haben, die wir über den Spieler verwenden können. Und das war's wirklich. Dies ist also die Basisklasse getan. Dies ist die generische Funktionalität, die die untergeordneten Klassen, die wir erstellen, alle sehr einfach erben und wiederverwenden können. 19. 19 – Interaktive Gesundheit: Die erste Klasse, mit der wir beginnen, können wir die Interact-Basisklasse verlassen, wenn Sie noch haben. Was wir jetzt tun können, ist, das zu benutzen, wir können zu einer anderen Klasse kommen, wie Sie mit den Feinden gesehen haben. Also werden wir mit der rechten Maustaste auf die interaktive Basis, wählen Sie, Erstellen Sie eine untergeordnete Blueprint-Klasse aus diesem. Und ich werde diesen einen BP Unterstrich interaktive Gesundheit nennen. Wenige Dinge, die ich sehe, dass wir Festival machen müssen, ist sicherzustellen, dass die Komponenten eingerichtet sind, da wir sie brauchen, um innerhalb der Kind-Klasse zu sein. Und alles, was wir wirklich tun müssen, ist, dass wir das Papier Flipbook auswählen und das so einstellen können , dass das Buch, das wir bereits haben. Und dann müssen wir sicherstellen, dass die interaktive kollidieren ein passt ziemlich eng um das Bild. Denken Sie an Box Extent von 25, eins und 25. Darauf sollte es ziemlich gut funktionieren. Also brauchen wir nichts im y, um über tief zu sein. Und es ist so ziemlich ein quadratisches Bild. Also bei 25, 25 Radius scheint es ziemlich gut zu passen. Als Nächstes müssen wir gar nichts tun. Denken Sie daran, wir können dies einstellen, wenn wir wollten, dass es nicht spielen, wir können die Autoplay auf false setzen. Dies wird wirksam, wenn die Veranstaltung beginnt spielen. Wenn Sie wollten, dass das früher in der Elternklasse passiert, können Sie das immer auf das Konstruktionsskript setzen, aber ich denke, das Event Begin Play, es sollte vorerst gut sein. Das einzige, was wir wirklich verlassen haben, was wir tun müssen ist Funktionalität für den Player hinzuzufügen. Und das wird durch unsere Override-Funktion getan werden, dass wir dies unten fallen und wir können die Interact-Funktion hier finden. Nun, wir wollten herausfinden, dass ein paar Dinge auf dem Interact-Event passieren. Dies wird also ausgelöst, sobald die übergeordnete Klassenfunktion der Überlappung ausgelöst wird, wenn wir den Spieler treffen. Also haben wir hier die Spielerinformationen, die wir brauchen werden. Und es gibt ein paar Dinge zu beachten, also können Sie wahrscheinlich sehen, wie das gehen wird. Wir wollen dem Spieler Gesundheit hinzufügen, und dann wollen wir die interaktive Gesundheit Pickup zerstören , damit es in der Welt nicht mehr existiert. Und nehmen Sie sich einen Moment, bevor wir das zusammen durchgehen und überlegen, welche Reihenfolge Sie vielleicht tun möchten. Also werden wir die Zerstörung hier hinzufügen. Ja, ähm, wo werden wir dieses Update für die Gesundheits-Funktionalität nennen? Okay, also natürlich wissen wir, dass das erste, was passieren wird, ist, dass wir für alles erklären können, was auf den Eltern passiert, cool, wenn wir wollten. Wenn wir also den Destroy-Cool hier hinzugefügt haben, wird das natürlich passieren, bevor wir die übergeordnete Funktionalität aufrufen können. Jetzt passiert in diesem Fall nichts wirklich über die Funktionalität. Also können wir das entweder ganz entfernen oder einfach einstecken und danach alles tun. Es spielt in diesem Fall wirklich keine Rolle weil ich weiß, dass wir nicht zur Elternklasse zurückkehren und irgendeine Basisfunktionalität hinzufügen werden . In diesem Fall denke ich, was wir tun können, ist, dass wir nur zeigen, wie wir diesen Prozess durchlaufen können , ohne auch nur einen Anruf an die Elternklasse zu machen, wenn wir nicht wollen. Als nächstes haben wir die Spielerreferenz. Und ein praktischer kleiner Tipp hier. Wenn Sie dies noch nicht gesehen haben, da dies jetzt eine lokale Variable ist, solange wir innerhalb dieser Funktion sind, können wir nach der Variablen mit dem gleichen Namen suchen. Und anstatt das von überall zu ziehen, wie wir es in der Vergangenheit gesehen haben, wollten wir wirklich vermeiden, dass y überall hingehen. Wir können einfach die Get Spiel oder rref verwenden, beachten Sie, nur drücken. Das ist genau das Gleiche. Das bedeutet, dass unabhängig davon, wie oft ein, wo wir dies abkühlen müssen, wir diese Variable sehr, sehr leicht wiederverwenden können. Und was wir tun wollen, ist zu sehen, ob wir die Integritätsfunktionalität eingerichtet haben. Wir wissen also, dass dies die BP-Unterstrich-Spielerbasis ist. Wir suchen nach Gesundheit. Wir können sehen, dass wir die Update-Funktion haben und wir können die Integritätsvariablen manuell einstellen. Jetzt wollen wir es nie wirklich. Die Variablen von einer Klasse in einer anderen. Dies kann es sehr schwierig machen zu verfolgen, wo Variablen gesetzt und aktualisiert werden, besonders wenn sie nicht mehr außerhalb der Player-Klasse als Beispiel ausgeführt werden. Also, was wir wirklich tun wollen, idealerweise würden wir diese privat machen, damit wir sie nicht einmal aus einer anderen Klasse sehen konnten. Aber im Idealfall ohne das, was genommen wird, wollen wir eine andere Funktion in der Player-Klasse erstellen, die der Aktualisierung der Gesundheit ähnelt. Aber wir werden das hier „AddHealth“ nennen. Gehen wir rüber zur Spielerklasse. Denken Sie daran, dass die Update-Integrität einfach nur die Suche nach dem aktuellen Zustand ist und das auf das Widget aktualisiert. Also könnten wir dies wahrscheinlich umbenennen, um ein bisschen klarer zu sein. Also werden wir dieses Update Health Widget machen, weil das wirklich alles ist, was es tut. Was wir tun wollen, ist eine Funktion zur Verfügung zu stellen, die wir eine neue Funktion erstellen werden. Wir werden diesen einen AddHealth nennen. Und hier drin wollen wir nur einen Input liefern, nämlich den Geist der Gesundheit , der von unserem Pickup gehalten wird. Also werden wir eine neue Variable hinzufügen. Ja, wir machen das zu einem Schwimmer und ändern den Namen, um es zu heilen. So werden sie vielleicht nie festgehalten werden. Und sehr ähnlich dem, was wir bei den Schadensereignissen tun. Wenn wir das hier finden, auf dem einzigen Schaden, werden wir unsere Gesundheit einstellen wollen, anstatt hier ein Minus zu sein, werden wir dies als positiv festlegen, damit wir eine Menge davon kopieren können. Ich werde nur kopieren und wir fügen dies in die AddHealth-Funktion ein, dass wir unsere Gesundheit auf aktuelle Gesundheit setzen werden. Und dann anstatt ein Minus zu verwenden, wird plus eine andere Variable oder einen anderen Flug sagen, der Stecker, der in den Wert, und das wird hier sein. Was auch immer die Gesundheit derzeit ist, plus unser Heliumion wird unsere neue Gesundheit sein. Und wieder stellen wir sicher, dass wir dies verklumpen, damit wir nichts Dummes tun, indem wir es erweitern, wodurch es niedriger als 0 ist. Und wir gingen machen es nicht höher als die Standard-Gesundheit. So ist es schön und einfach. Kopieren und Einfügen war vollkommen in Ordnung. Wir haben diese Logik bereits gesehen, also mussten wir das nicht wirklich zu sehr zurückverfolgen. Nun das letzte ist, dass wir unsere Update-Gesundheits-Widgets nennen können. Und wenn wir das hier tun, wird das die Variablen aufnehmen, die wir gerade geändert haben. Und dies wird auf dem Bildschirm zeigen, dass die neue Gesundheit dort einkaufen könnte, schön und einfach, das dauerte nicht sehr lange ein Werkzeug. Und das ist das gesamte Gesundheitssystem, das jetzt in der Plaque-Klasse implementiert ist. Und ein paar Dinge, die ich mit Sauberkeit bemerkt habe, ist, dass wir mehrere Variablen gleichzeitig haben, irgendwie getrennt und viel mehr Platz einnehmen und sie müssen hier drüben. Das kann also in einigen großen Klassen passieren. Was wir tun können, um dies zu umgehen, ist, dass wir diese tatsächlich in verschiedene Kategorien setzen können. ein Beispiel, Ich werde den ersten Flipbook-Typ auswählen, und ich werde dies in eine Kategorie namens FB setzen. Damit wir es und das zeigen können. Und dann können wir entweder die anderen Flip-Bücher hineinziehen. Nun, wir können jetzt die Dropdown-Option verwenden und die andere Kategorie ändern, die wir gerade erstellt haben. Wir können dann diesen Diamanten fallen lassen, damit wir sehen können, dass wir ein wenig Platz auf den verschiedenen Variablentypen gespart haben . Und ebenso werde ich das Gleiche für die Flüge tun. Dies ist also nur ein Fall der Erstellung neuer Kategorienamen Ablenkungen, Ziehen sie hinein, und dann können wir diese reduzieren. Aber fertig. Jetzt haben wir noch ein paar übrig, aber ich denke, das wird die Dinge viel einfacher machen, ein I und dann diese einzigartigen Typen zu finden und nicht zu viel Platz in Anspruch zu nehmen. Bevor wir zurück zur Gesundheitsklasse gehen, stellen Sie sicher, dass Sie diese kompilieren und speichern, um sicherzustellen, dass sich diese neue Funktion in der anderen Klasse befinden kann. Also gehen wir zum interaktiven Gesundheitskurs. Und dann von hier aus haben wir jetzt unsere Referenz. Wir sind bereit mit, wir können daraus ziehen und wir können jetzt feststellen, dass die neue Funktion „Gesundheit hinzufügen“. Hoffentlich können Sie sehen, warum dies ein bisschen sicherer wird, aber jetzt nicht den Integritätswert außerhalb der Klasse festlegen, in der er verwendet wird. Was bedeutet, innerhalb der Spielerklasse, genau wie eine Zusammenfassung, wir wissen jetzt, dass diese Gesundheitsfunktion oder diese Variable nur in der AddHealth-Funktion aktualisiert wird oder die Schadensverbindung des Ereignisdiagramms hier ist, bedeutet dies, dass Wenn wir eine Art Debugging durch dies haben, wissen wir, wo wir schauen können, ob etwas Seltsames mit der Gesundheit passiert. Während wenn Sie beginnen, diese Aufrufe hinzuzufügen, um Variablen aus anderen Klassen zu setzen , wird es ein wenig schwieriger wo Vielfache von Haus geändert werden könnten, irgendwann in Ihrem Projekt. Die letzte Sache ist, dass wir das auf so etwas wie zehn für das Heliumweiß setzen können. Und ich werde das zu einer Variablen fördern. Ich nenne diesen einen Gesundheitswert und lasse ihn einfach runter und ordne die Unites ein bisschen hier auf. Wir können auch diese öffentliche Hit Kompilieren machen. Und der Grund, warum wir das öffentlich gemacht haben, ist ein Auge, wenn wir das in die Wildnis ziehen. Also werde ich ein bisschen zurückkommen. Wir finden unsere interaktive Gesundheit. Ziehen Sie diese in, stellen Sie sicher, dass sich dieser auf der 0 -Achse und der y-Wert auf der y-Achse befindet. Und wenn wir ziehen diese und fügen Sie ein paar verschiedene Gesundheitskomponenten, Gesetz, Gesundheit Pickup, sorry, wir können den Wert in der Bearbeitung ändern, indem Sie diese öffentlich zu haben. Also wieder, wir können etwas Abwechslung zu diesen hinzufügen. Das kann also 50 wert sein. Dieser kann bei uns sein und wir lassen den ersten um 10 Uhr. Kann ich reinkommen und das testen? Also werde ich einen Feind finden wollen, der mit etwas Schaden zu tun hat. Wir haben den Feind dazu gebracht, den Killer-Schneetest abzuschließen. Stellen Sie also sicher, dass wir zurück in die Spielerklasse gehen. Wenn Sie vergessen haben, dies wieder auf etwas zu ändern, das ein wenig überschaubarer ist. Der Spielerschaden wurde also auf 100 gesetzt. Wir werden das auf so etwas wie 20. Ermutigen Sie das wieder, damit wir nicht sofort sterben. Und das gibt uns etwas Zeit, um den Hauswert zu testen. Ok? So können wir sehen, dass das aufgegriffen wird. Wir können auch die eine Sache sehen, die wir vergessen haben, dies in der interaktiven Klasse zu tun. Wir sind noch nicht fertig. Wir können überprüfen, die verschiedenen Werte funktionierten. Das scheint alles ziemlich gut dafür zu sein. Das letzte, natürlich, ist, sobald wir interagiert haben, sobald wir hinzugefügt haben, wie, wie ich schon sagte, wir wollen nur den Akt der Interaktion mit zerstören sind eigentlich nein, das war falsch. Zerstöre nicht das Eis, mit dem wir interagieren, weil das, mit dem wir interagieren, der Spieler wäre. Offensichtlich wollen wir die Playa nicht zerstören. Wir werden uns selbst zerstören, damit wir, wenn wir reinkommen, jetzt ein Haus hinzufügen können und wir sehen können, dass wir aufgenommen werden, ein bisschen Schaden nehmen. Und dann können wir kommen und unsere Gesundheitspackups abholen. Wir werden festgehalten, dass zerstört wird. So haben wir eine ziemlich Standard-Gesundheits-Pick-up implementiert. 20. 20 - Interaktives Frühling: Die letzte interaktive Klasse und die Trichterklasse, die wir in dieser Auswahl an Videos machen werden , wird unser interaktiver Frühling sein. Wir haben schon viel von dem, was wir hier reingehen müssen. Und in der Tat haben wir alles, was wir brauchen, fertig zu werden. Also, was ich tun werde, anstatt eine brandneue Klasse zu schaffen, denken Sie daran, dass diese, unsere Gesundheitsklasse hier, sie bereits von der interaktiven Basis erbt, was genau das ist, was wir brauchen. Also, was ich stattdessen tun werde, anstatt das Rad komplett neu zu erstellen, gehe ich zu Control W, unserer interaktiven Gesundheit. Name, dieser eine interaktive Frühling. Im Inneren von, hey, wieder, können wir sehen, dass dies die gleichen Standardwerte wie die Gesundheit Seite, die wir von der übergeordneten Klasse der interaktiven Basis ableiten, die die Hauptsache ist, hier haben wir eine Variable. Diese Flugvariable wird also in einem Moment sehr nützlich sein. Ich könnte mir schon vorstellen, was wir benutzen werden. Und wir haben auch unsere indirekte Funktion gefangen. Also die wichtigsten Dinge, die wir brauchen, passen die Hälfte, wir können das ein wenig überarbeiten. Wir wollen die Feder nicht zerstören, wenn sie benutzt wird. Wir waren nicht wollen AddHealth, aber wir werden zwei Variablen benötigen, die die Spielerreferenz sein werden. Wir wollen etwas mit dem und diesem Gesundheitswert tun, wir müssen nur den Namen ändern, aber wir haben ihn bereits zur Verfügung. Wir wollten es wirklich tun, wenn die Feder berührt wird. Wir werden hier reinkommen und wir werden die Start-Charakter-Funktion aufrufen. Also wieder, das ist, warum es nützlich zu wissen, dass wir direkt mit der BPM School of plant-based interagieren , weil wir wissen, dass es eine Art von Charakter ist, die ein lassen Sie uns wissen, dass wir diese Standard-integrierte Funktionalität in der Zeichen verwenden können -Klasse zu starten. Und im Wesentlichen nur das Hinzufügen von Geschwindigkeit zu unserer Charakterklasse ist eine Art Sprung, aber mit einigen verschiedenen Überschreibungen. Der Grund, warum wir unseren Flugwert wollen, haben wir dieses Mal einfach umgezogen. Wir wollen keine x- oder y-Geschwindigkeit aufnehmen. Also teilen wir den Strukturstift hier auf. Und wir können das im Grunde in den Zed stecken, als der Start, der Charakter. Auf der Z-Achse. Wir möchten diese überschreiben, hinzufügen Überschreibung. Also nehmen wir das wahr und wir können das in unseren Startfluss umbenennen. Wie wir in der Vergangenheit gesehen haben, können wir diese Öffentlichkeit verlassen. Also wieder, auf jeder der verschiedenen Federn, die wir um die Ebene haben, können wir sehr leicht aktualisieren und überschreiben, wie viel Kraft angewendet wird. Ich denke, standardmäßig, 20 oder 10, sogar, sogar, wird das Dilemma ziemlich niedrig sein. So können wir mit etwas rund 500 beginnen und ein gutes Gefühl für einen Impuls von 500 haben und es könnte zu niedrig sein. Wir können das in einem Level beim Testen aktualisieren. Nun ist die nächste Sache, sich daran zu erinnern, wie die Visuals funktionieren werden. Also, das Visuals-Festival, wir wollen das Papier Flipbook ändern. Wir werden das von der heißen ändern, um unsere Quelle zu sein. Und wenn wir nur zum Ansichtsfenster springen, können wir auch sehen, dass ich kollidieren würde, wird ein wenig klein sein. Ich denke, wirklich alles, was ich ändern wollte, ist die Breite dieses Zeugs. Also werde ich zum interaktiven Collider gehen, die Breite ändern, die unser x sein wird, um dies zu rechtfertigen. Und dann denken Sie daran, dass wir einen C9-Co-Host haben. erlaubt uns die Freiheit und Flexibilität, die Position des Flipbooks oder in diesem Fall den interaktiven Collider zu ändern , weil der interaktive Collider ein Kind des Flipbooks ist. Natürlich, wenn wir das bewegen, wird sich der Collider damit bewegen. Also, was wir tun wollen, ist, diesen Collider zu nehmen und einfach dieses Mal ungefähr auf den Grund der Feder zu bewegen . Aber die Idee ist, wenn das nicht gespielt wird, wird es gesucht werden. Kurz über der Spitze der Feder , so dass es aussehen wird, sobald wir die Spitze des Frühlings schlagen, werden wir diese Animation spielen. Das ist also die visuelle Seite, die dort gemacht und aktualisiert wurde. Das letzte Ding ist wieder in der Interact-Funktion. Denken Sie daran, dass wir das so einstellen, dass es falsch ist. Also werden wir nicht ständig im Level spielen. Was wir tun wollen, ist, sobald wir mit diesem interagiert haben, werden wir dies einstellen, um es aus dem Lager zu spielen. Wir machen das, indem wir unser Papier Flipbook bekommen. So steuern Sie das Ziehen in das Papier Flipbook und ich finde das Spiel von gestoppten Funktion. Wir haben das einfach wieder aufgenommen und die Funktion ein wenig aufgeräumt. Ich bin nicht so ziemlich alles, was der interaktive Frühling wirklich tun muss. Wenn wir wieder in die Ebene kommen, haben wir wahrscheinlich zu viele Quellen. Also werde ich eine davon mit der interaktiven Feder ausgewählt greifen. Wir können mit der rechten Maustaste auf das Herz klicken. Und wir können den ausgewählten Akteur ersetzen mit wählen. Und eine der App wird der interaktive Frühling sein, weil wir es hier ausgewählt haben. Also ersetzen wir es durch das. Wir können sehen, dass es kaum dramatische Veränderungen und wir können hier reinkommen und das hier bewegen. Jetzt im Editor, der es sich anschaut, wird das vielleicht ein bisschen ärgerlich sein, dass wir diese ständig automatisieren. Also zurück in der interaktiven Basis, was ich tun werde, ist, das zu schnappen und das einfach in das Konstruktionsskript zu stecken. Dies sollte also hoffentlich jede Looping-Animation stoppen. Und jetzt gehen wir, können wir sehen, dass die Feder sofort aufgehört wird zu animieren. Das lässt uns wissen, dass dies funktioniert, wird sich nur ändern, wenn wir diesen Standort verschieben. Aber das ist besser, als es ständig springen zu lassen. Und lassen Sie uns auch ein paar davon hinzufügen, damit wir eine hier benutzen können. Wenn wir an diesem Abschnitt vorbei sind, können wir die Planeten leicht gleiten, nach oben springen und diesen Abschnitt erreichen. Diese werden auch als gute Wege funktionieren, um verschiedene Geschwindigkeiten zu testen und die Impasto hinzuzufügen. So perfekt, wir können sehen, dass ich nicht animiert habe, bevor wir angefangen haben zu spielen. Springen Sie auf. Das wird einmal animieren, nicht zum Schleifen zurückkehren, wir müssen die Fledermaus töten. Und wir können wieder drauf springen. Ich denke, der Impuls ist vielleicht ein bisschen zu niedrig. Es sieht also nicht so aus, als würden wir so hoch wie nötig hochgedrängt , dass wir reinkommen können und wir das auf vielleicht 800 ändern können. Und dann hoffentlich ja. So sieht es so aus, als ob ich tatsächlich mit der Feder nach oben ging, anstatt durch sie. Und das schiebt uns nach oben, es sei denn, die Distanz. So können wir gehen und mit verschiedenen Werten spielen. Auf den anderen, die wir testen konnten, vielleicht, wie sich das mit einem Impuls der Oberschenkel anfühlt und ansonsten ziemlich gut. Aber die Hauptsache, die Sie sehen können, ist, dass diese neu zu bewerten, dass die Animation ständig spielt und alles ziemlich reagiert, wie wir hoffen würden, unerwartete. Hoffentlich haben Sie die, die Art der Werte des Hinzufügens dieser öffentlichen Eigenschaften gesehen . So können wir leicht hereinkommen und die Hauswerte jetzt ändern, die Federwerte, so dass wir einige zusätzliche Startseide hinzufügen können. Und wie ich schon sagte, wenn wir wirklich wollten, könnten wir eine der Federn aus irgendeinem Grund setzen, um automatisch zu spielen, einer der heißen, nicht zu spielen. Also, wenn wir reinkommen und NIH spielen, wird dieser aus keinem guten Grund posten. Und das heiße wird an Ort und Stelle eingefroren werden. Also haben wir ein wenig Flexibilität damit, wie unsere Klasse eine funktionierende oder von der gleichen Art von Basisklasse abgeleitet ist , was bedeutet, dass wir programmieren mussten. Ich liebe das nur einmal und wir können es zwischen verschiedenen geerbten Kindklassen wiederverwenden. Jetzt ist die einzige andere Sache, die ich nicht wirklich berührt habe, dass wir viele verschiedene Gegenstände bekommen, die hier reinkommen. Sie sollten also beginnen, einige von diesen umzubenennen, vor allem die Art und Weise, wie wir eine der Hütten in eine Federkomponente oder einen Federdarsteller geändert haben . Es wird immer noch der Standardname genannt. Also können wir sagen, es ist ein Frühlingsakt zu hören, aber es ist immer noch cool. Bp unterstreicht interaktive Gesundheit. Damit alles redagiert werden kann. Wir können dies auf Frühling ändern und das wird irgendwie korrekt aktualisiert. Und wir haben das Gleiche für diesen hier, denn das war nur eine Kopie des Originals, was für die Gesundheit wirklich cool war. Und eine andere Sache, die Sie vielleicht beginnen möchten, ist, dass Sie verschiedene Gruppen erstellen können. So können Sie hier Unterordner haben. Also werden wir einen Feind nennen und einen anderen erschaffen, und wir werden diesen interaktiv nennen. Hauptgrund ist, dass wir dann leicht Feinde und Feinde in Direktiven fallen lassen können. Richtlinien, und wenn wir eine haben, klären Sie die Dinge auf und schauen Sie einfach auf die Ebene, tun Sie ein wenig mehr Level-Design. Wir können bestimmte Dinge verbergen. Natürlich, wenn du auf Play drückst, werden alle diese wiederkommen. Dies ist nur Bearbeitungen sind verwandt. Und natürlich bedeutet es auch, Sie werden nicht diese riesigen Hunderte und Hunderte von Gegenständen zu jeder Zeit fallen lassen, besonders wenn Sie nur so etwas wie die Lichtquelle finden wollten, bewegen Sie sich etwas herum, dann wird es die Dinge ein bisschen einfacher zu navigieren machen und wir können diese Diamanten fallen lassen. Ich bin mit ihnen zusammengearbeitet, wann immer es nötig ist. Mit all dem erledigt, haben wir jetzt die Grundlagen eines 2D-Jump'n'Run eingerichtet und arbeiten innerhalb der Unreal Engine. Hoffentlich in der ganzen Reihe von Videos, Sie sind gekommen, um einige der Macht zu schätzen, die von unwirklich genutzt werden kann. Und obwohl es einige leichte Hindernisse mit dem Flipbook-System gibt, die Art und Weise, wie wir einige der Prozesse der Arbeit mit denen automatisieren können , wirklich nicht so schlimm. Wir haben immer noch dieses wirklich nützliche Pfahlbearbeitungswerkzeug, das wirklich kompatibel mit Kollisionen und Dingen ist, in die ich noch nicht einmal eingetaucht bin. Wie könnten wir Materialien mit der Standardeinstellung im momentan Editor einrichten , um Dinge wie normal zu übernehmen, so dass wir Beleuchtung hinzufügen und im Wesentlichen 3D-Beleuchtungstechniken auf diesen 2D-Sprites replizieren können . Wenn wir diese Informationen zur Verfügung haben, gibt es viel, viel mehr, was Sie damit tun könnten. Aber wieder, das ist wirklich nur, um ein bisschen mehr ans Licht zu bringen als das. Dies ist definitiv mehr als ein geeigneter 2D-Motor sowie 3D. Was wir bereits am Ende des Tages tun, ist weggenommen und der Zugang zu zwei, wieder, unwirklich hat all diese Dinge, wo wir verschiedene Dinge auf verschiedene Achsen beschränken können , damit wir wirklich leicht in einer 2D-Welt arbeiten können. Wenn Sie also diesen Inhalt genossen haben, folgen Sie mir für weitere Inhalte wie diesen Wir werden in Zukunft größere, tiefere Aktualisierungen ähnlicher Inhalte vornehmen . Also seien Sie sicher, dass Sie mir hier folgen für solche Inhalte. Wenn das etwas war, das Sie nützlich finden, wollte ich mehr sehen. Ich hoffe, Sie haben diese Reihe von Videos genossen. Wenn du so weit gekommen bist, dann danke, dass du mit allem gefolgt bist und den gesamten Prozess mit mir durchgemacht hast. Vielen Dank für Ihre Zeit und Ihre Geduld und ich freue mich darauf, Sie in Zukunft zu sehen.