Spiele erstellen, indem du mit Godot Breakout machst | Michael Mcguire | Skillshare

Playback-Geschwindigkeit


1.0x


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

Spiele erstellen, indem du mit Godot Breakout machst

teacher avatar Michael Mcguire, Author | Programmer

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Einheiten dieses Kurses

    • 1.

      Einführung in Skillshare

      0:39

    • 2.

      Was ist Breakout?

      2:58

    • 3.

      Einrichtung des Projekts

      8:24

    • 4.

      Das Paddel erstellen

      6:54

    • 5.

      Spieler-Tweak

      1:05

    • 6.

      Den Ball erstellen

      14:04

    • 7.

      Erstellen der Ziegel

      10:29

    • 8.

      Das Punktesystem

      8:07

    • 9.

      Fehlerkorrektur nach der Punktierung

      2:01

    • 10.

      Die Ballzahl

      6:06

    • 11.

      Überspielen und gewinnen

      15:13

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

14

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Gehe zurück zu dem Ort, an dem alles begann – und beginne deine Reise zur Spieleentwicklung, indem du eines der berühmtesten Spiele aller Zeiten neu erstellst.

In diesem anfängerfreundlichen Kurs lernst du, wie du das ursprüngliche Breakout-Spiel von 1976 mit der kostenlosen Open-Source-Godot Engine nachbauen kannst. Dieses Projekt konzentriert sich auf Grundlagen: sauberer Code, Kernmechanik und getreue visuelle Einfachheit – genau wie das Arcade-Original.

Du beendest das Wissen über:

Triff deine:n Kursleiter:in

Teacher Profile Image

Michael Mcguire

Author | Programmer

Kursleiter:in
Level: Beginner

Kursbewertung

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

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

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

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

Lerne von überall aus

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

Transkripte

