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