1. Einführung in Skillshare: In diesem Kurs werden wir weitermachen und einen Klassiker kreieren, der bis heute einen Klassiker kreieren, der bis heute neu verfilmt wird, auch vor allem auf der mobilen Plattform Und dieses Spiel heißt Breakout. Das Ziel von hier aus ist es, einen Ball zu haben , der an den Seiten der Wände herumhüpft Sie lassen ihn von Ihrem Paddel abprallen und Ihr Ziel ist es, alle Steine, die Sie auf dem Bildschirm sehen, zu zerbrechen alle Steine, die Sie auf dem Bildschirm sehen, Verschiedene Steine geben dir oder Steine unterschiedlicher Farbe, geben dir unterschiedliche Punktezahlen Ordnung. Das ist aufregend Lassen Sie uns anfangen, dieses klassische Spiel nachzubilden , das Sie oder sogar Ihre Eltern vielleicht gespielt haben oder bis heute spielen 2. Was ist Breakout?: Als Nächstes werden wir in diesem Abschnitt eine geringfügige Änderung an Pong vornehmen, und das wird ein Spiel namens Breakout sein Dieser ist von 1976, und eine interessante Tatsache dabei ist, dass der Bildschirm nur schwarz-weiß war, aber wir hatten Farben wie diese, und wir hatten Farben wie diese, wie Sie hier auf dem Bildschirm sehen können, weil sie tatsächlich etwas farbiges Zelophan auf den Bildschirm oder auf den Bildschirm gelegt haben. Aber so wurden sie dort farbig dargestellt, weil der Bildschirm selbst, wie gesagt, nur schwarz-weiß war Nun, was ist Breakout? Nun, ich werde ein bisschen spielen, aber sei gewarnt, dass es ein bisschen blinkt Sie können meine Maus im Moment hier oben links auf Ihrem Bildschirm Und wenn wir das spielen würden, könnten wir sehen, dass wir hier im Grunde einen Ball haben der von den Seiten abprallt und auf ein Paddel trifft und wieder hochprallt Und ich mache Breakout direkt nach Pong , weil wir, wie Sie sehen können, einfach auf der Grundlage dieser Faktoren arbeiten, wir haben bereits ein ähnliches System wie Pong eingerichtet Also werden wir auf dem aufbauen, was wir gerade im vorherigen Projekt gemacht haben Jetzt brauchen wir diesen hier oben nicht wirklich. Ich glaube, das zeigt nur, dass es Spieler eins ist. Technisch gesehen ist es eine Sache für zwei Spieler, aber jede Person wechselt sich sowieso ab, also belassen wir es einfach bei einem Spieler. Außerdem hatte das Zwei-Spieler-System sowieso eine große Maschine dabei, ja. Der nächste hier rechts von dem, der immer noch oben steht. Wenn ich weitermache, sollten wir Zahlen sehen. Da haben wir's. Das heißt, den Überblick darüber zu behalten, auf welchem Ball du bist. Du bist also auf Ball eins, Ball zwei, Ball drei. Sobald du Ball vier getroffen hast, ist das Spiel vorbei. Und die Zahl hier oben in der Ecke, die blinkte, das sind die Punkte, die du bekommst Gelbe Steine geben dir einen Punkt, grüne Steine geben dir drei Punkte, orangefarbene Steine geben dir fünf Punkte und rote Steine geben dir sieben Punkte Jetzt ist es Ihr Ziel, das Spielfeld vollständig von allen Steinen zu befreien. Der Ball wird schneller, er wird schwieriger. Und wie Sie hier sehen, im Vergleich zu Pong haben Sie hier im Vergleich zu Pong ein ziemlich kleines Paddel . Um das in Gang zu bringen Wenn du das Spiel durchgespielt hast, bin ich mir ziemlich sicher, dass das Spiel zurückgesetzt wird, genauso wie wenn du sowieso ein Spiel beendet hättest Wir können also dieselbe Logik anwenden, egal ob wir gewinnen oder verlieren, einfach einen Reset durchführen. Aber das ist ein Ausbruch. Falls du nicht wüsstest, was das ist, und ich bin mir sicher, dass es einige moderne Versionen des Spiels gibt Aber wenn du nicht wusstest, was das war, dann weißt du es jetzt. Und lassen Sie uns weitermachen und mit der Einrichtung unseres Projekts beginnen. 3. Einrichtung des Projekts: Was den Durchbruch angeht, werde ich wohl einfach die gleiche Projektlösung belassen , die wir bei Pong verwendet haben Wenn Sie es ändern möchten, können Sie das natürlich gerne tun. Auch das befindet sich in der Anzeige der Projekteinstellungen und im Fenster. Aber ich bleibe einfach bei dem, was ich von dem letzten Mal hatte , das wir bei Pong gemacht haben Ich bin in mein Projekt eingestiegen habe natürlich einen Breakout-Ordner erstellt Wenn Sie Ihr Projekt als separates Projekt einrichten, werden Sie es wahrscheinlich Breakout nennen, weil es genau das ist, was es Und sobald du bereit bist, anzufangen, können wir unsere Hauptszene kreieren, die hier natürlich nicht viel sein wird , wenn wir darüber nachdenken Ich schätze, dafür könnten wir den Walzer einbauen. Wollen wir das machen? Ja, lass uns das machen. Also werde ich zwei D erstellen . Ich werde hier einfach zwei D sezieren. Das wird mir eine Wurzel geben. Ich habe ein D ohne zwei, was völlig in Ordnung ist. Dafür werde ich weitermachen und das tun, was ich normalerweise mache es umbenennen und es in Mein umbenennen. Ich werde es in meinem Breakout-Ordner speichern. Und wie ich schon sagte, Glick Pong, ich werde meins einfach als SCN speichern, aber du kannst deins als TSCN lassen, wenn du In Ordnung? Also ich habe mein Projekt hier. Also, was brauchen wir? Brauchen wir? Naja, irgendwann werden wir ein Paddel haben, aber das wird in der Spielerabteilung sein Wir brauchen den Ball. Der Ball wird seinen eigenen Abschnitt haben. Wir können die Beschriftungen für die Benutzeroberfläche anbringen, oder? Wir brauchen also einen Platz für den Punktestand, und wir brauchen einen Ort, an dem wir verfolgen können, welche Leben der Spieler hat oder auf welchem Ball sich der Spieler befindet. Und wir werden Wände brauchen, die das ganze Ding umgeben. Also werde ich hochgehen. Wir werden eine Leinwandebene erstellen, so wie wir es immer für unsere Gooeys tun Also werde ich weitermachen und es GUI umbenennen. Darin mache ich mein Etikett, wir wollen genau bleiben, wir können es als eins festlegen. Das ist in Ordnung. Wir können es Spieler nennen. Das ist ehrlich gesagt völlig in Ordnung. Darüber hinaus müssen wir wirklich nichts tun. Als Nächstes wäre das, glaube ich, unser Leben, nicht wahr? Leben oder Anzahl der Bälle. Aktueller Ball. Ja, ich nehme den aktuellen Ball, und der fängt standardmäßig auch mit einer Eins an. Beachten Sie, dass ich die Anker dieses Ballzählers so ändern werde , dass sie sich oben rechts befinden Und ich werde die Ausrichtung links belassen, nur damit sie vom Rand weggezogen wird Und beim Player ändere ich die Ausrichtung so, ändere ich die Ausrichtung so horizontal ausgerichtet ist, sodass sie wieder rechts ist, um sie wieder vom Rand wegzuziehen. Das ist hier nur eine persönliche Präferenz. Und wir werden zwei weitere Labels benötigen. Also werde ich hier einfach den Player duplizieren und ihn runterholen. Und ich werde das einfach Punktestand nennen. Ich denke, ich sollte es eigentlich Score-Label nennen , weil es das ist, was es ist. Und ich benenne den aktuellen Ball in den aktuellen Ballnamen um. Weil wir keine Variablen benötigen, um genau den gleichen Namen wie andere Notizen in der Szene zu haben , und das macht die Sache etwas verwirrend, wenn wir weitermachen. Punkte-Label wird für uns hier natürlich drei Nullen sein In Ordnung. Also werden wir Wände für uns aufstellen müssen. Also diese Wände, ich werde zurück auf meinen Hauptknoten klicken. Wir werden Wände hinzufügen und sie bewegen sich nicht. Also verwende ich einen statischen Körper mit zwei D. Denken Sie daran, dass sie sich überhaupt nicht bewegen, egal was auf sie trifft. Also, das ist der einzige Grund, warum ich das mache , weil sie im Originalspiel sichtbar waren. Also werde ich meinem statischen Körper ein Sprite mit zwei D hinzufügen. Und denk dran, es ist ein Physikkörper, und er hat ein gelbes Dreieck, das uns sagt: Hey, es braucht eine Kollision Fügen wir ihm also eine Kollisionsform hinzu. Und wir können weitermachen und dieser Form ein Rechteck geben. Das ist in Ordnung. Sprite zwei D. Texture, mach es genauso, wie wir es vorher gemacht haben Neue Gradientextur, öffne sie, öffne unseren Farbverlauf, wähle Schwarz aus, ändere es in Weiß Und jetzt ändere ich einfach die Größe. Bring es runter. Ich werde das Ganze runterholen Und wir werden es bis zum Rand ausdehnen. Okay. Also ich habe hier eine Wand. Ich benenne meinen statischen Körper um, sagen wir Wand. Ich werde das ausgewählt haben. Oh, ich muss auch meine Kollisionsform ändern. Dann drücke ich jetzt Control D an meiner Wand, um ein Duplikat zu erstellen, aber es gibt etwas, das Sie beachten müssen. Wenn du das hier machst, wie kann ich nicht einfach den Pfeil festhalten Los geht's. Zieh es einfach rüber. Ungefähr zentriert. Da haben wir's. Wenn du duplizierst, gibt es manchmal Dinge, die du hier einzigartig machen musst Wenn ich zum Beispiel die Kollisionsform hier bei meinem ersten Bild aufnehme und sie ändere, sehen Sie, dass sich das auf beide auswirkt Wir müssen also in unsere Wand gehen , unsere zweite Wand, und wir müssen in Dinge wie Kollisionsform auf der Form und unseren Inspektor gehen, zum Drop-down-Menü gehen und Make Unique auswählen. Und wenn wir das jetzt ändern würden , würde sich das nicht auf beide auswirken. Es wird sich nur auf das eine auswirken, weil sie jetzt als separate Objekte, separate Formen klassifiziert sind. Sie teilen sich also nicht dasselbe. Ordnung. Und wir brauchen noch eine Mauer , um nach oben zu gehen. Also müssen wir irgendwo in der Mitte sein, und wir müssen die Größe dieser Objekte Sprinte das runter. Und ich werde hier einfach eine Größe vergleichen. Das ist ungefähr die gleiche Dicke. Ordnung. Und ich hole meinen Sprite raus Anpassungen. Los geht's. Das ist in Ordnung. Jetzt muss ich dasselbe mit der Form machen. Aber denk dran, ich habe es dupliziert, also muss ich reinkommen und es einzigartig machen , bevor ich es ändere Und jetzt kann ich reinkommen und es manipulieren , wie ich will Richten Sie das aus. Hervorragend. Jetzt haben wir unsere drei Wände errichtet und sie stoßen aufeinander. Wenn der Ball darauf trifft, müssen wir nur das Abprallen einrichten, und das sollte in Ordnung sein Der Boden ist weit offen. Unser Paddel, da können wir einfach reinklatschen. Wenn wir unseren Spieler, den Ball, wir ihn später auf, und die Steine, glaube ich, werden wir auch später machen, was bedeutet , wir mit unserem Setup hier fertig sind Also macht weiter und wir sehen uns im nächsten wo wir weitermachen und damit beginnen werden , unser Paddel aufzustellen 4. Das Paddel erstellen: Lasst uns weitermachen und den Kampf um den Durchbruch organisieren. Das wird also Pong ähnlich sein, nur dass wir uns nicht auf und ab bewegen, sondern nach links und rechts bewegen werden Also, in unserer Hauptszene. Und wenn Sie es noch nicht getan haben, sollten Sie wahrscheinlich sparen, da Sie sich bereits eingerichtet haben. Wir können weitermachen und einen Charakterkörper zwei D hinzufügen einen Charakterkörper zwei D , denn das wird unser Spieler sein. Wir können ein Sprite mit zwei D hinzufügen, damit wir unser Paddel anzeigen können. Und natürlich benötigen wir eine Kollisionsform für den Körper dieses Charakters Also werde ich meinen Charakterkörper in Spieler umbenennen . Sprite zwei D, ich gehe in die Textur, neue Verlaufstextur zwei D, wähle sie aus, öffne den Farbverlauf, male das Schwarz, ändere es in Weiß Ich kann sehen, dass es sich dort nicht automatisch für uns ändert , also werde ich einfach HDR verwenden und es dann ausschalten Jetzt haben wir ein kleines Paddel damit, also werde ich einfach weitermachen und das runterholen Ja, vielleicht wäre so etwas gut. Und ich füge eine Kollisionsform hinzu. Ich werde die Farbe ändern, damit es auffällt. Wir werden uns für Rot entscheiden. Und ich werde daraus ein Rechteck machen. Nehmen Sie es als Seite unseres Paddels auf. Perfekt. Schnappen Sie sich jetzt unseren Player und bewegen Sie ihn auf dem Bildschirm nach unten , wo wir eine gute Startposition haben möchten. Ich werde ein Feld unter meinem Spieler unter meinem Paddel haben meinem Spieler unter meinem Paddel Ich werde diese Szene durchgehen und ansehen, um zu sehen, wie sie mir gefällt Ja, ich denke, das ist ein fairer Platz. alles klar. Also gehe ich jetzt zu meinen Projekteinstellungen. Ich werde meine Mappings erstellen , die ich für dieses Spiel verwenden werde In diesem Fall habe ich bereits einige davon, die ich zuvor hatte, aber ich denke, ich werde mit dem Thema weitermachen und einfach links ausbrechen und rechts ausbrechen Nein, links ist natürlich A. Rechts, es wird D sein. Natürlich könnten es für Sie Pfeiltasten sein, wenn Sie das bevorzugen. Und jetzt braucht unser Spieler ein Drehbuch, damit wir loslegen können. Lass uns sehen. Res, Breakout-Spieler. Ja, das ist Erweiterung eines Zeichenkörpers um zwei D, geschriebenes GD-Skript. In Ordnung, erschaffe. Alles, was wir hier brauchen, ist unsere Bewegung. Also, falls du dich noch erinnern kannst, wir hatten eine Geschwindigkeit, die ein Int einer Zahl war. Ich mache weiter und setze es auf 30. Und lass uns sehen. Wir können auf unsere Funktion, den physikalischen Prozess, eingehen, weil wir es hier mit Bewegung zu tun haben, und wir können weitermachen und Move und Slide verwenden, obwohl wir dieses Mal vielleicht möchten , dass wir uns bewegen und kollidieren Wir können es versuchen. Mal sehen, was passiert. Bewege dich und kollidiere und wir passen die Geschwindigkeit einfach selbst an Und unser Geschwindigkeitspunkt X. Wir müssen tatsächlich zuerst unsere Eingaben abrufen Also gebe ich Punkt für Aktion ein, gedrückt, links ausbrechen. Also bei diesem werden wir auf dem X negativ werden Nehmen wir also an, Geschwindigkeit X ist gleich negativ mal Geschwindigkeit L, wenn die Eingabe auf Aktion gedrückt wird. Brechen Sie aus, richtig. Wir werden das Gegenteil tun. Wir werden dafür sorgen, dass der Geschwindigkeitspunkt X Einfachen unserer Geschwindigkeit entspricht, und das können wir uns ansehen Ich werde einfach weitermachen und die Szene durchgehen . Und mir wurde gerade klar, dass ich da nichts anderes reingetan habe. Und wenn ich es einmal treffe, bewegen wir uns, und das ist wirklich schnell. Also werde ich das wahrscheinlich oft ablehnen. Wir werden auf fünf runtergehen und das könnten wir versuchen. Und ich mache weiter und lege unseren anderen Block da rein. Also sonst ist Velocity Punkt X gleich. Weißt du, was ich insgesamt sagen kann , ist Geschwindigkeit gleich einem Vektor 20, und das ist es, was uns eine Null auf dem X und Null auf das Y geben wird, was in Ordnung ist, weil das Y in diesem Spiel für uns nicht beeinflusst wird Und das ist einfach einfacher zu lesen, als wenn der Geschwindigkeitspunkt X gleich Null ist. Wenn wir einfach sagen würden, dass die Geschwindigkeit Null ist. In Ordnung, also versuchen wir es noch einmal mit unserer neuen Geschwindigkeit. Ordnung? Mir gefällt das, aber es ist vielleicht ein bisschen zu schnell für das, was ich Also werde ich weitermachen und das ändern , vielleicht versuche ich es mit drei. Und ich glaube, das wurde aktualisiert, aber nur um sicher zu gehen, werde ich es neu starten. Ja, ich denke, das wird gut für meine Geschwindigkeit sein. Also, wenn du langsamer fahren willst, kannst du das. Wenn du schneller fahren willst, liegt das an dir. Ich versuche zu bedenken, dass der Ball auf Veranden schneller wird , genau wie bei Pong In Ordnung. Großartig. Also habe ich meinen Player eingerichtet, und wenn ich aufhöre, Knöpfe zu drücken, werden wir einfach aufhören, uns zusammen zu bewegen. Da ist also mein Player. Und als Nächstes können wir weitermachen und unseren Ball erstellen lassen und den Ball darin spawnen lassen Und vielleicht kriegen wir das Hüpfen auch hier drinnen in Schwung. Vielleicht machen wir das alles in einem Video für den Ball. Richtig. Also, wir sehen uns im nächsten Spiel, wenn ihr euer Paddel aufgebaut habt , und wir fangen an, unseren Ball für das Spiel zu kreieren Und sobald wir den Ball haben, bauen wir unsere Steine auf. 5. Spieler-Tweak: Vielleicht merkst du es, wenn ich hier reinkomme. Da haben wir's. Mein Paddel bewegt sich immer noch ungefähr genauso, aber ich habe einige Änderungen vorgenommen, und ich möchte dir das nur zeigen, nur für den Fall , dass du etwas verwirrt bist , wenn du es später siehst Wenn ich also zu meinem Skript gehe, ist meine Geschwindigkeit jetzt bei 200. Und was ich anders mache, ist Geschwindigkeit mal Delta, und genau das sollten Sie tun, wenn wir hier bewegte Objekte haben. Jetzt müssen wir das nur noch mit Move and Collide machen. Wir müssen das nicht mit Move and Slide verwenden , weil Move and Slide nach meinem Verständnis das eigentlich in sich selbst berechnet, oder? Aber wenn wir Moving Cloud verwenden wie wir es in diesem Projekt tun, müssen wir unsere Geschwindigkeit mit Delta selbst multiplizieren . In Ordnung. Also ich wollte das nur ganz schnell zusammenbringen, bevor wir weitermachen und zusehen, wie das durcheinander gerät. Und dann bekomme ich vielleicht ein paar Fragen dazu, weil ich es nicht erwähnt habe. 6. Den Ball erstellen: Mach weiter und erschaffe jetzt unseren Ball für unser Spiel, richtig? Also gehe ich hier in mein Hauptfeld, drücke Plus, und ich verwende einen Charakter, Körper zwei D. Ich mache weiter und benenne ihn in Ball um. Natürlich braucht es eine Kollisionsform, oder? Das macht Sinn, und wir brauchen einen Sprite, damit wir ihn sehen können Genau wie unser Spieler, Okay, also unsere Textur, du weißt, wo wir an dieser Stelle hinwollen , sprühen Sie zwei D, Inspektor, Textur, neuer Farbverlauf, zwei D, öffnen Sie den Farbverlauf, wählen Sie Schwarz aus, ändern Sie ihn Da haben wir's. Das ist offensichtlich zu groß. Also lass es uns verkleinern. Sehen Sie. Wie groß wollen wir das Ziel erreichen? Bring das Ganze her. Lass uns das Spiel hier nicht so schnell spielen. Schauen Sie sich das an. Ähm, ich finde das in Ordnung. Ich möchte wahrscheinlich nicht weiter gehen. Obwohl. Wenn du kleiner werden willst, könnten wir das sicherlich. Wirf noch einen auf jeder Seite rein und mach so was. Und ich muss die Transformation neu starten. Also mit meinem Ballinspektor, ändere die Position. Ich werde auf die Reset-Taste klicken damit ich es wieder hier in die Ecke stellen kann , wo es sein sollte. Kollision. Ich gebe ihm eine neue Farbe, nehme eine grüne Form, ein Rechteck und schrumpfe den bösen Jungen hinein Und jetzt haben wir viel Spaß . Jetzt nehme ich den Ball und positioniere ihn hier neu . Den ganzen Weg hier unten. Weil der Ball nicht auf dem Spieler spawnt, sondern direkt über dem Spieler, und dann wird er abgeschossen So wie ich es bis jetzt machen werde, denke ich, werden wir es so lassen Das ist für die aktuelle Zeit. Und lass uns sehen. Ich mache weiter und füge meinem Ball ein Drehbuch hinzu, überprüfe meinen Weg, breche Ball heraus, Charakterkörper, zwei D, GD, Drehbuch, richtig, erstelle. Und was wir brauchen werden, ist eine erste Richtung, in die es läuft , in die es geht. Wir können also weitermachen und unserem physikalischen Prozess beginnen, weil wir ein physikalischer Körper sind und uns bewegen. Wir können uns bewegen und kollidieren. Obwohl ich denke, ich werde einfach MoveN IDE verwenden, vielleicht mit dieser Wir brauchen unseren Velocity Dot X. Ja. Und unsere Geschwindigkeit Y. Wir müssen beide Werte einstellen, und ich sage: Oh, wir brauchen keine Konstante Ich werde weitermachen und eine Variable namens Geschwindigkeit erstellen. Dies wird keine Konstante sein, denn denken Sie daran, dass sich unsere Geschwindigkeit im Laufe der Zeit nicht ändern muss , da sie schwankt. Und ich setze das zunächst auf 30, und wir werden es uns ansehen also vorerst einfach weitermachen und es auf eins, Lassen Sie uns also vorerst einfach weitermachen und es auf eins, nur das Einmalige der Geschwindigkeit, einstellen . Und wir werden dasselbe mit Y machen, nur dass wir es natürlich negativ machen, damit es vorerst steigt. Und ich will nur sehen, mit welcher Geschwindigkeit es gehen wird. Es sind also 30. Das scheint eine völlig gute Startgeschwindigkeit für uns zu sein. Ich denke, wir werden etwas Ähnliches tun wie mit Pong, und wir werden sehen, wie das funktioniert , wie weit wir damit gehen können , bevor wir mögliche Änderungen vornehmen müssen Also werde ich eine H-Richtung und eine V-Richtung haben, damit wir sie für unsere hier weitergeben können, und ich beginne unsere Vertikale mit einer Minus-Eins Und hier kommen unsere Änderungen ins Spiel, oder? Also basierend darauf, ob wir auf ein Stockwerk gestoßen sind, auf eine Decke gestoßen sind und so weiter. Also lass uns weitermachen und sagen, ob es auf Whoops ist. Siegeln in Richtung B ergibt mal minus eins, also das wird es umdrehen Aber wir wollen es nicht einfach an der Decke machen. Wir wollen es auch tun, wenn wir auf den Boden treffen, weil der Boden dann sein wird , wenn er auf unser Muster trifft. Oder ist Whoops, ist auf dem Boden. Nun, das könnte funktionieren. Das könnte nicht funktionieren. Wir müssen uns ansehen wie das funktioniert, weil wir mit Pong zusammengearbeitet haben Wir wissen, wie man diese Bounces macht, also werden wir es uns ansehen Richtig? In Ordnung. Also lass uns mit LF gehen. Wir werden mit dem arbeiten, von dem wir wissen, dass es auf Wall ist. H-Richtung mal minus eins. Ordnung, also lass uns das spielen und schauen wir uns an, wie das läuft Also geht der Ball. Es sollte hier abprallen. Das tut es Sollte von oben abprallen. Tut es Es kommt runter. Es könnte uns treffen. Es könnte gegen die Wand stoßen. Wir werden sehen. Es wird uns treffen. In Ordnung, es sieht also so aus, als hätten wir unsere Sprünge. Sieht aus wie Pong. Das funktioniert perfekt, zumindest vorerst. Soweit es uns betrifft, haben wir unseren Bounce codiert. Wir haben unseren Player eingerichtet. Der Unterschied besteht nun darin , dass wir das beschleunigen wollen. Und wir werden das beschleunigen, egal worauf es abprallt, oder? Also werden wir weitermachen und sagen, wir werden weitermachen und Geschwindigkeit plus gleich fünf machen Das machen wir auch, wenn wir gegen eine Wand stoßen. Also sollten wir sehen, dass sich das jedes Mal beschleunigt , wenn es abprallt, genau wie wir es bei Pong getan haben Also lasst uns einfach geduldig sein und einen Blick darauf werfen. Es gibt einen Bounce, zwei Bounces, wir sind bei plus zehn. Wir werden irgendwo hier unten zuschlagen. Bum, 15, 20, also sollten wir bei Tempo 50, 55, 60 sein , und ich habe es nach unten abgeprallt, also ist es jetzt außerhalb der Grenzen Das hätte den sauren Ball verloren. Aber wir wollen sichergehen, dass wir eine Höchstgeschwindigkeit festgelegt haben . Nun, was dieses Maximum ist, weiß ich nicht. Wir müssten es testen. Wir haben dort gesehen, dass wir auf etwa 55 gestiegen sind. Es war nicht so schlimm. Also vielleicht können wir eine Höchstgeschwindigkeit von vielleicht 100 erreichen. Also, wie halten wir das im Griff? Nun, wir müssten unsere Geschwindigkeit festlegen. Das ist gleich, und wir wollen das Minimum erreichen. Also werden wir sagen, dass der Mindestwert zwischen dem was das tut, uns den Mindestwert der Argumente, die wir übergeben, zurückgegeben wird . Wenn wir also Geschwindigkeit plus fünf, Höchstgeschwindigkeit sagen , gibt uns das entweder Geschwindigkeit plus fünf oder es gibt uns Höchstgeschwindigkeit, je nachdem, was die kleinere Zahl ist, und das ist, was Geschwindigkeit entspricht Auf diese Weise wird die Geschwindigkeit kontinuierlich steigen, aber sie wird hier niemals die Höchstgeschwindigkeit überschreiten Stimmt das? Und das können wir unten machen. Der nächste. Da haben wir's. Und ich werde einfach weitermachen und das Gesehene speichern. Und im Moment, wie ich schon sagte, sieht es so aus, als ob alles perfekt für uns funktioniert. Wir wollen aber den Spawn des Balls festlegen, wenn wir anfangen, weil es normalerweise eine kleine Pause gibt, wenn das passiert, und dann spawnt er über dem Spieler, also lasst uns weitermachen und das ganz schnell einbauen. Das wird in unserer Bereitschaftsfunktion hier für den Ball sein hier für den Und was ich tun werde Ah, ja. Und weißt du was? Das ist in Ordnung. Ordnung, also lass uns weitermachen, wir werden etwas namens Await benutzen Ich glaube, ich habe das schon bei Pong erwähnt, als wir den Abschnitt Game over oder den Game Win Screen hatten, wie auch immer du es nennen wolltest , warten, Unterstreichungsbaum holen, Timer erstellen Wir können eine Zahl drei und ein Punkt-Timeout eingeben. Und dann, nach der hier vordefinierten Zeit, dann machen wir, was danach kommt, was in unserem Fall die Position erzeugen wird In Ordnung, also lass uns weitermachen und wir können es tun. Mal sehen. Anstatt hier vordefinierte 3 Sekunden zu haben, wir weiter und machen ein Rd, ist es Randi- oder Rand-Bereich Ich glaube, es ist Randi. Wer, ist es nicht ganz, geht da nicht rein. Es wird Prozent drei plus eins sein. Nun, das ist exklusiv, und das bedeutet, dass wir eine zufällige Ganzzahl bis zur Zahl Drei erhalten. Da es sich jedoch um Code handelt, erhalten wir 01 und zwei. Und natürlich wird Null hier nicht akzeptabel sein, weil wir irgendeine Art von Bonus benötigen. Also mache ich plus eins. Also egal, welche Zahl wir bekommen, wir werden eine hinzufügen. Wenn wir also auf Null kommen, machen wir plus eins. Das bedeutet, dass unsere Mindestzahl eine Eins ist. Und wenn wir dann tatsächlich eine Eins hätten , würde daraus eine Zwei werden. Wenn wir eine Zwei hätten, würde daraus eine Drei werden. Also jetzt bekommen wir 1-3, das. Ordnung. Also werden wir eine zufällige Zeit warten. Und dann legen wir unsere Position so fest, dass sie sich dort befindet, wo sich der Spieler gerade befindet. Wir sagen also, dass die globale Position der Position des Spielers entspricht, worauf wir keinen Bezug haben Ich mache weiter und mache das hier. Ich exportiere dafür unseren Spieler als Charakterkörper zwei D , den ich setzen kann, und unsere Position wird auf die globale Position des Spielers gesetzt. Wir werden nur Y ändern, weil wir wollen, dass es über dem Spieler steht. Wir müssen also eine globale Position einnehmen, Punkt Y minus ist gleich. Sagen wir fünf Wir werden sehen, wie das läuft. Aber denk dran, ich muss hier zu meinem Ballskript gehen und die Spielervariable einstellen, die zugewiesene Taste drücken und unseren tatsächlichen Spieler auswählen. Und wir werden sehen, wie das funktioniert. Zunächst werden wir die Geschwindigkeit auf Null setzen, weil wir noch nicht wollen, dass sich der Ball bewegt. Ich gehe in die Szenenhierarchie und klicke auf den kleinen Augapfel, um ihn auszublenden Wenn wir also einen Blick darauf werfen und ich darauf klicke, verschwindet der Ball wieder im Ballskript, nachdem wir die Position festgelegt haben , richtig? Also haben wir gewartet. Wir haben es der Spielerposition gleichgestellt. Wir haben den Ball über den Spieler gehoben. Dann legen wir die Sichtbarkeit des Balls fest, also sagen wir einfach sichtbar. Entspricht wahr, um es zu zeigen. Und dann stellen wir die Geschwindigkeit auf 30 ein. Und wir können das sogar mit einer Konstante festlegen, nur um die Dinge noch klarer zu machen Wir nennen das Startgeschwindigkeit. Jetzt können wir einfach sagen, dass Geschwindigkeit gleich Startgeschwindigkeit ist. Ordnung, also wenn wir das spielen, werden wir den Ball sehen. Da haben wir's. Es ist einfach auf uns aufgespritzt und hat sich von selbst abgespült. Und wenn wir das noch einmal tun, können wir es sehen. Da ist es. In Ordnung, wir haben also unseren Ball laichen lassen. Es spawnt fast den Spieler. Ich glaube, ich möchte das tatsächlich auf zehn statt auf fünf setzen, weil diese fünf ein bisschen nahe aussahen Das war vielleicht nur ich, während wir umhergezogen sind. Aber ich werde das auf zehn ändern, richtig, wir haben unseren Ball am Laufen. Es hüpft herum Sobald wir ein paar Steine drin haben, werden wir sehen, ob unsere Sprünge immer noch gut sind oder ob wir etwas anpassen müssen Und ich schätze, wir fangen an, die Steine zu zerstören, unsere Punkte zu ermitteln und die Bälle zu zählen, wenn wir sie oder unser Leben verlieren Ich schätze, an diesem Punkt werden wir ziemlich gut fertig sein, abgesehen von allem, was wir noch optimieren wollen In Ordnung, wir haben also die Grundlagen unseres Balls zum Laufen gebracht. Und als Nächstes schauen wir uns unsere Steine an. 7. Erstellen der Ziegel: Ordnung, also machen wir weiter und erstellen die Steine für uns für unser Spiel hier, und die Steine werden ungefähr die gleiche Größe wie der Spieler. Also werde ich das kopieren. Ich gehe zu meiner Hauptanzeige und wir könnten einen statischen Körper machen. Ja, weil wir sie überhaupt nicht brauchen, um sich zu bewegen. Und das nenne ich mal gelben Ziegelstein. Dieser gelbe Ziegelstein braucht eine Kollisionsform und einen Sprite also ein bisschen zu schummeln , gehe ich zu meinem Spieler Ich klicke auf Sprite Two D, halte Shift gedrückt, klicke auf Kollisionsform, mache Control C. Gehe zu meinem gelben Stein und drücke Strg V, um sie irgendwie hinzuzufügen. Denken Sie jetzt daran, was ich vorhin gesagt habe. Wir werden reinkommen und sie einzigartig machen. Und einzigartig rekursiv machen. Dass wir den Gradienten auch machen können. Kollisionsform, schnapp sie dir, mach sie einzigartig und für die Farbe. Klar, lass uns vorerst ein gelbes nehmen. Aber jetzt haben wir einen gelben Stein und wir können diesen Stein nehmen und ihn an einer beliebigen Stelle in unserem Spiel platzieren. Ich könnte zum Beispiel einen hier platzieren und ihn einfach anordnen. Jetzt kann ich einfach Control D machen und den nächsten rauswerfen. Also ich denke, ich werde diesen kleinen Abstand dazwischen machen. Steuerung D, dirigieren Sie den nächsten raus. Und ich werde einfach versuchen, das so konsistent wie möglich zu halten . Und ich werde weitermachen und das ganz rüberziehen. Wirklich schnell. In Ordnung, also ich habe weitergemacht und ich habe all diese gelben Steine hier aufgestellt, und es gibt eine Menge davon Und ich habe zwei Reihen. Ich sehe nicht von oben. Ich kann mich nicht erinnern, ob sie zwei oder drei Reihen im Spiel hatten , aber im Moment habe ich zwei Reihen. Und hier gibt es viele, die zusammenbrechen könnten. Ich habe sie einfach alle zusammengebrochen. Leider nicht Nein, das ist nur für die eine Branche. Nun, das ist leider so. Vielleicht fehlt mir irgendwo eine Tastenkombination. Aber im Moment ist das nicht wichtig. Sie können sehen, wir haben all diese Steine hier fertig aufgestellt. Und ich möchte Ihnen zeigen, wie wir herausfinden werden , was wir treffen. Denn alles, was wir tun müssen, ist dasselbe Setup erneut zu erstellen, zwar für die orangefarbenen Blöcke, roten Blöcke und grünen Blöcke. Aber um Ihnen zu zeigen, wie das funktioniert, werde ich in meinen Ball gehen, in mein Ballskript gehen und innerhalb eines physikalischen Prozesses werden wir hier eine If-Aussage machen. Also werden wir im Grunde sagen, wenn wir mit etwas kollidieren, dann werden wir den Namen der Sache ausdrucken , mit der wir kollidiert sind, richtig Also wenn ja, zählt eine Gleitkollision . Wenn das also alles andere als Null ist, wird das für uns wieder wahr werden, und das bedeutet im Grunde nur, dass wir sagen, wenn wir mit etwas kollidieren, und wenn ja, dann werden wir drucken Und was wir drucken werden, ist Slider Collision. Und wir werden einen Index von Null übergeben , weil wir das erste Objekt erhalten wollen , mit dem wir kollidieren, was in Wirklichkeit immer nur mit einem Objekt gleichzeitig kollidieren sollte Wenn wir also weitermachen und nicht drucken, sondern das abspielen, sollten wir einen Blick darauf werfen. Wir sollten unten in unserer Ausgabe den gelben Stein sehen, Wir sollten unten in unserer Ausgabe den gelben Stein sehen der gedruckt wird Ja, das sind alle unsere. Da ist meine Verwirrung in der Schrift. Wir drucken die Kollision der ersten Seite, aber was wir tun müssen, ist den Collider zu bekommen, also das eigentliche Objekt, mit dem wir kollidieren Und dann drucken wir den Namen. Also gib Slide Collision ein, gib eine Null ein, erhalte Collider, Punktname Und wenn wir das tun, sollten wir sehen, dass der Name unserer Steine ausgedruckt wird, wenn er auf Objekte hier unten im Inspektor trifft Geh zu gelbem Backstein 12. Spieler, Mauer zwei, Gelber Stein 16, Spieler, Mauer, Gelber Stein drei, Spieler. Gelber Stein 20, Mauer, Spieler. Gelber Stein acht, Mauer, Spieler. Gelber Ziegelstein 11, du verstehst also, was ich meine. Richtig. So werden wir also weitermachen und die Dinge so einrichten unsere Steine tatsächlich zerstören und unsere Punkte darin festlegen. Und nun, ganz allgemein , so werden wir zunächst feststellen, ob wir auf einen Stein stoßen. Aber richtig, also mache ich weiter und nehme meine Steine, verwandle sie in die anderen Farben für meine Steine oder setze sie ein, und ich bin gleich zurück. Es ist nicht nötig, dir wirklich zu zeigen, wie das geht. Ich habe dir bereits gezeigt, wie man einen Stein macht und ihn einfach kopiert und ihn so weit schiebt, bis ich zwei Ebenen habe. Ich werde dasselbe machen, aber mit verschiedenen Farben. Und auch bei diesen Farben kann ich hier in meinen Farbverlauf gehen und einfach diese beiden Farben ändern sodass wir tatsächlich die Farben am Ende haben. Das wird ein gelbes Ding sein. Ich werde meinen Code da unten kopieren. Wählen Sie das andere Weiß aus und fügen Sie es ein. Und wenn ich es spiele, wirst du sehen, dass wir jetzt einen haben. Oh nein, wir haben sie alle. Das stimmt, weil wir sie kopiert haben. Also haben wir jetzt alle meine gelben Steine. Jetzt kann ich einfach weitermachen und meine orangefarbenen Steine erstellen. In Ordnung. Also gib mir nur 1 Sekunde und ich mache weiter und erstelle das Du kannst weitermachen und natürlich pausieren und all deine Steine erstellen und einrichten. Ordnung, ich habe alles durchgesehen und alle meine Steine erstellt, und ich habe das Video noch einmal überprüft . Es gibt nur zwei Schichten von Gelb, Grün, Orange und Rot. Also, was brauchen wir von unseren Ziegeln noch für unsere Steine? Wir müssen sie tatsächlich vernichten, wenn sie getroffen werden. Wenn wir also zu unserem Code übergehen, sollten wir das leicht erkennen können. Anstatt hier zu drucken, werde ich weitermachen und eine Ops-Variable erstellen , eine Variable namens Objektname. Diese große Schnur. Das wird dem entsprechen, was wir ausgedruckt haben. Geben Sie also Slide Collision Zero ein. Ermittelt den Namen des Collider-Punkts. Und dann können wir von hier aus weitermachen und überprüfen, ob Wow. Wenn der Objektname eingebaut ist, was es natürlich sein sollte, zumindest mit der Art und Weise, wie meine Benennung eingerichtet ist, oder? Gelber Backstein, grüner Backstein, orangefarbener Backstein, roter Backstein. Das tut mir leid. Was ist, wenn Brick im Namen und im Objektnamen vorkommt? Dann müssen wir das Objekt holen und es freischalten. Und um das zu tun, sollten wir eigentlich auch den Collider speichern So wie der Name, werden sie auch einen Var Collider bekommen Damit werde ich so gut wie möglich eingrenzen, weil ich es nicht einfach einen statischen Körper nennen kann, wie es bei den Ziegeln der Fall weil ich es nicht einfach einen statischen Körper nennen kann, wie es einen statischen Körper nennen kann, wie ist, weil es nicht immer Ziegel sein werden, oder? Könnte die Mauer sein. Die Wand ist auch ein statischer Körper, ein statischer Körper. Okay, es sieht also so aus, als würden wir einen statischen Körper verwenden. Aber vergiss nicht, unser Spieler ist ein Charakterkörper. Also müssen wir das berücksichtigen. Die niedrigste Form , die wir hier verwenden können , ist einfach, ihn als physikalischen Körper zwei D zu klassifizieren . Und das entspricht natürlich t Slide Collision Zero Dot Yet Collider Der Collider wird unser Objekt sein. Der Objektname wird der Name der Sache sein. Wenn Brick im Namen ist, dann nehmen wir den Collider und fahren los Ordnung. Mal sehen, wie das funktioniert, wenn unsere Steine zerstört werden. Los, kleiner gelber Weg. Hab ich getan. Unser gelber Backstein wurde zerstört, mal sehen. All diese Steine sollten auch funktionieren. Da das Gelbe funktioniert wir alle nach derselben Logik arbeiten , weiß ich nicht, warum ich nach links gerückt bin. Das hat das alles komplett ruiniert. müssen wir den Respawn hier reinbringen Irgendwann müssen wir den Respawn hier reinbringen, damit wir das Spiel nicht immer wieder neu starten müssen, wenn wir bei damit wir das Spiel nicht immer wieder neu starten müssen solchen Tests den Ball verpasst Ein Boom. Er geht. Ja, Sir. Wir haben fast eine gute Menge von der ersten Schicht, und ich habe sie von der Seite abgeprallt, aber ich glaube, wir können davon ausgehen , dass alle Steine daraus funktionieren, da sie auch hier alle auf derselben Sache arbeiten Sie haben Backstein in ihrem Namen entfernt. Wir wissen, dass wir das bestätigen können. Fantastisch. In Ordnung. Also haben wir jetzt all unsere Steine, unsere roten, orangen, grünen und gelben Sie sind alle eingerichtet. Wir können sie vernichten. Der Ball prallt von ihnen ab, völlig in Ordnung. Richtige Erkennungen Als Nächstes schauen wir uns an, wie wir unsere Punkte für den nächsten Abschnitt aktualisieren, was bedeutet, dass wir für jeden Stein, den wir zerstören, Punkte bekommen für jeden Stein, den wir zerstören, Punkte 8. Das Punktesystem: Nun, damit wir anfangen können, Dinge wie den Punktestand im Auge zu behalten , brauchen wir tatsächlich einen Punktestand, den wir im Auge behalten können. Also gehen wir hier bis zu unserem Kerl und fügen ein nettes kleines Drehbuch hinzu. Wir werden einen erstellen. Wir werden eine Variable namens Score erstellen. Es wird natürlich eine Ganzzahl geben, Null. Da haben wir's. Und in der Ready-Funktion werden wir einige Dinge einrichten, wie zum Beispiel den Punktestand . Aber ich möchte auch weitermachen und in meinem Due das Punkte-Label auch das Punkte-Label und das aktuelle Ball-Label einrichten. Also werde ich diese mit den Exporten verwenden. Also exportiere Ups, nicht Speicher, Export, Bogenlabel. Das ist ein Etikett. Und das Gleiche. aktuelle Balletikett Export VR hat natürlich ein Etikett. Jetzt kann ich diese in der GUI auswählen. Inspektor, klicken Sie auf Zuweisen. Das Notenlabel wird das Notenlabel sein. aktuelle Ball wird der aktuelle Ball sein. Okay. Jetzt bin ich bereit, wir können jetzt loslegen. Punkttext der Punktebezeichnung entspricht GORE. Wir müssen ihn auffüllen und in eine Zeichenfolge umwandeln, also STR am Anfang, offene Geben Sie die Punktzahl ein, schließen Sie die Klammern und füllen Sie Nullen auf, und wir werden sie mit drei auffüllen, weil wir mit diesem Spiel definitiv dreistellig werden können und wir werden sie mit drei auffüllen, weil wir mit diesem Spiel definitiv dreistellig werden können. Einfach genug. Und wir benötigen hier eine weitere Variable für den aktuellen Ball, den aktuellen Ball und beginnen bei eins, wie es im Spiel der Fall ist. Und wir werden sicherstellen, dass dies für unser aktuelles Balllabel festgelegt wird. aktuelle Punkttext für die Ballbeschriftung entspricht also einer Zeichenfolge aus der aktuellen Kugel Wenn Sie es jetzt ausführen, wird es nicht anders aussehen als zuvor Und natürlich bekommen wir immer noch keine Punkte, aber wie du gesagt hast, sieh wenigstens zu , dass nichts kaputt ist, was großartig ist. Lass uns sehen. Also, was brauchen wir jetzt? Wir müssen unseren Punktestand tatsächlich aktualisieren. Und wenn wir das tun, müssen wir den Text hier aktualisieren. In Ordnung. Also lass uns zu unserem Ballskript gehen. Und wenn wir auf einen Stein stoßen, bevor wir mit ihm kollidieren oder bevor wir loslassen, müssen wir das überprüfen oder zumindest werden wir das Häkchen ich gelb im Objektnamen bin, setzen, wenn ich gelb im Objektnamen bin, machen wir das, und wir machen das einfach ein paar Mal weiter und wir können das ändern in tatsächlich, wir brauchen nur einen, wenn, weil nur einer davon ausgelöst werden kann . Ich habe das falsch verstanden. Ich habe das erste Mal angefangen. Elsif Genau das habe ich gesagt . Und alles was wir überprüfen werden, ist gelb, grün, orange und rot. Und alles, was wir hier machen werden, ist den Punktestand zu aktualisieren. Und um das zu tun, können wir uns meiner Meinung nach entweder die GUI schnappen oder wir können ein Signal erzeugen, das wir an sie senden können. Nun, da ich nicht glaube, dass wir hier viele neue Konzepte gelernt haben , werde ich Ihnen zeigen, wie Sie Ihr eigenes Signal erzeugen Wenn Sie sich den Inspektor und den Knoten-Tab ansehen und diese Signale haben, werde ich Ihnen zeigen, wie wir unser eigenes Signal erzeugen können. Also genau wie bei den Variablen geben Sie einfach das Wort Signal ein, richtig, weil wir ein Signal erzeugen wollen, genau wie Sie VR eingeben , wenn Sie eine Variable erstellen möchten, und dann einen Signalnamen eingeben . Dieses Signal wird also die Punktzahl erhöhen. Und ich werde eine Zahl als Zoll wie diesen weitergeben müssen . Das Signal ist also, den Punktestand zu erhöhen. Wird ein Argument übergeben und dieses Argument ist eine Ganzzahl. Wenn wir uns das nun im Inspektor ansehen würden , klicken Sie auf Ball, klicken Sie auf die Registerkarte Nein und wir können unser benutzerdefiniertes Signal hier tatsächlich einrichten sehen . Jetzt können wir darauf doppelklicken und es mit der GUI verbinden, und ich denke, genau das werde ich hier tun. Doppelklicken Sie, GI, stellen Sie sicher, dass es verbunden ist. Entschuldigung, klicken Sie, klicken Sie auf Verbinden. Jetzt können wir hier auf GI unseren Punktestand aktualisieren. Um das zu tun, können wir SCOR plus gleich NUM Great machen. Und genau wie bei Ready können wir einfach den Text der Partiturbeschriftung aktualisieren und ihn natürlich auffüllen In Ordnung. Also, das wird noch nicht funktionieren, weil wir zu unserem Ball zurückkehren müssen , weil wir dieses Signal zu keinem Zeitpunkt senden werden. Also müssen wir darüber nachdenken , wohin wir das schicken müssen? Nun, wir müssen es hier und hier und hier und hier schicken , richtig? Jedesmal, wenn wir diese Steine haben , um die Punkte weiterzugeben. Also erhöhen wir die Punkteausbeute, dann müssen wir unser Argument mit dem gelben Stein bestehen , es war ein Punkt. Mit dem grünen Stein hatte ich drei Punkte mit dem orangefarbenen Stein. Ups, ich habe jetzt das Falsche kopiert. Mit dem orangefarbenen Stein waren es fünf Punkte und mit dem roten Stein waren es sieben Punkte Wenn wir das jetzt machen und auf Play drücken, sollten wir jetzt unsere Punktzahl hier oben sehen, die jedes Mal aktualisiert wird, wenn wir einen Stein zerbrechen. Also lass uns gehen. Wir sollten hier von den gelben Ziegeln einen Punkt holen. Da haben wir's. Also bekommen wir jetzt Punkte. Der Ball bewegte sich so langsam, dass er mit einer peinlich langsamen Geschwindigkeit das Auge verlor , als er träge nach links driftete Also ein Punkt, bumm, lass es hochspringen. Wir kriegen noch einen Punkt. Springt, hüpft Und du merkst, dass wir diese Punkte nur bekommen , wenn wir die Steine treffen, genau wie wir sollten Das ist also großartig. Bum, Bum. Da das Paddel etwas länger war. In Ordnung Also haben wir unsere Punkte zum Laufen gebracht. Wir senden unser Signal aus, es funktioniert, senden die richtigen Zahlen aus. Wir können leicht davon ausgehen, dass auch diese Zahlen einwandfrei funktionieren werden. Und müssen wir im Punktebereich noch etwas tun? Das glaube ich nicht. Nein, lassen Sie uns als Nächstes weitermachen und unsere Ballzählung und den Ball-Respawn für uns einrichten unsere Ballzählung und den Ball-Respawn für uns einrichten 9. Fehlerkorrektur nach der Punktierung: Ordnung, also ich habe hier herumgespielt, nur sichergehen dass alles funktioniert und alles in Ordnung ist, und wir sind hier tatsächlich auf ein Problem gestoßen Ich bin mir nicht hundertprozentig sicher, was passiert ist, aber ich glaube, der Ball hat zwei Steine getroffen , entweder gleichzeitig oder sehr, sehr nahe beieinander Genug für uns, um rein zu kommen, wenn Aussage, aber nicht genug für Clider , um uns wirklich etwas zu geben Also werden wir hier zuerst den Objektnamen bereinigen Wir haben das einfach auf den Collider-Punktnamen eingestellt. Was ich hier noch einmal überprüfen werde und sagen, ich kollidiere Das sollte uns also einen Check geben , um sicherzugehen , dass Collider tatsächlich etwas ist und dass es nicht Null ist Und das heißt, ich werde hier einfach alles aus Zeile 25 holen hier einfach alles aus Zeile 25 Runter zum Collider Dot Quarter, und ich drücke einfach die Tabulatortaste, wobei alles hervorgehoben ist, und das sollte verhindern, dass dieses Problem auftritt Angesichts der Tatsache, dass das Problem bestand, sind wir zu dieser „Wenn“ -Aussage gekommen, irgendwie können wir auch hier noch einen Haken setzen , wenn wir wollen Wir können mehr als Null sagen, obwohl wir nicht einsteigen sollten, wenn es das nicht schon ist. Und dann bekommen wir den Collider, und wenn der Collider irgendwie Null ist, dann werden wir einfach da aufhören Wir werden nicht weitermachen. Ordnung, also ich wollte das nur da reinwerfen, nur für den Fall, dass ihr beim Spielen auch darauf gestoßen seid , dass ihr beim Spielen auch darauf gestoßen , genau wie ich Okay, also als Nächstes machen wir weiter und bereiten den Respawn des 10. Die Ballzahl: Lassen Sie uns weitermachen und unsere Antwort hier umsetzen. Die Essenz dessen, was wir hier brauchen, ist also , wenn der Ball aus dem Bildschirm geht, dann müssen wir tun, was wir tun, wenn wir bereit sind, und ihn hier oben mit seiner Standardgeschwindigkeit und Standardrichtung, in der er nach oben geht, reagieren hier oben mit seiner Standardgeschwindigkeit und Standardrichtung und so weiter. Es gibt also tatsächlich einen Knoten , den wir dafür verwenden können. Wenn wir jetzt zu unserem Ball gehen, schalte ich ihn einfach ein, damit wir ihn hier sehen können. Nun, diese blaue Linie hier ist der untere Rand unseres Bildschirms, was Sie inzwischen wissen sollten. Und auf diesem Ball werde ich weitermachen und einen speziellen Knoten namens Visible on Screen Notifier hinzufügen einen speziellen Knoten namens Visible on Screen Notifier Nun, das wird uns hier ein kleines Feld verschafft , und das ist der Bereich, der überprüft werden soll Und sobald dieses Kästchen nicht mehr auf dem Bildschirm zu sehen ist, kann es uns ein Signal senden , was hier oben sein wird, der Bildschirm wird betreten oder der Bildschirm verlassen, in unserem Fall ein Ausgangssignal, und das ermöglicht uns, unseren Ball zurückzusetzen Ordnung, also doppelklicke ich in unserer auf dem Bildschirm sichtbaren Benachrichtigung auf das Signal zum Verlassen des Bildschirms Ich scrolle runter zu meinem Ball, wähle ihn aus und verbinde mein Skript Und was wir hier tun werden, ist genau das, was Sie bereits erwarten würden. Wir nehmen alles aus unserem Ready heraus, scrollen nach unten und wir können alles dort einfügen. Aber wir müssen mehr als nur das tun , denn im Moment bewegt sich der Ball immer noch direkt nach unten. Bevor wir also warten, werden wir weitermachen und die Geschwindigkeit auf Null setzen, sodass der Ball einfach dort stehen bleibt, wo er ist. Denn egal wie hoch unsere Geschwindigkeit ist, sie wird auf Null gesetzt, oder? Denn alles, was mal Null ist, dann warten wir so lange, bis zu 3 Sekunden. Wir setzen die Position zurück und setzen die Sichtbarkeit auf true. Aber die Sache ist, wir setzen es nie auf falsch, also müssen wir das auch tun Wir müssen dafür sorgen, dass sichtbar gleich falsch ist. Und falls es noch etwas gibt, das wir zurücksetzen müssen, ja, denn denken Sie daran, dass wir nach unten gehen, was bedeutet, dass unsere V-Richtung diesem Zeitpunkt negativ sein muss Bevor wir also die Geschwindigkeit festlegen, können wir weitermachen und die V-Richtung mal minus eins wiederholen, um sie wieder nach oben umzudrehen und unsere Geschwindigkeit wird auf die Startgeschwindigkeit zurückgesetzt Das sollte alles sein, was wir tun müssen , damit diese Antwort nicht funktioniert In Ordnung. Also da ist unser Ball. Es geht. Es wird verschwinden und es wird für uns reagieren. Boop, da haben wir's. Obwohl unser Respawn gut funktioniert. Wir müssen jetzt nur die Anzahl der Bälle im Auge behalten. Bupp. Da ist es wieder. In Ordnung, also müssen wir das Etikett mit der Anzahl der Kugeln aktualisieren. Und damit können Sie es wahrscheinlich erraten. Wir werden weitermachen und dafür unser eigenes Signal von unserem Ball aus erzeugen . Signal: Erhöhen Sie die Anzahl der Bälle. Und genau wie zuvor, wir werden eine Zahl da drin haben und es wird ein Int sein oder wir werden es als werfen. Und genau wie zuvor, wähle unseren Ball gehe zur Registerkarte Dno mit unseren Signalen Doppelklicken Sie, um die Anzahl der Bälle zu erhöhen, und verbinden Sie sie mit unserer Benutzeroberfläche. Und genau wie zuvor werden wir es tun oder einfach so, wie Sie es sich vorstellen würden, aktuellen Ball plus SQLs Num, was theoretisch immer eins sein sollte Und ich denke, ich kann das sogar doppelt als Standard einrichten, aber hier ist die Bezeichnung für uns, um das auch zu aktualisieren aktuelle Punkttext für die Ballbeschriftung entspricht einer Zeichenfolge aus dem aktuellen Ich habe es gerade noch einmal überprüft, und wir können dort keinen Standardwert übergeben, das ist also etwas bedauerlich Aber wenn wir einfach nach unten gehen und schauen, wann wir hier aus dem Bildschirm gehen, können wir weitermachen und dieses Signal aussenden. Also sagen wir: Erhöhen Anzahl der Bälle, klicken Sie auf Ausgeben und geben Sie einen weiter, um die Anzahl der Bälle um eins zu erhöhen. Ordnung. Also, wenn unser Ball aus dem Bildschirm geht, musst du ihn so zurücksetzen , dass er standardmäßig ausgeschaltet ist. Das werde ich tun. Nein aus, aber nicht sichtbar. Klicken Sie auf den Augapfel und drücken Sie Play. Der Ball wird spawnen. Geht. Es wird gegen einen Ziegelstein stoßen. Wir werden einen Punkt bekommen. Es wird aktualisiert. Fantastisch. Wenn der Ball läuft, prallt er von ein paar Dingen ab und beschleunigt langsam Wir bekommen mehr Punkte , je weiter es geht. Es wird aus dem Bildschirm verschwinden, Anzahl der Bälle auf 1—2 erhöhen und reagieren. Die Geschwindigkeit ist komplett zurückgesetzt. Alles klar, alles, was wir uns jetzt ansehen müssen , ist die Festlegung der Gewinn- und Verlustbedingungen für dieses Spiel. Was nicht zu verrückt schwierig sein sollte. Weil wir aufgrund unseres Verlustzustands quasi nur schauen müssen, ob wir auf Ball vier sind, was in dieser Situation unser letzter Ball sein sollte , weil wir nur drei Bälle haben. Wenn es also untergeht, treffen wir vier. Damit wäre unser Spiel vorbei. Und das Game Over wäre ein Reset der gesamten Szene. In Ordnung, wir haben also unsere Signale aktiviert. Wir haben unseren Ball zurückgesetzt und unser Ballzähler läuft Ordnung. Als Nächstes werfen wir einen Blick auf den Gewinn - und Verlust-Aspekt 11. Überspielen und gewinnen: Stimmt, also das Erste, was ich hier einrichten werde , ist die einfachste und schnellste Methode die wir hier testen können Und das wird unsere Ballzahl sein. Sobald das vier ergibt, werden wir das Spiel neu starten Der einfachste Weg, das zu tun , ist, da wir schon das ganze Setup für unseren Ball haben , einfach in unseren Kerl übergehen Der aktuelle Ball plus ist gleich Zahl. Wir aktualisieren den Text, müssen nur überprüfen, ob der aktuelle Ball gleich vier ist , und wir erhalten Tree Dot, G lädt einfach die aktuelle Szene neu. Und das können wir in zwei kurzen Sekunden testen. Lass den Ball einfach davonfliegen. Ich setze mich einfach hier in die Ecke und wir werden ein paar dieser Bälle zusammenzählen. Das ist einer. Holen wir uns den zweiten Ball. Los geht's. Runter. Damit sind wir auf drei. Und wenn wir den Ball verlieren, sollte das Spiel vorbei sein, sobald er unter die Decke geht, und die ganze Szene sollte neu gestartet werden. Wir sehen also, wie sich diese gelben Steine wieder füllen . Oh, habe ich nicht. Warum ist das so? A, ja, weil wir eigentlich keinen Timer erstellen können , weil der Baum gerade zurückgesetzt wird. Also müssen wir diesen kleinen Fehler beheben. Wie können wir das beheben? Nun, der einfachste Weg, dies zu beheben , besteht wahrscheinlich darin, unsere Reihenfolge hier zu ändern . Und wir könnten einfach die Bälle zählen und sie um eins nach unten verschieben. Und das wird das Problem wahrscheinlich beheben. Aber werden wir hier unten irgendwelche Probleme mit dem Rest unseres Codes haben? Lass uns testen und es herausfinden. Lass uns sehen, was passiert. Manchmal ist das alles, was man sich ansehen muss , die Reihenfolge, in der alles aufgerufen wird . Manchmal ist es das. So einfach ist das, manchmal muss man andere Problemumgehungen finden oder andere Prüfungen durchführen, um zu sehen, ob die Dinge noch existieren Los geht's. Wenn wir unseren dritten Ball laufen lassen, sollten wir unser Spiel beenden. Mal sehen, ob wir immer noch auf einen Fehler stoßen oder ob er behoben ist. Ordnung, es ist behoben. In diesem Fall war es also so einfach, nur die Reihenfolge der Operationen zu aktualisieren , damit alles aufgerufen wird In Ordnung. Also funktioniert unser Reset. Jetzt müssen wir nur noch überprüfen , ob wir noch Steine auf dem Bildschirm haben. Und wenn ja, sind die Spiele natürlich noch nicht vorbei, denn wir werden darauf achten , dass keine Steine mehr übrig sind. Wie können wir das also auf einfachste Weise überprüfen ? Nun, der einfachste Weg wäre, all unsere Steine hierher zu nehmen , in meinem Fall alle 176, und wir können sie dafür einfach unter einem Standardknoten platzieren Also, wenn ich mir das schnappe und dann meinen Kerl schnappe nur damit ich meinen Knoten hier oben platzieren kann Ich werde nur einen normalen Knoten hinzufügen , weil ich ihn nur zum Organisieren verwende. Ich werde es von meinem Mann in die Hauptabteilung ziehen. Und der Grund, warum ich das getan habe, ist, dass, wenn ich Min ausgewählt und den Knoten erstellt hätte, er hier unten hinzugefügt worden wäre. Dann wäre es nervig gewesen, ihn ganz nach oben ziehen zu können. Also werde ich den Knoten einfach nach unten bewegen, dann klicke ich auf meinen ersten Stein, scrolle ganz nach unten, halte die Shift-Taste gedrückt klicke auf meinen letzten Stein. Das sollte alle meine Steine hier auswählen. Ich werde es einfach innerhalb dieses Knotens hochziehen. Ich werde diesen Knoten in Bricks umbenennen. Und das sollte keinen Einfluss auf unser Gameplay haben , aber ich werde es mir ansehen. Nur zufällig ist etwas kaputt gegangen. Schau es dir an. Ziegel zerstören immer noch, Punktestand ist immer noch aktuell. Der Ball wird immer noch gezählt, die Reaktion ist immer noch da. Fantastisch. Wir haben also nichts kaputt gemacht. Und der Grund, warum wir das gemacht haben, ist der einfachste Weg ist, einfach zu sagen: Hey, Steine nein. Hast du noch Steine übrig? Haben Sie Kinder? Stimmt? Existieren noch irgendwelche dieser 176 Steine? Wenn das passiert, können wir das tatsächlich auf unserem machen . Wir können es auf dem Ball machen oder wir können es auf dem Gooey machen Ich wollte sagen, wir könnten es entweder tun , wenn wir das Signal aussenden , die Punktzahl zu erhöhen oder wenn wir die Schule erhöhen Ich denke, wir werden es tun, wenn wir die Punktzahl tatsächlich erhöhen. Stimmt? Ja, also genau hier, wir geben es aus oder es tut uns leid, wir aktualisieren unseren Punktestand und dann führen wir hier unseren Check durch. Also, um das zu tun, werde ich weitermachen und unsere Steine exportieren. Ich nenne es Bricks Container, und das ist nur ein Knoten. Und ich klicke auf meinen Kerl. Stellen Sie sicher, dass ich zur Registerkarte Inspektor gehe und die zugewiesene Taste drücke. Wählt Ziegelsteine. Wenn ich jetzt meinen Punktestand aktualisiere, kann ich sagen, ich habe einen Container gemeißelt . Habe ich Kinder? Wahrscheinlich nicht. Jetzt. Also hol Kinder oder lass Kinder zählen. Das würde auch funktionieren? Und nur zu meiner eigenen Gesundheit werde ich weitermachen und es ausdrucken Wenn wir also unseren ersten Stein vernichten, sollten wir uns 175 hier unten in der Konsole ausdrucken 176 jetzt. Okay, vielleicht ist entweder meine Mathematik irgendwie falsch oder das hat gezählt, bevor der Ziegelstein zerstört wurde. Richtig. Also das würde dann nicht für uns funktionieren , weil der Ziegel schon zerstört wurde oder tut mir leid, die Steine sind zu diesem Zeitpunkt noch nicht zerstört. Das ist also eine Schande. Das werde ich dort nicht machen können . Obwohl ich diese Variable löschen werde. Und das heißt, ich gehe rüber zum Ball. Und wir werden runterkommen. hier werden wir, basierend auf dem Collider, frei Und der Collider, das Elternteil sollten unsere Steine sein. Also mache ich weiter und wir können das aufbewahren. Eigentlich speichern wir das einfach oben, wie wir es normalerweise gemacht haben, es gibt keinen Grund, es jedes Mal zu greifen, wenn wir mit etwas kollidieren Also exportiere den Var Brick Container einfach als Knoten, wähle unseren Ball aus, triff ein Schild und wähle den Bricks-Container wähle den Bricks-Container Und nachdem wir Collider Dot Free aufgerufen haben, können wir weitermachen und unsere I-Anweisung einfügen , die wir zuvor verwendet Wie habe ich es umbenannt? Ich sagte, Backsteincontainer sagte, es sind Ziegel. Da haben wir's. Das muss ich jetzt zurücksetzen. Da haben wir's. Also jetzt ist es nur ein Tippfehler vom Kopieren. Also, wenn es Kinder hat, nachdem wir einen Baustein gelöscht haben , werden wir ihn ausdrucken Also unser erster ist hier zerstört, wir müssten 175 für die richtige Zahl haben. Das ist merkwürdig, und das hat mich dazu gebracht , die Mathematik jetzt noch einmal zu überprüfen. Ja, ich habe 22, 22, 44. Also sind es 44 pro Farbe. Also das sind 88 in der unteren Hälfte, 88 in der oberen Hälfte, insgesamt sollten es 176 sein. Ich muss ein bisschen verrückt sein. Ich überprüfe das gleich, wenn das Spiel beginnt. Ja, 176. Also, es ist das Problem, es zu zählen , bevor es umsonst ist. Ich hab's. Falls Sie also neugierig sind, warum das passiert, liegt das daran, dass Q hier frei ist, es befreit es nicht Es gibt den Knoten nicht frei, oder? Es geht nicht darum, den Ziegelstein loszuwerden. In dieser Sekunde löscht es es am Ende des Frames. Da wir diese Informationen jedoch immer noch erhalten, wurde unser Frame noch nicht fertiggestellt. Wir erhalten immer noch die falschen Informationen. Was wir hier also tun müssen, ist, das Awake-Schlüsselwort zu verwenden und wir können unseren Baum abrufen. Nur anstatt einen Timer zu erstellen, schauen wir uns „Nein“ an, nicht „Leerlauf“, das in Process Frame umbenannt wurde. Ich schätze, in unserem Fall könnten wir einfach suchen, ob sie meiner Meinung nach eine Physik haben, oder? Ja, ein Physik-Frame. Also das wird bis zum nächsten Frame warten, in dem das aufgerufen wird . Und dann bekommen wir die Nummer. Das sollte uns jetzt die richtige Zahl von 175 geben , wenn der Stein zerstört wird, und wenn ja, dann ausgezeichnet. Da haben wir's. 175. Jetzt sind unsere Steine also korrekt gezählt. Mann, fantastisch. Schau dir das an. Schau dir den Ziegelstein an, geh. Geh, kleiner Ball, geh. Du nimmst richtig Fahrt auf. Ja, sieh dich an. Ja, ich muss damit aufhören, bevor ich mich darauf einlasse und eine Weile hier rumsitze und spiele. Wir haben den Ball verloren. Aber Sie können sehen, dass das definitiv Spaß machen kann , wenn Sie sich darauf einlassen. In Ordnung. Also behalte das im Hinterkopf, wir müssen auf das nächste Bild warten und dann zählen. Jetzt, wo wir die Zählung haben, müssen wir überprüfen, was wir konkret wissen müssen, ob noch Null übrig ist. Also, wenn die Anzahl gleich Null ist, los geht's. Dann müssen wir das Spiel hier beenden. In Ordnung. Also können wir, wollen wir ein paar Sekunden warten, oder wollen wir es einfach neu laden Lass uns einfach nachladen. Baum lädt die aktuelle Szene neu. Wir müssen also nicht den ganzen Tag hier sitzen , nur um das zu testen Ich werde weitermachen und wir werden die meisten davon nur für diesen Test entfernen. Mach dir keine Sorgen. Das habe ich getan, aber ich kann Strg Z drücken und sie alle zurückstellen. Wie du siehst, mache ich das nur vorübergehend und gebe uns einfach zwei gelbe Steine. Wenn wir also beide speichern, sollten wir uns ein brandneues Spiel besorgen bei dem alles neu geladen wird Und wenn dieser Ball ein bisschen schneller werden könnte , wäre das großartig Es scheint, dass ich die Wand gelöscht habe. Ich habe mich gefragt, wo das hingehört. Weil ich das natürlich getan habe. Ich habe das auch gezogen, und vielleicht können wir es noch einfacher machen und uns einfach einen Stein geben Weil wir gesehen haben, als wir noch einen Stein übrig hatten, zählte er offensichtlich immer noch Wir haben immer noch gespielt. Also , wenn wir den Ball da drüben auf diesen einen gelben Stein springen könnten, wäre das großartig. Ich glaube, ich habe das an die richtige Stelle geworfen, bumm, und unser Spiel wurde zurückgesetzt, sodass unser neues Spiel nur einen Stein hier hatte. Aber ja, da haben wir's. Das funktioniert. Und ich denke, was ich hier will, ich werde diese Steine zurücklegen. Aber ich glaube, was ich persönlich will, bevor neu lade, ist, dass ich einen Moment warten möchte Also werde ich sagen, ich warte, Ge Tree, erstelle Tr. Und ich glaube, ich möchte hier eine Pause von zwei Sekunden einlegen. Oder sogar eine Pause von 1 Sekunde wäre nett, nur damit wir sehen können, dass der Stein tatsächlich gelöscht wurde. Und du könntest noch weiter gehen , wenn du all das noch erweitern möchtest, es gibt moderne Versionen dieses Spiels. Es gibt einige, die Power-Ups, mehrere Bälle usw. hinzufügen . Also, wenn du willst, könntest du immer all diese Dinge durchgehen und hinzufügen. Es ist so einfach wie die Dinge , die wir bereits getan haben, erkennen, ob wir auf etwas gestoßen sind, wir haben es getroffen , wenn ja, tun Sie das. Mach XYZ Und da unten ist mir ein kleiner Bug aufgefallen, also werde ich auch die Ballgeschwindigkeit stoppen Geschwindigkeit der eingestellten Geschwindigkeit ist gleich Null, und das sollte für uns in Ordnung sein Aber selbst wenn das nicht behoben wurde, wird das nichts an unserem Spiel hier beeinflussen, aber es ist etwas, das wir wahrscheinlich angehen und danach streben sollten, dass es dort unten keine großen Fehler gibt. In Ordnung. Also haben wir unseren Punktestand in Ordnung. Wir haben unser Spiel beendet. Sollte funktionieren. Ja, weil wir untergegangen sind, wir haben vier Bälle getroffen und das ganze Spiel zurückgesetzt Wir haben den Sieg für uns zurückgesetzt. Wir behalten den Punktestand im Auge. Ja, ich denke, das ist alles. Wir müssen wirklich nichts anderes hinzufügen. Wir haben das klassische Spiel hier neu erstellt, und wenn du weitere eigene Funktionen hinzufügen möchtest, kannst du jederzeit zurückkommen und es erweitern Mach damit weiter. Das ist Breakout, der Spieleklassiker von 1976