Transkripte
1. Fertigkeiten: Hallo, ich bin Nico hat mich
beim Masterstudenten für
Informatik und einem
begeisterten Minecraft-Spieler erwischt . Du könntest mich
von meinen
YouTube-Kanal-Tutorials von Cotton Joe kennen, in denen ich Tutorials zur
Mikrowellenmodellierung mache. Nun, jetzt werden wir
noch größer werden, denn das ist meine Minecraft-Modeling-Klasse
118 mit Forge. Hier erfahren Sie alles, was
Sie tun müssen, um einen fantastischen und erstaunlichen
Minecraft-Mod mit der am häufigsten verwendeten
Minecraft-Morgen-API, Forge, zu erstellen. Absolute Anfänger
können damit beginnen, die
Java-Einführung des Anbieters zu
durchlaufen , die Ihnen wirklich helfen wird einige
der Grundlagen zu
verstehen. Am Anfang
lernen wir einige einfache Konzepte wie das Hinzufügen eines Elements,
das Hinzufügen Blöcken, Rezepten
und sogar benutzerdefinierten Tools kennen. Dann werden wir uns fortfahren, indem wir uns benutzerdefinierte Blockmodelle,
kundenspezifische Pflanzen und so viele
andere coole und
interessante Funktionen ansehen kundenspezifische Pflanzen und so viele . Am Ende werden wir uns sogar mit fortgeschrittenen Themen
wie Block-Entitäten und
Welterzeugung
befassen . Worauf wartest du also? Melde dich jetzt für diesen Kurs an, und wer weiß, dass dein MOD vielleicht der
nächste große Hit sein
wird. Wir sehen uns in
der ersten Lektion.
2. (Java) Installation & Download: Willkommen beim Fabric 118 Kurs und hier zur
Java-Einführung. Also fangen wir im Grunde mit einer kleinen
Java-Einführung an. Wenn Sie Java überhaupt nicht
benutzt haben, wird
dies für Sie sehr,
sehr nützlich sein . Andernfalls, wenn Sie
bereits mit
einer anderen Programmiersprache
oder mit Java selbst gearbeitet
haben , ist dies eine sehr
kluge Idee,
dies
hier am Anfang als gute Auffrischung zu haben. Daher empfehle ich dringend die gesamte
Java-Einführung
durchzugehen. Es wird auch einige Aufgaben auf
dem Weg geben,
die Sie tun können, um die Konzepte,
die
wir in dieser
Einführung hier diskutieren
werden, im Grunde
weiter zu festigen Konzepte,
die
wir in dieser
Einführung hier diskutieren
werden, im Grunde
weiter zu . Und es wird ein paar Voraussetzungen geben, die
wir brauchen werden. Der erste
wird ein JDK sein. Jdk ist ein Java Development Kit, sozusagen in verschiedenen
Geschmacksrichtungen erhältlich ist. Aber was wir benutzen werden, ist derjenige,
der ihn hier adoptiert, und wir
müssen 16 benutzen. Also wird JDK 16 in
diesem Fall Tamarin 16 genannt. Und ich habe
das in den Ressourcen im Grunde genommen verknüpft , dass Sie das herunterladen können. Dies stellt sicher, dass Sie
Ihr Betriebssystem
und Ihre Architektur auswählen . Für mich wäre das also Windows
- und 64-Bit-Architektur. Ich empfehle dringend, das MSI
hier
herunterzuladen , da dies
im Grunde nur ein Installationsprogramm ist, der das JDK dann wie im Grunde
jedes andere Programm auf
Ihrem Computer installiert . Nun, installieren Sie das einfach normal wie bei
jedem anderen Programm, und dann können wir fortfahren. Sobald Sie das JDK installiert haben, benötigen
wir auch eine IDE. Und IDE ist eine integrierte
Entwicklungsumgebung
, in der wir
in unserem Fall IntelliJ idea verwenden werden. Das ist, ich habe
absolut ein großartiges Tool
gefunden , das wir dafür verwenden können Wir können die
Community-Version verwenden, die
kostenlos ist und auf Open Source basiert, die so ziemlich alles
beinhaltet , was wir würde es
jemals wollen oder brauchen. Stellen Sie also auf jeden Fall sicher, dass Sie die
Community-Version hier
auswählen. auch noch einmal
die EXE herunter, wenn Sie unter Windows sind, und wie Sie es vielleicht hier gesehen haben, können
Sie hier auch Trick überprüfen,
ob Sie auf Mac oder Linux sind, im Grunde wechseln und sie auch
installieren. Und installieren
Sie das auch einfach wie bei jedem anderen
Programm. Und dann, sobald das installiert
ist , können wir fortfahren. Wenn Sie die Intelligenz
zum ersten Mal öffnen, erscheint auch
ein ähnliches Fenster für Sie. Jetzt wird es ein
bisschen anders aussehen, aber es wird
diese drei Schaltflächen haben, die Schaltfläche „Neues Projekt“ mit
der Schaltfläche „Öffnen“ und die
Schaltfläche „Von VCS“. Wenn Sie auf die Schaltfläche
Neues Projekt klicken, wird ein neues
Fenster angezeigt. Wichtig ist, dass
wir genau hier
das neue Projekt auswählen möchten . Hier können wir
es einfach nennen, was wir wollen. So können
Sie zum Beispiel bei der
Java-Einführung einen Standort
genau hier auswählen, indem die Sprache Java Build
System Intelligence verwenden und das JDK 16 für unsere Zwecke hier
zur Java-Einführung ist, der Beispielcode
muss von ihnen überprüft werden. Wenn dies erledigt ist, können wir auf
die Schaltfläche Erstellen klicken und dann erscheint
ein neues Fenster. Nun, als erstes, was
wir
in den neueren Versionen
für Intelligenz tun müssen, haben in den neueren Versionen
für Intelligenz tun müssen, sie einige Sachen geändert. Ich bin mir nicht sicher, warum das der Fall ist, weil sie tatsächlich
dazu neigen, viele Dinge zu ändern , was irgendwie nervig
ist. Aber unsere Hauptklasse hier, damit Sie diese Hauptklasse sehen können, wenn ich darauf
doppelklicke, öffnet sie sich. Du hast vielleicht schon
für dich geöffnet. Das ist auch in Ordnung. Jetzt, in Zukunft, wird
es tatsächlich in einigen Paketen enthalten
sein. Also müssen
wir das tatsächlich manuell für unseren Fall hier in diesem Fall machen,
aber das wird gut. Wir klicken jedoch einfach mit der rechten Maustaste auf den
Quellordner, damit Sie
sehen können , dass Quelle mit
der rechten Maustaste auf Und dann werden wir es tun,
ich rufe das Netz an. Und dann klicke ich in diesem
Netz mit der rechten Maustaste auf neues Paket und
rufe diese Hilfe an. Und Joe, jetzt
nennst du es einfach wie du heißt. Im Grunde genommen haben Sie Netz und dann Ihren
Namen, zum Beispiel werde
ich die
Hauptklasse hineinziehen,
sagen Refactor, und dann wird es uns gut gehen. Dann hast du dieses
Paket auch hier oben. Dies ist sehr wichtig,
da es bevorstehende Vorträge gibt. Wir werden das auch
haben. Wenn dies nun
anders angezeigt wird als Sie, könnte
es so aussehen. Ich zeige Ihnen
nur für eine Sekunde, dass es sich hier irgendwie verdichtet, Nettopunktzahl Joe,
alles in einer Zeile. Wenn das der Fall ist, können Sie genau hier zu diesem Gang
gehen. Um Darstellung, Höhe,
MT, mittlere Pakete zu erstellen, können
Sie die Auswahl aufheben und auch abgeflachte Pakete
deaktivieren. Und dann wirst du genau das Gleiche haben
wie wir genau dort haben. Jetzt werden wir mit Pascal und
Joe für den Rest
der Vorträge
fortfahren . In diesem Fall werden
wir also das haben, wir werden hier
etwas namens
Main haben und hier einen weiteren Hauptteil. Und dann ist
das üblich, wo es heißt, schreibe deinen Code hier. Jetzt werden
wir in dieser
ersten In-Vorlesung hier keinen Code schreiben . Wir beginnen grundsätzlich sofort mit der nächsten Vorlesung. Das ist wirklich nur das Setup. Insgesamt ist dies so
ziemlich alles, was wir tun müssen. Der gesamte Code wird
immer in jeder Vorlesung
verfügbar sein . In jeder Vorlesung
finden
Sie also einen Ressourcenlink
oder Sie werden diesen grundsätzlich
irgendwo verlinkt
finden , wo Sie entweder das
GitHub-Repository
haben können . All dies wird also in einem GitHub-Repository gespeichert. Und jede Vorlesung wird ein
Individuum sein, im Grunde ein individueller
Zweig dort. Oder Sie haben auch einzelne Juristen, bei denen
jeder der verschiedenen, jeder Code,
alles aus dem Code
dieser Vorlesung auch dort
verknüpft ist. also keine Sorgen. alles kann zugegriffen werden bevor Sie sich
das überhaupt ansehen können ,
weil
manche Leute natürlich lieber
den Code vor sich haben und ihn dann ein wenig ändern würden. Manche Leute
wollen es einfach programmieren, wie während ich es codiere.
Und das ist vollkommen in Ordnung. Beide Ansätze sind in diesem Fall
grundsätzlich gültig. Aber vorerst ist es das im Grunde genommen. Der gesamte Code
wird also verfügbar sein und hoffentlich haben Sie es bis zu diesem Punkt
geschafft. Und dann sehen Sie, ob
Sie nach Beginn der
nächsten Vorlesung sehen können, ob dort
alles funktioniert hat oder nicht. Aber das würde für
diese Vorlesung genau hier schlagen. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
3. (Java) (Java): Willkommen zurück zur
Java-Einführung für eine Minecraft-Modellierung. Und in diesem Vortrag werden
wir über Datentypen
sprechen. Wir fangen also
sehr, sehr langsam an. Die Idee ist, dass
wir beim Programmieren Dinge in Variablen speichern können. Nun, was sind diese
Dinger, oder? Es gibt verschiedene Arten von Daten. Und im Grunde gehen wir in dieser
Vorlesung durch, welche Arten
von Daten es sich handelt, im Grunde genommen die Datentypen. Es gibt also ein paar
verschiedene Arten
von Datentypen , wie zum Beispiel
noch weiter zu gehen. Und der erste
wären die numerischen Typen,
im Grunde genommen, wie man Zahlen speichert. Es gibt eine Reihe
verschiedener Datentypen hier. Es gibt also eine ganze Zahl, es gibt einen Float und das Double. Das sind also diejenigen
, die hauptsächlich verwendet werden. Ich werde ein bisschen
darüber sprechen. Sie können also zuerst sehen, wenn Sie eine
Art neue Variable erstellen,
das heißt, Sie können sich dies als
einen Container
vorstellen, der einen bestimmten Wert enthält. Und die Art des Wertes wird durch
das erste Wort
bestimmt, in dem Sie sehen
können, dass es tatsächlich sogar orange markiert ist. Das wird nicht
immer der Fall sein. Dies wird
nur
bei primitiven Datentypen der Fall sein . Aber was das werden
wir in
einem späteren
Vortrag im Grunde ein wenig sehen . Und Sie können sehen, dass
dies eine Nummer genannt wird. Dies ist der Name der Variablen und dann ist der Wert 42. Nun
ist eine Ganzzahl, wie gesagt, der bestimmte
Datentyp von
A, ein numerischer Datentyp
, der eine ganze Zahl ist. Dies kann also nur
ganze Zahlen oder ganze Zahlen speichern. Und die tatsächliche Spanne,
die es sparen kann, geht von negativen 2 Milliarden auf plus 2
Milliarden, wie Sie sehen können. Dies sind also im Grunde die
Zahlen, die Sie
speichern können und die in
einer Ganzzahl gespeichert werden können. Das ist die Idee. Und dann gibt es Float
oder wenn du ein Komma brauchst. Nun, was ist sehr
interessant bei Floats und Doubles, die
fast dasselbe sind, nicht ganz, aber fast
das Gleiche. Es sind beide
Fließkommazahlen. Und die Idee ist, dass dies eigentlich nicht so gespeichert
wird, tatsächlich wie
wissenschaftliche Notation gespeichert wird. Du hast das vielleicht
schon mal irgendwo gesehen. Und das ist so etwas wie 1,412 mal zehn bis die
vier wären dann 14.120. Und im Grunde werden in
dieser Notation hier die
Fließkommazahlen gespeichert. Und was bei
einem Float wichtig ist, wenn sie diese verwenden, haben
sie eine Genauigkeit von sieben
Dezimalstellen,
was bedeutet, dass Sie sieben Zahlen
haben können. Es spielt keine Rolle, ob
sie links oder rechts
vom Dezimalpunkt sind oder nicht , sondern sieben Zahlen und dann werden
sie genau sein, und danach
wird es abgerundet. Dies ist auch der Grund, warum Sie normalerweise
nicht sehr, sehr,
sehr präzise
Dinge in Floats speichern möchten . Wenn Sie zum Beispiel
zehntausende oder 100 Tausend
Bitcoin haben zehntausende oder 100 Tausend , so etwas. Das sollte definitiv
nicht in einem Float gespeichert werden ,
da dies sehr
leicht zu Rundungsfehlern kommen könnte. Das sind also
Gleitkomma-Rundungsfehler. Diese sind sehr verbreitet. Jetzt ist ein Double ein
bisschen besser, da es Genauigkeit von 15 Dezimalstellen
hat. Trotzdem könnten sie es sein, es könnte immer noch zu
einigen Rundungsproblemen führen. Das ist also etwas, dessen
man sich bewusst sein sollte. Normalerweise spielt dies in den meisten
Fällen, zum Beispiel in unserem Fall,
wirklich keine Rolle. Wenn Sie also einen Float haben, der normalerweise zum Beispiel
darstellen kann, haben
Sie bestimmte
Blockpositionen auf
der Welt, haben
Sie bestimmte
Blockpositionen auf
der Welt die
etwas zwischen
diesen Blockpositionen geschrieben haben,
weil natürlich ein Block ist nicht wie ein einziger
Punkt im Raum, hat dort wie ein bisschen
einen Farbverlauf. Und dann gibt es ein kleines Rundungsding, das völlig gut werden
wird. Und das ist wahrscheinlich auch einer
der Gründe, warum, wenn man Millionen von Blöcken irgendwann
Millionen von Blöcken
in eine Richtung geht, die Welt wirklich
durcheinander ist, weil Fließkommafehler
und ähnliches das. Das ist wahrscheinlich auch
einer der Gründe. Jetzt gibt es einige
andere numerische Typen , die nicht so oft verwendet werden, zumindest persönlich, ich habe es
nicht so oft gesehen. Viele Leute könnten sagen:
Nun, ich meine, das stimmt
nicht ganz. Natürlich müssen
Sie sich dessen bewusst sein. Aber normalerweise habe ich
die verwendeten nicht mehr so oft gesehen. Ein Byte ist also acht Bit
und kann Zahlen
von negativ 128 bis 127 speichern . Das würde ich also eine
winzige Zahl nennen, weil es
im Grunde nur eine
bestimmte Anzahl von Werten speichern kann . Grundsätzlich ist hier in diesem Fall eine kleine
Zahl, die
zwischen negativen
32000 und plus 32000 speichern kann . Und dann hingegen ist eine lange, die, wie Sie sehen
können, von negativen
neun Billionen
bis zu positiven Billionen
neun Billionen Billionen Billionen speichern kann , was hübsch ist, das ist
ziemlich atemberaubend. Das ist eine sehr große Zahl,
die normalerweise sehr selten benutzt wird. Wie gesagt, nach dem,
was ich sagen kann, ist
eine Ganzzahl die gebräuchlichste
Zahl für eine ganze Zahl. Und dann werden Floats oder
Doubles für im Grunde genommen Dezimalzahlen
oder ähnliches verwendet im Grunde genommen Dezimalzahlen , oder? Der nächste Datentyp der Klammer werden
die Booleans sein. Das ist eine Art Logik. Worüber Sie also nachdenken können, ist, wir einen booleschen Wert haben. Ein boolescher Wert
kann entweder wahr oder falsch sein, daher kann er entweder eins oder 0 sein. Dies kann
in einem Bit dargestellt werden, da ein bisschen, wenn Sie es wissen oder nicht wissen, entweder 0 oder eins sein
kann.
Das sind die einzigen zwei möglichen
Werte, die es annehmen kann. Das ist also ziemlich das Gleiche. Es kann entweder wahr oder falsch sein. So sind diese tollen Videos, hoffe ich das.
Das stimmt also. Und es ist dieses HTML. Nun, das heißt,
hoffentlich hast du das nicht gedacht, weil
das eigentlich falsch ist. Das ist also irgendwie
das boolesche Zeug. Und die Logik ist tatsächlich unglaublich mächtig wie
das gesamte Logikfeld. Natürlich basiert die Gesamtheit aller unserer Computer und Betriebssysteme und
all das alles auf Binärcode. Und theoretisch sind Booleans nichts anderes als Binärcode, oder? Weil ein Wahr eine Eins ist
und eine Kraft eine 0 ist. In diesem Sinne
gelten also die gleichen Gesetze. Man kann sich
das so vorstellen, aber insgesamt werden die Booleer ,
ebenso mit Ganzzahlen,
wir uns diese in Zukunft ein wenig
genauer
ansehen . Aber ich wollte dir diese auf jeden Fall
vorstellen. In der dritten und letzten
Art von großer Klammer hier unsere Charaktere und
Strings zu einem Charakter, punkten
unsere Charaktere und
Strings zu einem Charakter,
wie Sie sehen können, ein Zeichen. Und das ist ein einzelnes Zeichen, also ist dies hier
mit diesen
einzelnen, einfachen Anführungszeichen gekennzeichnet . Und dies kann
ein einzelnes Zeichen
und Sonderzeichen speichern ,
reguläres Komma. Also kann ich hier ein Komma reinlegen, das ist
in Ordnung. Ich kann
hier einen Strich setzen, wie einen Hashtag, der Plus-Symbolstern,
das ist alles in Ordnung. Oh, nun, ich kann sogar einen Raum
hineinlegen und es funktioniert. Was ich jedoch nicht tun
kann, ist, dass ich zwei Zeichen hier
hineinsetzen kann , dann wird es nicht funktionieren,
da zwei Zeichen oder mehrere Zeichen
nebeneinander als String bezeichnet werden. Zu einer Zeichenfolge gehört, wie gesagt, im Grunde nur eine
Folge von Zeichen. Und dies ist mit
normalen Anführungszeichen gekennzeichnet. Also doppeltes Anführungszeichen hier und doppeltes Anführungszeichen hier. Und wie Sie wahrscheinlich gesehen haben, hat
das Ende jeder Zeile
immer die Semikolons. Diese sind auch hier sehr
wichtig. Und das ist irgendwie die Idee. Sie haben also Zeichen,
die Singular sind, Singular-Zeichen und ein, a, eine Zeichenfolge
ist eine Zeichenfolge. Das ist also irgendwie die Idee hier. Und am Ende wollte
ich etwas erwähnen, das wir auch in
Zukunft
definitiv sehen werden , nämlich null, das Null-Schlüsselwort. Sie können also sehen, dass
dieser String-Test dem Wert von null entspricht. Und was sehr wichtig
ist, ist, dass Null nicht 0 ist. Es ist buchstäblich leer,
als hätte es keinen Wert. Obwohl. Dies ist manchmal am
Anfang, besonders ein wenig schwer
,
die Unterscheidung zwischen dem, was
ich nicht verstehe, ohne Wert, wirklich die Unterscheidung zwischen dem, was zu erkennen. Was heißt das?
Nun, es hat einfach keinen Wert ist
sozusagen undefiniert. Es ist nicht vorhanden. Schreibe diesen Test wie während er
hier definiert ist, er ist es nicht, er hat
keinen Wert, er ist null. Und das werden
wir uns auf jeden Fall ansehen
und das auch in einem späteren Vortrag sehen. Es gibt also keine Sorgen, wenn das ein bisschen
verwirrend
ist, keine Sorge. Der Rest sollte zumindest ziemlich verständlich sein in
dem Sinne, dass wir ein paar Eimer haben, darüber nachdenken
können,
einige Container, in denen
wir einige Werte speichern können. Und je nachdem, welche
Art von Wert sie sind, müssen
wir verschiedene
Dinge vor uns schreiben. Das ist also
die allgemeine Idee ich hier vermitteln wollte, aber die Datentypen, ansonsten hoffe ich, dass dies für Sie
nützlich war und Sie
etwas Neues lernen und wir sehen
uns in der nächste Vorlesung. Also ja.
4. (Java) Java-Syntax: In Ordnung, willkommen zurück zur Java-Einführung für
Minecraft Martin. Und in dieser Vorlesung werden
wir uns ansehen, wie man Code liest. Oder ich nenne
das auch vielleicht Java-Syntax. Die Idee ist also zuallererst, und das könnte, einige von Ihnen waren vielleicht
schon so, als ob Sie eine Sekunde warten. Es hat das
alles hier oben ignoriert. Was ist das? Zuallererst
werden wir uns beruhigen, da wir anfangen
müssen, weitere Grundlagen aufzubauen , bevor wir über alles sprechen
, was hier oben passiert. Was ich vorerst
empfehle, ist, dass du das
einfach ignorierst. Das einzige, was
uns wirklich wichtig ist, dass diese frühe Klammer hier ist. Und wenn ich dann tatsächlich
meinen Cursor dorthin lege, sieht
man, dass dieser alles
aufleuchtet. Zunächst einmal, richtig, muss
jetzt zwischen
diesen beiden geschweiften Klammern geschweifte Klammern geschehen. Das ist alles,
was uns wichtig sein wird. uns egal, was das bedeutet. uns egal, was das ist, was all diese öffentlichen, statischen, nichtig, Haupt-, String ,
all das sind, überhaupt keine Sorgen. All dies werden wir in
den zukünftigen Vorträgen herausfinden , die vorerst kommen werden. Das werden wir uns
im Grunde genommen hier drin vorstellen. Das ist derzeit unser Hauptvorrecht
, obwohl der Code
zunächst von oben nach unten
gelesen wird. Und das ist interessant. Nun, ja. Deshalb
haben wir auch diese Zeilen hier, was sehr nützlich ist und sehr, sehr
nützlich sein kann, Pfeile zu
bestimmen. Wir können sagen, Hey, du
hast dort ein Problem in Zeile 18. Du siehst es dir online an. 18, Da ist es. Okay. Fair genug. Das ist sehr nützlich. Und normalerweise gibt es
natürlich Ausnahmen
von der Regel. Aber im Allgemeinen liest man
von oben nach unten. Wenn Sie jetzt
zwei Schrägstriche haben, haben
Sie einen
einzeiligen Kommentar. Und wenn Sie diesen Schrägstrich,
Stern und Stern-Schrägstrich haben , können Sie
mehrzeilige Kommentare haben. Das ist also auch etwas
, worauf man achten sollte. Und The, Es gibt ein paar verschiedene Dinge , die Sie tun können, wenn Sie eine Variable
haben, oder? Also sind wir wieder bei Variablen. Und die haben wir
natürlich gesehen, oder? Verschiedene Datentypen. Und die Variable war irgendwie wie ein Bucket oder ein
Container, in dem wir einen Wert
eines bestimmten Typs speichern
konnten , und wir
müssen dies angeben. Wenn Sie also eine Variable deklarieren, bedeutet das Deklarieren einer Variablen, dass Sie
den Datentyp dieser Variablen
und den Namen der Variablen deklarieren den Datentyp dieser Variablen . Und beachte noch einmal, dass alle
Zeilen mit einem Semikolon enden. Das ist normal. Jede Zeile, jede Anweisung
endet also mit einem Semikolon. Das ist übrigens
auch sehr interessant, weil ich es theoretisch könnte,
oder? Noch eins. Also in x und ich könnte das
einfach machen. Nun, das funktioniert nicht
ganz, weil wir alle diesen Tag 0 benutzen. Also y zum Beispiel könnte
ich das auch machen. Dies funktioniert auch, weil es
sich um eine einzige Anweisung handelt, daher muss es sich nicht unbedingt
um jede einzelne Zeile handeln. Und das würde im Grunde auch funktionieren, obwohl
es zwei Zeilen gibt. Und das ist übrigens
wie eine schreckliche Sache. Das ist wie eine Formatierung
, die vom Teufel ist. Mach niemals so
etwas. Aber was auch immer der Fall sein mag. Es sind also nicht
unbedingt immer Zeilen, aber es ist in einer einzigen Anleitung.
Das ist eine Art Idee. Und Sie werden normalerweise sagen , dass jede Zeile mit
einem Semikolon enden muss , ein guter Anfang ist. Im Grunde ist das ein guter Anfang. Es ist nicht immer der Fall, aber normalerweise ist es der Fall. Jetzt deklariert dies eine
Variable und dann können wir einer Variablen
auch
einen bestimmten Wert zuweisen. Und das machen
wir hier. haben wir bereits erklärt. Wenn ich also jetzt irgendwo
im Äther des Programms existiere, sagen wir
mal, und jetzt
sagen wir, dass ich gleich 30 bin. Also haben wir dieser Variablen jetzt einen
Wert zugewiesen, okay? Jetzt können wir beides
gleichzeitig tun, einen Wert
deklarieren und zuweisen
, der dann Index gleich 10 ist. Und dies würde in diesem Fall als
Initialisierung oder Initialisierung dieser
Variablen bezeichnet werden . Und das ist sehr interessant. Normalerweise werfen die Leute
diese Begriffe nicht unbedingt herum. Es ist nur etwas, dessen man sich ein bisschen
bewusst sein sollte. Okay, ich habe
diese Variable deklariert, jetzt habe
ich sie hier initialisiert , ich habe diese Variable zugewiesen, also ist es nur eine Art
von Begriffen hier, speichern Sie sie
zumindest
im Hinterkopf. Das ist der
wichtigste Teil hier. Und dann besteht die Möglichkeit, Variablen oder Methoden zuzugreifen. Wir haben noch über
Methoden
bestimmter Variablen oder Objekte gesprochen . Wir wissen auch noch nicht genau,
welche Objekte es sich handelt, aber das werden wir auch in Zukunft
herausfinden. Wenn
wir zum Beispiel eine Zeichenfolge haben, können
wir tatsächlich die
Länge der Zeichenfolge ermitteln. Wie viele Zeichen
sind in dieser Zeichenfolge, indem Punkt
machen und dann
etwas danach. Wenn ich das also reinlege, sieht
man tatsächlich,
dass eine enorme Menge an Sachen auf
mich geworfen wird, als Vorschlag, Wissender an der Wand, wir
werden uns
diese Dinge auch in einem
zukünftigen Vortrag ansehen . Vorläufig wissen
wir nur, dass der Punktoperator
uns auch in der Lage macht , auf
bestimmte Variablen oder Methoden
einer anderen Variablen zuzugreifen . Das ist es, was wir vorerst
aufbewahren sollten. Und dann
werden wir die eigentliche
Anwendung davon in einem späteren
Vortrag weit,
weit, für mehr Umfang und
viel detaillierter sehen . Aber vorerst ist
dies eine Art allgemeiner Kern darüber, wie man hier Code liest. Wie ich schon sagte, das ist
natürlich nicht erschöpfend. Das ist nicht alles, aber das sind die wichtigsten Dinge die
ich
vorerst vermitteln wollte. Sie haben also die Idee eine Variable
zu
deklarieren, eine Variable zuzuweisen und dann
beides gleichzeitig zu tun und dann mit dem Punktoperator auf etwas
zuzugreifen. Und am wichtigsten ist, dass die Schule in
diesem Jahr ignoriert
werden sollte und all dies ignoriert werden
sollte und
alles, was nur zwischen diesen geschweiften Klammern liegt,
für die Zeit wirklich beachtet
werden
sollte sein. Aber wie gesagt, wir werden
uns da rauswagen,
diese geschweiften Klammern werden gerächt, aber das wird es für
diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in der
nächsten Vorlesung. Also ja.
5. (Java) Ausgang und Eingabe: In Ordnung, willkommen zurück zur Java-Einführung
für
die Mikrowellenmodellierung. Und in diesem Vortrag werden
wir einen Blick darauf werfen Dinge
auszugeben und Dinge
einzugeben. Dies bedeutet also, dass sowohl
etwas an die Konsole ausgegeben als auch etwas
vom Benutzer
eingelesen wird. Also lagern wir im Grunde, um unsere Fähigkeit
zu verbessern, tatsächlich etwas zu tun. Und das erste
, was wir
tun werden, ist, dass wir einfach
Hello World ausgeben werden, weil
dies etwas ist, das jeder Programmierer
zum ersten Mal lernt. Und das werden wir tun. Also
tippen wir ein System ein. Und Sie können sehen, dass uns tatsächlich einige Dinge vorgeschlagen
werden. Wir
schreiben es nur dieses System
mit einem großen S aus ,
sehr wichtig, alles Kleinbuchstaben und dann Zeile
drucken, LN drucken. Und dann machen wir
eine erste offene Klammer. Die schließenden Klammern sollten automatisch
generiert werden. Und dann können wir einfach hierher gehen
und ein Semikolon einlegen. Jetzt ist das Oregon. Es wird uns hier gut gehen. Wir
wollen jetzt jedoch etwas in
die Klammern stecken , und das
wird ausgegeben. Jetzt müssen wir das zu einer
Zeichenfolge machen. Deshalb geben
wir hier
die grundsätzlichen Anführungszeichen ein. Und dann
sollten auch die zweiten
Anführungszeichen automatisch generiert werden. Und dann können wir Hello World
eintippen. So einfach ist das. Und um dieses Programm tatsächlich zu
starten, gehen
wir hier hoch und stellen sicher,
dass das alles in Ordnung ist. Das sollte
ziemlich genau gleich aussehen. Und wir klicken einfach
auf diese Schaltfläche „Ausführen“. Und nach ein paar Augenblicken
hast du Halloworld. Wenn dies das erste Mal war, dass
Sie jemals ein Programm ausgeführt haben bei dem Sie in diesem Moment zum ersten Mal
literarisch anfangen zu programmieren. Und das ist das erste
Mal, dass du das durchführst. Und alles hier sagt hallo world und das besagt, dass der Prozess mit Exit-Code 0
abgeschlossen wurde. Herzlichen Glückwunsch. Ich bin nicht einmal
so, als wäre ich es nicht, ich möchte hier nicht
bevormunden, weil dies tatsächlich ein Schritt
ist, den jeder
Programmierer durchmacht. Irgendwann
werden sie
ein Halloworld-Programm schreiben und sie werden
so sein, als warte eine Sekunde, ich kann die Dinge dieses I1
anzeigen lassen. Also könnte ich zum Beispiel Hallo Studenten
sagen. Und du wirst so sein,
wie das nicht der Fall sein kann. schaffe ich einfach. Ja, ich kann das einfach ausführen. Wenn ich das tatsächlich
richtig führe, los geht's. Alles klar, also führe
diese Hallo Schüler aus, und jetzt heißt es Hallo
Studenten, überhaupt keine Sorgen. Wie Sie sehen können,
ist das eigentlich wirklich, wirklich verdammt cool und das wird noch
mehr aufgeladen , denn jetzt
haben wir eine ganzzahlige Variable x, die gleich 10 ist. Nun, warum geben wir nicht einfach noch
einmal System aus und
ich kann anfangen,
dies zu schreiben , und Sie können sehen, dass
dies so ist, als die gewählte Rate ob die gewählte Rate
sozusagen irgendwie hervorgehoben
ist. Und wenn ich die Tabulatortaste drücke, wird
sie tatsächlich automatisch abgeschlossen. Also kann ich
das sehr schnell schreiben. So können Sie
wie auch schon sehen, im Grunde genommen ist eine hier und
dann auch eine Punktdrucklinie
vorgeschlagen . Und ich kann das
x einfach reinlegen und mir das ansehen. Alles funktioniert und geht
manchmal sehr schnell. Du kannst dir das also
so ansehen, naja, das ist so viel
dafür, oder? In einer System-Out-Druckzeile können
Sie sehen, wie schnell
das manchmal funktioniert. keine Sorgen. Ich werde versuchen, dies,
besonders
am Anfang hier,
etwas langsamer zu machen , damit jeder
grundsätzlich mithalten kann. Und nun, wir können einfach das x hier
einsetzen, also wird die Variable innerhalb
dieser Klammern und dann der Wert ausgegeben. Das ist echt cool, oder? Wo Sie tatsächlich etwas ausgeben können
, das sich in einer Variablen befindet. Und jetzt werden
wir noch verrückter werden. Also noch einmal,
System.Out, Zeile drucken. Erneut,
schließen Sie es einfach automatisch mit der Tabulatortaste ab. Und jetzt kann ich so etwas sagen,
wie einen Wert auszugeben. Und jetzt sieh dir das an. Ich kann über die Saite hinausgehen. Machen Sie ein Plus x. keinerlei Fehler. Alles sieht gut aus. Was wird jetzt passieren? Nun, sieh dir das jetzt an. Ausgabe eines Wertes und dann der Wert der Variablen
wird dort ausgegeben. Das ist also ziemlich häufig,
krank, wenn ich es selbst sage. Das ist eigentlich echt cool. Eine andere Frage kommt auf, naja, wie können wir etwas
vom Benutzer einlesen? Das ist ein
bisschen komplizierter. Normalerweise ist das
etwas, weißt du, es ist eine Art, würde
ich sagen,
Halbbegrenzung von Java. Es ist irgendwie ein Mist,
dass es kompliziert ist, aber keine Sorge was wir
schreiben werden, ist das Folgende. Wir werden
Scanner schreiben und dann einfach alles
platzieren, wenn hier etwas rot wird, überhaupt keine
Sorgen. Wir werden ruhig bleiben. Alles ist in Ordnung. Dann ist Scanner in gleich einem neuen. Und dann noch einmal
scannern Sie
mit einem großen S mit einem Kapital S innerhalb
der Klammern. Also werden wir
Klammersystem.in
erstellen und
dies mit einem Semikolon beenden. Jetzt
sollten sowohl der Scanner hier als auch
der Scanner hier bereit sein. Das ist vollkommen in Ordnung. Was
müssen Sie tun, ist, dass Sie darauf klicken und
Alt und Enter drücken , um dies hier zu
importieren. Wie ich schon sagte, normalerweise
wollen wir das alles ignorieren, aber wir können hier oben einen
kleinen Höhepunkt erreichen. So können Sie den Import von
Java util Scanner sehen. Dies wird im Grunde importiert. Das ist also überhaupt keine Sorgen. Sie können, wenn dies wichtig ist,
während Sie dies schreiben, denn wenn Sie die Tabulatortaste
drücken, wenn Sie den
Scanner schreiben, kann dies automatisch
wichtig sein ,
keine Sorge. nur sicher, dass
dies der richtige Satz ist, naja, hier sozusagen. Und dass das so
geschrieben steht. Wir werden uns keine Sorgen
darüber machen, was das bedeutet. Was machen wir hier? Nichts davon, wir
werden es nur wissen, okay, wir brauchen das,
um etwas zu lesen. Dann sagen wir
System Out Dot Print-Zeile, geben Sie Ihren Benutzernamen ein,
ungefähr so. Und was wir dann
sagen werden, werden wir
eine neue String-Variable
namens input erstellen . Und das werden wir dem Scanner
gleich machen. Als Nächstes. Da gehst du. Okay, also
muss als nächstes, wie Sie sehen können ,
so geschrieben werden, um die nächste und dann Klammer zu öffnen und zu
schließen. Und dann ist das in Ordnung. Das wird jetzt
alles speichern, was wir hier in
dieser Variablen
in der Konsole eingeben werden, und dann können wir
etwas damit machen. Zum Beispiel werden wir
einfach sofort wieder ausgegeben. Also System out print line, dein Benutzername lautet, und dann sagen
wir nur Input. Also nur für das, um das im Grunde zu
testen, also lasst uns das aufbewahren. Und was wir
sehen sollten, ist, dass viele
Schüler dazu neigen, einen gewissen Wert zu erzielen. Und Sie können sehen,
dass
das Programm zunächst nicht
automatisch endet , weil es
auf unsere Eingabe wartet. Sagen wir das einfach. Nun, mein Benutzername
ist Graf Andrew. Ich drücke die
Eingabetaste und dann kannst du sehen, dass dein Benutzername wahr ist. Das ist also ziemlich cool wie
wenn man darüber nachdenkt. Und das fängt wirklich
auch an, wo man
damit ein bisschen herumspielen kann. Weißt du, du hast eine gewisse
Unlösbarkeit mit dem PC. Sie können jetzt
sozusagen tatsächlich
mit dem PC sprechen, was
wirklich verdammt cool ist. Dies ist also einer
der ersten Schritte. Ich würde dir
im Grunde nur raten, würde dir
im Grunde nur raten hier ein paar
Sachen
auszuprobieren,
einfach ein paar Sachen einzutippen paar Sachen
zu tippen. Es kann wirklich Spaß machen. Aber wir
werden dies natürlich auch in
zukünftigen Vorträgen und den
kommenden Aufgaben verwenden , bei denen wir im Grunde genommen Sachen lesen und dann
Dinge tun werden und dann
Dinge tun , je nachdem,
was der Input ist
ist. Das ist also alles ziemlich cool. Aber das
ist es vorerst für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns
in der nächsten Vorlesung. Also ja.
6. (Java) Fehler und Wie du sie nicht in Panik animierst!: In Ordnung, willkommen zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in dieser Vorlesung werden
wir uns einige Fehler
ansehen und wie Sie um Hilfe bitten
können, wenn
Sie diese Fehler erhalten. Zunächst einmal beginnen wir hier
im Grunde
wieder mit etwas vorgefertigtem Code. Aber keine Sorge. Dies
steht Ihnen natürlich alles
im GitHub Repository oder als
Einzelperson genauso gut zur Verfügung. Und das ist sehr interessant. Zunächst einmal können
wir im Grunde einige Zeilen
auskommentieren,
um einige Fehler zu finden. Der erste Fehler, den wir haben
werden, ist Java
den Symbolfehler nicht
finden kann. Und das ist im Grunde genommen hey, etwas ist rot
innerhalb des Codes. Zum Beispiel
werde ich das Kommentieren einfach aufheben und Sie werden
sehen, dass a2 31,
im Grunde eine Variable, auf die
wir zugreifen oder
auf die wir zugreifen möchten,
nicht wirklich existiert. Das wird also rot sein. Das könnte etwas sein,
das dir nicht aufgefallen ist. Rot wird also auch hier wie unterstrichen
sein und in der Hauptklasse
erscheinen und Sie werden dort ein
Problemsymbol und ein Problem haben. Es wird also viele Zeichen geben
, aber Sie merken das vielleicht
einfach nicht, was völlig in Ordnung ist. Wenn Sie also Ihr Programm dann immer noch
ausführen, werden Sie mit diesem
begrüßt. Das erste, was Sie sagen müssen,
ist, wenn Sie einen Fehler bekommen, keine
Sorge. Ehrlich gesagt mag es sehr entmutigend
erscheinen, einen Fehler
am Anfang zu bekommen, und Sie werden
vielleicht nervös. Sagen wir,
sei überhaupt nicht nervös. Fehler zu bekommen ist
tatsächlich etwas, das erwartet, wenn Sie programmieren, dass beim ersten Mal
etwas funktioniert , tatsächlich sehr misstrauisch
wird. Weil es sehr selten ist, dass
wenn Sie an
irgendeinem Code arbeiten , es
beim ersten Ausführen funktioniert. Also bitte, zuerst, blieb
immer ruhig, wenn du einen Fehler bekommst. Ist nichts dergleichen. Keine Schande darüber auch immer. Sie haben nichts falsch gemacht und
können es immer reparieren. Dieser Pfeil, in diesem Fall, heißt
es, wie gesagt, Java kann kein Symbol finden. Es sagt uns tatsächlich, was die Variable hier ist und
wo sie sich befindet. Und wenn man sich hier ganz
oben anschaut, sieht
man diesen 1128 tatsächlich. Und das bedeutet eigentlich, dass
dies in Zeile 28 ist, in Zeichen oder einer anderen
Zeile 11, Zeichen acht. Das ist also
wirklich verdammt cool. So können wir sofort herausfinden
, wo sich dieser Pfeil befindet. Kann sagen, Okay, ich habe dort einen Tippfehler
gemacht oder ich habe vergessen, eine Variable zu erstellen, so
etwas. Das wäre dieser
Pfeil genau hier. Die zweite Sache, auf die Sie irgendwann
stoßen könnten, ist Ausnahme in Thread main, Java, Lang,
NullPointerException. Das bedeutet also, dass
etwas null ist,
was bedeutet, dass es
keinen Wert hat. Zum Beispiel haben wir genau hier eine
String-Variable. Und wir setzen den Wert auf null, dem ich
Ihnen bereits erzählt habe, was
bedeutet, dass
er keinen Wert hat. Es existiert nicht so ziemlich. Wenn wir jetzt versuchen würden, die Länge
zu nennen, das natürlich keinen
Sinn, denn die Länge des Nichts ist
auch nichts so, als ob man nicht eine Länge für etwas
nennen kann ,
das nicht existiert was bedeutet, dass wir
eine NullPointerException bekommen werden. Das sieht also irgendwie so aus. Und das würde Stack-Trace
genannt werden. Also ein Stack-Trace wie
Laien im Allgemeinen. Sie wissen also, worum es geht, ist im Grunde genommen, welcher Code bis zu diesem Zeitpunkt
aufgerufen wurde, bis der Fehler aufgetreten ist. Und Sie können sehen
, dass dies
bei Cotton Domain
Main und dann 16 passiert ist . Wir können also tatsächlich
darauf klicken und es gibt uns die genaue Zeile und manchmal sogar den genauen Code,
wo dies passiert ist. Das ist also die
NullPointerException. Dies passiert routinemäßig auch bei
fortgeschrittenen Entwicklern, dass man manchmal vergisst, etwas
zu initialisieren. Manchmal ruft man einfach
etwas in der falschen Reihenfolge auf, man vergisst,
eine Methode aufzurufen , die
allzu oft passiert. Wieder einmal nichts, worüber
man sich Sorgen machen müsste, aber das ist die Null-Ausnahme. Sie können dies normalerweise beheben indem Sie
eine Variable ordnungsgemäß zuweisen. Und dann das
Letzte, was nicht wirklich eine Ausnahme ist, aber das haben wir auch hier gesehen
. Dies ist also, dass dieser Prozess mit dem Exitcode eins
abgeschlossen wurde, oder manchmal könnte es
auch sagen, dass er mit dem Exit-Wert eins
ungleich Null abgeschlossen ist,
etwa so. Oder es könnte auch
etwas anderes sein als 1, 13042, was auch immer. Es könnte also eine
Zahl sein, die nicht 0 ist. Das ist das Wichtigste. Das bedeutet, dass
es einen Fehler gibt. Du solltest niemals nur das posten. Wenn Sie nur posten, hey, habe ich einen Fehler bekommen und Sie haben den
Post-Prozess mit dem
Exit-Code 0 abgeschlossen oder
mit dem Exit-Wert ungleich Null abgeschlossen. Jeder weiß, dass
du Java nicht kennst. Das ist natürlich kein
Problem, denn du musst irgendwo
anfangen. Aber das nur wenn dir jemand helfen
will, oder? Also,
wenn du zum Beispiel
ins Q und a gehst und du meinst,
Hey, mein weißt du, ich habe einen Pfeil
und es sagt das. Wenn Sie dies veröffentlichen, werde
ich zunächst wissen, dass Sie diese
Java-Einführung wahrscheinlich nicht gesehen
haben, was natürlich
Ihre eigene Entscheidung findet. Was ich aber auch
bemerken werde, dass dies nicht der Fall ist, gibt mir das überhaupt
keinen Wert. Dies sagt mir nur, dass es einen Fehler
gegeben hat. Das war's. Das ist alles, was das sagt. Wenn der Exit-Wert nicht 0 ist
, bedeutet das nur, dass irgendwo ein Fehler aufgetreten ist. Ich weiß nicht, was der Fehler
ist. Ich weiß nicht, was die Ausnahme war. Ich
weiß nichts. Das heißt, dass ich
tatsächlich noch einmal fragen muss. Es kann nur ein
bisschen frustrierend denn dann
musst du noch einmal fragen, Hey, kannst du
mir zeigen, dass das Fehlerprotokoll dort etwas ausgegeben
wird. Leg den Pfeil
auch da rein. Normalerweise, wenn Sie einen Fehler haben, ist
es besser,
zu viele Informationen zu geben ,
anstatt zu wenig. Das ist normalerweise der Fall.
Es ist nicht immer der Fall. Lassen Sie nicht einfach
80 verschiedene Dateien auf
jemanden fallen , der
Ihnen helfen möchte oder in den Fragen und Antworten, so
etwas. Aber normalerweise solltest du
so etwas haben, oder? Und Ausnahme und Fehler, irgendeine Art von Log etwas, das eine bestimmte Sache
wie diese Ausnahme
aussagt. Du hast vielleicht
irgendwo eine Ausnahme , so etwas. Das sollte also
wie das sein , worauf du achten
willst. Lass uns einfach etwas geben, das
ich dir geben wollte, was sehr
wichtig sein kann, oder? Aber das ist es schon. Das ist also eine Art, nur ein allgemeiner
Überblick über diese Fehler. Und natürlich zögern Sie nicht
zu fragen, ob es Fehler gibt. Wenn Sie unterwegs Fehler bekommen und um Hilfe bitten, ist
das völlig in Ordnung. Ich wollte nur
dieses Jahr besonders
erwähnen , weil es frustrierend sein
kann, nicht nur manchmal für
mich, weil ich dann eine
Folgefrage stellen muss. Und je nachdem,
wie lange das
funktionieren wird, und vielleicht
suchst du einfach danach. Und eine andere Antwort
kam nicht in 20 Minuten, also musst du
etwas anderes machen und dann dauert
es lange. Das kann also manchmal
ein bisschen frustrierend sein. Nun, was auch immer der Fall sein mag, das ist es für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
7. (Java) Integer und Arithmetic und Mathematik: Oder ich komme hier zur Java-Einführung für
den Minecraft-Modellierungskurs zurück hier zur Java-Einführung für
den . Und in dieser Vorlesung werden
wir uns ganze Zahlen
ansehen. Wir werden uns Mathematik
ansehen, und wir werden uns arithmetische Operatoren
ansehen. Jetzt sind das alles
sehr große Worte. Ich bin mir jedoch sicher
, dass wir es schaffen werden. Das erste, was wir tun
werden, ist, dass wir zwei ganze Zahlen initialisieren werden. Dies wird int x
gleich 100 und int y gleich 20 sein. Bis zu diesem Zeitpunkt sollte
alles ziemlich klar
sein. Insgesamt sind
dies nur zwei
Variablen, x und y. Sie haben den Wert
120. Sie sind beide Ganzzahlen. Also haben wir mit
dem Board angefangen int. Das sollte also
ziemlich einfach sein. Und wir werden auch eine
ganze Zahl haben, die als Ergebnis bezeichnet wird. Jetzt werden wir
diese Variable einfach
deklarieren , ohne ihr tatsächlich einen Wert zuzuweisen,
da wir
dies auf folgende Weise verwenden werden. Das erste
, was wir uns ansehen werden, ist der Zusatz. Das sind also im Grunde
arithmetische Operatoren, Addition, Subtraktion,
Multiplikation ,
Division
, und dann
gibt es einen fünften Typ, den wir uns in nur einem
Moment ansehen werden . Das Ergebnis hier von Addition
wird natürlich x plus y sein. Das sollte
also nicht zu verrückt sein. Wir werden einfach
in x hier drin. Und dieser Operator,
x in von links. A, eine Ganzzahl könnte
auch ein Float sein. Das würde also auch funktionieren. Also beide, beide, wenn X und Y, wenn beide
Floats auch völlig funktionieren würden. Nun
müsste
das Ergebnis natürlich auch über
Wasser sein. Sehr wichtig. Denk darüber nach.
Wir werden auch ein Beispiel in einer zukünftigen
Vorlesung davon sehen
. Wie wenn du anfängst, diese zu mischen, aber das
sollte vernünftig sein. Wir setzen einfach
das Plus-Symbol ein und dann fügen
wir im Grunde x plus y hinzu. Also lasst uns das System ausmachen, Zeile
drucken und dann das Ergebnis drucken, so
dass wir sehen werden, nun, das sollte ein 120 sein. Mal sehen. Und natürlich ist es eine 120. Alles funktioniert
einwandfrei. Wir können natürlich auch eine Subtraktion von n
verwenden. Was ich tun werde,
ist, dass ich das alles in Ordnung
bringen werde ? Also ziehe ich
einfach meine
Maus hierher und drücke
dann C, um
das alles für meine Maus hier zu kopieren, steuere V, um es einzufügen. Normalerweise mache ich
so etwas, nur damit
es ein bisschen einfacher ist, weil dies in diesem Fall
natürlich sehr
dupliziert ist . Jetzt zur Subtraktion hast du es
wahrscheinlich erraten. Wir müssen nur ein
Minuszeichen hier einsetzen. Und dann subtrahieren
wir plötzlich y von x,
was bedeutet, dass dies 80 sein sollte. Und natürlich ist es
AD völlig in Ordnung. Und lassen Sie uns diese tatsächlich komplett
abkopieren. Wählen Sie dieses Steuerelement wieder aus C und dann Control V genau hier. Und dann werfen wir uns auch
einen Blick auf Multiplikation und natürlich auch
die Vision. Multiplikation wird
also genau hier ein Stern sein. Und dann
ist Division nur ein Schrägstrich. Das sollte also
ziemlich vernünftig sein, nichts um zu verrückt zu sein. Insgesamt. sind nur die
normalen Wege, wie Sie Dinge
im Grunde gut
berechnen würden. Das ist also so ziemlich genau das. Gehen wir einfach durch C 2005. Das ist eigentlich alles in Ordnung. Und jetzt stellt sich die
Frage, nun, was ist der fünfte Typ? Nun, der fünfte Typ ist
eigentlich der Rest. Dies wird manchmal auch als Modulo-Operator
bezeichnet. Das ist in der tatsächlichen
mathematischen Hinsicht. Aber für uns ist es
der Restbetreiber und das sieht aus wie
ein Prozentzeichen. So könnten wir zum Beispiel
sagen, 20 verbleibende zwei, was natürlich 0 wäre. Wenn wir das also noch einmal kopieren
wollen, Control C, Control V, Dies wird 0 sein, denn
wenn wir 20 durch zwei teilen
, ist kein Rest mehr übrig. Dies ist also eine sehr gute Möglichkeit
, einen Blick darauf zu werfen ob eine bestimmte
Zahl gerade oder ungerade ist oder nicht. Das ist eigentlich ziemlich cool. Und das sind die fünf
arithmetischen Operatoren. Ein ziemlich unkompliziertes
alles in Betracht gezogen. Wie oft werden sie benutzt? Nun, ich meine,
du wirst
etwas Mathematik in der
gesamten Programmiersache benutzen . Ob beim Modellieren oder in der
Programmierung im Allgemeinen, natürlich ist
etwas Mathematik
damit verbunden. Diese Dinge sind also definitiv wichtig
, die Sie vorher gesehen haben sollten. Und dann wird das Letzte, was
wir uns hier
ansehen werden, die mathematischen Methoden
sein. Zuallererst werden
wir uns keine
Sorgen um zu viele Probleme machen. Nun, es ist eine Methode.
Nun, das kann man sich als eine bestimmte Funktion vorstellen. Also rufen wir zum Beispiel diese Mathematik an. Sie können also sehen, ob
ich Mathematik eintippe, Sie können Java Lang sehen und
das schlägt vor. Und wenn ich dann einen Punkt
einsetze, habe
ich eine ganze Reihe
von Dingen vorgeschlagen, die ich anrufen kann. Und es gibt
Dinge, zum
Beispiel die Max-Methode genau
hier, wo absolut, richtig. Also kann ich Max hier anrufen
und ich kann x, y sagen. Und dann wird es mir
den maximalen Wert
von jedem von diesen zurückgeben , was natürlich in diesem Fall
eine 100 sein wird. Wir sollten also ganz am Ende
hier ein 100 Pop-Out sehen . Eigentlich
ziemlich einfach. Und dann lassen Sie uns dies
einfach aus Gründen
der Argumente oder
Control D duplizieren , um dies zu duplizieren. Und lassen Sie uns zum Beispiel den absoluten
Wert von minus 500 abrufen,
was 500 wäre. In Mathe steht
es wie eine Mathematik so geschrieben. Vielleicht hast du sozusagen
so etwas schon mal mit
diesen wie absoluten
Zeilen gesehen . Und das wird dann zu
500, weil uns das Schild
davor nicht wirklich wichtig ist. Also werden wir auch 500
sehen. Und wie ich schon sagte, gibt es hier
ein paar mehr Sachen, wie Sie sehen können, dieses Siegel. Sie können also im Grunde
aufrunden, runden Sie ab. Du kriegst den Kosinus, du bekommst ein paar Exponenten. So können Sie etwas an
die Macht von e Logarithmus 10 setzen. Als ob es hier ein paar
verrückte Sachen gibt, zufällig
runden.
Selbst nach dem Zufallsprinzip gibt es sogar
Konstanten wie e und Pi. Es gibt also eine
Menge Sachen hier drin. Normalerweise ist es sehr selten
, dass Sie es verwenden müssen. Viele von ihnen sind besonders so
etwas wie die Max- und die Min-Methode und
die absolute Methode manchmal
ziemlich nützlich. Und es ist gut, das schon einmal
gesehen zu haben, damit es Ihnen nicht gefällt,
wenn Sie darauf stoßen, wenn Sie sich
einige GitHub-Repositories
anderer Modi ansehen oder einfach nur kalt
von anderen Leuten sind. Und sie benutzen so
etwas, dann wirst du nicht ganz unvorbereitet
erwischt. Aber das wäre es für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
8. (Java) Assignment: In Ordnung, willkommen zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in dieser Vorlesung werden
wir uns mit Zuordnungsoperatoren befassen. Jetzt haben wir den normalen
Zuweisungsoperator gesehen, der das gleiche Symbol ist. Und dafür gibt es eigentlich eine sehr
interessante Sache, denn das ist eigentlich eine
Art seitiger Operator, oder? Also weisen wir den richtigen Wert für
die linke Variable zu. Also konnten wir nicht einfach etwas wie
zum Beispiel 30 gleich y
eingeben . Das funktioniert nicht, oder? müssen wir es tatsächlich in diesem Fall müssen wir es tatsächlich in
einer bestimmten Reihenfolge haben. Nun, so gut,
wird das die Vorlesung sein? Ist es das? Nein, natürlich nicht. Es gibt einige spezifische, sehr interessante
Zuweisungsoperatoren, die,
naja, Sie wissen, dass die arithmetischen Operatoren
irgendwie verstehen müssen . Aber was wir tun können, ist
natürlich, dass wir x sagen können, zum Beispiel gleich
x plus y, oder? Also fügen wir in diesem Fall nur
y zu x hinzu. Und das dann wieder
in die Variable x zu schreiben , funktioniert
das total. Das wird kein
Pfeil sein, das ist völlig in Ordnung. Wir könnten
dies jedoch auch auf
etwas schönere Weise schreiben , und das wird x plus gleich y
sein. Das funktioniert
also auch hier. Und das ist eigentlich
echt cool. Das ist also, wo
das erstaunlich ist. Oh, das ist sehr einfacher
als das. Und normalerweise ist es auch ein
bisschen einfacher zu verstehen. Wenn dich das wirklich mehr
verwirrt als
das, ist das völlig in Ordnung. Sie müssen sich
jedoch die
Zuweisungsoperatoren ansehen, insbesondere
wenn Sie sich beispielsweise den Code
anderer Personen ansehen, nur diese verwenden und nicht so lange Art, es zu schreiben , damit Sie sich dessen bewusst
sein müssen. Auch wenn Sie
einige Tools, über die wir hier
sprechen, nicht verwenden , handelt es sich im Grunde genommen um
Tools, Programmrechte. Du musst immer noch etwas über sie
wissen , um Code zu lesen, den andere
Leute vielleicht haben, oder? Also lasst uns
einfach
die Variable x hier ausdrucken die Variable x hier und dann lasst uns auch
den Rest durchgehen, oder? Also wählen wir das aus, kopieren es und fügen wir
es dann einfach fünfmal ein. Was kann natürlich ein Minuss gleich
machen. Natürlich können wir auch mal gleich
machen. Wir können natürlich auch wie
Ned tun, wie dividieren gleich. Und am Ende können wir
sogar Restgleich machen. Und das ich noch
nie so gesehen habe, ist wirklich etwas, das
wahrscheinlich ein sehr,
sehr spezifischer Moment ist,
in dem das ist, kalt sein muss. Aber lasst uns einfach sehen
, ob das funktioniert. Natürlich funktioniert es
völlig gut, mit einem
140 zu beginnen , weil wir hier 20
hinzugefügt haben, oder? Also fangen wir hier mit 120 an. Ein adäquate ist wieder ein 140, und dann subtrahieren
ist es 120 und dann mal 20 ist 2400 und dann geteilt
durch 20 ist wieder 100120, und dann ist es natürlich 0 weil wir eine teilen können
120 von Wendy perfekt, was natürlich genau
genommen werden würde. Das ist sehr gut,
sehr gut gemacht. Also wenn ich jetzt nur noch eins
hinzufügen wollte, oder? Vielleicht möchte ich einfach so etwas
machen. X ist gleich x plus 1, oder? Aber ich möchte es nur um eins hinzufügen. Dies würde
als Inkrementieren
oder ein Inkrement x um eins bezeichnet werden. Nun, ich meine, natürlich könnten wir das auch
einfach schreiben, oder? Wir können das einfach machen. Ja, das würde natürlich
auch ganz gut funktionieren. Aber es gibt noch einen einfacheren
Weg, dies zu tun. Und das wird x plus plus sein. Sieh dir das an. Das ist ziemlich verrückt. Also gehen wir von hier nach hier, aber
so verrückt kann das sein. Und lasst uns das einfach ausdrucken. Und dann, weißt du, x minus minus funktioniert
natürlich auch. Das würde es erniedrigen. Also das ist, lasst es uns einfach ein bisschen hier
behalten. Thrombozyten, also
inkrementieren, erhöhen, und dann
würde dies auch erniedrigend sein. Im Grunde fügen wir also nur
einen hinzu oder subtrahieren einen. Werfen wir einfach einen Blick darauf. Wir fangen bei 0 gleich hier an. Eins hinzufügen, zwei hinzufügen ist zwei oder ein
weiteres hinzufügen, rechts ist 23. Und dann
drucken wir es aus und dekrementieren es
dann, und
dann sind wir wieder bei 2. Das ist also eine Art
allgemeine Idee hier. Dies sind die
Zuweisungsbetreiber und dann auch das
Inkrementieren und Dekrementieren von Europa, was auch irgendwie
wichtig ist. Aber diese beiden werden
viel sehen, besonders diese X
plus und x minus minus. sind Dinge, die
definitiv
sehr oft in
bestimmten Kapazitäten verwendet werden , sagen
wir innerhalb des Codes. Aber das wäre schon
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und er hat das Neue gelernt. Und wir sehen uns
in der nächsten Vorlesung. Also ja.
9. (Java) Booleschen und Vergleichsoperatoren: In Ordnung, willkommen zurück
zur Java-Einführung hier
für Minecraft-Morgen. Und in dieser Vorlesung werden
wir uns
einen Booleaner und
Vergleichsoperatoren ansehen . letzte Mal haben wir uns ganze Zahlen angeschaut, und jetzt werden wir uns Booleans ansehen. Die Booleaner im Allgemeinen, wir uns
aus der zweiten Vorlesung erinnern können, sind im Grunde ein
Datentyp, der
entweder einen wahren oder einen falschen speichern kann . Nun, zum Beispiel werden
wir hier
einen neuen booleschen Wert erstellen. Zum Beispiel mögen die Vorträge. Vorträge, dafür gesorgt, dass
dies richtig geschrieben ist und das
stimmt natürlich, Hoffen wir es. Und lassen Sie uns auch einen booleschen Wert machen
, der zum Beispiel eine
Frage gestellt wird. Und lassen Sie uns das vorerst einfach
falsch machen, vielleicht wird das später wahr, aber
vorerst ist das falsch. Also erinnern wir uns an
Booleans, wie ich schon sagte, ein wahres oder falsches, 1 oder 0, das ist die Idee. Und wir können
das sogar ausdrucken, oder? Zum Beispiel
können wir sagen, dass Sie diese Vorträge haben oder Ihnen gefallen. Sagen wir, Ihnen gefällt
diese Vorträge. Wem gefällt diese Vorträge? Und dann kann ich Control
D drücken, um dies zu duplizieren. Und zum Beispiel können Sie sagen, dass Sie eine
Frage im Q und a gestellt haben ,
also könnte ich das zum
Beispiel nehmen. Und anstatt die Vorträge zu
mögen, kann
ich dann Fragen stellen. Wenn ich das tun würde, dann
ist das,
was wir sehen werden , einfach wahr und falsch, im Grunde genau wie eine String-Ausgabe,
sie sind völlig in Ordnung. Okay, das ist also die
Art von Booleans, oder? Wahr oder falsch, Fair genug. Aber was sind
Vergleichsoperatoren? Nun, denken wir über diese
Vergleichsoperatoren nach, oder? Nun, es gibt ein paar von ihnen. Und die Idee von
Vergleichsoperatoren,
dass wir natürlich zwei verschiedene Werte
miteinander vergleichen werden. Und das wird
einen booleschen Wert zurückgeben, denn wenn wir
zum Beispiel etwas vergleichen , könnten wir größer als richtig
sagen? Also haben wir etwas, das
größer ist als etwas anderes, dann wird es natürlich entweder
wahr oder falsch sein, oder? Wenn ich sagen will, hey, habe ich einen Apfel,
der so groß ist wie ein Baseball. Okay, fair genug.
Und dann habe ich einen Apfel
wie ein Football. Nun, offensichtlich ist die Größe
eines Fußballs größer, also wird es wie ein Wahr
geben auch größer oder gleich ist. Es gibt auch Gleiche,
es gibt keine Gleichen. Sie sind kleiner als und
kleiner oder gleich. Das sind also die
Vergleichsoperatoren. Wir werden uns nicht jeden einzelnen
von ihnen einzeln ansehen . Und wir werden uns
ein bisschen anschauen. Das eigentliche Beispiel wir uns
ansehen werden, ist zum Beispiel, dass
Sie eine Punktzahl haben oder vielleicht
eine Prüfung abgelegt haben, oder? Du hast eine Prüfung geschrieben und
dein Ergebnis ist 98. Nun, vielen Dank. Das ist eine sehr gute
Punktzahl und es ist
tatsächlich dein
Punkte-Tag, du gehst rein. Dann können Sie sagen, nun, wir könnten in einem Booleschen Wert schreiben , der als
vergangene Klasse bezeichnet wird, oder? Und Sie bestehen diese
Klasse wann genau. Wir können darüber nachdenken. Nun, natürlich brauchst du
mindestens 50 Punkte. Sagen wir einfach, um der Argumentation
willen, Sie 50 Punkte benötigen,
um diese Klasse zu bestehen. Nun, es ist sehr einfach. Sie können einfach sagen, dass
Ihre Punktzahl größer oder gleich
sein muss, 50. Ergibt das einen Sinn? Das sollte also
intuitiv sinnvoll sein. Alles, was dies in Betracht gezogen würde
dies
natürlich in unserem Fall stimmen , aber wenn sich
Ihre Punktzahl ändert,
ändert sich die Antwort hier, oder? Denn sobald das nicht
mehr so ist, als ob es 49 ist, bestehen
Sie
die Klasse nicht mehr, oder? Das sollte also ziemlich selbsterklärend betrachtet werden. Also können wir das sogar einfach
ausdrucken. Also einfach System raus, drucke Zeile,
sagen wir zum Beispiel, du hast gefragt, lass uns das einfach so
einsetzen und dann den Unterricht
bestehen, oder? Also werden wir
ein True bekommen, wenn es
wahr ist und falsch, wenn es nicht der Fall ist. Und wir können sogar so
etwas sagen wie mit deinem Punktestand plus Punkten, so
etwas. Wir können das sagen.
Und wenn ich das jetzt renne und sehe
, dass du mit 98 Punkten
wahr bleibst. Wenn ich das auf 49 setzen würde, was natürlich in diesem
Fall jetzt nicht mehr stimmt. Keine 49 ist also nicht mehr
größer oder gleich 50. Nun, das wird jetzt ein Falsch
zurückgeben. Du wirst sehen, da
gehst du. Sie haben mit 49 Punkten
falsch bestanden. Lassen Sie uns das als DOE 1998 beibehalten. Und lasst uns auch
darüber nachdenken. Also lasst uns hier eine andere Idee nehmen. Also können wir auch einen booleschen Wert haben, zum Beispiel, der
perfekte Punktzahl hat, oder? Und das könnte
dann gleich sein, dass Ihre Punktzahl gleich 100 ist. Dies ist der Equals-Operator. Sehr wichtig, dass es
sich um zwei Gleichheitszeichen handelt. Und das ist etwas
, bei dem
Menschen manchmal überhaupt
bei Wissenden verwirrt werden. Ein Gleichheitszeichen ist der
Zuweisungsoperator, bei dem wir einer Variablen einen
Wert zuweisen. Und zwei Gleichheitszeichen der Vergleichsoperator, bei dem
wir vergleichen, ob dieser Wert dieser Variablen
hier dem
Wert dieser Variablen entspricht oder nicht . Das ist sehr wichtig. Und hier ist
das natürlich falsch. Da ist 98 natürlich
nicht gleich 100. Das sollte insgesamt auch
ziemlich einfach sein. Und wir können sogar so
etwas tun , das sehr interessant ist. Wir können sogar etwas negieren. Das ist also im Grunde
das Deklamationszeichen hier. Obwohl. Wir können auch
etwas sagen wie: hey, wir bestehen die Klasse hier, und dann können wir
einen anderen booleschen Wert machen als fehlgeschlagene Klasse bezeichnet wird, uns im Stich gelassen hat. Und das kann gleich sein,
naja, nicht der Klasse zu bestehen, oder? Also negieren wir einfach, ob wir die Klasse bestehen
oder nicht. Und das ergibt natürlich Sinn. Wenn das also
etwas verwirrend ist, schreiben
Sie es aus, als ob Sie tatsächlich
einen Schreibertext schreiben. Wenn die fehlgeschlagene Klasse wahr ist, da die Klasse natürlich falsch ist. Diese müssen also immer
gegenübergestellt sein. Also können wir das immer
einfach negieren. Dies könnte auch eine Idee sein. Das negierende Jahr ist natürlich, was im Grunde genommen
negiert, was bedeutet, dass die beiden das
Ausrufezeichen in den Vordergrund stellen,
bedeutet, dass wahr zu falsch wird. Und wenn es dann falsch ist, wird
es wahr. Wo gibt es dann
wahr zurück oder? Das ist irgendwie die Idee. Vergleichsoperatoren. kann man sich auch denken. Sie geben einen
Vergleichsoperator zurück. Du kannst dir das so vorstellen. Als wir eine Plusbewertung hatten, nahmen
wir links eine
Ganzzahl plus eine Ganzzahl auf der rechten Seite ein
und gaben eine ganze Zahl zurück. Auch hier ist es absolut
intuitiv sinnvoll. Du denkst nicht einmal
darüber nach, wenn du es bist, wenn du an Mathematik arbeitest
und Sachen berechnest. Wenn Sie 5 plus
5 machen, wird
es natürlich auf 10 zurückgeben, was eine Zahl ist. Nun, der Vergleichsoperator
ist ziemlich derselbe. Sie geben
hier zum Beispiel einfach eine Ganzzahl und eine Ganzzahl ein und geben einen Booleschen Wert zurück. Das heißt, das ist alles, was es dazu
gibt. Aber das einzige
, was sich wirklich ändert ,
ist sozusagen der Rückgabetyp. Denken Sie darüber nach
und das war's,
etwas, das Sie hier beachten sollten. Und das wären die
Vergleichsoperatoren. Ich empfehle dringend, damit einfach ein bisschen
herumzuspielen . Es sollte nicht zu verrückt sein. Es ist wirklich nur
zwei verschiedene Werte miteinander
zu vergleichen . Und das wird dann als boolescher Wert
ausgedrückt, was tatsächlich
sinnvoll sein sollte, wenn es
in diesem Fall immer nur
eine richtige Antwort gibt , oder? Wenn entweder der Punktestand größer oder
gleich 150 ist oder
nicht, impliziert dies. Aber was auch immer der Fall sein mag, das ist es für diese
Vorlesung genau hier. Ich hoffe, du hast das
nützlich gefunden und du lernst
etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
10. (Java) Boolescher und Logical Operatoren: In Ordnung, willkommen zurück zur Java-Einführung
für
die Mikrowellenmodellierung. Und in dieser Vorlesung werden
wir uns logischen Operatoren befassen. Also habe ich hier ein paar
Booleaner vorbereitet, Vorträge
angeschaut, Fragen gestellt, Aufgaben
abgeschlossen
und die Überprüfung aufgenommen. Diese hängen natürlich mit einem kursähnlichen
Szenario zusammen, sagen wir mal. Und wir werden uns jetzt
die logischen Operatoren
ansehen . Und es gibt drei von ihnen, die
wir uns
im Grunde ansehen werden. Es gibt das Ende, es gibt
das ODER und das nicht. Also haben wir vorher gesehen
, wo wir etwas
negieren konnten und das UND, und das ODER
ist auch sehr interessant. Die logischen Operatoren nehmen also zwei Booleans auf und geben
dir einen neuen booleschen Wert. Zum Beispiel, für das
Ende der Booleaner muss
man es geben,
muss wahr sein, und dann kehrt es wahr zurück. Ansonsten gibt es false zurück. Und für das, oder
einer von ihnen muss
wahr sein und dann gibt es ein wahres zurück. Dies gibt also nur false zurück,
wenn beide falsch sind. So könntest du dir das zum Beispiel
vorstellen. Also hat Boolean den
Kurs beendet, oder? Wenn Sie also den Kurs
beenden möchten, müssen
Sie sich die Vorträge
angesehen
und die Aufgaben abgeschlossen haben . Das sollte
Sinn ergeben. Das ist ein gutes konkretes Beispiel hier. Und dann könnte man auch
sagen, naja, ein Fan, oder? wir also, dass
es Fan ist, oder? Jemand, der ein Fan ist,
würde den Kurs beenden. So fertige Kerne
und Eva Review, das sollte auch insgesamt
sinnvoll sein. Und jetzt hat jemand, der
vielleicht lernt, wie vielleicht viel lernt
, die Vorträge gesehen
oder die Frage gestellt. Das ist also etwas
, das lernt, oder? Entweder sehen Sie sich die
Vorträge an oder stellen Sie eine Frage. Also könnte jeder von ihnen wahr sein und dann
wäre das Lernen auch wahr. Lasst uns eine Art
allgemeine Idee hier haben. Und es gibt noch eine
Sache, die ich habe und das wird genau hier sein
. Dies ist also nur ein
allgemeiner Überblick was im Grunde passiert. Sie können
dies auch als Spickzettel herunterladen. Dies ist
in den Ressourcen verfügbar. Und die Idee hier
ist, dass es Ihnen nur zeigt, was die
verschiedenen Arten von Ergebnissen sind, das sind im Grunde
die Ergebnisse. Sie haben also a und B. Und
je nachdem, was sie sind, ist
dies die Rückkehr,
die gegeben wird, wie ich schon sagte, beide
müssen wahr
sein, damit die Antworten
ein wahres zurückgeben. Und hier, wenn einer
von ihnen wahr ist, gibt
dies ein Wahr zurück. Ansonsten ist es falsch. Man kann sich auch daran denken, ein oder B
schreiben,
es ist irgendwie wirklich in die Sprache
eingebrannt wenn man über die
Negation nachdenkt, wie ich schon sagte, wir haben bereits
darüber gesprochen, dass
das irgendwie allgemein ist passen Sie an, wenn es um die logischen Operatoren geht. Es gibt natürlich auch
ein bisschen mehr da darüber,
ist das wirklich ein guter
Anfang dafür? Und dann ist natürlich
das wahre, woran
Sie denken können dass Sie, wenn Sie einen von
denen haben, die einen booleschen Wert zurückgeben, diese natürlich miteinander
verketten können. So können Sie dann
zum Beispiel auch
End-Frage-Frage sagen , oder? Sie können also sehen, dass
wir jetzt den UND-Operator wieder verwenden können, da dies natürlich einen booleschen Wert
zurückgibt . Das funktioniert also ziemlich
ähnlich wie die
arithmetischen Operatoren. Natürlich kannst du auch
plus plus plus plus. Sie können 5 plus 8
plus 7 plus 9 plus 15 haben. Das funktioniert vollkommen gut. In ähnlicher Weise können
Sie auch die
logischen Operatoren
miteinander verketten , oder? Aber das wäre es für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues und wir sehen uns
in der nächsten Vorlesung. Also ja.
11. (Java) Wenn und andere Anweisungen: In Ordnung, willkommen zurück
zur Java-Einführung
für Minecraft-Morgen. Und in diesem Vortrag werden
wir uns
die If- und sonste-Aussagen ansehen. In dieser Vorlesung werden wir
im Grunde genommen
anfangen, wirklich etwas
mit dem Computer zu interagieren. Viele der vorherigen Vorträge
waren sehr theoretisch, zeigen irgendwie
einige Konzepte. Aber in dieser Vorlesung werden
wir sehr gut
mit dem Computer interagieren. Fangen wir einfach
damit an, zwei ganze Zahlen zu erstellen. Prüfung 1, Sagen wir zum
Beispiel 65 und Prüfung 2, die vorerst
51 sein wird. Und wir könnten uns vorstellen,
dass
wir mal sehen, ein Programm schreiben müssen, das diese Werte
dieser beiden Prüfungen
bewertet. Und im Grunde sagt: Hey, du hast Prüfung 1 versagt oder hast nach Prüfung 2 gescheitert oder
hast es hinter der Prüfung gemacht. Und am Ende, vielleicht wenn Leute beide Prüfungen bestanden haben, wird
vielleicht etwas ausgedruckt Wie du die
Klasse bestanden hast oder so ähnlich. Wie können wir das machen? Nun, was wir tun können, ist, dass wir eine if-Erklärung abgeben
können. Und dafür
gefällt uns buchstäblich genau richtig wenn, genau hier. Und dann können wir folgendes
tun. Wir können Klammern einsetzen. Und wenn Sie es in
eine offene Klammer setzen, sollten
die schließenden Klammern
automatisch generiert werden. Und innerhalb dieser
Klammern müssen
wir einen booleschen Wert angeben. Wir erinnern uns also an die beiden vorherigen Vorträge in denen wir
Vergleichsoperatoren hatten. Was wir also sagen können,
ist, dass wir, wenn Prüfung 1 größer
oder gleich 50 ist, wissen wir
, dass
wir die Prüfung bestanden haben. Und dann, wenn wir hier versteckt sind ist nach den schließenden
Klammern, setzen
wir eine geschweifte Klammer ein. Und wenn ich die offene geschweifte
Klammer einlege und die Eingabetaste drücke, die schließende geschweifte Klammer sollte
die schließende geschweifte Klammer automatisch für Sie
generiert werden. Und jetzt
können wir als etwas anderes schreiben. Also können wir System
out sagen, Zeile drucken. Und dann
hast du zum Beispiel eine frühere Prüfung. Obwohl dies der gesamte Code zwischen diesen beiden geschweiften Klammern hier passieren wird,
wenn sich alles
in der if-Anweisung befindet . Also innerhalb dieser
Klammern, stimmt. Wenn das stimmt, wird dies passieren. Das ist eigentlich ziemlich cool. Und dann können wir
das
irgendwie aufladen , indem wir eine
LLC oder am Ende hinzufügen und auch
eine geschweifte Klammer einsetzen. Und noch einmal setzen wir die offene geschweifte
Klammer bei jedem Drücken ein
Enter eine schließende geschweifte Klammer sollte hier automatisch
generieren. Und dann können
wir zum Beispiel einfach
dieses Steuerelement C Control
V auswählen , um es einzufügen. Und dann können wir sagen, dass Sie Prüfung 1 nicht bestanden
haben. Also dieses Jahr, oder? Denn das andere
passiert tatsächlich, wenn das falsch ist. Das funktioniert
eigentlich sehr gut für uns. Wir können dies also grundsätzlich
nutzen, um einen Blick darauf zu werfen, ob Prüfung
1 bestanden oder fehlgeschlagen wurde oder nicht . Lassen Sie uns das also tatsächlich
durchführen und wir sollten eine frühere Prüfung ablegen. Und natürlich bekommen
wir das weil in diesem Fall
Prüfung 1 größer als,
größer oder gleich als 50 ist . Das heißt also.
Das ist also ziemlich cool. Jetzt können wir im Grunde genau dasselbe
für die zweite Prüfung machen. Kopieren wir einfach all das ausgewählte Control
C, Control V. Und dann
werden wir hier Exam 2 sagen. Hier sagen wir Prüfung 2, und hier
werden wir auch Exam 2 sagen. Das ist eigentlich ziemlich cool. Alles in Betracht gezogen. Und dann stellt sich
die Frage, nun, ich meine, jetzt
wollen wir ausgeben, wenn Sie beide Prüfungen tatsächlich
bestanden haben. Wie können wir das machen? Nun, jetzt werden wir
ziemlich verrückt. Die letzten beiden
Vorträge werden also sozusagen
etwas kohärenter erscheinen . Wir werden Prüfung 2 sagen. Prüfung 1 ist größer oder
gleich 50, oder? Das besteht also immer noch
diese End Exam 2, 0, richtig? Diese Prüfung 2 hier
ist größer oder gleich 50. Und wenn dies dann, wenn beides stimmt,
dann wissen wir, dass Sie
die Klasse bestanden haben, damit wir das System hier draußen
kopieren können ,
und dann können wir einfach sagen, Sie haben bestanden, sagen wir die Klasse gerade aus
Gründen der Argumentation hier. Das ist also echt
verdammt cool, oder? Wir haben jetzt if-Aussagen
und wenn sonst Aussagen, und was Sie übrigens
auch tun können, wenn Sie eine andere
Aussage haben, dass Sie hier eine andere if-Aussage
abgeben können , oder? Also kannst du
das einfach da reinlegen. Grundsätzlich, wenn das falsch ist, dann sonst und
dann eine andere wenn Aussage im Grunde nur aus
Gründen der Argumentation ist, sagen Sie
einfach wahr hier. Natürlich würde das auch
funktionieren, aber weißt du, und dann können wir
etwas anderes sagen und diese im Grunde zusammenketten,
damit
du es sonst machen kannst , wenn sonst, wenn sonst, und dann wird der letzte
immer sein sonst oder du kannst auch hier einfach
kein anderes haben. Das funktioniert auch. Das wollte ich auch
erwähnen. Aber jetzt ist das wirklich
Coole, nun, denken wir darüber nach. Nehmen wir an, dies ist
eigentlich ein Programm ,
in dem der Professor hereinkommt und tatsächlich in
die Ergebnisse Ihrer Prüfung schreibt. Oh was? Nun, wir erinnern uns,
wie wir
etwas lesen können , in dem wir in Scanner, Scanner,
Scanner schreiben müssen ,
entspricht einem neuen Scanner. Und dann system.out.print. Und dann funktioniert das
einfach für uns. Wir erinnern uns, dass wir uns nicht zu
viele Sorgen machen
wollen, was das bedeutet. Dann können wir etwas wie
Systemausdruckzeile
sagen und Ergebnisse oder Prüfung eins sagen. Stimmt's? Und dann lassen Sie uns das
einfach duplizieren. Machen Sie Ergebnisse für eine Prüfung 2. Und dann können wir einfach sagen, dass
Prüfung 1 tatsächlich gleich dem
Scannerpunkt next int
ist , oder? Also lesen
wir eine ganze Zahl ein und
speichern sie dann in der
Prüfung eine Variable. Und das Gleiche, was wir tun
werden, um zu gehen. Was jetzt
passieren wird, ist echt cool. Jetzt fangen wir damit an und
jetzt
erwartet es tatsächlich , dass wir eine Prüfung ablegen. Leider 32, eigentlich
nicht 320, sondern 32. Nun, und dann
waren die
Ergebnisse für Prüfung zwei tatsächlich
sehr viel besser. Sie waren leider 68, nur ein bisschen, nicht
ganz genug für 69. Und dann können Sie sehen, dass Sie Prüfung 1 und Prüfung 2
nicht bestanden haben. Jetzt fangen wir wirklich
an, auf eine Art
Teil dieser
Java-Einführung einzugehen , in dem Sie wirklich
etwas mit dem Computer machen können. Und Sie
werden wirklich sehen, dass dies auch in der ersten Aufgabe für die nächste Vorlesung
eine Art alternative
Version der if-Aussage sein wird , die auch
sehr wichtig sein kann. Und dann die erste Aufgabe, empfehle
ich dringend,
die Aufgaben hier für
die Java-Einführung durchzuführen, besonders wenn Sie
nur ein Anfänger sind weil sie
wirklich, sehr nützlich sein können. Und damit ist natürlich
der Kern es
Up-Repository oder ein genauso gut verfügbar. Aber schauen Sie sich
die in den Ressourcen an. Und ich empfehle dringend damit ein bisschen
herumzuspielen, einfach ein paar Zahlen
zu lesen, um sie zu vergleichen, einige If-Aussagen zu machen und
nur eine ganze
Reihe cooler Sachen zu machen. Damit kannst du schon ziemlich ein
wirklich cooles Spiel machen. Also, aber vorerst wäre
dies für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas von dem Neuen. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
12. (Java) Switch: Oder ich komme hier zur
Java-Einführung
zur Minecraft-Modellierung zurück . Und in diesem sehr kurzen Vortrag werden
wir uns die Switch-Aussage
ansehen. Die Switch-Aussage
ist sozusagen wie der kleine Cousin der
if-Aussage. Es ist also sehr ähnlich. Werfen wir einfach einen Blick darauf. Also werden wir eine Ganzzahl
erstellen als Metal-Platzierung
bezeichnet wird, die
vorerst nur eins ist. Sie könnten sich vorstellen, dass dieser die Platzierung
zum Beispiel bei den
Olympischen Spielen
darstellt , oder? Eine wäre also die
Goldmedaille, Silber, Bronze. Zwei ist also Silber und
Bronze ist drei. Und dann alles andere
als Rekorde, kein Metall. Und wir könnten dies tun, indem wir nur einige If-Aussagen
machen, wer auch immer wir auch
eine Switch-Erklärung abgeben könnten. Sie können sehen, ob ich hier Switch
eintippe, dann lege
ich innerhalb der Klammern die Variable ein, die
wir auswerten sollen. Machen Sie dann noch einmal
die geschweifte Klammer oder die zweite sollte automatisch
generieren. Und jetzt muss
ich in jedem,
innerhalb dieser geschweiften Klammern,
jeden der Fälle angeben , die
diese Variable annehmen kann. Also kann ich Fall 1 sagen. Das bedeutet also,
dass es den Wert eins, die
Systemausdruckzeile und dann
zum Beispiel Goldmedaille übernommen hat Systemausdruckzeile und dann . Und dann kann ich Fall zwei sagen. Und dann kann ich System Out
Print Line sagen, Silber, Metall. Und dann noch einmal, ganz
am Ende kann ich hier Fall drei
sagen, System. Die
Druckzeile des Systems heraus. Da gehst du. Bronzemedaille. Es ist jedoch formatiert,
das ist völlig in Ordnung. Und dann können wir
auch Standard sagen,
was bedeutet, dass dies genannt
wird wenn es nicht der Fall ist,
dies wird mehr in diesem Fall. Also haben wir hier
Fälle vordefiniert. Und dann wird
es im Standardfall tatsächlich heißen, wenn es
etwas anderes ist , dass
wir kein Metall sagen können. Und das erste
, was Sie
bemerken werden , ist eine Sekunde zu warten. Wir müssen
jeden einzelnen Fall definieren. Ja, hier
ist das Problem, dass Sie etwas wie
größer oder gleich
verwenden können , was es sofort viel
einfacher macht , etwas einzugrenzen. Wenn ich die
Prüfungsbewertung hier machen wollte, müsste
ich tatsächlich jeden Fall
durchgehen. Also muss ich die Fälle eins bis 50 oder eins
bis 49
durchgehen , um zu sagen, hey, du hast gescheitert und
dann sind die anderen für dich erfolgreich oder du hast bestanden. Die Switch-Anweisung ist also nicht
immer die beste Wahl. Es kann jedoch manchmal sein. Werfen wir also einen
Blick auf diese Liste. Sollte natürlich tatsächlich Goldmedaille
ausdrucken. Aber das erste, was du sagen
wirst, ist eine Sekunde zu warten. Es hat tatsächlich alles genau
ausgedruckt. Weil es noch eine Sache , die wir tatsächlich tun müssen. Und das ist, wenn
Sie den Fall haben, das Ende, müssen Sie genau hier mit einer Pause
enden. Wir müssen diese Pause einlegen. Sonst wird es
im Grunde einfach erhalten bleiben. Es wird einfach durch
die Switch-Anweisung gehen,
wird einfach
weitergehen und einfach alle Fälle
herausziehen. Und wenn wir hier die Pause
haben, werden Sie sehen, dass
nur der relevante genommen
wird. Lassen Sie uns hier einfach drei einbringen, nur um der Argumentation willen. Wie Sie sehen können, funktioniert
das jetzt. Das ist also sehr wichtig, denn das break Schlüsselwort
muss hier mit der
switch Anweisung verwendet werden. Das kann manchmal
ein bisschen nervig sein. Der Schalter sie normalerweise für
ganze Zahlen ist also in Ordnung, kann verwendet werden. Es wird normalerweise
für Enums verwendet, da Enums
Werte definiert haben, die sie annehmen
können und die normalerweise
für die Fälle einfacher , was sehr selten ist oder
was im Grunde unmöglich ist. Sie sollten keine Floats
in Switch-Anweisungen verwenden da Sie hier natürlich den genauen Fall definieren
müssen. Und aufgrund der
schwebenden Rundung oder Fehler, die auftreten können, funktioniert
dies möglicherweise
nie. Verwenden Sie also niemals Floats
und Switch-Anweisungen. Im Grunde ist das eine sehr
wichtige Sache, an die man sich erinnern sollte. Andernfalls
könnte natürlich eine Switch-Anweisung, auch wenn Sie sie nicht selbst verwenden, auch wenn Sie sie nicht selbst verwenden,
im Code einer anderen Person erscheinen. Du wirst das wenigstens schon mal gesehen
haben müssen, oder? Aber das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und Neuronen und das Neue, wir sehen uns in
der nächsten Vorlesung. Oh ja.
13. AUFGABE 1: Trivia: In Ordnung, willkommen zurück
zur Java-Einführung für Minecraft-Modding hier
mit der ersten Aufgabe. In der ersten Aufgabe
wird ein Create, ein einfaches Quizspiel sein. Ich werde in Kürze erklären,
was das mit sich bringt. Obwohl die Idee ist
, dass Sie mindestens drei Fragen
definieren sollten . Ich empfehle,
drei Fragen zu stellen , drei Antworten, das
wird ausreichen. Andernfalls wird der Code
sehr schnell überladen. Und was ich möchte, dass
Sie möchten, dass Sie den Benutzer
auffordern, seine Antwort
einzugeben. Sie können den
Scanner dafür verwenden, um
im Grunde genommen das zu erhalten, was
er eingegeben und dann mit einer if
- und else-Anweisung ausgewertet hat, um zu überprüfen, ob die Antwort, die
der Benutzer eingegeben hat, korrekt war oder
nicht . Daher empfehle ich,
die Output-Input-Vorlesung die Output-Input-Vorlesung überprüfen
, die
in diesem Fall sehr wichtig war. Und die if-else
Statement-Vorlesung
könnte auch sehr interessant sein, ihn noch einmal zu
betrachten. Wenn sie also korrekt waren,
geben Sie aus, dass sie waren, und wenn sie falsch lagen, teilen
Sie dem Benutzer mit,
dass er
falsch war, und geben Sie auch
die richtige Antwort aus. Eine andere Sache, die Sie tun
sollten, ist im Grunde nur eine Punktzahl zu erhöhen,
was bedeutet, dass,
wenn der Benutzer
eine korrekte Antwort hat , die um eins erhöht wird,
am Ende nur eine eindeutige Ausgabe für jede der
verschiedenen Punktsummen. Also im Grunde drei,
im Grunde gesagt: hey, du hast alles richtig gemacht um etwa 0 Minuten zu tun, okay, einen Fehler, einen
und so weiter und so weiter und so weiter. Im Grunde genommen von 0 bis drei zu beachten, wenn man am Ende einige, wenn sonst
if-Aussagen zwei Dinge
zu beachten, wenn man am Ende einige, wenn sonst
if-Aussagen
gibt. sind also einige Tipps, die
Sie
beachten müssen , wenn Sie eine Zeichenfolge vom Benutzer lesen.
Bitte verwenden Sie den Scannerpunkt als
nächstes und nicht den
Scannerpunkt
in Bitte verwenden Sie den Scannerpunkt der nächsten Zeile. Denn wenn Sie den
Scanner-Punkt in der nächsten Zeile verwenden, vermasselt
das manchmal die
Art und Weise, wie dies eingelesen wird. Aber ich
empfehle dies nur wärmstens. Und wenn Sie dann eine Antwort davon
einlesen, sind nächstes
gelandet, haben wir eine Zeichenfolge und Sie möchten diese mit einer Zeichenfolge
vergleichen. Verwenden Sie nicht gleich, gleich, sondern verwenden Sie den Eingabepunkt gleich
und geben Sie dann die Antwort, die richtige Antwort in
Klammern, hier. Dies wird auch
einen booleschen Wert zurückgeben, was dies
ein wenig einfacher macht. Also sonst, weil es manchmal nicht funktioniert und
das wird definitiv funktionieren. Behalten Sie das also im Hinterkopf. Und das ist so ziemlich
der Auftrag genau hier. Dies wird auch hier
als Text geschrieben. Und ich vermute, dass
dies
für einen Anfänger etwa 45 bis 60 Minuten sind. Ich würde auf jeden Fall
empfehlen, sich damit Zeit zu nehmen. Wahrscheinlich zurück
zu den alten Vorträgen, werfen Sie einen Blick auf die
Ausgabe Input-Vorlesung, wenn und sonst Aussagen Vortrag. Und damit solltest du
fast vollständig fertig sein. Im Grunde ist es
so ziemlich genau das, was du brauchst. Und wenn Sie fertig sind, haben
Sie natürlich Zugriff auf die Lösung, und ich werde
die Lösung auch in einem anderen Video durchgehen . Das wäre es also. N, viel Glück.
14. LÖSUNG 1: Trivia: In Ordnung, also haben
Sie
die erste Aufgabe überstanden und hier ist die Schritt-Through-Lösung. Sie haben also wahrscheinlich
schon gesehen, wie es aussieht, eine Stunde, die gerade
durchlaufen wird. Natürlich
werden die Fragen
hier in diesem Fall tatsächlich als Strings gemacht. Das ergibt natürlich
sehr viel Sinn, oder? Ansonsten können Sie
die Fragen wirklich in irgendeiner Weise speichern. Und die eine Antwort ist eigentlich in einer Ganzzahl, die funktioniert. Ich sehe jedoch auch
den Sinn darin,
dies auch zu einer normalen Zeichenfolge zu machen . Überantworten wären
richtig. Also keine Sorgen. Es gibt. Wir haben ganzzahlige
Punkte und dann einen Scanner, und dann fangen wir einfach an, wir
geben die erste Frage aus. Wir sagen dann die
Benutzereingabe Nummer 1. Wir werden das einfach hier
reinlegen. Wir werden sehen, ob das der ersten Antwort
entspricht. Wenn ja,
erhöhen wir die Punkte,
geben aus, dass es korrekt war und
Sie haben so viele Punkte. Und dann
werden wir sonst falsch sagen und die richtige Antwort ausgeben. Danach
machen wir so ziemlich genau das Gleiche. Ich stelle die
zweite Frage, erhalte die Benutzereingabe erneut und trete
sie gleich oder sage: Hey, ist das gleich
der Antwort hier, inkrementiere die Punkte,
wenn es richtig ist, gebe aus das und
dann nein sagen, es ist falsch, das ist
eigentlich die richtige Antwort. Und dann wieder das dritte Mal. Und am Ende sieht man
hier, dass es hier
grundsätzlich eine
Art Kaskade durchläuft. Punkte gehen also
durch drei bis 0. Dann habe ich auch eine
Art Osterei hier. Wenn du weniger
als 0 Punkte hast, die du bekommst, wie bekommst du überhaupt
negative Punkte? Weil es keine
Möglichkeit gibt, die zu kriegen. Man könnte natürlich auch
etwas, wo man negative Punkte bekommt ,
wenn man eine besonders dumme
Antwort oder so etwas gibt,
das würde auch funktionieren. Aber ich habe hier
nichts implementiert. Es war nur ein Beispiel. So könnte das also tatsächlich
funktionieren. Dies ist also ein Beispiel. einmal, wenn das eigentliche
Programm funktioniert, richtig? Also wenn das für dich funktioniert und du dieses
Spiel spielen kannst und es funktioniert, aber es sieht anders aus. Das ist absolut in Ordnung. Wie Überhaupt keine Sorgen. Das ist also das Schöne hier. Es gibt mehrere
Möglichkeiten, dies zu tun, und wir werden dies in
den kommenden Aufgaben
sehen , und wir werden dieses Quizspiel
im Grunde
auch immer verwenden , eine Art Vorlage. Und wir werden
diese nächsten Aufgaben
grundsätzlich auf eine andere Weise neu gestalten . Und das ist, ich hoffe, dass Sie
sehen können, dass es einfacher und anders wird, sagen
wir in den zukünftigen Vorträgen und den
zukünftigen Aufgaben. Aber das wird es für
diese Lösung genau hier sein. Ich hoffe, du hast diese Aufgabe
nützlich gefunden und du lernst
etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
15. (Java) Strings und Strings: Oder ich komme hier zur
Java-Einführung
zur Minecraft-Modellierung zurück . Und in dieser Vorlesung werden
wir uns Strings
und einige String-Methoden
ansehen . Nun, im Grunde sozusagen überall um
die Saite herum. Und wir werden zunächst zunächst eine neue
String-Variable namens Satz erstellen. Und das wird gleich
sein,
es ist eine wunderbare
Dava-Einführung. Hoffen wir,
dass das auch stimmt. Aber was auch immer der Fall sein mag, dies ist der Wert
unserer String-Variablen hier. Und wir werden das
einfach ausdrucken. Also Satz genau hier, System Out Line Satz. Und jetzt ist die Frage, was können wir hier sonst noch tun? Nun, das erste, was wir
tun werden, ist,
dass wir es
tatsächlich duplizieren werden. Lasst uns ausrichten. Und
was wir dazu
sagen werden, wird übrigens von
Control D gemacht. Und was wir tun werden, ist
zu sagen, dass Länge ist, wir so
etwas wie Plus sagen werden. Und dann können wir
Satzpunktlänge sagen. Wie Sie sehen können, kann ich
die Punktlänge mit
den Klammern hier aufrufen ,
was bedeutet, dass es sich um einen Methodenaufruf handelt. Wir sind uns noch nicht hundertprozentig
sicher, was das ist, aber wir haben das
schon ein paar Mal gesehen, und das gibt uns im Grunde nur die Länge
zurück. Und wenn ich jemals den
Mauszeiger darüber fahre, können
Sie sehen, dass in einer Ganzzahl die Länge
der Zeichenfolge
zurückgibt, Länge ist gleich der Anzahl der Zeichen in dieser Zeichenfolge. Das sind also im Grunde
Unicode-Einheiten. Machen wir uns darüber keine Sorgen. Es ist im Grunde genommen gleich
den Zeichen in dieser Zeichenfolge. Mal sehen. Die Länge beträgt 35. Das ist also
interessant hier. Und dann
geben wir natürlich auch den eigentlichen
String aus. Aber was können wir sonst noch tun? Wir müssen in der Lage sein,
ein paar interessante Sachen zu machen. Natürlich können wir das. Lassen Sie uns
diese Ausgabe tatsächlich hier bekommen. Lassen Sie es uns einfach dreimal
duplizieren. Warum nicht? Und das erste,
was schreien wird. Das bedeutet also
, dass alles hier, ich werde in
Großbuchstaben verwandeln. Wie machen wir das? Nun, wir können hier Satz Dat
zu Großbuchstaben machen. Dies hat tatsächlich schon vorgeschlagen. Und dann würde natürlich
das Gleiche einfach flüstern, oder? Und dann werden
wir
das hier in Kleinbuchstaben verurteilen . Das geht also nur zum ersten von alternativen Groß
- und Kleinbuchstaben. Und dann, nur um der Mitte
willen, gibt
das auch noch einmal den
Satz aus. Lasst uns auch einen
Kommentar hinzufügen, oder? Das ist also Groß- und Kleinbuchstaben. So ziemlich einfach. Wir können die gesamte
Zeichenfolge einfach in Großbuchstaben umwandeln, eine ganze Zeichenfolge in Kleinbuchstaben. Und dann sollten
wir hier auch die
Kleinbuchstaben-Zeichenfolge
bekommen, oder? Wenn wir das einfach herausbringen, können
Sie sehen, dass Sie
alles in großen Buchstaben schreien, also alles in Großbuchstaben,
dann alles in Kleinbuchstaben. Und dann ist es hier,
es ist die normale Saite. Das ist merkwürdig, nicht wahr? Nun, hier ist der sehr
interessante Teil dazu. Diese Methoden geben tatsächlich eine Kopie dieser
Satzvariable zurück. Sie ändern die
Variable nicht an sich. Wenn wir also Dinge
wie x gleich x plus 1 hatten, haben wir tatsächlich x ist
0 oder x plus gleich 1 geändert. Das hat die x-Variable geändert. In diesem Fall
geben wir eine Kopie zurück. Das ist also sehr wichtig und das muss man wirklich im Hinterkopf
behalten. Aber zum nächsten,
sagen wir,
ich sage dir, Hey, in welcher Position Java
das Wort Java gefunden hat. Du wirst so sein, ich
weiß nicht, es ist genau so. Was wir also tun werden,
ist, dass wir einfach wieder über die Druckzeile
kopieren. Und wir werden folgendes
sagen. Wir werden sagen, dass das
Wort Java oder
so etwas an Position gefunden wird. Jetzt könnten wir zählen, wir werden noch
nicht anrufen. Wir werden
in nur einem Moment zählen. Wir werden sagen
Satzpunktindex von, wir können sehen, dass es hier ein paar verschiedene Arten
von Index gibt, aber wir wollen diese Zeichenfolge 1. Es spielt übrigens keine
Rolle, welche Sie
hier wählen, können Sie sehen , dass, sobald sich der Cursor innerhalb der
Klammern befindet, tatsächlich vorschlagen
wird,
welche Sie tun möchten. Wir werden im Grunde genommen nehmen, und ich sage Java hier. Also Java, Mal
sehen, wann ist das? Wie wo passiert es? 17, okay, lass uns einfach zählen. Also fange ich hier an. Mein Cursor befindet sich also
immer auf der linken Seite des Charakters
, auf den ich zähle, 123456789, 10, 11, 12, 13, 14, 15, 16, 17, 18. Und jeder
wird wie Warte eine Sekunde sein. Aber das hieß 70, oder? Ja. Es hieß 17. Warum ist das allerdings 18? Aha, sehen Sie, das ist eine sehr
interessante Sache, denn in Java oder in den meisten
Programmiersprachen zählen
wir tatsächlich
ab 0. Jetzt könnte das
absolut verrückt für dich sein, besonders wenn du
ein Anfänger wärst. Das ist vollkommen in Ordnung. Mach dir darüber keine Sorgen.
Die Sache daran ist , dass man sich
sehr schnell daran gewöhnt hat. Es gibt ein paar andere Orte
, an denen wir das benutzen müssen. Aber wenn wir anfangen, bei 0 zu zählen, können
Sie sehen, dass es 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ist. Plötzlich ist das j
genau das 17. Zeichen, oder besser gesagt das Zeichen
mit Index 17, oder? Weil dies natürlich
der Index ist, der Index davon, der Index dieses Wortes. Und wir suchen im Grunde
nach dem ersten Charakter hier. Das ist in der Tat sehr interessant, wenn wir wirklich darüber nachdenken. Und was wäre, wenn
wir tatsächlich sind, wir sind, wir sind es nicht,
das ist nicht richtig. Wo wir sind, ist,
dass wir etwas ersetzen wollen. Also System out print
line und wir möchten
einen Satz sagen , der ersetzt, und wir wollen Java
durch, sagen wir C Sharp, ersetzen. Aber warum nicht? Stimmt's? Sie können also das Ziel sehen , das wir als Java ersetzen möchten, und womit wir
es ersetzen werden, ist C sharp. Also wenn ich das jetzt leiten würde. Wir würden sehen, dass es eine wunderbare
C-scharfe Einführung als nicht richtig, das ist nicht okay. Aber in diesem Beispiel ist das
natürlich völlig in Ordnung. Das ist also die Ersetzungsmethode und das ist auch
sehr interessant. Wieder einmal wird dies im Satz nicht
ersetzt. Es hat eine neue Zeichenfolge zurückgegeben, eine Kopie davon, die diese
im Grunde ersetzt. Sehr wichtig. Vielleicht wollen
wir sehen, ob
ein bestimmter Satz mit etwas
beginnt oder endet. Das ist eigentlich sehr einfach, wir werden nur
noch einmal
den Ersatz durch Control D duplizieren . Und was wir einfach
sagen können, beginnt damit, du kannst sehen, und
ich könnte einfach sagen, hey, Ich schreibe und das
würde in diesem Fall stimmen. Und dann können wir auch, können Sie erraten, was
der andere ist , natürlich endet,
was, sagen
wir ein Großbuchstaben a, was in diesem Fall natürlich
falsch ist, wäre wahr,
das sollte falsch sein. Lassen Sie uns also nur aus Argumenten suchen
. Und dort kann man wahr und falsch
sehen. Ganz einfach zu machen. Was ist, wenn wir
einen String haben und das
vorerst
S nennen werden, und es wird einfach
eine leere Zeichenfolge sein, oder? Also eine Schnur mit nichts drin. Wie können wir überprüfen
, ob das leer ist? Nun, wir können
einen booleschen Wert leer machen. Zum Beispiel
sagen wir einfach, S ist leer. Und da gehst du. Das ist so ziemlich
alles, was wir brauchen. Und wenn wir das System ausschalten würden, leere
Druckzeile, könnten
wir natürlich auch
S-Punkt leer in Ihrem, warum die Mühe machen, das ist völlig in Ordnung. Und sie gehen, das ist
eigentlich wo stimmt es? Es stimmt. Natürlich stimmt
es. Entschuldigung. Da gehst du, oder? Natürlich stimmt es,
denn das ist leer. Und es gibt noch eine Sache , die wirklich
interessant ist,
wenn es um die booleschen
Methoden für die Strings geht. Und das ist das enthält, eins. Das ist sehr interessant. Also System Out
Druckzeilensatz , der, sagen wir Java, enthält. Und das stimmt
natürlich, oder? Da dies Java enthält, sollten
wir auch hier
r2 sehen. Schön. Was ist mit andersherum? Wenn wir über
Indexaufwand nachdenken? Was ist mit einem bestimmten Charakter
an einer bestimmten Position? Absolut kein Problem. System out Druckzeile, Satz, Char an welcher Position? Sagen wir 17. Wir wissen also
, dass es ein sein wird. Also wissen sie, dass
es ein j sein wird. Das wird sehr
wichtig sein und es gibt einen J. Einfach genug. Wieder einmal fangen wir an, bei 0 zu
zählen. Obwohl dies das 18. Zeichen
ist, ist das Zeichen mit
Index 70 sehr wichtig. Das ist, es mag schwer sein, aber nach einer
Weile bin
ich mir sicher, dass Sie sich daran gewöhnen
werden. Und lass uns einfach
noch was anderes machen. Und das wird die Teilzeichenfolge
sein. Interessanter Teilstring.
Was bedeutet das? Nun, lasst uns das System
aus der Druckzeile machen, und sagen wir einfach
Satz-Punkt-Teilzeichenfolge. Und wo fangen wir an? Nun, fangen wir mit Index 17 an. Aber was es jetzt
passieren wird, ist dass
alles
ab 17 dauern wird und danach
alles zurückgeben wird. Also das jetzt sollte die Teilzeichenfolge 17-Jahr
Java-Einführung, Ausrufezeichen sagen. Und natürlich tut es das
auch. Das ist sehr nett. Wenn wir also einen anderen Satz
betrachten, den Sie sehen
können, dass es
natürlich ein paar weitere Methoden gibt ,
die Sie nicht aufrufen könnten, ist
dies keine erschöpfende
Liste, die ich gezeigt habe. Ich habe gerade ein paar gezeigt, die hier interessant sein
könnten. Ich empfehle immer
, es ein bisschen auszuprobieren. Du probierst
ein paar Sachen aus. Das Tolle hier ist, dass es wirklich nur ein paar Sachen
tippt, auf die Schaltfläche „Ausführen“ klickt und
einfach sieht, was passiert. Und wenn etwas passiert, ist
das cool, noch besser. Und wenn nicht, wenn es einen Pfeil am
gibt,
arbeite ihn durch und sieh nach ,
ob du ihn nicht reparieren kannst. Aber das wäre es
so ziemlich für die Strings und diese
Strings Methodenvorlesung. Ich hoffe, du hast das
nützlich gefunden und du wirst etwas Neues
lernen, wenn du eine Rezension von dir sehr
geschätzt hast. Ansonsten sehe ich Sie jedoch in der nächsten Vorlesung. Ja.
16. (Java) Casting: Oder ich begrüße zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in diesem Vortrag werden
wir uns mit Casting
befassen. Sie können sich das auch vorstellen Datentypen
untereinander
konvertieren. Was heißt das wirklich?
Nun, schauen wir uns mal an. So möchten wir zum Beispiel
ein ganzzahliges Darlehen haben , das heißt, sagen
wir 750 Euro, was auch immer der Fall sein mag. Und dann haben wir
einen Zinssatz
, der natürlich
im Float ist, oder? Und das wird 0,0525
sein, sagen wir mal. Dies würde also zu diesem
Zeitpunkt einem Zinssatz von
5,25% entsprechen , sollte alles sinnvoll sein. Jetzt wollen wir also die Zinsen tatsächlich
berechnen. Jetzt die Zinsen sollten wir das vorerst als Float
berechnen. Und ich zeige
dir in einer Sekunde warum. Zinsen sind also gleich
dem Darlehenszins mal
des Zinssatzes. Das sollte auch sinnvoll sein. Sie können sehen, dass,
obwohl ich
eine Ganzzahl mal pro Float nehme , alles funktioniert, weil wir dies in einem
Float
speichern. Interessant. Okay, lass uns das System rausmachen, Zeile
drucken und einfach die Interessen
ausdrucken, das Meer. Und es sollte so etwas
wie 39 sein, das ist okay. Wenn Sie dann auch hier
spüren, ist das natürlich vollkommen in Ordnung. Jetzt ist die Frage, wie
können wir einfach eine Ganzzahl und
einen Float
multiplizieren und einen
Float daraus holen. Das ist ziemlich verrückt, nicht wahr? Nun, was passiert,
ist im Grunde, dass diese Ganzzahl im Hintergrund in einen Float umgewandelt
wird. Wir können dies
explizit machen, indem wir den Modus in Klammern vor
der tatsächlichen Variablen eingeben. Und dann haben wir
das explizit. Dies ist also eine explizite Besetzung bevor es sich um eine implizite Besetzung handelte. Nun, die Sache
daran ist, dass
wir von einer
Ganzzahl zu einem Float hierher gehen. Was passiert, wenn wir die
tatsächlichen Interessen an ganzzahliger Zahl machen? Vor allem, was passieren
wird ist, dass dies
einen Fehler zeigen wird , denn
sobald wir hier einen Float
in einem mathematischen
Ausdruck haben , wird
alles in einen Float verwandelt weil Flows mehr
Informationen haben, oder? Da alles nach
dem Dezimalpunkt
mehr Informationen ist, wird
daher alles in eine Last
umgewandelt. Lassen Sie uns dies jetzt
explizit in eine Ganzzahl umwandeln. Lasst uns wissen Mori,
der Hintergrund hier gelb
bedeutet, dass dies eine Warnung
ist. Wir werden uns
darüber keine Sorgen machen , denn ich
möchte Ihnen im Grunde zeigen,
was die Warnung ist, warnen Sie uns, weil
es plötzlich eine große fette 0 ist und
Sie so sein werden, warte, wie haben sie
sich in eine 0 verwandelt? Nun, wenn wir einen
Float in eine Ganzzahl
umwandeln, wird passieren, dass alles nach dem
Dezimalpunkt einfach abgeschnitten ist. Im Grunde ist es also so. Plötzlich wird der
Zinssatz also
0 sein, wenn wir ihn
in eine Ganzzahl umwandeln,
was bedeutet, dass Sie
nur
sagen werden , dass die Kreditzeiten 0 natürlich 0 sind. Und Sie können sehen, dass dies
auch das ist , was die Warnung hier sagt. Deswegen
wollen wir gleich
hier zurück
zum Float. Also gehen sie hin. Und anstatt dies
zu einer Ganzzahl zu machen, werden
wir dies einfach auf
dem Zinssatz und normal halten . Und das wird
allerdings gut werden. Dies ist eine Art
Idee, wenn Sie von Integer zu einem Float
wechseln. Von einem, im Grunde genommen von weniger Informationen bis zu
mehr Informationen, ist
das normalerweise in Ordnung. Wechseln Sie von Flows zu Integer. also mehr Informationen
zu weniger Informationen zu erhalten, kann
das einige
Konsequenzen haben, sagen wir einfach. Das ist also immer das, was
man im Hinterkopf behalten muss. Und das ist auch eine Sache. Im Grunde genommen
wird diese
Idee,
einen anderen Datentyp
vor eine Variable zu schreiben , um
ihn in einen anderen Datentyp
umzuwandeln ihn in einen anderen Datentyp , etwas später auch
in einer späteren Vorlesung sehen. Das ist also etwas, das man
im Grunde auch im Hinterkopf behalten sollte. Nun, aber das wäre es
schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in der
nächsten Vorlesung. Also ja.
17. (Java) Ternary: In Ordnung, willkommen zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in dieser Vorlesung werden
wir uns den ternären Operator
ansehen. Jetzt klingt der ternäre Operator auf den
ersten Blick wie
etwas völlig Verrücktes, wirklich Kompliziertes, ist es aber tatsächlich nicht. Also werden wir zwei ganze Zahlen
erstellen. Einer von ihnen wird
die Prüfung sein. Dies wird hier nur das
Prüfungsergebnis als Beispiel sein . Und dann ist eine Ganzzahl, die
als Geschenk bezeichnet wird, sagen
wir, unser Vater möchte uns ein Geschenk von X Betrag
geben. Wir werden
jedoch angeben, dass
wir, wenn wir diese Prüfung tatsächlich bestehen , wie wir
dies wie folgt tun könnten. Wir können sagen, ob die Prüfung
größer oder gleich 50 ist. Im Grunde
bestehen wir die Prüfung, dann werden wir
sagen, dass das Geschenk gleich
10 ist und dann sonst das
Geschenk gleich 0 ist. Jetzt würden wir das hier nicht unbedingt sonst
brauchen, aber ich werde das einfach da drin
hinzufügen. Und dann
gehen wir einfach zur
Systemausdruckzeile , wenn zwei. also keine Sorgen. Das sollte alles Sinn ergeben. Aber was wir jetzt
tun können, ist, dass wir das ganze
Jahr tatsächlich in einer Zeile
schreiben können . Und was wir tun können ist, dass wir sagen
können, dass das Geschenk gleich ist. Und dann müssen
wir als erstes einen booleschen Ausdruck schreiben. So
ist die Prüfung beispielsweise größer oder gleich 50. Dann
schreiben wir ein Fragezeichen. Und was wir dann zurückgeben
wollen, wenn der boolesche Ausdruck
hier wahr ist. Also 10, dann ein Doppelpunkt
und was immer wir zurückgeben
wollten, wenn der boolesche Ausdruck falsch
ist, also war es 0. Und das ist der ternäre
Operator, Fragezeichen Doppelpunkt. Und das ist so ziemlich
genau das Gleiche wie das. Was wir also tun können, ist, dass wir das
im Grunde einfach kopieren können . Lassen Sie uns einfach beide kommentieren ,
damit
dies unabhängig davon,
was hier passiert, nicht zugewiesen wird. Wir werden zuerst
einen 0-Ausgang und dann eine 10. Mal sehen. Da gehst du. Also ist die 0 natürlich diese 0 genau hier, die wir hier
zugewiesen haben. Und dann ist die 10 hier
der ternäre Operator. Also das ist eigentlich ziemlich cool. Jetzt wird normalerweise der ternäre
Operator verwendet. Ich würde es im Grunde nicht empfehlen,
es zu oft zu verwenden, aber manchmal mit ziemlich
einfachen Dingen wie diesem. Sie könnten auch daran denken, vielleicht diesen booleschen Ausdruck zu
nehmen
und einen booleschen Wert daraus zu machen, der wie gefragt Prüfung
sagt. Und dann liest sich das gleich nach der Prüfung etwas
schöner, ist es 10,
sonst ist es 0. Daran kannst du dir also auch denken
. Also würde ich es wahrscheinlich nicht so
behalten, weil
dies so etwas ist, um die Rate nicht zu verdoppeln. Es gibt zu viel
Gehirnleistung, die darauf eingeht, die Prüfung gleich zu betrachten, etwas größer ist gleich 50. Okay? Okay. Oh, ich verstehe es. Wenn Sie
so etwas haben,
besteht die Prüfung oder
ähnliches als Boolean, der in diesem Fall
sinnvoll ist. Aber was auch immer der Fall sein mag, dies ist der ternäre Operator und im Grunde
dasselbe in if-Anweisungen. Nur weil das alles in einer Zeile
ist heißt das nicht, dass es auch
unbedingt besser ist. Zeilenanzahl ist überhaupt kein Hinweis
auf den Qualitätscode, okay? Und ich möchte, dass du es tust, ich möchte, dass
das sehr, sehr klar ist. Es spielt keine Rolle. Ein großartiges
Programm kann 1000 Zeilen umfassen. Wenn es 1000 Fuß lang sein muss, muss
es 1000 Nächte lang sein. Nur weil man das Programm
800 Zeilen
erstellen kann ,
heißt das nicht unbedingt , dass es besser ist.
Das ist sehr wichtig. Denn das
Wichtigste beim Schreiben von Code ist , dass Sie ihn lesen können und
jemand anderes ihn lesen kann, was Sie in
sechs Monaten beinhaltet. Weil Sie in sechs
Monaten sind , wird es
eine andere Person sein weil Sie
alles vergessen haben , was Sie in Ihrem Code
geschrieben haben. Daher
müssen Sie Ihren Code
lesbar machen oder andere Personen, das ist der wichtigste Teil. Und wenn ein ternärer Operator in diesem
Fall
sinnvoll ist, ist das großartig. Ich würde es nie tun, ich würde Ihnen
auf jeden Fall raten, niemals mehrere
Terminalbetreiber in dieselbe Linie zu
stellen. Denn natürlich könntest
du hier
einen anderen ternären Operator
auf „Wahr“ oder „Falsch“ setzen . das definitiv nicht,
denn dann wird es sehr, sehr kompliziert, sehr schnell. Bleiben Sie bei if-Aussagen. In diesem Fall, was auch immer
der Fall sein mag, wäre
dies bereits für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns
in der nächsten Vorlesung. Also ja.
18. Java): In Ordnung, willkommen zurück zur Java-Einführung
zur Mikrowellenmodellierung. Und in diesem Vortrag werden
wir uns Arrays
ansehen. Arrays sind definitiv
das, sagen wir mal, komplizierteste Thema,
mit dem
wir uns bis zu diesem Zeitpunkt beschäftigen werden . Was ich Ihnen jedoch zuerst sagen
möchte, ist , dass Sie sich
keine Sorgen machen, wenn Sie damit zu kämpfen haben . Das ist völlig normal. Ich kämpfe auch damit, als wir das gelernt haben. Und am Ende der Vorlesung werde
ich tatsächlich eine kleine
Geschichte darüber erzählen . Aber vorerst, uns daran, dass wir E3-Strings
hatten, oder? Wir sind bei Frage
1, Frage 2, Frage 3, und beantworten eins,
antworten auf Antwort drei. Nun, zugegeben,
war die erste Antwort tatsächlich eine ganze Zahl, aber in diesem Fall ist es eine Zeichenfolge. Das ist völlig in Ordnung,
denn das Demonstrationszwecken. Es ist ein bisschen
einfacher zu zeigen. Und was wir hier hatten,
war die Idee,
dass wir diese Fragen hatten. Sagen wir einfach, ich sage
dir, weißt du was, dein Quizspiel, das
in der ersten Aufgabe war, du solltest
das tatsächlich 150 Fragen haben. Jetzt wirst du da
sitzen, um so zu sein, entschuldigen Sie mich. Ja. Eine 150-Frage. Nun, okay. Dann fangen Sie an dies
zu duplizieren und dann jeden einzelnen von ihnen zu
ändern. Nun, dann vielleicht, weißt du, ich, ich weiß, was du alle
gedrückt halten kannst und, weißt du mehrere Dinge
gleichzeitig
ändern, aber dann ändern sie
sich alle in dieselbe Nummer und es ist alles
Mögliche vermasselt. Es ist nicht sehr gut. Das funktioniert also nicht
ganz. Okay. Wie
könnten wir das sonst machen? Nun, was wir
verwenden können, ist ein Array. Jetzt ein Array, das kannst du dir als Liste
vorstellen. Es ist kein 100 Prozent
der Liste, oder? Es ist ein bisschen
anders, weil es
tatsächlich etwas gibt , das auch in Java
eine Liste genannt wird. Wir werden es jedoch als eine Liste
betrachten. Und Sie wollten
eine Reihe von Fragen und einen
Zeichenfolgenbereich von Antworten erstellen. Und wir werden uns
nur einen Blick darauf werfen ,
was das im Grunde bedeutet. Wie erstellen wir ein Array? Nun, wir geben einfach
den Typ ein, den wir wollen. Also der Datentyp, den wir wollen, und dann diese Klammern hier, und das wird Fragen sein
und es ist gleich neu. Wir müssen also das
neue Keyword nehmen und Sie können sehen, dass uns dies bereits vorgeschlagen
wird. Ich tippe diese
Zeichenfolge aus und dann noch einmal den Winkel der Klammern hier und endet dann
mit einem Semikolon. Jetzt ist dies noch nicht getan, da wir
innerhalb dieser Klammern tatsächlich
die Länge dieses Arrays angeben müssen. Wie viele Elemente
werden da drin sein? In unserem Fall? Nun,
das ist es so ziemlich. Das ist also ziemlich cool. Jetzt. Das war's. Es ist wie ja, das ist es so
ziemlich. Und jetzt müssen wir natürlich etwas
zuweisen. Was wir also sagen können, sind Fragen. Sie können sehen, dass ich das im Grunde mit
der Tabulatortaste automatisch
vervollständigt habe, oder? Die Klammern erneut
und weisen dann zum Beispiel eins gleich zwei zu. Und dann lass uns das einfach hier nehmen
, oder? Also so etwas. Und ich kann damit einfach weitermachen
, oder? 23. Und dann lasst uns einfach, naja, wie kann ich das richtig
ausgeben? Wie, wie ist das möglich? Nun, System Out Print-Line, und dann können wir
einfach Fragen sagen, keine Fragen, los geht's. Und dann ist zum Beispiel drei Jahre jetzt bei meinem Mittelwert
gleich, oder? Jetzt ändern wir das einfach, kopieren Sie es
tatsächlich. Wählen Sie also dieses
Steuerelement C Control V
aus, wie diese Control C Control V. Und lassen Sie uns einfach die drei hier
herausbringen. Das ist nur C und O wissen
was hier passiert ist? Nun, was hier passiert ist,
ist, dass wir es vielleicht vergessen haben. Ich habe nicht vergessen, dass ich dir das wirklich zeigen
wollte. Aber was hier passiert ist, ist, dass wir bei 0 anfangen müssen zu zählen. Hier
kommen wir also zurück, als wir die Saiten
sahen, bei
denen wir bei 0 Jahr zählen, wir haben auch 0 gezählt. Dies bedeutet jedoch, dass wenn wir
drei Elemente in
diesem Fragenarray haben , das erste Element von Index 0 ist, das zweite aus Index eins und das dritte aus Index 2 ist,
was bedeutet, dass drei
existiert hier nicht und dann bekommen wir eine Ausnahme. Wir werden dies am Ende
der Vorlesung noch einmal sehen, denn ich möchte, dass Sie
die Ausnahme sehen , und ich möchte, dass Sie verstehen, was das bedeutet. dem Array jedoch Weise weisen Sie dem Array jedoch auf
diese Weise
verschiedene Strings zu, in diesem Fall unterschiedliche
Werte. Und du kannst es
auch so ziemlich genau vorlesen. Aber das ist eigentlich alles
was man braucht. Und lassen Sie uns das auch aus
Gründen der
Argumentation einfach
kopieren und
das die Antworten nennen , oder? Und dann werden
wir den Schwellen kopieren. Also wähle ich dieses RP
hier, hier und hier aus. Und dann ändern wir das einfach in die Antworten hier. Das werden also 50 sein. Das
wird natürlich London sein. Und dann wird
der letzte
Fe sein . In der Tat sehr interessant. Und was wir dann
tun können, ist zum Beispiel, dass wir die Antworten hier ausgeben können. Also werden wir nur
Antworten in Fragen 1 sehen. Und dann sagt
es plötzlich so etwas wie, naja, was ist die Hauptstadt
des Vereinigten Königreichs? London? Ganz einfach. Und lassen Sie uns das
tatsächlich
ändern, um dies nicht in eine 0
zu ändern. Das ist vollkommen in Ordnung. Alles was wir
jetzt tun können ist, naja, okay, dann können wir das einfach so
neu zuweisen,
damit wir das nehmen können. Ich nehme das einfach. Eigentlich schreibe ich
es diese Fragen auf. Wieder einmal entspricht Klammer 0
zum Beispiel wie alt ist Ian? Msc, Gregor, gleich im Jahr 2020. Das ist einfach lass uns mit uns
ausgehen. Warum nicht? Das ist vollkommen in Ordnung. Und dann geben wir das einfach
wieder aus. Nun die 0,
sagen wir mal, und die 0 hier. Die Frage. Wir haben uns hier neu zugewiesen, und dann wird
die Antwort immer noch
korrekt sein. Das habe ich
übrigens überprüft. Übrigens, da ich
wollte, dass das korrekt ist. Das ist ziemlich cool. Alles in Betracht gezogen. Das wirklich Coole ist, dass hier alles irgendwie
in einem Datentyp ist, oder? Fragen haben also jetzt
alle Fragen. Anstatt drei
verschiedene Strings zu haben, haben
wir tatsächlich alles in diesem
Fragenzeichen-String-Array. Das ist ziemlich cool. Wir können sozusagen auch
die Größe der Länge dieses Arrays dieser Liste ermitteln,
indem wir Fragen so lang stellen, wie Sie hier sehen können. Und wir können uns das einfach ansehen. Das ist natürlich
3, weil wir
das
genau hier geliefert haben, oder? Darin mussten wir also die Länge
liefern. Deshalb ist das so
ziemlich genau das Richtige. Und vielleicht haben Sie hier auch viele Vorschläge gesehen
. Wir werden uns derzeit
keine Sorgen machen weil all dies sehr, sehr kompliziert ist. Und dann
haben wir auch,
dass ich hier genau
das kleinste Stück kopieren werde. Dies ist also der Array-Index außerhalb der Grenzen Ausnahme genau hier. Es ist so ziemlich genau das, was
wir bereits gesehen haben, aber ich werde
das noch einmal zeigen. Wenn wir also eine Zahl in
die Klammer legen , die
tatsächlich nicht existiert, erhalten
wir
einen Array-Index außerhalb der Grenzen. So kannst du
dir das also vorstellen. Nun, das ist ein Array und es hat eine gewisse Bindung,
okay, fair genug. Wie ein Index. Der Index
, den wir weitergeben, ist der Indexkurs drei. Ich will die Frage
mit Index drei. Okay, fair genug. Aber das
ist außerhalb der Grenzen, da dieser Bereich nur
drei Elemente hat und wir
anfangen, bei 0 zu zählen. Daher existiert der Index oder das Element mit Index
drei nicht. Und wieder einmal erhalten Sie hier
den wirklich schönen
Stack-Trace, damit Sie den genauen Ort abrufen
können
, an dem das Problem aufgetreten ist. Das ist also auch etwas, das
ich hier erwähnen wollte. Ansonsten
wäre das so ziemlich der allgemeine Kern von Arrays. Und jetzt natürlich die
Art von Dingen, die ich
dir am Anfang gesagt habe. Als ich also
Bereiche an der Universität lernte, war
das Interessante, dass ich sie nicht vollständig verstanden habe. Also sagte ich: Weißt du was, ich brauche keine Bereiche. Ich werde niemals Bereiche benutzen .
Es spielt keine Rolle. Ich
bleibe einfach dabei. Ich erstelle
einzelne Variablen. Aber natürlich
werden Sie auf
sehr schwierige Probleme stoßen, sobald jemand sagt, nun, dann mach 20
verschiedene und
dann gib
mir einfach, hol sie raus,
setze sie in eine zufällige Reihenfolge. Es wird nicht funktionieren, weil diese Dinge
definitiv gelernt werden müssen. Dies ist auch nicht der
richtige Ansatz, weiß. Oh, ich verstehe es nicht. Deshalb
muss ich es nicht lernen. Deshalb ist es nicht
wichtig, keine. Und wenn es existiert, hat
es in diesem Sinne einen gewissen Verdienst in der
Programmierung hier. Daher
empfehle ich auf jeden Fall dringend , sich das
noch einmal anzusehen. Bleib einfach ruhig und
probiere ein paar Dinge aus, um das
irgendwie zu verstehen. Und auch noch einmal, wenn Sie irgendwelche Fehler bekommen, keine Sorgen. Fehler sind bei der Programmierung völlig normal
. Es gibt nichts
Besseres als es keine Schande gibt, mag es nicht
ganz normal, wirklich jeder Programmierer,
es bekommt
jeden Tag mehrere Pfeile, wenn sie programmieren. Selbst erfahrene Programmierer bekommen
immer noch jeden Tag Pfeile. Fühl dich
deswegen nie schlecht. Und ja, das ist also die allgemeine Vorstellung von Bereichen hier. Ich hoffe, ich konnte
irgendwie die Idee vermitteln, dass dies wirklich
einer Liste ähnelt, oder? Es ist keine 100-prozentige Ellipse, aber Sie können es sich als Liste vorstellen
. Du steckst verschiedene Elemente in, im Grunde mit verschiedenen
Indizes oder , weißt
du,
so etwas, oder? Aber sonst wäre das
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
19. (Java) Loops: In Ordnung, willkommen zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in diesem Vortrag
werden
wir über Loops sprechen. Was wir für diese Vorlesung
benötigen sind beide dieser
String-Arrays, die wir zuvor für
die Fragen und
die Antworten gemacht haben . Aber bevor wir
etwas mit den Bereichen machen, möchte ich
zunächst, dass
Sie Folgendes tun. Ausgang. Jede Zahl von
0 bis 99, oder? Sie werden sagen, Okay, System Out, drucken Sie Zeile 0, dann könnten Sie eins
duplizieren, zwei duplizieren. Jetzt wirst du die
ganze Zeit so da sitzen . Seien wir einfach ehrlich, das
wird lange dauern. Nun, und dann komm Loops. Loops sind also etwas
, bei dem Sie einen
Code mehrmals
ausführen können . Und die erste Art von Schleife wir uns
ansehen werden, ist die for-Schleife. Dafür geben wir vier und dann Klammern ein. Wieder einmal
sollten die
schließenden Klammern automatisch generiert werden. Und dann
geben wir int ein I ist gleich 0 Semikolon Ich bin kleiner
als ein 100 Semikolon I
plus schließende Klammern und
dann eine offene geschweifte Klammer. Dann
sollte die schließende geschweifte Klammer generiert werden,
sobald Sie die Eingabetaste drücken, wenn Sie das System
herausnehmen und es hier in die
geschweiften Klammern
stecken. Und ich werde
die 0 in ein Auge ändern und jetzt die Wunder der
Programmierung sehen. Wie Sie deutlich sehen können, wird
alles von
0 bis zu 99 ausgegeben. Aber was passiert
hier? Nun, in einer for-Schleife ist
die Idee, dass wir definieren,
wie Sie sehen können, eine
ganze Zahl ich bis 0 initialisieren. Und dann sagen wir, dass
wir hier einen booleschen Ausdruck haben
und dann ein Inkrement. Was passiert ist
, dass ich auf 0 eingestellt bin. Was überprüft wird,
ist, ob ich kleiner als 100 bin oder nicht. Wenn das stimmt, fahren
wir
mit dieser Schleife fort. Wenn das stimmt, passiert
alles in
dir, dann werden wir
I erhöhen und dann
wird das noch einmal überprüft. Und dann machen wir das
wieder, erhöhen ich, überprüfe mich und
so weiter und so weiter. Dies geschieht also grundsätzlich
für immer bis zu diesem Jahr. Dieser boolesche
Ausdruck ist falsch. Und sobald es falsch ist,
was bedeutet, dass ich
nicht mehr kleiner als eine 100 bin, was passiert, wenn ich 100 bin, dann wird dies nicht mehr ausgeführt und
alles
danach, nach der geschweiften Klammer
hier fängt an zu passieren. Deshalb stoppt es
bei 99 und nicht bei 100, denn wenn ich 99 bin, stimmt
das immer noch. 99 ist kleiner als 100. Jeder stimmt zu, ja. Aber sobald es ein 100100
ist, ist es nicht kleiner als 100. Es ist
tatsächlich gleich 100. Daher stimmt dies
im Grunde nicht mehr. Daher wird dies für eine 100
nicht mehr ausgeführt. Und das ist irgendwie die Idee. Und das ist echt
cool, oder? Als könnten wir das ganz einfach machen? Und jetzt werde ich dich
absolut umhauen. Jetzt werde ich
Ihnen sagen, nun, geben Sie alle
Fragen und Antworten aus und Sie werden nur die Systemausdruckzeile
besetzen. Jetzt Frage 0, antworte 0, genau wie wir es zuvor hatten. Nun, das wird
einfacher für int ich gleich 0 ist. Ich bin kleiner als Fragen
Punktlänge I plus, plus. Und was ich dann machen
werde, ist,
dass ich diesen zweimal
kopieren werde. Und dann werde ich stattdessen Fragen
rufen, die ich oh, das
ist interessant, oder?
Und antwortet I. Das ist ziemlich cool. Sie können also grundsätzlich die ganze Zahl
hier in die
Klammern
übergeben und auf jeden
gewünschten Index zugreifen jeden
gewünschten Index und auf welchen Index
diese ganze Zahl annimmt. Eine andere wirklich verrückte
Sache ist, dass wir uns hier tatsächlich die
Länge ansehen, oder? Da wir die Länge haben, erspart
uns
dies sofort vor Fehlern. Der einzige Fehler
, der auftreten könnte, ist, wenn wir
diese vier plötzlich hier machen, oder? Weil wir
die Länge
der Fragen nehmen , während die
Antworten nicht gleich sind. Dann könnten wir auf einen Fehler
stoßen. Erneut ist der Bereich außerhalb der Grenzen Ausnahme oder der Array-Index außerhalb
der Grenzen Ausnahme. Aber vorerst, wenn wir den längeren benutzen, wird
das völlig in Ordnung sein. Und wenn ich das einfach durchführe,
siehst du, dass es alles
ausdruckt. Harmony befindet sich in der
US-AIR 50 Hauptstadt des Vereinigten Königreichs, London. Und dann ist
das chemische Symbol für Eisen Fe. Damit alles funktioniert. Das ist also hübsch, das ist ziemlich verrückt, oder?
Das ist ziemlich cool. Oder Schleifen wahnsinnig wertvoll und können für alle
möglichen Dinge verwendet werden. Es gibt eine andere
Art von Schleife, die der for-Schleife sehr ähnlich ist, die für jede Schleife ist. Jetzt können Sie sehen, ob ich das
tatsächlich eingeben kann, und ich könnte die Tabulatortaste drücken,
um dies automatisch zu vervollständigen. werde ich jedoch nicht, denn die Formatierung ist für mich
ein bisschen komisch. Ich weiß nicht, weiß genau,
was das ist. Wir werden nur dafür schreiben, ich kann
String-Fragen
in Westpolen sagen . Und die Art, dies zu lesen, ist für jede String-Frage in Fragen, so würden
Sie sie lesen. Und dann kannst du einfach
ein System ausmachen ,
Zeile drucken, fragen. Und ich kann hier einfach jede
einzelne Frage ausdrucken. Wieder einmal wird das
einfach funktionieren. Wie Sie sehen können,
haben Sie jetzt
im Grunde genommen Zugriff darauf, haben Sie jetzt
im Grunde genommen Zugriff darauf was die einzelnen Elemente innerhalb dieser Liste oder dieses
Arrays in diesem Fall sind, und ich muss
es nicht über den Index hier angeben. Eigentlich verstehe ich sie alle
individuell gut. Das ist also die für jede Schleife
und das für jeden, den du gehst, das ist eine andere Art von
Schleife, die interessant ist. Und dann
ist die letzte
Art von Schleife, die ich dir zeigen
möchte, die While-Schleife. Jetzt habe ich eine persönliche
Vorliebe, die While-Schleife sehr
selten zu benutzen,
nur weil es sein kann, naja, es kann
dich in Schwierigkeiten bringen. So können wir so
etwas wie während
wahr und dann geschweifte Klammern sagen . Was also passiert
, ist, dass alles in hier
passieren wird, solange das stimmt. Wenn du jetzt eine
Sekunde darüber
nachdenkst, warte natürlich eine Sekunde. Wenn ich es wahr mache, dann wird das immer genau stimmen. Das ist jetzt eine While-Schleife und eine Weile Schleife und endlos, oder? Dies ist also eine
Endlosschleife und dies ist die Gefahr, auf die Sie mit einer While-Schleife
stoßen könnten. Man könnte
auch theoretisch auf das Problem
mit for-Schleifen stoßen , aber es ist sehr selten, dass
es tatsächlich passiert. Aber in While-Loops ist
es sehr oft der Fall oder es kann der Fall sein, dass Sie eine Endlosschleife
haben. Jetzt muss das irgendwann jeder
durchmachen. Ich sage nur, dass meine Voreingenommenheit darin besteht , dass ich während Loops nicht wirklich
mag. Aber was wir tun können, ist, nun, lasst uns folgendes tun. Lassen Sie uns tatsächlich eine
Eingabe für die Person hinzufügen. Scanner hier, Scanner entspricht neuen Scannersystem.in
und dann fertig. Aber was wir tun werden, ist wir
einfach
so etwas wie die folgende
Systemausdruckzeile sagen werden. Willst du weitermachen? Aber also
werden wir einfach sagen: Hey, will die Person
weiter benutzen? Wir wollen weitermachen. Und dann werden wir
einfach sagen, hey, wenn der Scanner als nächstes
punktet, oder? Wenn das gleich „Ja“ ist. Was wir dann
tun werden, ist, dass wir einfach
weitermachen werden, oder? Also setze das eigentliche Keyword fort,
sonst werden wir brechen. Dies ist ein Beispiel für das Schlüsselwort Continue und
the break. Das Continue Schlüsselwort
ignoriert im Grunde alles, was danach in
der Schleife
kommt , und springt
zurück an den Anfang
der Schleife, wo das
break-Schlüsselwort aus der Schleife ausbricht. Im Grunde geht es also
bis Ende des Jahres und alles danach
wird dann wieder ausgeführt. Dies wäre das Gleiche, wenn dies
plötzlich falsch wird. In diesem Fall ist dies
natürlich eine Endlosschleife, oder? Solange
ich also tippe, ja, das wird so weitergehen und sobald ich etwas anderes
eintippe, wird
es daraus ausbrechen. Das ist also irgendwie die Idee
dieser While-Schleife hier. Werfen wir einen
Blick darauf, damit ich tippen kann. Ja. Und ich kann tippen, ja.
Und ich könnte mich eintippen. Ja. Und dann mache ich hier
einen Fehler und ein OH, nein, plötzlich stoppt
der Code. Das ist irgendwie die Idee. Dies könnte also eine Endlosschleife mit einer Art Bremssystem sein. Was nun sehr wichtig
ist, ist, dass das Schlüsselwort „continue“ und „break“ wahrscheinlich
nur sparsam verwendet werden
sollte , da es viele Entwickler gibt
, die das nicht mögen. Denn wenn Sie mögen, sagen
wir eine längere
FOR-Schleife oder eine längere
While-Schleife und Sie haben eine Menge
Continue und Pausen drin. Manchmal kann es ein
bisschen verwirrend sein. lese es gerne, oder? Weil du sozusagen
mehr Zweige haben wirst. Sie können also denken, wenn Sie sich
vorstellen können, dies
auf eine etwas andere Weise zu tun eine etwas andere Weise zu ist
das normalerweise besser. Wie auch immer der Fall sein mag. Das sind die Schleifen, die
ich dir zeigen wollte. Wirklich ziemlich cooles Zeug. Und wir fangen wirklich
an, ein paar sehr,
sehr coole Tools in
unsere Toolbox zu bekommen , um wirklich mit Code zu
arbeiten und einfach etwas zu programmieren
, das wirklich cool ist. Also, aber vorerst ist das für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas
Neues lernen, wenn du es tätest, ich würde mich sehr über
eine Rezension von dir freuen. Ansonsten sehe ich
dich in der nächsten Vorlesung. Also ja.
20. Java-Methoden: Willkommen zurück zur
Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag werden
wir uns
eine Methode ansehen. Zuallererst benötigen
wir hier noch einmal
die String-Bereiche. Wir
benötigen sie nicht unbedingt, aber wir werden
sie in dieser Vorlesung verwenden. Und nun, Methoden. Was sind Methoden? Nun, wir haben
dieses Wort
schon ein paar Mal
mit den String-Methoden gesehen . Und auch so etwas wie System Out Print Line ist auch eine Methode. Und ich habe vielleicht ein
- oder zweimal vor der Hauptmethode gesagt. Es ist also etwas dran. Wir haben auch die mathematischen
Methoden gesehen, also haben wir dieses Wort definitiv schon einmal
gehört. Was ist es wirklich? Nun, theoretisch, eine Methode, Sie können es sich theoretisch als
ein paar Codezeilen,
eine Codezeile oder 100
Codezeilen vorstellen , die ausgeführt werden, wenn
Sie diese Methode aufrufen. Sie rufen also eine Methode auf,
wie zum Beispiel, wenn wir ein System eingeben, Systemausdruckzeile, oder? Und ich sage Hallo, lies das. Es ist etwas im
Hintergrund, passiert, oder? Also diese Druckzeile,
wenn wir dies nennen, diese Methode hier, passiert etwas
im Hintergrund. Jetzt wissen wir in diesem Fall nicht
unbedingt, was
genau passiert. Aber mit
diesem Hallo passiert etwas, oder? Sobald ich
das ausgeführt habe, passiert in diesem Fall
etwas im
Hintergrund, dass dieses Hallo jetzt
in diesem Run-Fenster angezeigt wird. Wir wissen also nicht wirklich was, aber etwas im
Hintergrund passiert, also wird etwas Code ausgeführt. Wenn wir also einen
Code haben , den wir vielleicht wiederverwenden
möchten, sagen
wir 100
Mal in unserem Code. Dann könnte man sagen, nun, wir können einfach eine for-Schleife machen, weißt
du, 100 Mal. Nun, aber was ist, wenn ich
das an verschiedenen Orten
in meinem Code machen möchte , oder? Vielleicht möchte ich in diesem Fall eine
Frage stellen, oder? Und eine Ausgabe und Antwort und
dann nach der Antwort suchen. Dann möchte ich noch einmal
Fragen stellen. Es ist wie, naja,
ich meine, du könntest eine for-Schleife
machen, aber nun, vielleicht wollen wir dort ein paar
If-Aussagen machen. Es wird ein
bisschen kompliziert werden. Das funktioniert also nicht immer. Sagen wir zum Beispiel, was ich tun möchte, ist, dass
ich einfach nur will , ich würde nicht nur
etwas eingeben,
das ich hier ein Array geben kann , rot. Das String-Array
von Fragen, ein String-Bereich von Antworten und nur die Ausgaben erfüllen alle Antworten und
alle Fragen. Also alle Fragen,
Antworten nur in der Registrierung. Also könnte ich natürlich
so etwas schreiben. Rechtes Auge für Schleife
int I ist gleich 0. Ich bin kleiner als
Fragen, die verknüpft sind, sagen
wir, ich plus. Und dann könnte ich einfach System
Out sagen , Zeilenfragen drucken. Ich schreibe so etwas und dupliziere das dann
und sage dann Antworten. Das könnte ich machen. Nun, sagen wir
noch einmal, ich möchte, dass dies
in unserem Code 100 Mal
gemacht wird . Nun könnte der aufmerksame von
Ihnen sagen, warum setzen wir diese
for-Schleife nicht einfach in eine andere for-Schleife. Und du würdest
absolut Recht haben. könntest du auch machen. Lasst uns jedoch nicht
zu schlau werden. Denken wir einfach darüber nach
und machen dies zu einer Methode. Was wir
tun werden, ist, dass ich Ihnen vorher gesagt habe , dass wir nur
zwischen diesen beiden
geschweiften Klammern arbeiten . Wir erweitern
jetzt unsere Welt und bewegen uns außerhalb
dieser geschweiften Klammern. Denn jetzt
sind unsere
neuen geschweiften Klammern im Grunde diese beiden. Jetzt ist das unser neues Zuhause. Und das hast du vielleicht
irgendwie darüber nachgedacht. Nun, dies ist die
Hauptmethode, die im Grunde ausgeführt
wird, wenn wir die Schaltfläche Ausführen
drücken, dann wird die
Hauptmethode ausgeführt. Jetzt
fügen wir eine neue Methode hinzu. Und zuerst schreibe ich das
auf. Und dann
erkläre ich, was hier passiert. Also schreiben wir
öffentlich statisch, nichtig. Und ich nenne diese
Ausgabe Fragen und Antworten. Dann gebe ich eine Klammer ein, die schließende Klammern automatisch
generieren sollten. Und dann mache ich hier ein String-Array. Also das werden
die Fragen sein und dann ein, ein anderes String-Array
antwortet, oder? Und dann mache ich eine geschweifte Klammer. Und Sie sehen, dass die
zweite geschweifte Klammer bereits generiert
wurde. Ich kann einfach die
Eingabetaste drücken und dann sollte
die Formatierung
ebenfalls abgeschlossen sein. Und damit wurde eine neuere
Methode erstellt. Also werden wir vorerst
ignorieren, ist dies
öffentlich und statisch. Wir wissen noch nicht genau,
was das ist, aber wir sind sehr kurz davor
, dies in einem zukünftigen Vortrag
herauszufinden. Wir werden tatsächlich
herausfinden, was das vorerst
bedeutet. Wir wissen nur, dass dies
ein Zugriffsmodifikator ist. Wir wissen noch nicht, was es macht. Wir wissen nur, dass wir hier öffentliche
Statik schreiben
müssen und dann
wird alles gut. Es gibt nichtig hier ist tatsächlich der Rückgabetyp dieser Methode. Einige Methoden geben also
etwas zurück und wir werden
das in einem Moment sehen. Nachdem wir diese Methode durchgeführt haben, werden
wir eine
weitere Methode erstellen, die tatsächlich eine ganze Zahl zurückgibt. Dann haben wir
den Namen der Methode. Das ist etwas, das
Sie selbst entscheiden können. Normalerweise sollte das Benennen von Variablen und Benennungsmethoden sehr ausdrucksstark
sein. Obwohl dies für Sie sehr lang
sein mag, scheuen Sie sich
nicht vor langen Methodennamen oder
langen Variablennamen. Wenn sie genau beschreiben,
was sie tun, wird
das das Beste
sein. Dann nach dem Namen, komm, die Klammern hier. Und innerhalb der Klammern definieren
wir im Grunde auch
eine variable Art von Sprechen. Und diese werden Parameter genannt. Wir haben also zwei Parameter hier, und beide sind
vom Typ String-Array. Und insgesamt ist das
Ganze hier. Also all dies, richtig, die Zugriffsmodifikatoren,
der Rückgabetyp , der Name der Methode und die Parameter
heißen Methodensignatur. Weil wir das wissen müssen, müssen
Methodensignaturen sein. Einzigartig bedeutet, dass ich nicht dasselbe
haben kann. Also
wähle ich das alles aus. Und dann sage ich
Control C und dann Control V.
Und Sie können sehen, dass wir sagen, dass
wir sagen, dass es hier
bereits definiert ist,
wenn ich den Mauszeiger darüber bewege. Das ist also genau
das Gleiche und es ist bereits definiert. Das funktioniert nicht, oder? Das ist also sehr wichtig. Wenn ich jedoch
die Methodensignatur ändere, was zum Beispiel bedeutet, ich einen weniger mache, lege
ich hier einen Parameter
weniger ein, der funktioniert. Du wirst, sie haben
den gleichen Namen, sie haben eine andere Unterschrift. Dies
würde in diesem Fall nun als
Methodenüberladung bezeichnet werden, würde in diesem Fall nun als
Methodenüberladung bezeichnet werden da wir denselben Namen
haben, dies mit einer anderen
Signatur deaktiviert. So zum Beispiel unterschiedliche
Anzahl von Parametern,
verschiedene Parametertypen ,
unterschiedlicher Rückgabetyp. So können Sie das Jahr
wechseln, um
Methoden mit demselben Namen zu haben. Das wird interessant
werden, vielleicht später später werden wir
diese löschen und wir
werden einfach die eine
Methode hier behalten. Und was wir gerade tun werden ist, dass wir
dieses Control X tatsächlich
zum Ausschneiden nehmen ,
Control V, um es einzufügen. Und plötzlich sieht man dass
alles völlig
gut funktioniert, denn natürlich haben
wir
hier die Parameter, Western und Antworten. Und die Idee ist, dass
wir die weitergeben werden. Denn gerade jetzt sind diese Fragen,
diese Antworten,
natürlich nicht die gleichen wie diese beiden. Ich kann das nennen, sagen wir Q0, Q, Q u, e, nur aus Gründen
des Arguments. Und ich nenne das E&S nur damit es
kein Missverständnis gibt. Dieses Jahr ist nicht dasselbe wie dieses, da ich dies natürlich mit einer anderen Zeichenfolge
von Fragen in einem anderen
Zeichenfolgenbereich von Antworten
nennen könnte natürlich mit einer anderen Zeichenfolge
von Fragen in einem anderen
Zeichenfolgenbereich . Das wird also sehr allgemein
sein. Das wird das nur für jeden Bereich
tun , in den
ich einlegen werde. Das ist also das wirklich coole Ding. Was ich dann tun kann, ist, dass ich das
nennen kann, ich kann Ausgabe sagen. Und Sie könnten sehen,
sobald ich eintippe, wird
die eigentliche Methode vom Programm
erkannt. Es hat tatsächlich hier vorgeschlagen. Also kann ich einfach die Tabulatortaste einlegen
. Ich kann die Tabulatortaste drücken und
es generiert automatisch deine und ich kann einfach Q0 und ANS
sagen. Jetzt habe ich das
Fragenzeichenfolgen-Array als Frage-Perimeter und das Antwortzeichenfolgen-Array
als Antwortparameter übergeben. Sie könnten, was Sie
vielleicht auch gesehen haben, ist, dass die Methode
von grau zu gelb wurde. Dies bedeutet einfach
, dass diese Methode tatsächlich
verwendet wird, also heißt es. Und das ist auch
eine wichtige Idee. Und wenn ich das jetzt durchführe, wirst
du sehen, dass es tatsächlich funktioniert. Sie
können sehen, wie viele Sets. Die USA haben 50 Hauptstädte, Großbritannien,
London, und
das chemische Symbol für Eisen ist F, e. Also gibt es dies aus und nennt
im Grunde genommen den ganzen
Code davon in hier. Und jetzt können
Methoden natürlich Methoden aufrufen, und Methoden können andere Methoden
aufrufen. Das wird natürlich irgendwann ziemlich kompliziert. Vorerst ist das jedoch wirklich cool. Jetzt werden wir auch eine Methode
erstellen, die sehr kompliziert sein
könnte. Was wir also
haben werden, wenn man
zur öffentlichen statischen Int geht . Also geben wir
jetzt
eine ganze Zahl zurück und wir werden zwei Zahlen zusammen summieren. Was brauchen wir dafür? Nun, natürlich eine ganze Zahl
x und eine ganze Zahl y. Jetzt können die
Namen der Parameter übrigens auch sein,
was Sie wählen. Normalerweise möchten Sie, dass sie im Allgemeinen
auch sehr ausdrucksstark sind. Jetzt haben wir diese
Summenmethode genau hier. Und was wir
tun werden, ist, dass wir
in das
Schlüsselwort zurück x plus y eingeben in das
Schlüsselwort zurück x plus y .
Also werden wir einfach x plus
y zurückgeben, denn das ist
natürlich die Summe
dieser beiden Ganzzahlen in diesem Fall, nichts
zu spektakuläres. Was ich Ihnen jedoch zeigen
wollte, ist im Grunde das Schlüsselwort return
und dass Sie auch verschiedene Typen
zurückgeben können . Also die SAM-Methode in diesem Fall können
wir uns das einfach
ansehen, oder? Also System out print line, und dann werden wir
etwa zehn sagen und sagen wir 12. Und wenn ich das mache und es sollte 22 sagen, los geht's. Also keine Sorgen, dass alles funktioniert. Und diese Art
der allgemeinen Idee hier, die
Sie mit Methoden haben. Es kann also entweder etwas
zurückgeben oder es kann etwas zurückgeben, dann muss man in eine Leere
schreiben. Aber das ist eine Art
vorläufiger Blick auf Methoden. Natürlich muss
man das
auch noch einmal
ein bisschen anwenden, muss
man das
auch noch einmal
ein bisschen anwenden um hier wirklich
das Verständnis zu bekommen. Dies ist jedoch ein großartiger Übergang zu dem Auftrag, der als nächstes kommen
wird. Ich empfehle
dringend,
die nächste Aufgabe zu machen
, da dies die nächste Aufgabe zu machen
, da im Grunde genommen Methoden sein wird. Und selbst wenn du nicht bekommst wird
Sue im Grunde
alles tun,
zumindest wenn du dir
die Frage anschaust und dann
wird die Lösung hoffentlich auch so
beleuchten, wie du kannst verwende Methoden
in deinem eigenen Code. Aber
vorerst wird
dies für diese
Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden
und du wirst etwas
Neues lernen und wir sehen uns
in der nächsten Vorlesung. Also ja.
21. AUFGABE 2: Trivia mit Methoden: Alles klar, Willkommen
zur zweiten Aufgabe
der Java-Einführung hier. Und in diesem kurzen Video möchte
ich die Aufgabe grundsätzlich
erklären. Insgesamt
ist die Aufgabe also nicht wirklich so
kompliziert, ich
möchte
Sie im Grunde immer noch durch das führen. Die Idee ist also, dass Sie das Quizspiel
von der ersten Aufgabe an
neu erstellen sollten . Also im Grunde
so ziemlich das Gleiche. Aber dieses Mal solltest du
fünf Fragen und fünf Antworten haben. Und die Art und Weise, wie Sie diese
speichern sollten, liegt in zwei Bereichen. Eine für die Fragen
und die Antworten. Und was Sie auch tun sollten,
ist, dass Sie mindestens
zwei Methoden erstellen sollten , um den Code lesbarer
und einfacher zu befolgen. Und im Grunde genommen als Hinweis wirst
du es so überlegen
. Wenn Sie
doppelten Code haben, sollten
Sie dies wahrscheinlich
zu einer Methode machen. Wir denken darüber nach. Denken Sie darüber nach, wo Sie
vielleicht
zweimal etwas anrufen , und dann können Sie im Grunde genommen eine
Methode daraus machen. Und was Sie auch
tun sollten, ist, dass Sie
eine Endlosschleife machen sollten und dann einige
if-Anweisungen darin
in gewisser Funktion. Also etwas Logik, die
den Benutzer dazu veranlasst den Benutzer aufzufordern, weiterzuspielen oder nicht, wenn er es nicht mehr
möchte. Ich empfehle dringend,
sich
die Loops-Vorlesung
noch einmal anzusehen , da sie tatsächlich einen sehr
ähnlichen Anwendungsfall sie wissen
, dass wir eine endlose While-Schleife
hatten , mit der Sie mit
ihnen aufhören können IF-Anweisungen und die Break-und die
Continue Keywords. könnten sich
also hier als sehr praktisch erweisen. Ansonsten sollte
dies insgesamt ziemlich
einfach sein. Das Spiel an und für
sich sollte eigentlich sehr
ähnlich spielen als das erste. Es sollte nur ein
bisschen anders aussehen. Insgesamt
wäre das also die ganze Idee. Vergessen Sie natürlich auch Dinge
wie die Punkte nicht. Auch die, weißt du, fügen diese auch hinzu. Ansonsten ist das
so ziemlich alles, was Sie
wirklich tun müssen. Ich schlage vor, etwa eine weitere Stunde
für diese Aufgabe, je nach Level können Sie es auch
in 30 Minuten,
45 Minuten machen , wer weiß? Aber stresse dich nicht selbst. Nehmen Sie sich etwas Zeit
, um sich wirklich damit zu befassen. Sehen Sie sich
noch einmal ein paar Vorträge an, die Loop-Vorlesung, ich empfehle dringend
Methoden Vorlesung war sehr schöne Bereiche, wenn Sie diese
nicht ganz
verstehen, ich dies nur wärmstens empfehlen. Und ansonsten steht Ihnen die Lösung
natürlich auch
zur Verfügung. also keine Sorgen. Ansonsten wünsche ich
Ihnen allerdings
viel Glück für diesen
Auftrag. Ja.
22. LÖSUNG 2: Trivia mit Methoden: Oder ich begrüße zurück zur
zweiten Aufgabe und zur Lösung
der
eigentlichen Aufgabe hier. Also ist der Code
natürlich wieder für Sie verfügbar. Und als, nun, im Grunde genommen
Haftungsausschluss hier, wenn Ihr Code nicht 100 Prozent mit dem
Code übereinstimmt, den ich habe, ist
das natürlich völlig in Ordnung. Das ist keine Schande, denn es gibt immer mehrere
Lösungen dafür. Und ich denke, dass meine Lösung ein paar,
zu viele Methoden verwendet. Eigentlich interessanterweise,
aber vorerst wir es einfach
durchgehen. Natürlich sollten die String-Arrays, Fragen und Antworten hier ziemlich selbsterklärend
sein. Dasselbe gilt für den Scanner
noch einmal, um Sachen zu lesen, und dann insgesamt Punkte
hier, nur Kernpunkte. Das ist also
ziemlich einfach. Wir haben eine While-Schleife
, die immer stimmt. Sie können also sehen, dass dies
im Grunde die gesamte
While-Schleife ist . Und lasst uns zuerst einen
Blick ganz unten hier werfen. Also dieses Druckspiel wieder, Methode wird ausgedruckt, Hey, willst
du wieder spielen? Wenn Sie hier ein y einsetzen, im Grunde genommen zurückgesetzt die Punkte im Grunde genommen zurückgesetzt und dann wieder
mit dieser While-Schleife fortgesetzt. Ansonsten bricht es einfach
aus der While-Schleife aus. Und dann Prince de Auf Wiedersehen hier. Das ist irgendwie die Idee. Ansonsten kann man dem ganz
einfach folgen. die Namen der
Methoden fast vollständig Beschreiben die Namen der
Methoden fast vollständig, was sie tun, und sehen dann
Titel drucken, Fair genug. Und dann werden wir für jede
der Fragen hier
für diese for-Schleife
durchgehen der Fragen hier
für diese for-Schleife , auch
sehr,
ziemlich einfach. Und wir haben
hier die Druckfrage für die Frage
, die derzeit im Grunde genommen gestellt wird, bis dann in der Benutzerantwort
lesen. Und dann haben wir eine if-Anweisung , die hier eine andere Methode aufruft. So ist die richtige Antwort
von dieser Benutzerantwort. Und es vergleicht dies
im Grunde mit der Antwort, die für diese Frage
richtig ist. Wenn dies der Fall ist, wenn
diese Methode „true“ zurückgibt, drucken
wir dann aus, Sie hatten eine richtige Antwort,
wobei dann zunehmend Gesamt
zeigt und diese
wieder in die Punktevariable zurückschreibt . Und dann drucken wir hier
auch im Grunde
die aktuellen
Punkte aus . Und wenn dies nicht
die richtige Antwort war, drucken wir aus, dass
Sie eine falsche Antwort hatten und wir drucken auch
die eigentliche richtige Antwort aus. Das ist so ziemlich alles
, was wir hier wirklich brauchen. Und Sie können dann am Ende
hier sehen , dass wir nur
die Punktzahl ausdrucken und dann
den Spieler fragen , ob er noch einmal spielen
möchte oder nicht. Das ist also die gesamte Logik hier. Und wenn wir dann untergehen, können
wir sehen, dass es hier viele Methoden gibt
. Und alle von ihnen sind sehr,
sehr einfach, oder? Fast alle von ihnen
nur ein Licht, im Grunde alle
nur eine Zeile. Jetzt können Sie einen
sehr guten Fall machen,
dass, das vielleicht etwas
zu gut ist, in diesem Fall auch schlecht sein
kann, oder? Oder zu viele Methoden
könnten zu viel sein. Dies ist jedoch definitiv
sehr einfach hier zu verfolgen. Es gibt auch Punkte zu sagen, vielleicht könnten wir einfach
diese gesamte IF-Anweisung nehmen und eine Methode machen. Ist das auch, könnten wir vielleicht die gesamte for-Schleife nehmen, daraus eine ganze
Methode machen. Wir können diesen Teil übernehmen und eine andere Methode
machen. Es gibt also mehrere Ideen , denen Sie folgen können,
und Sie könnten
natürlich immer noch mehr Methoden
daraus oder weniger machen. Das ist total in Ordnung und
das ist total okay. Solange es funktioniert,
haben Sie ein paar Methoden, die Sie entwickelt haben, dann wird es absolut in Ordnung
sein. Wenn dies
nicht genau Ihre Lösung ist, machen Sie sich
darüber im geringsten Fall keine Sorgen. Wieder einmal ist das
Schöne an der
Programmierung, dass
es immer, ich meine, es gibt eine Million verschiedene Möglichkeiten,
dies zu tun. Natürlich werden einige von
ihnen
optimierter sein als andere. Aber am Ende des Tages, wenn wir wirklich darüber nachdenken, wird
das normalerweise völlig
in Ordnung sein. Wenn das also nicht zu 100 Prozent korrekt ist, wie Sie
es haben, ist das okay. Wenn es funktioniert, bin ich damit schon
sehr zufrieden. Ansonsten ist das
so ziemlich meine Lösung. Dieser Code steht Ihnen natürlich auch zur Verfügung. Ansonsten hoffe ich,
dass diese Aufgabe Sie nützlich
war, um
etwas tiefer in die Idee der Methoden und deren Verwendung einzugehen. Ich kann natürlich
auch immer vorschlagen, in deiner eigenen Zeit damit
herumzuspielen in deiner eigenen Zeit damit
herumzuspielen einfach ein
paar Sachen auszuprobieren. An dieser Stelle haben Sie
viele verschiedene Tools. Sie haben if-Anweisungen, Sie haben Schleifen, Sie
haben Methoden, Arrays. Es gibt also eine Menge Sachen, mit denen
du herumspielen kannst. Du kannst Sachen
vom Benutzer einlesen. Du kannst
Sachen auf die Konsole schreiben, was
dir an dieser Stelle tatsächlich eine ganze
Reihe von Sachen öffnet. Wenn du also so
etwas machen willst , wähle
dein eigenes Abenteuer, nur ein kleines Ding, oder? Los, richtig,
probiere einfach ein paar Sachen aus. Ich empfehle dringend
, einfach damit zu experimentell zu sein. Du, du kannst hier
nichts kaputt machen, oder? Solange du deinen
Code hier drin schreibst, ist
es nur für dich, wird alles gut werden. Wie ich schon in der
Vorlesung über die Fehler gesagt habe. Wenn Sie Fehler bekommen, brauchen Sie sich
keine Sorgen zu machen, dies ist nicht das Ende der Welt und jeder bekommt Pfeile, richtig. Ich bekomme jederzeit Pfeile, wie wenn ich programmiere, wird
es natürlich Pfeile geben
und das ist völlig in Ordnung. Solange Sie sie
durcharbeiten, versuchen
Sie zu verstehen,
warum ich
diesen Fehler erhalten habe ? Wie ist das passiert? Und irgendwie so etwas. Aber das wäre es für
die Lösung genau hier. Ich hoffe, du hast das
nützlich gefunden und du wirst
etwas Neues lernen und wir sehen
uns in der nächsten Vorlesung. Also ja.
23. (Java): In Ordnung, willkommen zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in diesem Vortrag werden
wir uns die Sammlungen ansehen. Dies wird eine
realistische Karten und Sets beinhalten. Obwohl besonders Sets
etwas ist, das in der
Minecraft-Modellierung im Allgemeinen ziemlich
umfangreich verwendet wird , aber in der Minecraft-Codebasis. Sets sind also sehr
interessante Dinge, aber wir beginnen
zunächst mit einer ArrayList. Obwohl. Wir werden
an das String-Array zurückdenken, das wir so
definieren konnten, oder? Fragen zum Beispiel hier, mit einem neuen String-Array, sagen
wir von Größe zwei. Und dann konnten wir
diese Fragen
irgendwie so zuweisen . Wie gibt es Staaten, keine Staaten? Tut es. Die Hälfte der USA geht in
etwa so. Und wir könnten diese Zeile
duplizieren. Der andere auch. Zum Beispiel, um dies zu einem
etwas kürzeren Hauptstadt Großbritanniens zu machen. Das funktioniert also völlig gut. Es werden keinerlei Probleme bewertet. Eines der Dinge, die Sie sich
vielleicht stellen, ist richtig, aber was ist, wenn ich die Anzahl der
Fragen in diesem Bereich
ändern möchte ? Nun, du musst
diese Nummer gleich hier ändern. Und das kann ein
bisschen nervig sein, oder? Weil Sie dann hier reingehen
müssen, dies ändern müssen, sicher, dass Sie, wenn Sie dann
einen Bereich mit Antworten haben, auch
die Größe ändern müssen und
so weiter und so weiter. So irgendwie nicht das Beste. Und dafür werden wir uns jetzt eine Liste ansehen. Also
geben wir lst ein, also listen Sie auf. Und Sie können sehen, dass es
uns im
Grunde genommen schon vorschlägt. Und wir drücken einfach die Tabulatortaste, die jetzt oben
etwas importiert. Wenn das nicht passiert, zeige
ich Ihnen in einem Moment, wie
Sie das beheben können. Und dann steckst du genau hier
die Winkelklammer ein. Also sollte auch Winkelklammer und die andere
automatisch generieren. Und dann legen
wir genau hier eine Schnur ein. Und danach nennen wir dies die Fragenliste. Und das ist gleich
einer neuen ArrayList. Sie können sehen, dass uns dies
bereits grundsätzlich vorgeschlagen wird. Noch einmal drücke ich die Tabulatortaste, um
automatisch zu generieren. Und wir werden
das mit einem Semikolon beenden. Und das erste, was Sie sehen
werden, ist, dass
wir keine
Länge für diese Liste definiert haben. Und das ist genau
richtig, weil es keine Notwendigkeit gibt,
eine Länge für eine Liste zu definieren, da eine Liste irgendwie
dynamisch ist , während
Lengthen solar sprechen. Im Grunde können wir
einfach Dinge hinzufügen, Elemente
hinzufügen und die Liste, die wir einfach dynamisch
erweitern werden. Das ist also echt cool. Das ist das erste
sehr coole Ding. Wir können also Fragenliste, Punkt, Hinzufügen und dann eine Zeichenfolge setzen. Welche Sprache
wird zum Beispiel in Deutschland gesprochen? Als Frage hier. Und dann kann ich das einfach
duplizieren. Und sagen wir zum Beispiel, was ist die Hauptstadt Kanadas? Und dann am Ende vielleicht
etwas wie, weißt du, sagen
wir einfach in
welcher Hemisphäre? Hemisphäre ist Brasilien. Aber nur aus
Gründen der Argumentation. Also diese drei
Fragenbeispiele, fügen Sie es
einfach zur Liste hinzu, und dies wird jetzt das
Element mit Index 0 sein. Dies wird das
Element mit Index eins sein, und dies wird das
Element mit Index zwei sein. Das ist also echt cool. Und das erste
, was wir im Grunde
sagen können , sind diese Listen, oder? Sie sind im Grunde genommen Add-Einträge
oder Elemente dynamisch. Das ist also echt
verdammt cool, oder? So können wir hinzufügen und gut,
sogar Sachen entfernen. Wie würdest du Sachen entfernen? Nun, das ist eigentlich auch
ziemlich einfach. Wir können einfach sagen, dass
der Punkt der Fragenliste entfernt wird, und dann kann ich entweder den Index eingeben
, den ich
entfernen möchte , oder ich kann
das eigentliche Objekt einfügen , das
ich entfernen möchte. Also könnte ich auch
die eigentliche Zeichenfolge hier übergeben, oder ich könnte einfach eine sagen. Und dann wird es die Frage
aufheben, was ist die Hauptstadt Kanadas? Das ist ziemlich cool.
Nun, die nächste Frage Sie haben könnten, ist, nun, wie können wir die Länge davon im Grunde
erreichen? Nun, wir können den Punkt der
Fragenliste sagen. Zuallererst
werden Sie hier eine Menge Dinge vorgeschlagen,
wie Sie deutlich sehen können. Viele Dinge,
von denen
uns die meisten im Moment nicht interessieren. Wir müssen die
Größenmethode genau hier verwenden. Also Größe mit den Klammern,
was natürlich bedeutet, dass
dies ein Methodenaufruf ist. Und dies wird als Länge
oder Größe dieser Liste zurückgegeben. Und wie bekomme ich ein Element aus dieser Liste? Nun, wir können das System einfach
eintippen, Zeile
drucken, um das auszudrucken. Und dann können wir eine
Fragenliste sagen, die GET hat. Und dann
müssen wir hier den Index übergeben. Also in diesem Fall zum Beispiel 0. Und wenn ich das einfach ausführe, wirst
du sehen, dass
wir
zwei für die Größe bekommen werden,
weil wir natürlich die erste Frage
oder die Zeichenfolge mit Index eins entfernt
haben . Und dann wird das Element
mit Index 0 immer noch die
Sprache sein, die in Deutschland gesprochen wird. Das ist also ziemlich cool. Alles in Betracht gezogen. Werfen wir einen Blick
auf etwas anderes. Und das wird zum Beispiel eine Liste von Ganzzahlen sein, oder? Zahlen sind also gleich
einer neuen Array-Liste. Und was Sie sehen werden, ist , dass dies ein Problem hier ist. ArrayLists bewertet also so
etwas. Und dann sieht man
, dass es sich irgendwie verhält, weißt
du, es verhält sich nicht
ganz richtig. Es gibt wie eine rote
Unterstreichung hier. Was ist los? Nun, wenn wir den Mauszeiger darüber bewegen, können
Sie sehen, dass Typ-Argument
nicht vom primitiven Typ sein kann. Das bedeutet, dass
wir in Boolean und
ähnlichem nicht
verwenden können . Aber vor dir. Das kann und sagen: Oh mein Gott, das ist das Schlimmste aller Zeiten. Keine Sorge. Es gibt Wrapper-Klassen
, die Sie verwenden können damit Sie sie
tatsächlich
durch Java Lang Integer ersetzen können . Nun, ich kann entweder darauf klicken oder ich kann hier einfach eine
ganze Zahl eingeben. Also dieses hier in diesem Fall. Und wenn du das benutzt, funktioniert alles gut. also diese Liste und diese Winkelklammern sind
Generika. Und die Idee ist, dass Sie jeden Datentyp hier
einsetzen können, mit Ausnahme der primitiven. Das ist sehr wichtig für diejenigen, die wir als Wrapper-Klassen brauchen. Es gibt also
Wrapper-Klassen, oder? Wir können verwenden, können
anstelle des Primitivs
ein primitives Datentypen das U verwenden .
Daher ist dies sehr wichtig, um sich
daran zu erinnern, dass es Daher ist dies sehr wichtig, um sich
daran zu Wrapper-Klassen gibt und sie für jeden
der Primitiven existieren
sollten Datentypen. Es gibt also überhaupt keine Sorgen. Und hier können wir ganz
einfach Zahlen sagen, wissen
Sie, waren zum Beispiel 20. Und Zahlen fügen
etwas wie 42. Überhaupt keine Sorgen. Wie Sie sehen können, können wir diese Zahlen
hier
einfach hinzufügen und es handelt sich um normale Ganzzahlen,
und wir können grundsätzlich o.
Das ist völlig in hier
einfach hinzufügen und es handelt sich um normale Ganzzahlen und wir können grundsätzlich o. Ordnung. Aber ich wollte
dies erwähnen, dass Sie
die primitiven Datentypen in
diesen Generika nicht so verwenden die primitiven Datentypen in können, wie
sie genannt werden. Wie ich schon sagte, Generika sind diese Tour durch diese
Winkelklammern, oder? Diese eckigen Klammern. Und alles, was
darin ist als Generika
bezeichnet, weil
es in dem
Sinne generisch ist, dass wir jede andere Klasse
oder jedes andere Objekt,
jeden Datentyp, den
wir hier möchten, einfügen können jede andere Klasse
oder jedes andere Objekt,
jeden Datentyp, . Und es wird einfach funktionieren. Das beinhaltet übrigens auch
eine Liste, oder? Wir können also eine Liste mit einer Liste haben. Natürlich, warum nicht? Stimmt's? Wir mehrere Listen
, die auch funktionieren würden. Aber vorerst
wird es das für die Listen sein. Werfen wir einen Blick auf Karten. Karten sind also sehr interessant. Lesen Sie, eine Map ist das
Folgende. Eine Map enthält einen
Schlüssel und einen Wert. Und der Schlüssel, der
Schlüssel, der tatsächlich abbildet, weist der rechte Schlüssel zu einem bestimmten Wert zu, den
alle sinnvoll sein sollten. Dies wird als Schlüssel-Wert-Paar bezeichnet. Okay, fair genug. Was können wir sehen? Geben Sie dies
einfach in
Map ein, wie Sie sehen können, und diesmal haben wir zwei verschiedene Dinge in den Winkelklammern. Also lasst uns das importieren, oder? Sie können also sehen, dass dies auch hier importiert
wird. Wenn diese nicht automatisch
wichtig sind, können
Sie sehen, dass die Dinge rot und Sie können dies ganz einfach selbst
tun. Sie können einfach darauf klicken
und Alt und Enter drücken, und es wird diese Klasse importieren. Sie können sehen, dass ich dasselbe
auch mit
der ArrayList machen musste. Und dann hier unten für die Map, muss das
eigentlich
noch nicht tun , weil ich noch nicht fertig bin, aber wir werden das
in einem Moment sehen. Wir werden
eine Map haben, die eine Zeichenfolge
einer anderen Zeichenfolge zuordnet . Und wir werden dies
die Land-zu-Kapitalkarte nennen, die in diesem Fall
einer neuen HashMap entsprechen wird. Und was wir dann tun
können, ist, dass wir
einfach Alt und Enter drücken können . Und dann wird es auch hier
wichtig sein. Aber das sind sehr wichtig,
diese Importe im Grunde genommen, damit das Programm weiß , dass wir diese
Datentypen verwenden, oder? Also die Liste, die ArrayList, die Map und ähnliches. Und was wir
jetzt tun können, ist, dass wir
dieses Land auch zum
Kapital MAB hinzufügen können . Wir können also einfach „Put“ sagen und
das bringt neue Werte ein. So
wäre Deutschland zum Beispiel Berlin. Hoffentlich hast du das gewusst. Lass uns noch eins machen. Also lasst uns das einfach ein paar Mal duplizieren
. Und wir werden Frankreich sagen. Sie wissen, dass eine, die Paris
ist, natürlich früh unkompliziert, Italien, Wu jetzt wird es natürlich interessant
Rom. Und dann werden
wir eine USA haben, und das wird Washington DC
sein. So sehr einfach. Alles, was hier in Betracht gezogen wird, kann ich,
wie Sie sehen können, zwei Saiten
einsetzen, oder? Weil
ich das hier definiert habe. Die
müssen nicht gleich sein. Ich könnte ein ganzzahliges
Jahr einsetzen, einen Float hier, ich könnte hier eine Zeichenfolge einsetzen, eine Liste hier.
Alles würde funktionieren. Dies muss nicht beide gleich
sein. Das ist sehr wichtig. wollte ich auch erwähnen. Und wie holen wir jetzt
einen Wert aus einer Map heraus? Nun, sagen wir, System
Out Print-Zeile. Und dann sagen wir
Country to Capital Dot Get. Und du siehst, dass
ich eine Zeichenfolge angeben muss. Und was ich rauskriege,
ist natürlich eine Schnur hier, aber das muss
ich liefern. Und dann bekomme
ich das da raus. Der Rückgabetyp
und ich setze in Deutschland, und dann
wird Berlin ausgegeben, da Deutschland der Schlüssel zum
Schlüssel-Wert-Paar ist, Deutschland, Berlin sollte
ziemlich einfach sein. Ich kann auch fragen, ob die Map einen bestimmten Schlüssel
enthält
oder nicht einen bestimmten Wert enthält. Also kann ich System
out print line sagen. Und dann, nur
damit jeder weiß was wir hier fragen,
enthält Schlüsseldeutschland. Und dann werden
wir sagen, dass Country to Capital Dot Schlüssel enthält, Deutschland, was natürlich
wahr sein wird. Dann werden wir das
einfach duplizieren. Dann
sagen wir, enthält einen Wert. So können wir auch nach
Werten fragen, zum Beispiel London. Und dann können wir die
enthält eine
Value-Methode genau hier aufrufen , pass und London genau hier. Und wenn wir
das einfach ausführen, sollten wir es sehen. Zunächst einmal, genau hier, ist der
Berliner Kurs die Hauptstadt Deutschlands und enthält
dann den Schlüssel. Deutsch wird wahr sein, weil es diesen
Schlüssel enthält und dann Wert enthält. London wird
falsch sein, weil wir hier natürlich keinen Londoner
Urin als Wert haben. Wir können auch
Dinge von einer Karte entfernen. Also noch einmal
systemieren, Zeile
drucken und verbinden, um zu sagen, Zeile
drucken und verbinden, um zu sagen,
ich kann sagen, Land zum Großschreibung, Punktentfernung. Und das Coole an
dem Remove, das Sie
sehen können , ist, dass ich entweder den Schlüssel übergeben
kann oder auch sowohl den Schlüssel als auch
das Objekt übergeben kann. Und dann wird es einen
True zurückgeben , wenn das entfernt
wurde, weil diese
vielleicht nicht
übereinstimmen und Sie hier eine bestimmte
Funktionalität wünschen . Sonst kannst du einfach
den Schlüssel übergeben und dann
bekommst du tatsächlich auch
die Rücksendung. So erhalten Sie ein letztes, letztes Wertgeschäft. Das sollte also jetzt Paris sagen. Und danach sind Marken
tatsächlich, wie Sie sehen können, und nachdem diese im Grunde genommen von dieser Karte
entfernt wurde, ist
das eine sehr interessante
Idee von Karten. Sie können unglaublich nützlich sein. Es ist jedoch
natürlich manchmal
schwierig, auf diese
abstrakte Art von Weise, wenn ich denen nur zeige wo man sie wirklich benutzen kann. Die Verwendung dieser Datentypen kann
manchmal sein, naja, es ist keine exakte
Wissenschaft, oder? Manchmal willst
du also etwas benutzen. Ich bin mir nicht sicher ob das passt. Probieren Sie es noch einmal aus. Steve arbeitet und dann wird es
dir gut gehen. Und dann nicht zuletzt, was wir
uns die Sets ansehen werden. Was Sets
sind, wie ich bereits erwähnt habe, Dinge, die in der
Codebase von Minecraft
stark verwendet werden . Und ein Set ist nur eine Sammlung, eine Sammlung, die keine Duplikate
enthält. Nun, das ist die
einfachste Definition eines Sets. Es ist nur eine Liste oder
eine Sammlung, die
keine Duplikate enthält. Also eine Reihe von String,
wir könnten dies
beispielsweise als
Benutzernamen haben,
bei jedem Problem, das in diesem Fall einem neuen
HashSet
entspricht, dann können Sie sehen, dass dies
auch war importiert
und jetzt hat sich das hier in eine Geschichte verwandelt,
weil alle diese
unter dem Util-Paket enthalten sind . Es gibt also eigentlich nicht
zu viele Importe hier. Das macht es
irgendwie alleine. Das ist sehr nett. Also jetzt haben wir ein
Set und wir können
natürlich zu diesen
Benutzernamen hinzufügen, zum Beispiel Baumwolljob. Oder wir könnten sagen,
Benutzernamen dot add, Nano Tech genau hier. Und dann können wir sagen, naja, okay, fair genug, das
ist wirklich cool, aber was macht ein Set sonst noch? Nun, noch einmal,
wenn wir jetzt zweimal etwas
hinzufügen wollen , können Sie zum Beispiel etwas
wie Benutzernamen hinzufügen, sagen
wir FV, oder? Und dann dupliziere ich das und möchte es zweimal
denselben Namen hinzufügen, oder? Wir werden tatsächlich acht Fehler
zurückerhalten. Hier bekommen wir ein wahres,
hier bekommen wir eine falsche denn das ist
bereits da
drin, die Zeichenfolge befindet sich bereits in der Sammlung. Und weil es
keine Duplikate enthält, können
wir es immer nur einmal haben. Wenn ich das alles tatsächlich habe, wirst
du sehen, dass der
erste wahr ist, weil F oder V natürlich noch nicht hinzugefügt
wurde. Und nachdem es
hinzugefügt wurde und wir
versuchen, es erneut hinzuzufügen, erhalten
wir
eine Rückgabe falsch. Das ist also sehr interessant. Bei allen Sets kann
man nicht wirklich
einzelne Dinge
innerhalb des Sets nennen . Das Set ist wirklich eine Sammlung , die
irgendwie zusammen verwendet werden sollte. Und ich wollte die Sets nur sanft hier
vorstellen , damit du von ihnen
gehört hast. Sobald wir sie also im Spiel
oder innerhalb des Minecraft-Codes sehen , werden
Sie nicht
vollständig überrascht sein. Also der letzte Abschnitt hier,
Pfeile, auf die du
stoßen könntest, oder? Das ist also immer eine
wichtige Sache. Du kannst einfach, lass uns das
einfach machen. Kommentar abheben waren Pfeile. Ich habe gerade gesehen, wo Fehler bitte, nicht für Terroristen
das, das nicht gut wäre. Lassen Sie uns das tatsächlich aus Gründen des
Arguments kopieren und wir werden dieses C
einfach in
ein kleines C ändern und n
wird in Ordnung sein. Der erste ist also der Index
außerhalb der gebundenen Ausnahme. Also lasst uns einfach folgendes machen. Lassen Sie uns das auskommentieren. Und zuallererst
ist dies die Fragenliste. Da gehst du. Überhaupt keine Sorgen. Und wenn wir das tun, werden Sie sehen, dass wir hier eine Ausnahme bekommen, der Index außerhalb der
Grenzen Ausnahme. Dies ist also eine sehr, sehr ähnliche Ausnahme
vom Array-Index außerhalb der Grenzen Ausnahme
ist nur mit einer Liste. Das ist so ziemlich alles, was es gibt. Also haben wir versucht, einen Index
in die GetMethod zu übergeben , der für Listen nicht
existiert. Wenn wir also
nur zwei Elemente haben, ist
das erste von Index 0, das zweite von Index eins. So sehr wichtig
hier, dass es natürlich
nicht funktionieren würde, zwei zu
passieren, oder? Das ist also die erste Ausnahme. Und dann, nun, die andere Sache ist keine
wirkliche Ausnahme, aber es wird
eine Null zurückgeben. Wenn wir also einen Schlüssel in
eine Map geben, die nicht existiert, werden
wir eine
Null zurückgeben, oder? Und das könnte zu
einem Pfeil nach unten führen. Also wenn ich das mache,
wirst du sehen, dass wenn ich das mache, wir hier unten eine Null bekommen. Und das ist im Grunde genommen
richtig, Malta, das haben
wir in unserem
Land nicht, um Mab zu hauptstadt. Das wird
uns tatsächlich eine Null zurückgeben. Daher könnte es
sehr wertvoll sein zu sehen, ob er einen Schlüssel
enthält, bevor
Sie tatsächlich versuchen , ihn zu bekommen, war großartig. Eine Null zurückzugeben ist
nicht das Ende der Welt. Natürlich nicht vorbei, wenn Sie dann, wenn Sie nicht erwarten, dass
dies null ist oder Sie möglicherweise
nicht damit umgehen, dass
dies Null ist, dann können Sie auf einige Probleme
stoßen. Nun, das sind einige der
Fehler, die ich hier unbedingt erwähnen
wollte. Das wäre also, naja, die Summe der Sammlungen. Natürlich gibt es noch viel mehr, es gibt noch viel mehr Datentypen
, die Sie verwenden könnten. Wissen Sie, es gibt
nicht nur die Karten
und Sets der Liste , es gibt noch viel anderes, sondern
wird vorerst
ausreichen, um im Grunde genommen
loszulegen. Also das wäre es für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Wenn du das tätest, würde ich mich sehr über eine Bewertung von dir freuen. Ansonsten sehe ich
dich in der nächsten Vorlesung. Also ja.
24. (Java) Objektorientierte Programmierung: Oder ich begrüße zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in dieser Vorlesung werden
wir
über objektorientierte
Programmierung sprechen . Und wie Sie sehen können, sind wir
tatsächlich auf PowerPoint. In diesem Fall. Wir werden hier
tatsächlich
eine kleine
PowerPoint-Präsentation haben. Fangen wir also
einfach mit
der Idee an , was ist diese
objektorientierte Programmierung? Nun, in dieser Vorlesung werden
wir
ein wenig über die
Theorie und einige
der Begriffe durchgehen ein wenig über die
Theorie und einige
der ,
mit denen
Sie sich im Grunde genommen vertraut machen
müssen vertraut machen
müssen, um zu wissen, was ist weitermachen und den Sprachgebrauch
verstehen wenn Sie mit
Leuten sprechen, die
Programmierung kennen und wenn ich damit
fortfahre, also besonders
im Minecraft-Teil dieser Vorlesung oder dieses Kurses, sind
Sie werde sehen, dass
ich grundsätzlich immer die Begriffe verwenden werde, die zur Verwendung notwendig
sind. Also Klassen, Methoden, Objekte, solche Sachen, und du
solltest wissen, was das sind. Das erste, woran
wir denken können, ist, dass alles ein Objekt ist. Okay, lasst uns
das als Information speichern, als Information
und wir können
benutzerdefinierte Objekte mit
benutzerdefinierter Funktionalität erstellen . Interessant, Okay, und diese
würden Klassen genannt werden. Eine Klasse ist also, wir können ein Objekt aus
einer Klasse erstellen, okay, Interessant. Und in Klassen kann
vererbbare Funktionalität, die Methoden,
Variablen aus anderen Klassen sein würden. Und wir werden zwei
grundsätzlich
Theoriebeispiele dafür sehen . Und dann werden
wir uns in späteren Vorträgen auch
einige Praxisbeispiele ansehen . Nun, lasst uns zunächst die sehr
wichtigen Begriffe hier
durchgehen . Eine Klasse oder Klassen
sind also benutzerdefinierte oder
benutzerdefinierte Datentypen. Aber jetzt kommen wir tatsächlich
an den Punkt, an dem Sie Ihre eigenen Datentypen erstellen
können. Und diese Klassen
können dann grundsätzlich
als Vorlagen zum Erstellen von Objekten verwendet werden . Und diese Klassen enthalten Methoden und Felder, die als Mitglieder bezeichnet
werden. Machen wir diesen
Schritt nach dem anderen. Eine Klasse ist also ein benutzerdefinierter oder benutzerdefinierter Datentyp
, der ziemlich cool ist. Und dazu gehören
Methoden und Felder, über
die wir genau hier
sprechen werden. Dies sind Mitglieder und wie sie zum Erstellen von Objekten verwendet werden
können. Was ist jetzt ein Objekt? Ein Objekt ist nichts anderes als eine Instanz einer bestimmten
Klasse mit definierten Daten. Wir werden in nur einem Augenblick ein Beispiel dafür
sehen. Das wird also viel klarer werden. Aber lasst uns zuerst über die Mitglieder
sprechen. Diese sollten ziemlich
selbsterklärend oder viel einfacher sein als die Objekte. Mitglieder einer Klasse sind also
entweder eine Methode oder ein Feld, und Sie können auch
Methodenfunktionen aufrufen. Leute, die sich ein
bisschen mehr mit
Java beschäftigen , wissen vielleicht, dass dies nicht unbedingt notwendig
ist. Funktionen
unterscheiden sich also winzig von Methoden. Für unsere Zwecke ist
es vollkommen in Ordnung. Manche Leute sagen immer noch Funktionen, obwohl
es Methoden gibt, wird es in Ordnung sein
und niemand wird damit verrückt werden. Wir müssen dabei nicht zu
pedantisch sein, oder? Methoden oder
Funktionen
definieren also grundsätzlich spezifisches
Verhalten für ein Objekt, und Methoden können
für bestimmte Objekte aufgerufen werden. Ein Beispiel dafür, das wir bereits
gesehen haben, ist so etwas wie die Größenmethode für
eine bestimmte Liste. Natürlich wird jede
Liste die gleiche Größenmethode
haben. Was zurückgegeben wird, ist spezifisch für eine bestimmte Liste. Also für dieses Objekt, aber das ist eine Art
allgemeine Idee,
Felder oder Attribute, da sie auch unsere
Variablen genannt werden, die in der Klasse
definiert sind , die
einige Daten in Bezug auf diese Klasse speichert . Wenn
wir zum Beispiel
eine Personenklasse haben würden, die eine Zeichenfolge namens name
speichern könnte, sollte
das auch
sinnvoll sein und sollte
ziemlich selbsterklärend sein ,
wie dieses Beispiel hier. Und wieder einmal, all das werden wir natürlich auch live in Aktion sehen,
ich glaube, dass
wir im nächsten Vortrag sofort
anfangen werden , in
Klassen und Objekte einzusteigen. Es gibt also überhaupt keine Sorgen. Werfen wir zunächst einen Blick auf die Idee, Dinge zu erben. Also das möchte ich
zunächst
mit der Idee vorsprechen, dass das absolut in Ordnung ist,
wenn Sie
das nicht vollständig verstehen. Die Vererbung ist sehr kompliziert. Ich wollte das nur erwähnen ,
damit du es
schon einmal gehört hast. Aber die Idee ist
, dass wir vielleicht
einen Tierunterricht haben , oder? Und das erbt
im Grunde genommen seine gesamte Funktionalität und alle seine Variablen bis
zu zwei Klassen. Also das zweibeinige Tier und die vierbeinige Tierklasse, und diese sind auf folgende
Weise verwandt. Die Tierklasse ist
die Oberklasse
des zweibeinigen Tieres und die Superklasse für das
Vierbeiner. Während das vierbeinige Tier und die zweibeinigen
Tierklassen
Unterklassen der Tierklasse sind . Sie können immer nur eine Superklasse
haben, aber wie Sie sehen können, können Sie mehrere Unterklassen
haben. Und dann können wir hier
sogar noch weiter nach unten gehen und noch mehr Sachen erben
und mehr Funktionalität hinzufügen. Sie gehen also irgendwie
von einem sehr generischen oder sehr abstrakten,
sehr spezifischen, oder? Animal ist eine sehr
abstrakte Kategorie. Zweibeiniges Tier. Wir fangen an, uns wirklich auf spezifischere Dinge zu
befassen, Menschen und einen Strauß. Jetzt sind wir sehr, sehr spezifisch. Das ist also eine Idee, die du dir vorstellen
kannst, oder? Denken wir jetzt an einen
Hundeunterricht, oder? Wir haben also eine Klasse
, die als Hund bezeichnet wird und die
einige Attribute
oder einige Felder haben könnte , oder? Welches wird ein Bild, ein Name und ein Alter sein. Und wir werden so sein,
Okay, das ist in Ordnung. Das ist okay, dass es gut
genug ist , um
einen bestimmten Hund zu beschreiben. Und nun
wollen wir einen neuen Hund erschaffen. Wir möchten also eine neue
Instanz der Hundeklasse erstellen. Wir möchten ein neues Objekt erstellen. Nun, lass uns das einfach machen. Da haben wir es. Im Moment haben
wir einen neuen Hund geschaffen. Benji war sieben Jahre alt und hier ist ein sehr
süßes Bild von ihm. Ist das nicht einfach nett? Ja, wenn ich es selbst sage, denke
ich, dass dies hier ein
sehr süßes Bild ist, und das ist ein
bestimmter Hund, oder? Wir haben hier nichts wirklich
geändert. Das einzige, was
wir getan haben, ist, dass wir im Grunde ein Objekt erstellt haben. Wenn wir hierher zurückkehren hat
jeder Hund ein Bild, einen Namen und ein Alter, und dies ist eine bestimmte Instanz oder ein bestimmtes Objekt
der Hundeklasse. Jetzt
erstellen wir einfach ein anderes. Zum Beispiel hier, Gracie fünf Jahre alt und hat auch ein sehr süßes Bild genau dort. Es gibt, Sie können sehen, dass es sich um
zwei verschiedene Objekte oder
zwei verschiedene Instanzen
der Dog-Klasse handelt zwei verschiedene Objekte oder . Sie sind jedoch beide Hunde. Dies ist also eine Art Trennung
, die ich bei Klassen und Objekten
durchgehen möchte , dass die Klasse die Vorlage ist. Und sobald Sie
ein bestimmtes Objekt erstellt haben
, wird dieses dann zu einer
Instanz dieser Klasse. Das
kann manchmal etwas
seltsam sein , besonders für Anfänger. Aber keine Sorgen auf einmal. Wir werden tatsächlich damit anfangen, mit diesem
Unheimlichen zu programmieren oder wenn wir dies
tatsächlich
in die Praxis umsetzen wird es viel klarer sein. Ich bin mir dessen sicher, oder? Was wäre schon
das Ende der Vorlesung? Eigentlich ist das
Wichtigste an dieser Vorlesung, lass mich einfach schnell zurück hierher
gehen genau hier, oder? Diese Folie ist wahrscheinlich
die wichtigste. Die Folien stehen
Ihnen tatsächlich
auch als Ressource zur Verfügung, sodass Sie diese auch herunterladen
können. also keine Sorgen. Sie haben also auch Zugriff auf
diese beiden niedlichen Hundebilder. Das wird also natürlich ein sehr großes Plus
sein. Ansonsten wäre dies für diesen Vortrag genau
hier, wie gesagt, ein bisschen mehr
Theorie und den nächsten Vortrag werden wir
all das in die Praxis umsetzen. Das wird es also für
diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden
und Neuronen sind das Neue. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
25. (Java) Java und Objekte: In Ordnung, willkommen zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in dieser Vorlesung werden
wir im Grunde die Theorie
anwenden, die
wir letztes Mal gelernt haben. In der letzten Vorlesung werden
wir
über Klassen und Objekte sprechen. Zuallererst müssen
wir natürlich eine neue Klasse erstellen, jetzt
eine benutzerdefinierte Klasse. Und dafür
gehen wir in dieses Projektfenster genau
hier in unserem Paket. Das ist also das Paket, oder? Net half Monroe war das Paket, das wir erstellt haben
oder ein anderes, das ich erstellt habe. Hoffentlich ist das dein Name. dann in Ihrem Names-Paket Sie dann in Ihrem Names-Paket mit der rechten Maustaste auf neue Java-Klasse. Und dann
nennen Sie dies die Hundeklasse,
stellen Sie sicher, dass
die Klasse hier
ausgewählt ist , und drücken Sie dann die Eingabetaste. Jetzt erscheint dieses Jahr dieses Fenster nur für
mich, weil ich
ein GitHub-Repository habe , das mit diesem Projekt
verknüpft ist. Wenn du das nicht hast, ist
das absolut in Ordnung. Mach dir darüber überhaupt keine Sorgen. Also wollte ich
das nur erwähnen. Und jetzt füge statt dieser
geschweiften Klammern Mitglieder zu dieser Klasse
hinzu. Zum Beispiel könnten wir einige Felder
hinzufügen, oder? Also können wir
etwas sagen wie Hinzufügen, Hinzufügen einiger Felder, oder? Und dann denken wir an
die PowerPoint-Präsentation zurück , die wir gesehen haben, oder? Wir hatten ein öffentliches String-Bild. Wir haben
über ein Bild nachgedacht. Wir werden nur
sagen, dass eine Zeichenfolge , die vorerst völlig in Ordnung
ist, ein öffentlicher String-Name. Und dann sagen wir
eine öffentliche Ganzzahl, die die Altersvariable ist. Das ist vorerst alles in Ordnung
. Wir werden die Öffentlichkeit hier wieder
ignorieren. Wir müssen
dies nur
noch einmal in sehr,
sehr kurzer Zeit öffentlich machen. Eigentlich werden wir die Zugriffsmodifikatoren
sehen. Das ist also buchstäblich auch die
nächste Vorlesung. Und dann werden wir verstehen , was
das vorerst bedeutet. Wir müssen es öffentlich machen. Und was wir auch tun können, ist zum Beispiel jemand
wie eine öffentliche Leere. Und dann werden wir zum Beispiel, damit wir Felder
und auch Methoden erstellen können, oder? Das ist also eine Methode
hier, und das sind
natürlich hier Felder. Dann kann ich etwas
mit dieser Methode tun, was nur aus
Argumenten dient. Das werde ich gerade
sagen, zu diesem Zeitpunkt. Okay, jetzt ist das alles eingerichtet. Was machen wir
mit seinem Hundeunterricht, oder? Wie machen wir daraus ein
neues Objekt? Nun, wir können folgendes tun.
Du könntest Hund sagen, oder? Logo Und jetzt können wir
zum Beispiel zunächst
so etwas sagen. Das könnte zum ersten
Mal etwas verwirrend sein. Vielleicht wie warte, aber ich meine, ich dachte, du
solltest das irgendwie erkennen, oder? Dies ist nur eine normale Variable , die wir
hier deklariert haben, oder? Ist nur eine Art Hund. Nun, wie ich schon sagte,
weil du jetzt anfängst, benutzerdefinierte Klassen zu verwenden. Im Grunde genommen benutzerdefinierte Datentypen. Das mag ein bisschen komisch sein, aber das ist genauso, als
würde ich das tun, oder? Wirklich wenn wir darüber nachdenken, ist
es nur eine Variable. Dieses Mal vom Typ Hund. Und eine andere Möglichkeit, dies tatsächlich zu initialisieren, ist, dass ich einen
neuen Hund sagen kann und du siehst, dass es das
tatsächlich
automatisch für uns generiert. Und jetzt habe ich einen neuen Hund
geschaffen. Dies ist also die allgemeine Vorstellung
davon , wie Sie ein neues Objekt
erstellen können. Sie müssen also
das neue Schlüsselwort verwenden, das wir
bereits ein paar Mal gesehen haben. Zum Beispiel mussten
wir mit dem Scanner einen neuen Scanner erstellen. Und das ergibt auch Sinn. Scanner ist nur
ein anderes Objekt oder eine andere Klasse, mit der
wir
ein neues Objekt instanziieren können , oder eine neue Instanz eines Zolls
kann das im Grunde verwenden. Das ist irgendwie die Idee. Nun, die eigentliche Frage ist
jedoch, dass okay als hätte ich diesen Hund hier, aber wie ich die Felder , was sind sie jetzt? Nun, probieren wir es einfach aus. Schreiben Sie System aus, drucken Sie Zeile, Togo, Punktname zum Beispiel. Mal sehen, naja, wie wurde der Hund als Hund genannt? Nein, eigentlich ist der
Name null, weil wir
keinen dieser Werte zugewiesen haben. Daher sind sie alle null,
weil wir hier den
Standardkonstruktor verwendet haben . Was heißt das? Nun, der Konstruktor
ist ein weiterer
Teil einer Klasse, der sehr wichtig
ist, und dies wird in diesem Fall eigentlich
nicht als
Mitglied eingestuft ,
dies ist etwas anderes. Der Konstruktor
ist also,
wie der Name schon sagt, etwas, das
ein Objekt aus dieser Vorlage
aus dieser Klasse konstruiert ein Objekt aus dieser Vorlage , oder? Aber der Standardkonstruktor, jede Klasse, die Sie erstellen,
hat so etwas. Es wird also so
mit einem Zugriffsmodifikator geschrieben. Und dann folgte der Name der Klasse unmittelbar
danach Klammern, die nichts in sich haben. Und dann im Grunde
fast wie eine normale Methode, nur ohne Rückgabetyp oder vielmehr
ist der Rückgabetyp der gleiche wie der Name. Du kannst dir das auch so vorstellen
. Und dieses Jahr ist der
Standardkonstruktor. Und das haben
wir hier
für dieses Dokument benutzt , oder? Dies ist jetzt der
Standardkonstruktor. Und das eigentliche Problem hier ist
natürlich , dass man sehen kann, dass darin
nichts passiert. Keinem dieser Dinge wurde also ein Wert zugewiesen. Wir können jedoch auch
eigene Konstruktoren erstellen. Im Moment können wir
einen benutzerdefinierten Konstruktor erstellen. So
schreiben Sie zum Beispiel öffentlicher
Hund,
String, Bild , String-Name und Alter so etwas und
dann können wir diese zuweisen. Dieses Bild ist also gleich Bild, this.name entspricht dem Namen, und
dieses Punktalter entspricht dem Alter. Und Sie werden plötzlich sehen, alles immer noch völlig gut
funktioniert. Nun das erste, was
Sie fragen könnten, was ist das, dieses Keyword? Nun, das bezieht sich auf das Objekt
, das wir Rate erstellen. das zum Beispiel vorstellen, Sie können sich das zum Beispiel vorstellen, wenn
wir diese Wolf-Methode aufrufen. Wenn wir dies nennen würden, müssten
wir dies
für ein bestimmtes Objekt aufrufen. Jedes Mal, wenn ich dies
innerhalb dieser Methode verwende, wird auf
dieses bestimmte Objekt
im Grunde genommen Bezug genommen. So kannst du
dir das also vorstellen. gleiche Weise mit dem Konstruktor. Wenn ich dies verwende, wird auf dieses bestimmte
Objekt, das wir
gerade erstellen , verwiesen, da der Parametername hier denselben Namen wie das Feld hat
. müssen sie nicht unbedingt, aber in diesem Fall tun sie es. Dann möchten wir dieses
Tool sehr verwenden, geben Sie an, hey, das ist das Feld
und als Parameter. Und jetzt kann
ich, anstatt einen mit dem
Standardkonstruktor hier zu
erstellen, ich kann tatsächlich etwas tun
wie zum Beispiel Hund und Benji, sagen wir mal
gleich neuen Hund, oder? Und dann kann man sehen, ob
ich hier eine Sekunde warte, kann sich
das im Grunde ansehen. Da ist es. Jetzt bekommen wir hier tatsächlich
einen Vorschlag, entweder keine Parameter oder Zeichenfolge, Bildzeichenfolge, Name,
String oder int Age. Also bekommen wir tatsächlich
den Vorschlag hier. Sagen wir Benji Dot PNG, oder? Sagen wir Benji für den Namen
und dann sieben für das Alter. Und Sie können sehen, dass dies fast das
Gleiche ist wie ein
normaler Methodenaufruf, aber in diesem Fall
erstellt es tatsächlich ein neues Objekt. Und dann können wir
System Out Print-Line machen. Jetzt Benji Punktname, und dann sagen wir Benji Punkt h. Und jetzt wird das ausgegeben ist Benji und eine Sieben,
wie Sie sehen können. Das ist also
wirklich verdammt cool. Es gibt noch eine Sache. Sagen wir einfach aus Gründen des Arguments hier, wenn wir viele
Felder haben, oder? Manchmal kann es
etwas mühsam sein, sie
alle hier
im Konstruktor zu stecken . Was wir also tun können, ist, dass wir
auch mit der rechten Maustaste auf Konstruktor
generieren klicken können . Dann können Sie einfach alle Felder auswählen ,
die Sie initialisieren
möchten, die
Sie vom Konstruktor sehen würden,
und wir sagen, okay, und das erzeugt
genau
das Gleiche , was wir zuvor gemacht haben. Ich wollte
das erwähnen, weil das manchmal sehr nützlich
sein kann , oder? Es gibt also
viele Dinge
, die automatisch generiert werden können. Denken Sie also auch daran. Aber lasst uns auch noch ein dunkles
machen. Also nur um das zu veranschaulichen, also ist Hund Gracie einem neuen Hund gleich
, oder? Dies ist der fettige
Punkt PNG, Gracie, und ich glaube, Gracie war
fünf oder fünf ist in Ordnung. Lassen Sie uns das jetzt auch
ausgeben. Also wähle ich dieses Control C, Control V aus, um es
einzufügen und dann
die Variable hier und die
Art von Benji in Gracie zu ändern . Und das
funktioniert natürlich auch und es wird unterschiedliche Werte
haben. sind also wieder beide Hunde, die überfallen sind, aber es sind zwei
verschiedene Hunde. Es gibt also zwei
verschiedene Objekte. Und ich hoffe, dass die Theorie
der letzten
Vorlesung sehr leicht
zu diesem anschaulichen
Beispiel übergeht , sobald wir sie tatsächlich verwenden, wird
es hoffentlich sehr klar. Und wir werden auch tun, dass wir einfach diesen
Wolf ändern, den du tatsächlich bist zu diesem Punktnamen, einfach waft. Was wir dann sehen können, ist auch dass wir, wenn wir diese Methode
erneut aufrufen ,
insbesondere diese
Methode tatsächlich auf
ein bestimmtes Objekt aufrufen müssen, oder? Also
müssen wir tatsächlich Benji-Punkt,
WAF oder rassigen Punkt speichern . Sollte alles Sinn ergeben. Und was jetzt
passieren wird, ist, dass es nicht für jeden von
ihnen dasselbe sein wird , oder? Also ist Benji einfach umgezogen
oder Gracie einfach Swift. Dies bezieht sich also noch einmal auf das eigentliche Objekt, bei dem dies sozusagen aufgerufen
wird. Das ist also die Idee. Und dann eine letzte
Sache, die
vielleicht ein bisschen anders
oder ein bisschen seltsam sein könnte. Es ist wie, naja, warte eine Sekunde. Benji Dot Alter, oder? Okay. Kann ich das einfach etwas zuweisen
? Ja, das kann ich. Nun, das ist sehr
interessant, oder? Plötzlich, oder? Benji ist 10 Jahre
alt geworden und du würdest vielleicht sagen:
Warte, das ist nicht, das ergibt keinen
Sinn, oder? Es sind nur sieben sie. Das stimmt nicht, ist das ja, das hat jetzt gerettet. Und das werden
wir uns in
der nächsten Vorlesung ansehen , wenn es um Zugriffsmodifikatoren
geht. Weil all dies
öffentlich ist, bedeutet im Grunde, dass Sie dies ändern und von
überall im Code darauf
zugreifen können. Und das ist manchmal
nicht das, was wir wollen. Manchmal möchten Sie
den Zugriff auf bestimmte Felder,
Variablen, Methoden einschränken den Zugriff auf bestimmte Felder,
Variablen, , all
diesen Jazz im Grunde genommen. Und wie gesagt, wir werden uns
das in der nächsten Vorlesung ansehen. Dies wäre jedoch
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du lernst etwas von dem Neuen. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
26. (Java) Zugriffsmodifikatoren: Ordnung, willkommen zurück zur
Java-Einführung hier für Minecraft-Morgen
und in dieser Vorlesung werden
wir uns mit
Zugriffsmodifikatoren befassen. Sie benötigen also den gesamten
Code aus der letzten Vorlesung. Keine Sorge,
dies steht
Ihnen natürlich als Ressource zur Verfügung. Schauen Sie sich das auf jeden Fall an und dann springen wir einfach direkt ein. Die Idee war also, dass wir alle unsere Bereiche
hier als Öffentlichkeit hatten, oder? Also war alles hier öffentlich. Und wir haben nachgedacht,
naja, okay, also wie werden wir das benutzen? Oder wie können
wir einige Felder außerhalb dieser Klasse nicht
veränderbar oder modifizierbar
machen . Nun, lasst uns einfach alle
Zugriffsmodifikatoren
durchgehen . Es gibt also eine Öffentlichkeit, es ist geschützt und es gibt private. Dann gibt es zwei weitere Dinge
, die wir auch sehen werden die statisch sind und
das letzte, nun, es sind keine wirklichen
Zugriffsmodifikatoren, aber sie sind auch eine Art
Modifikatoren, die Sie
vor Felder stellen können und, oder Methoden. Wenn es also darum geht,
den Namen hier zum Beispiel zu
schützen, wird dies
tatsächlich nichts bewirken. Der Grund, warum
es nichts tut
, ist , dass ein geschütztes Feld oder eine geschützte Methode im selben Paket
aufgerufen werden kann. Und weil der Hund und die Hauptklasse oder im
selben Paket
sind, können wir immer noch auf
dieses Feld hier im
geschützten Schlüsselwort
verweisen dieses Feld hier im
geschützten Schlüsselwort oder Klassen
, die sich davon erstrecken. Im Grunde
könnten Säuren, die von der Hundeklasse
erben , jetzt auch die Namensvariable
verwenden. Was ist mit der Altersvariablen? Nun, lasst uns folgendes machen. Machen wir das
privat. Und plötzlich können wir
verwandte Probleme sehen, oder? Alles wird verrückt. Jeder flippt
aus, weil wir
plötzlich
tatsächlich darauf zugreifen können,
weil eine private Variable ist wir
plötzlich
tatsächlich darauf zugreifen können und nur
in derselben Klasse zugegriffen wird,
was bedeutet, dass wir nicht
direkt darauf zugreifen können. Wir können jedoch
etwas tun, das eine Methode
sein wird , gibt diesen Wert zurück. Das
nennt man also Gitarre. Und was wir tun können, ist, dass
wir mit der rechten Maustaste auf
Generieren klicken können und Sie sehen, dass wir
tatsächlich
Getter und Setter generieren können . Setter sind ziemlich dasselbe, wo Sie
den variablen Zinssatz
festlegen. Wo man das also
grundsätzlich einstellen kann und einen Getter ist genau
das Richtige, wo man das bekommt. Also kann ich die
Altersvariable auswählen und sagen, okay, und sehen, dass sie
eine Methode für uns generiert öffentliche Ganzzahl, weil
das natürlich der Rückgabetyp hier ist, Alter abrufen. Auf
diese Weise würden Sie dies
formulieren oder der
Name davon war normalerweise get und
dann nur der Name der Variablen oder des Feldes. Und dann geben wir mit dieser Methode das
Alter zurück. Und anstatt es direkt
anzurufen, können
wir sagen, Alter, Alter zu bekommen. Und jetzt ist hier das sehr
interessante Ding. Natürlich funktioniert das nicht. Wir können einer Methode
nichts zuweisen. Deshalb funktioniert das
nicht, oder? Wir können also sagen, dass es nicht funktioniert. Daher können wir dieser Altersvariablen keinen neuen
Wert zuweisen. Das ist also wirklich das Coole Ding. Und dann können wir auch ein
statisches und ein endgültiges Keyword haben. Okay, was ist das? Nun, Statik wird sehr interessant sein. Wenn ich also ein
öffentliches statisches Int habe, nenne ich das den Multiplikator für den Hund zu menschlichem Ohr. Multiplikator, der gleich sieben ist,
wenn ich mich hier nicht irre. Und das können wir uns so
vorstellen. Muss jeder Hund
ein bestimmtes Feld haben, das ist dieser Multiplikator. Ich meine, wenn wir wirklich ehrlich sind, nicht wirklich, richtig, wenn
wir darüber nachdenken. Der Doktor hier, Dr. Multiplikator für das menschliche Jahr ist wirklich etwas, das
für jeden Hund funktioniert. Genau. Deshalb ist es statisch. Ist eine statische Variable oder eine statische Methode und
wird tatsächlich nur
Klasse genannt und es müssen keine bestimmten Objekte
erstellt werden. Was ich also tun kann, ist zum Beispiel, anstatt Benji so zu
nennen, dass ER, ich kann Hund, Punkt, Punkt,
Mensch, Arzt, Menschliches
Jahr Multiplikator sagen . Sie können sehen, dass ich das für
die eigentliche Klasse aufrufe und nicht für das Objekt. Das ist also eine sehr
interessante Sache. Und das könnte
dein Gehirn hier ein bisschen brechen, denn erstens ist es
etwas seltsam, in Statik
zu kommen und es scheint ersten Blick vielleicht
sehr kontraintuitiv
zu sein, aber überhaupt keine Sorgen. Wenn wir das wirklich benutzen, wird
es gut gehen. Und der allgemeine Kern
ist, dass, weißt du, wenn etwas Statisches
normalerweise etwas
ist, das für alle Objekte gleich ist, oder? Denn wieder
ändert sich
Ihr Dr. Human Year Multiplikator nicht von Hund zu Hund. Lassen Sie uns nun die
Tatsache ignorieren, dass es
sich vielleicht ändert, wenn es verschiedene
Rassen und ähnliches gibt. Ignorieren wir das einfach. Es ist natürlich nur ein Beispiel
hier, oder? Und dann
ist die Frage auch, nun, warte eine Sekunde. Dies
muss es wirklich nicht ändern, denn jetzt haben wir
wieder das gleiche Problem, also Hunde, Ihr Multiplikator und plötzlich
gleich zehn. Wir können das einfach ändern
und es ist, als wäre das nicht wirklich klug, oder? Das muss nicht passieren. Nun, zum Glück gibt es auch das
endgültige Keyword. Und das macht es
so, wenn ich tatsächlich Control Z
drücke, um zurückzukehren, können
Sie sehen, dass
einer endgültigen Variablen keinen Wert
zuweisen kann . Denn wenn es sich um eine
endgültige Variable
handelt, kann sich der Wert nie ändern, nachdem er zugewiesen
wurde. Das ist auch sehr interessant. Es gibt jedoch natürlich deutlichen Unterschied zwischen
einem
privaten und einem endgültigen
variablen Zinssatz. Weil eine endgültige Variable wir theoretisch
ändern könnten, oder? Wir könnten etwas sagen
wie zum Beispiel, lasst uns einfach eine
öffentliche, öffentliche Leere machen. Geburtstag der Öffentlichkeit ungültig, oder? Für einen Hund, wo wir Alter plus plus
sagen. Aber das funktioniert immer noch,
obwohl es privat ist, können
wir diese Variable ändern. Wir könnten diese
Variable nie ändern, wenn sie endgültig ist. Das ist also der Unterschied dort
, der hoffentlich
in diesem Sinne verständlich ist, oder? Werfen wir also
noch einmal einen Blick auf das
Folgende, oder? Also können wir dann auch
etwas sagen wie: Nun, ich meine, lass uns einfach eine hinzufügen, lass uns
einfach noch eine Sache hinzufügen, so
etwas wie ein öffentliches Int. Also GetAge in Menschenjahren, oder? Wo wir den Multiplikator
hier verwenden können, werden wir die altersvariablen
Zeiten
zurückgeben, die der Arzt hier, menschlicher Arzt,
Multiplikator für das menschliche Jahr genau dort ist. Jetzt können wir das einfach nennen , man kann natürlich
auch Dog Dot so sagen. müssen wir nicht tun, weil wir in
der Hundeklasse sind, also können wir
es einfach ohne das nennen. Das ist eine sehr
persönliche Präferenz, nur ob
Sie das tun möchten oder nicht. Aber was wir dann zum Beispiel
sagen können,
ist, dass wir dann sagen können, dass Benji
Dot in Menschenjahren alt wird, und das wird dann
sein, was ist das? 49? Ja, 49. Da gehst du. So einfach genug. Das ist irgendwie der allgemeine Kern. Wir haben öffentlich, geschützt und privat für die
Zugriffsmodifikatoren. Und dann gibt es auch
statisch und endgültig. Und wir werden es auf jeden Fall sein, dass
wir all
diese in zukünftigen Vorträgen treffen werden, besonders wenn wir uns mit der Mikrowellenmodellierung
befassen, das wird hier
sehr relevant sein, besonders
so etwas wie das endgültige Schlüsselwort und das statische Schlüsselwort, diese werden
oft verwendet. Noch einmal, wenn sie ein
bisschen unklar sind , ist das
absolut in Ordnung. Überhaupt keine Sorgen. Sobald du anfängst, mit ihnen zu
arbeiten , wird
es viel klarer. Und noch einmal
kann ich Ihnen sehr raten,
ein paar Sachen auszuprobieren. Feuere einfach Intelligenz an. Machen Sie ein paar Klassen und probieren Sie einfach
ein paar Sachen aus. Mache ein paar Klassen, mache ein paar Felder,
ganze Menge Sachen. Du kannst
nichts kaputt machen. Eigentlich nicht. Es geht also nur darum im Grunde
offen für
Experimente zu sein. Das ist also ein
Rat, den ich dir geben kann. Aber sonst wäre das
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
27. (Java) Vererbung und Polymorphismus: In Ordnung, willkommen zurück
zur Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag
werden wir
über Vererbung
und Polymorphismus sprechen . Nun, zuallererst
ein Polymorphismus und Vererbung für sehr
große Wörter, oder? Aber insgesamt
sind sie Konzepte ziemlich einfach, besonders Polymorphismus
ist eigentlich nicht so verrückt nach einem Konzept? Nun, ein weiterer Haftungsausschluss, den
ich direkt vor
dem Tor sagen möchte , ist,
dass die tatsächliche Art von Konzept möglicherweise nicht zu
100 Prozent transparent ist, was absolut in Ordnung ist. Übrigens, das ist
etwas, das noch einmal gebaut werden
muss, indem gebaut werden
muss nur ein
paar Sachen ausprobiert, oder? Normalerweise habe ich ungefähr das
Gleiche Hier. Ich vergesse es. Ich verstehe. Ich weiß noch. Das tue ich. Ich verstehe es. Es muss also immer etwas tun, das damit einhergeht. Wie auch immer der Fall sein mag. Sagen wir, aus Gründen des Arguments, dass jemand
sagt: Weißt du was, ich will wirklich auch einen
Katzenunterricht weil ich kein
Hundemensch bin, das ist in Ordnung. Das ist total okay. Nun, lasst uns auch hier eine
Katzenklasse hinzufügen. Also eine neue Klasse, Cat. Und da gehst du. Nun, was Sie schnell
erkennen werden, ist,
dass die Katzenniere auch ein Bild, einen Namen
und ein Alter haben
sollte. Und vielleicht sagen Sie,
nun, ich meine, lassen Sie uns diese Felder
einfach kopieren. Und dann könnte man so sein,
naja, ich muss auch
alt werden , dass der Getter
und dann der Wolf, vielleicht das Baby und Mimi
Chao und du kommst an einen Punkt, an dem du viel
Code
kopierst und normalerweise
Eine Menge Code zu überschreiben ist ein Zeichen dafür, dass Sie etwas optimieren
können. Jetzt ist eine vorzeitige Optimierung der Weg in die Hölle.
Das verstehe ich. Manchmal
macht dies jedoch einfach einen Sinn, wo
Sie so kopiert, das kopiert, kopiert,
kopiert wurde, und es ist wie, lasst uns einfach eine Methode oder
eine Klasse daraus machen oder etwas anderes. Und das etwas
anderes
wird eigentlich eine Superklasse für die Katze und einen Hund
sein, der die Tierklasse ist. Also werden wir eine
neue Klasse namens Animal machen, und das
wird diese jetzt speichern. Also werde ich das mit
Control X und Control V
ausschneiden , um dies genau hier
einzufügen. Und jetzt können wir plötzlich die Hundeklasse um
die Tierklasse erweitern,
was bedeutet, dass die, lass es uns
einfach richtig machen? Also werden wir hier
alles vom Tier erben . Wir werden sagen,
erweitert Tier, und das ist jetzt Erbschaft. Die Hundeklasse ist jetzt
die Unterklasse des Tieres, und das Tier ist jetzt
die Superklasse des Hundes, was
bedeutet, dass alles
hier vererbt wurde. Jetzt kann ich das
buchstäblich löschen. Das einzige,
was
rot werden wird , ist das Alter, denn ich
muss dies
hier tatsächlich schützen , damit in der Unterklasse darauf
zugegriffen werden kann. Aber wir haben dies in
der letzten Vorlesung gesehen, in der ich
gesagt habe , dass es sich um
eine geschützte Variable
handelt, und Sie dann auch
von der Unterklasse aus darauf zugreifen können . Das ist also irgendwie die Idee. Lassen Sie uns auch hier ein paar
dieser Kommentare
loswerden . Wir können auch
den Standardkonstruktor loswerden , der ebenfalls
nicht mehr notwendig ist. Jetzt haben wir diese
Tierklasse, oder? Und das ist ziemlich cool. Jetzt können Sie sehen, dass b-a, diese Hundeklasse, alles
hier eingestellt wird. Wir möchten jedoch
sicherstellen, dass jeder,
dass jede Klasse, die tatsächlich von der Animal
Klasse
erbt, auch funktioniert. Also werden wir auch einfach
einen neuen Konstruktor erstellen. Klicken Sie also mit der rechten Maustaste,
generieren Sie einen Kursleiter, stellen Sie sicher, dass hier
alles
ausgewählt ist , und drücken Sie dann OK. Und dann werden wir
gleich hier mit einem
Pfeil
begrüßt. Denn wenn wir den Mauszeiger darüber bewegen, können
Sie sehen, dass in einem
Net-Com-Zootier
kein Standardkonstruktor
verfügbar ist . Was heißt das? Nun, wenn Sie hier tatsächlich
einen bestimmten Konstruktor hinzufügen
, ist dies nicht der
Standardkonstruktor. Der Standardkonstruktor funktioniert nicht
mehr. Sobald Sie also einen
Konstruktor haben, der
nicht der Standardkonstruktor ist , müssen
Sie ihn wieder
wie manuell hinzufügen. Also könnte ich zum Beispiel öffentliches Tier
sagen, richtig, mit nichts drin, oder? Also so etwas.
Natürlich ist das nicht der Fall. Nun, weißt du, dass wir das noch einmal nicht
wirklich wollen. Dies wird
also gelöscht und der Standardkonstruktor funktioniert
dann nicht
mehr. Und was
müssen wir jetzt hier machen? Nun, was wir tun können, ist, dass wir den Superhelden nennen
können, und das
nennt im Grunde den Konstruktor. So können wir tatsächlich PI
einsetzen, wie Sie es tatsächlich
schon
sehen können , um einfach zu sagen, nehmen
wir einfach alle
Parameter
hier und setzen sie in das Jahr ein. Und jetzt
nennt dieser Super jetzt den Animal
Constructor genau hier. Das ist also in diesem Fall wirklich
perfekt. Dann könnte zum Beispiel etwas anderes,
vielleicht das, sowohl das Alter als
auch
der Geburtstag , auch in der
Tierklasse sein. Das würde auch völlig gut
funktionieren. Und der Rest hier ist
eigentlich total okay. Ich werde mich anpassen und
das ein bisschen anders machen. Also möchte ich normalerweise
die Konstruktoren an der Spitze der Klasse haben, oder? Kommen Sie also zuerst die Felder und dann die Konstruktoren und dann alle Methoden und
Sachen wie diese. Obwohl die Reihenfolge
natürlich etwas ist , das ganz bei Ihnen liegt, ist dies normalerweise
die Konvention 0. Was würde nun passieren, wenn
ich jetzt sagen würde, nun, die Katze erweitert jetzt auch
die Tierklasse. Wir werden hier einen Fehler
bekommen, bei dem kein
Standardkonstruktor in animal verfügbar ist . Und dann haben wir diese
mögliche Lösung, nämlich der Create
Constructor,
der super übereinstimmt ,
was wir oft sehen werden. Denn wenn Sie darauf klicken, erhalten
Sie hier einfach einen neuen
Konstruktor mit allen erforderlichen Parametern
, die Sie benötigen um den Konstruktor
Ihrer Superklasse aufzurufen. Und das ist so ziemlich es. Das ist echt verdammt cool. Und jetzt können wir tatsächlich eine neue Klasse
erstellen. Man kann sehen, dass alles
hier funktioniert. Wir können also sagen, dass Katzenschnurrhaare
eine neue Katze sind, oder? So neue Katze hier. Und das ist zum Beispiel dann Whiskers Dot PNG. Und dann wird
der Name Schnurrhaare sein, oder? Und dann gab es vielleicht etwa 12 Jahre alt oder
so ähnlich. Und dann können wir zum Beispiel einfach
Whiskers dot
nennen und man sieht, dass ich alles altern
kann. Jetzt habe ich hier tatsächlich
Zugriff auf die Altersvariable. Dies ist einfach der Fall , weil wir uns im
selben Paket befinden. Dies sollte normalerweise
nicht der Fall sein. Ich wollte das nur
erwähnen, denn normalerweise ist es sehr
unwahrscheinlich, dass Sie sich
im selben Paket befinden, wenn Sie tatsächlich eine bestimmte
Klasse
verlängern . Ich wollte das nur erwähnen. Und das ist eine, naja, ich würde keine Einschränkung sagen, es ist im Grunde nur Realität. Aber jetzt die eigentliche
Frage, kommuniziert, aber was ist jetzt so interessant
daran, dies zu haben? Nun, lass uns
darüber nachdenken, oder? Also haben wir die
Wolf-Methode hier, oder? Lassen Sie uns
das einfach löschen oder
lassen Sie uns sogar noch intelligenter sein. Lass uns das einfach kopieren
oder ausschneiden, oder? Und dann füge das dem Tier hinzu. Jetzt
wirst du zuerst sagen, warte eine Sekunde,
nicht jedes Tier, Wolf hat Recht.
Ja, das ist fair genug. Also nennen wir das einfach
macht Geräusche. Und dann können wir diesen Namen sagen, einfach, sagen wir haben
nur ein Geräusch gemacht, aber wir können das nicht tun. Und eine andere wirklich
interessante Sache
ist , dass
die Tierklasse definiert wird. Aber ich kann immer noch etwas wie
Schnurrhaare
sagen , Adamic Sound, oder? Da Schnurrhaare eine
Katze sind und eine Katze ein Tier ist, kann
ich hier noch alle
öffentlichen Methoden nennen. Und wenn ich das nenne,
sieht man, wie Schnurrhaare gerade ein Geräusch gemacht haben. Das ist also ziemlich cool. Aber jetzt werden wir das
aufladen denn während jedes
Tier ein Geräusch macht, macht
eine Katze ein anderes
Geräusch als ein Hund, oder? Was wir also tun können, ist, dass wir
die Implementierung dieser
Methode in den Unterklassen tatsächlich außer Kraft setzen
können . Das ist also ziemlich häufig, cool. Aber was wir tun können, ist, dass wir
entweder
den tatsächlichen Namen der
Methode eingeben können, wie Sie sehen können, oder wir können eine
Überschreibung schreiben, oder? Wir können damit anfangen, das zu schreiben. Und dann können Sie alle möglichen
Methoden sehen , die wir
möglicherweise außer Kraft setzen können. Wir werden natürlich die Mix-Sound-Methode
hier
auswählen und
diese Anmerkung wird hinzugefügt. Dies ist nicht unbedingt
notwendig,
es ist jedoch sehr wertvoll
für Sie, wenn Sie dies
haben, und ich
empfehle auf jeden Fall, es zu behalten, denn wenn Sie
die eigentlichen Kurse durchlaufen, können
Sie sehr deutlich sehen, okay, das wurde also
von einer seiner Superklassen außer Kraft gesetzt . Das ist also sehr wichtig. Dann nehme ich
das einfach. Also werde
ich das eigentlich nehmen und einfach ein bisschen modifiziert, oder? Also sage ich
das, einfach ich raus. Sagen wir, ich mache das Gleiche. Kopiere das dem Hund hier. Und ich sage diesen Namen, weh
einfach langsam, wir haben hier etwas
anderes. Und was Sie dann
sehen werden, wenn ich tatsächlich nenne, zum Beispiel Benji
dot make sound. Und ich gehe dann auch nach
Gracie, mach keinen Ton. Was passiert jetzt? Nun, sehr interessant genug. Miau, wuff, wuff. Wie Sie sehen können, werden
die überschriebenen Methoden jetzt
anstelle derjenigen von
der eigentlichen Superklasse aufgerufen . Das ist also sehr häufig, cool. Und jetzt ist das irgendwie die
Idee der Erbschaft, oder? Wir können sowohl
Methoden als auch Felder erben Europa darin macht
es nur so, dass zuerst alles etwas
schöner getrennt ist, und dann
haben wir auch keinen doppelten Code. Jetzt ist die eigentliche Frage:
Was ist Polymorphismus? Polymorphismus ist ein
großes Wort für ein sehr, sehr leicht verständliches Konzept. Eigentlich ist das sehr leicht
verständliche Konzept, dass ein Hund gleichzeitig
ein Hund ist und ein Tier Sinn ergeben
sollte, oder? Sie haben also eine Hundeklasse, die
sowohl ein Hund als auch ein Objekt des Typs ist? Hund ist sowohl der Hund als
auch das Tier reichen. Okay. Was heißt das? Nun, ich kann das
bei einem Tier retten, oder? So kann ich Tier retten, Tier
ist gleich einem neuen Hund. Speichern wir einfach Jenny Dot PNG. Jenny, vielleicht ist Guinea 15, ganz dunkel, aber das ist okay. Und was würde jetzt
passieren, wenn ich
das in einem Maulwurfpunkt mache, um Geräusche zu machen. Was wird jetzt passieren? Nun, ich meine, es ist ein Tier. Offensichtlich sollte es sagen, dass Jenny gerade ein Geräusch gemacht hat, oder? Weil das das
Logischste ist. Warte eine Sekunde im Hintergrund,
es ist ein Hund. Genau. Dann ist er einfach umgezogen. Denn obwohl wir dies bei einem Tier
speichern, macht es
Polymorphismus so, dass das Hundeobjekt mehrere Formen annehmen
kann oder jedes Objekt wirklich mehrere Formen
annehmen kann. Das bedeutet im Grunde
Polymorphismus. Mehrere Foren in einer sehr
lockeren Übersetzung, sagen wir mal. Und das Tolle,
was ich auch
tun kann , ist, dass ich eine
Liste von Tieren erstellen kann, zum Beispiel Wut, coole Tiere. Und ich kann das nur
aus Gründen des Arguments zu
einer neuen ArrayList machen.
Importieren wir das. Und dann kann ich einfach Tiere
sagen, nicht hinzufügen. Und ich muss nicht nur Tiere hinzufügen , denn Benji ist
natürlich ein Hund, sondern der Hund ist auch ein Tier. Und dann kann ich auch Gracie hinzufügen, und dann kann ich
auch Schnurrhaare hinzufügen. Wie Sie sehen können, obwohl sie alle
als Tiere gerettet sind, oder? Wenn ich
diese zurückbekommen will, bekommen Tiere, Dot einen, zum
Beispiel einen Ton machen. Es macht sie also zu
ihrem Job, oder? Und die Get-Methode hier
bringt dir ein Tier zurück. Aber wir haben noch einmal gesehen, dass das Aufrufen einer Methode hierfür
tatsächlich die spezifischste
Methode verursacht hat , die es kann. Obwohl dies als Tier gerettet wird
, wird
Gracie hier
als Tier gerettet, das Mikrofongeräusch wird es so
schaffen, dass
Gracie sich gerade bewegt. Das ist also ziemlich cool. Wenn Sie die Bewerbung dafür nicht klar sehen, ist
das absolut in Ordnung. Dies ist natürlich eine sehr abstrakte
Einleitung dafür. Dies wäre jedoch vorerst
für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
28. (Java) Schnittflächen und Abstrakte Kurse: In Ordnung, willkommen zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in dieser Vorlesung
werden wir einen vorläufigen Blick auf Interfaces
und abstrakte Klassen werfen. Also beginnen wir eigentlich zuerst
mit der abstrakten Klasse ,
denn das ist eigentlich ein sehr
anschauliches Beispiel. Worüber wir also
nachdenken können, ist folgendes. Was ist ein Hund? Nun, ich meine, du hast gesehen,
hast du schon mal einen Hund gesehen? Ja, natürlich. Ich meine, entweder
als Bild oder irgendwo auf der Welt hast du vielleicht
einen Hund gesehen. Hast du schon mal ein Tier gesehen? Jetzt könnte man sagen, dass es so gut ist, ich meine, ich habe
vorher einen Hund gesehen, aber nein, nein. Hast du schon mal ein Tier gesehen? Und du wirst dich
treffen und verschmelzen, oder? Weil es so ist, was ist
ein Tier im Moment, was wir tun können, ist, dass
wir Tier sagen können, sagen
wir einfach, dass ein neues Tier gleich
ist, oder? Mit zum Beispiel genau wie x, p und g x und das genau 10 Jahre alt oder
so ähnlich. Und dann könnte man sagen,
wie ist ein Tier? Was das
wirklich Rate bei
Tieren darstellt , ist ein sehr, sehr
abstraktes Konzept. Und abstrakte Klassen, oder? Siehst du die Kongruenz dort, oder? Wir sollten also wirklich nicht in der Lage
sein,
neue Objekte aus
der Animal Klasse zu erstellen neue Objekte aus
der Animal Klasse denn wie
ist ein Tier wirklich? Dinge können
als Tier eingestuft werden, aber das Objekt Tier
existiert nicht, oder? Was wir also tun werden,
ist, dass wir daraus
eine öffentliche abstrakte
Klasse machen werden . Und Sie
werden sofort sehen, dass wir ein verwandtes Problem haben, das natürlich
genau hier ist, weil wir kein
neues Tier erschaffen können, wenn es abstrakt ist, können
Sie sehen, dass Tier abstrakt ist, kann nicht instanziiert werden,
was bedeutet, dass wir keine Objekte aus der
abstrakten Klasse in
der Katze und dem Hund
erstellen können Objekte aus der
abstrakten Klasse in
der Katze und dem Hund
erstellen . Buchstäblich hat
sich nichts geändert, weil
das Tier natürlich immer noch bei
allem hier ist, also funktioniert. Was wir jetzt auch tun können und
das ist wirklich cool für eine abstrakte Klasse, dass wir bestimmte Methoden abstrakt
gestalten können . Zum Beispiel die
Mikrofon-Sound-Methode genau hier. Also können wir im Grunde
einfach einfach löschen. Und was dann passieren
wird
, ist , dass wir öffentlich,
abstrakt, ungültig, Ton
machen können , oder? Und jetzt sieh dir
das an, wir sind gerade beendet. Wir müssen also immer noch ein
normales Methodensignaturjahr haben. Die eigentliche
Implementierung bleibt
jedoch den Unterklassen überlassen. Und wenn wir dies
nicht außer Kraft setzen würden, können Sie
auch feststellen, dass Klassenhund entweder abstrakt erklärt
haben muss. Entweder muss dies
auch eine abstrakte Klasse sein oder wir müssen
die abstrakten Methoden
von Tieren implementieren , die einfach darüber
schweben können, in die Implementierungsmethoden und dann wird dies auch
hinzugefügt. Also gehe ich einfach mit Control Z
zurück und dann funktioniert alles
gut. Das ist also irgendwie die Idee
einer abstrakten Klasse. Und eine Schnittstelle ist Amine,
etwas, das auch sehr
damit zusammenhängt. Was wir also einfach tun
werden, ist, dass
wir einfach ein Interface hinzufügen, also eine neue Klasse hier, und dann können wir die Schnittstelle
auswählen. Wir nennen dies
die Blütenblatt-Schnittstelle und die IP-essbare Schnittstelle. Du bist in Schnittstellen. Wir definieren auch einfach
eine Methodensignaturen. Also nichtig, Haustier Zum Beispiel, Symbolraten wie
dieses, und das war's. Also kein
Zugriffsmodifikator, nur das. Und wenn diese Schnittstelle jetzt zum Beispiel
in den
Cat-Richt-Implementierungen implementiert ist , haben
wir das Recht,
dann schmackhaft als was Sie sehen werden, ist ein sehr
ähnlicher Fehler als zuvor. Implementiere Methoden, die
Methode und das Ego. Und jetzt
muss ich eine Art Implementierung in
dieser Cat-Klasse haben. Warum haben wir
Interfaces und Klassen, weißt
du, könnte ich nicht
einfach eine andere Klasse machen? Essbares Tier und
solche Sachen? Ja, natürlich funktioniert
das auch. Die Einschränkung ist
jedoch, dass Sie immer nur
von einer Klasse ausgehen
können. Sie können jedoch nicht
mehrere verschiedene Schnittstellen implementieren . Das ist also wirklich das
Interessante hier. Und dann ist auch das Interface im Grunde das, was
der Name nahelegt. Es ermöglicht Ihnen, auf eine bestimmte Weise mit etwas
zu
interagieren. Wenn also etwas eine Schnittstelle
implementiert, haben
Sie eine Art, ich meine, man könnte es sich
als einen ungeschriebenen Vertrag vorstellen , dass alles in
dieser Schnittstelle definitiv eine
gewisse hat umsetzung. Also könnte ich zum Beispiel
etwas sagen wie, weißt du, nur dieser Name war Haustier, so
etwas, oder? Und dann kann ich
das einfach nur aus Gründen
des Arguments kopieren . Ich setze
das auch hier im Hund um. Also fahre ich in die Pedale und füge das einfach hinzu
und dann werden wir sagen, dass etwas
zerkratzt und hinter den
Ohren zerkratzt
wurde , oder? Und jetzt kann ich,
anstatt zum Beispiel eine Liste von
Tieren
zu erstellen, jetzt könnte ich zum Beispiel auch eine
Liste von iptable erstellen, oder? Also jetzt haben wir diese Haustiere neue ArrayList davon
bewerten, und wir können diese
auch hinzufügen, oder? Haustiere Dot addieren. Und dann sagen wir einfach Benji, und dann
sagen wir einfach Schnurrhaare, oder? Und jetzt können wir einen
Streichelzoo bauen, wenn wir wollten. Das ist echt cool. Und es spielt keine Rolle. Wieder einmal spielt
es beim Polymorphismus keine Rolle, ob
sie gerettet werden, während ich Blütenblätter habe. Wieder einmal heißt ihre
tatsächliche Implementierung als
wir anrufen sollten, zum Beispiel bekommen Pets dot eins. Was dann
passieren würde, ist, dass die eigentliche
Implementierung
natürlich Schnurrhaare
genannt wird , statt
dass Schnurrhaare
hinter den Ohren zerkratzt wurden. Das ist eine Art
allgemeine Idee hier. einmal
abstrakte Schnittstellen Klassen. In der gleichen Weise wie die Vererbung und der
Polymorphismus im Allgemeinen. Wo es vielleicht ein bisschen
seltsam sein könnte , denn in diesen Beispielen ist
es manchmal schwer, die Idee
wirklich zu vermitteln. Wieder einmal kann das
Ausprobieren einer Reihe von Sachen wirklich helfen oder den Aufgaben
folgen, auch ein lohnenswertes Unterfangen. Aber ansonsten wird dies vorerst für
diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt. Und wir sehen uns in der
nächsten Vorlesung. Also ja.
29. AUFGABE 3: Trivia mit Kurse: Alles klar, Willkommen
zur dritten Aufgabe hier zur Java-Einführung. Und das ist eigentlich eine ziemlich
unkomplizierte Aufgabe. Wie Sie sehen können, ist
es nicht so lang. Wieder einmal,
die Zeit, die
es braucht , und dies
könnte etwa eine Stunde dauern, wie normalerweise auch
eine sehr konservative
Schätzung. Es gibt also ein bisschen
Spielraum Sie
es vielleicht in 30 Minuten schaffen können, oder? Überhaupt keine Sorgen. Aber vorerst gehen
wir einfach hier durch. Also Quizspiel mit
Klassen und Objekten. Also wollten wir noch einmal das
gleiche Quizspiel, das wir auch in den letzten
beiden Aufgaben
gemacht haben . Ich möchte im Grunde, dass du
die Trivia-Spiele modifizierst , die auch Klassen
verwendet werden. Jetzt kann dies in irgendeiner Weise, Form oder Form sein, die der Fall sein
könnte. Denken Sie darüber nach,
wie Sie benutzerdefinierte Klassen erstellen
könnten , die, wie
Sie wissen, dass die Antworten gespeichert und die Fragen zusammen sein
können. Vielleicht kannst du eine Liste benutzen, so
etwas. Es liegt wirklich an dir, wie
du das strukturieren willst. Aber denken Sie einfach darüber nach,
wie Sie
dies mit
Klassen und Objekten einfacher machen können , und probieren Sie es dann einfach aus. Natürlich wird Ihnen
die Lösung wieder einmal
zur Verfügung stehen, sobald Sie fertig sind.
Ich schlage dringend vor, wirklich
einen Riss zu machen und das
wirklich auszuprobieren. Und ich schätze, wir
sehen uns in der Lösung.
30. LÖSUNG 3: Trivia mit Kurse: Alles klar,
Willkommen bei der Lösung für den dritten
Auftrag genau hier. Und nun, ich meine, ich schätze, schauen wir uns einfach mal an. Du siehst, dass ich
eigentlich nur zwei Klassen habe, eine Quizspielklasse
und eine Quizklasse. Und die
Quizspielklasse
enthält im Grunde die gesamte
Logik und die Spielschleife. Und der Trivia-Kurs enthält die Fragen und Antworten. Werfen wir einen Blick
auf die triviale Klasse. Lassen Sie mich zunächst ein wenig
hereinzoomen, damit wir sehen können, dass ich eine String-Frage,
eine String-Antwort und nur einen
Konstruktor
habe , der diese
beiden
Shrink-Variablen hier übergibt . Und dann habe ich eine
Reihe von Methoden hier, richtig ist die richtige Antwort
würde im Grunde
einen booleschen Wert herausgeben und auch sicherstellen , dass alles in Kleinbuchstaben ist. Die Eingabe wird jedoch tatsächlich in Kleinbuchstaben
gesetzt, dass Sie grundsätzlich
Großbuchstaben eingeben können und es gilt
immer noch als die
richtige Antwort. Hier haben wir die
Print-Frage, die Print-Antwort. Wir haben auch eine Antwort validiert,
die dann eine, Hey, das war eine richtige Antwort, oder das war auch eine falsche
Antwort. Und das ist
so ziemlich die Quizklasse. Wenn
das nicht genau
wie deins aussieht , ist das
absolut in Ordnung. Dies ist nur ein Beispiel
dafür. Und dann das Gleiche mit
der Quizspielrate. Wir haben hier eine Liste von Trivialitäten. sind also alle
Fragen, die im Grunde genommen genau hier
bevölkert werden. Also heißt das tatsächlich in der
Startspiel-Methode, oder? Das ist also das erste,
was passiert, bevölkerte Quizliste. Und das ist der Donut genau hier, wo wir nur
eine neue ArrayList haben, und dann fügen wir eine Reihe von diesen Trivialen genau dort zu
dieser aktuellen Liste hinzu. Und das ist wirklich cool,
denn dies könnte jetzt auch über ein Einlesen,
aus einer Datei oder, wissen
Sie, über das Herunterladen von
Sachen aus dem Internet erfolgen aus einer Datei oder, wissen
Sie, . So könnte diese Methode hier sehr leicht durch etwas anderes
ersetzt werden. Und das ist wirklich
die Macht, wenn
Sie dies
in diesen Klassen trennen, kurz bevor wir diese
einzelnen String-Variablen hatten, konnten wir dies auf keinen Fall sehr leicht
ändern. In diesem Fall könnten wir
diese hölzerne Datenbank darauf ändern . Du könntest, wie ich schon sagte,
etwas ins Internet stellen. Du könntest fast alles machen, es aus einer Datei
lesen. Und das ist wirklich das
, was du mit dem Unterricht machen willst. Sie möchten diese Art von
Generika in dem Sinne machen , dass
Sie ganz einfach Dinge hinzufügen und davon
subtrahieren können. Normalerweise fügen Sie natürlich hinzu, oder? Und dann gibt es auch ein paar andere Sachen hier, oder? Die Spielschleife ist also die
Hauptsache, bei der wir
diese unendliche
While-Schleife genau hier haben , genau dort, wo wir einfach
jede der Fragen durchgehen und die
Antworten
validieren, indem wir
die Benutzereingabe erhalten und
dann der Punktzahl, wenn die Antwort tatsächlich korrekt
ist. Und dann drucken wir einfach die Partitur nach jeder
der Fragen aus. Dann fragen wir am Ende hier:
Hey, sollen wir das Spiel abbrechen? Und wenn der Benutzer ja sagt
, brechen wir einfach
aus und drucken das Endergebnis auch
am Ende des Spiels aus. Das ist ziemlich cool.
Alles in allem, das ist so ziemlich
alles, was Sie wirklich brauchen. Noch einmal, wenn Ihre
Antwort unterschiedlich ist, sich
keine Sorgen. Aber hoffentlich hast du
diese Antwort, die du durchgehen
kannst und
versuchen zu verstehen, okay, naja, wie würde ich das machen? Warum wurde das erledigt? Weißt du, Methoden, okay, das sind sehr interessante Klassen. Das ist also irgendwie die Idee hier. Aber für diese Lösung wäre es das. Und ich hoffe, du hast das
nützlich gefunden und du lernst
etwas Neues. Und wir sehen uns in der
nächsten Vorlesung. Also ja.
31. AUFGABE 4: 4: System: Alles klar, Willkommen
zur vierten Aufgabe hier zur Java-Einführung. Und in dieser Aufgabe sollen
Sie
ein Bankverwaltungssystem erstellen. Insgesamt
mag das in erster Linie sehr kompliziert
klingen,
aber keine Sorgen. Ich führe dich durch die
Idee, die ich hier hatte. Das
Bankverwaltungssystem sollte also so etwas wie
diese Komponenten
haben, eine Person, eine Bank und
ein Girokonto. Und um dann ein
Girokonto zu eröffnen, sollten
Sie über eine Bank gehen, da hier möglicherweise eine
gewisse Ersteinzahlung erforderlich ist. Und die einzelnen Komponenten oder Klassen, bei denen Sie
Rechte haben , dass eine Person einen Vor-,
Mittel- und Nachnamen und ein Alter haben
könnte . Vielleicht ist es so etwas wie
eine Sozialversicherungsnummer ist nicht unbedingt erforderlich, aber wissen Sie, so
etwas. Eine Bank könnte eine
Liste von Kunden haben. Ihre Girokonten können ein maximales Overdraw Mount sein, etwa
so. Und dann
könnte ein Girokonto den aktuellen Wert und die Methoden zum Abnehmen
und Einzahlen von Geld insgesamt haben. Das ist irgendwie die allgemeine Idee. Es gibt eine Reihe von Möglichkeiten
, wie Sie dies angehen können. Ich bin also sehr daran interessiert zu
sehen, was Sie sich einfallen lassen. Und natürlich steht Ihnen die Lösung wieder zur Verfügung. Ich denke, das ist wahrscheinlich
ein bisschen schwieriger. Ich könnte mir vorstellen, dass etwas wie 1,5 Stunden wahrscheinlich
am besten
dafür vorgesehen ist , damit Sie sich wirklich eingraben
und versuchen
können , etwas zu verstehen und zu machen
, das ziemlich cool ist. Also viel Glück.
32. LÖSUNG 4: Bank: Alles klar,
Willkommen bei der Lösung für den vierten Auftrag. Und wie Sie sehen können, haben
wir drei verschiedene Klassen, so
ziemlich wie ich
in der eigentlichen Aufgabe gesagt habe. Und nun, lasst uns einfach durchgehen. Wir haben also eine Personenklasse die ziemlich einfach ist, Vor-, Mittel
- und Nachname
und diesmal ein Alter oder privat
gelesen und diesmal ein Alter oder privat und hier grundsätzlich
über Ghettos erreichbar ist. Und dann haben wir hier auch
einen booleschen Wert
, der im Grunde nur
zurückgibt, ob eine Person älter ist als das, was hier geliefert
wurde, was sehr interessant ist. Und der Account hier ist
auch interessant, oder? Wir haben einen ausgeglichenen,
wir haben Konto-ID. An dieser Stelle wird nicht
wirklich so viel genutzt, aber es ist sehr möglich
, dass Sie damit auch
etwas machen können und dann auch einen Kontoinhaber. Und das wird in der Bank verwendet, um hier
grundsätzlich ein
bestimmtes Konto zu erhalten. Wir können also sehen, dass wir jemals eine
Liste von Konten haben, oder? Und die Art und Weise, wie wir ein Konto erhalten
können besteht darin, Konto für Person zu erhalten. Aber so bekomme
ich
jetzt persönlich die Konten hier. Und der Rest ist so ziemlich
das Bankkonto, oder? Wenn Sie
dieses Konto eröffnen können, ist das im Grunde der Fall? Und es bestätigt im Grunde,
ob jemand
16 oder älter als 16 ist ,
ob jemand
16 oder älter als 16 oder nicht
und ob die Mindesteinzahlung tatsächlich erreicht
wurde oder nicht. Es gibt eigentlich einen
kleinen Bug hier drin, oder? Bei dieser Methode ist das
sehr interessant. Du kannst versuchen,
das selbst zu finden. Nur ein bisschen eine
interessante Übung. Aber ansonsten,
wissen Sie, ist
dies insgesamt wieder nur
ein Beispiel dafür. Wir können uns das einfach
ansehen, oder? Was wir also haben werden,
ist, dass ich hier einen Code habe, also ist die Nanotechnologie
nicht alt genug, um ein Bankkonto zu
eröffnen,
und dann zehn,
sagen, dass Euro oder Dollar
nicht genug sind. Wir brauchen mindestens 150
und dann erhalten wir tatsächlich das Guthaben von Marias
Konto, das ist 2000. Dann funktioniert der Versuch,
3000 abzuheben, nicht, da der
Auszahlungsbetrag tatsächlich
500 beträgt oder die Überziehung im Grunde genommen ist. Und deswegen funktioniert
das nicht. Das ist also eine Art
allgemeine Idee hier. Es gibt
viele Möglichkeiten, dies zu
tun, wenn es
völlig anders aussieht als Ihres, aber Sie sind immer noch funktioniert,
das ist völlig in Ordnung. Unabhängig davon hoffe
ich, dass dies
eine nützliche Übung oder eine
nützliche Aufgabe zwei war , beenden
Sie und wir sehen uns in
der nächsten Vorlesung. Also ja.
33. (Java) Anonyme Kurse: In Ordnung, willkommen zurück
zur Java-Einführung
für Minecraft-Modellierung. Und in diesem Vortrag werden
wir uns den anonymen Kurs
ansehen. Was ist also ein anonymer Kurs? Nun, wenn wir
von etwas erben, denken wir
also an die
Hundeklasse zurück, oder? Das hatte einen Namen, richtig, und wurde von
der Tierklasse geerbt. Und was wir jetzt
tun können, ist zum Beispiel, wir hier eine
Person machen können, oder? Also habe ich immer noch die Personenklasse von der letzten Aufgabe. So
ist das Personal zum Beispiel einer neuen Person gleich, aber es ist so Nanoangriff
und acht Jahre alt, sagen
wir nur aus
Gründen der Argumentation hier. Nun, das ist alles in Ordnung. Wenn ich jetzt eine Klasse wollte, die diese Personenklasse
erweitert,
die ein Manager ist. Das einzige, was wir tun
werden, ist es
einfach so zu machen, dass
Sie, wenn Sie den vollständigen Namen erhalten, auch den Namen wie Manager
ausgedruckt bekommen. Okay, also, wie
würden wir das machen? Wir machen einen neuen Kurs, oder? Und das alles. Nun, sagen wir einfach, dass wir diesen
wirklich nur wirklich brauchen. Was wir also tun können, ist, dass wir einen anonymen Kurs
machen können. Wir können also sagen, dass Personenmanager einer neuen Person gleich
ist. Aber sagen wir einfach
John Smith, oder? Sagen wir 42. Und dann beenden wir das. Was wir jetzt tun könnten,
anstatt dies
mit einem Semikolon zu beenden ,
nachdem wir fertig sind, werden
wir tatsächlich eine heilige Klammer
machen und die
abschließende geschweifte
Klammer mit einem Semikolon beenden. Man sieht, dass
es hier keine Pfeile gibt. Weil wir
jetzt in hier
diese anonyme
Klasse erstellt haben , weil es sich um
eine Klasse handelt , die
die Personenklasse erweitert. Es hat jedoch keinen Namen und ist
daher anonym. Und wenn wir das tun
können, können Sie sehen, ob ich hier
eine Überschreibung schreibe, ich kann tatsächlich
alles außer Kraft setzen, was sich innerhalb der Personenklasse befindet
, die überschreibbar ist. Bevorzugt Beispiel, ich kann fullname sagen und dann kann ich
etwas wie Manager und dann den vollständigen Namen bekommen. Dies ist jetzt das, was diese
spezielle anonyme Klasse tut. Und dann kann ich, wenn ich
zum Beispiel die Druckzeile ausstelle ,
Nano-Punkt den vollständigen Namen bekommen. Und dann kann ich das auch für
den Manager dot getName
machen . Sie werden sehen, dass Nano
nur ein Nanoangriff sein wird. Und dann wird es Manager John Smith
sein weil wir diesen
Manager genau hier hinzugefügt haben. Dieses Beispiel ist möglicherweise nicht
das anschaulichste. Es fällt mir sehr schwer, Ihnen wirklich ein sehr
anschauliches Beispiel für
anonyme Klassen zu
zeigen . Es ist normalerweise je weiter
in dir gehst, weißt du, mit Schnittstellen und Vererbung
und ähnlichem, es wird sehr schwer, wenn
du nicht in einer sehr,
in einer tatsächlichen
Umgebung bist , in der du tatsächlich welche hast Klassen
und einige Funktionen. Aber das ist definitiv
etwas, das wir auch
im Modellierungsbereich
des Kurses sehen werden . Weil es
hier jede Menge Sachen gibt, die dafür benötigt
werden. Aber was auch immer der Fall sein mag, zumindest haben Sie
das gesehen, auch wenn wir hier nicht zu
viel detaillierter eingehen, ich hoffe, Sie haben das nützlich gefunden und Sie lernen etwas Neues. Und wir sehen uns in der
nächsten Vorlesung. Also ja.
34. (Java) Enums und erweiterte Entries: In Ordnung, willkommen zurück
zur Java-Einführung für Minecraft-Modellierung. Und in diesem kurzen Vortrag werden
wir
einen Blick auf Enums und
auch erweiterte Enums werfen,
insgesamt, Enums, Sie können sich diese
als bestimmte Datentypen vorstellen , die vordefinierte Werte
haben, und Sie kann diese Werte nur dieser
tatsächlichen Variablen zuweisen. Erstellen wir zum Beispiel einfach eine Schwierigkeitsstufe, oder? Also können wir es zu einer Klasse machen und diese
dann einfach ändern
, um genau hier aufzuzählen. Und dann ist die Art und Weise, wie eine Enum im Grunde strukturiert ist die tatsächlichen Werte
hat , dass sie die tatsächlichen Werte
hat, die sie
direkt darin aufnehmen kann. So zum Beispiel einfach,
mittel und schwer, wie die Schwierigkeiten
eines Spiels sein könnten. Und um eine
neue Variable dafür zu erstellen, ist
es ziemlich nur noch
einmal schwierig. Dann nennen wir das den Schwierigkeitsgrad des
Spiels, oder? Unter so. Und dann ist das gleich 2. Weisen Sie dies zu, Sie können den Schwierigkeitsgrad
sehen, und dann haben wir nur
diese drei Werte als mögliche Optionen. Sagen wir hier einfach
Schwierigkeitsgrad. Und wir können das dann normalerweise
einfach neu zuweisen, richtig? Auch hier ist der Schwierigkeitsgrad gleich 2. Schwierigkeit, Schwierigkeiten
schwer zum Beispiel. Und dann zwei. Zum Beispiel können wir auch IF-Aussagen aus
einem Retro-Spiel
machen , der Schwierigkeitsgrad
gleich ist. Jetzt ist das gleich etwas, zum Beispiel Schwierigkeit einfach. Und dann machen wir hier etwas. Das ist also so ziemlich alles, was es
wirklich für normale Aufzählungen ist. Und es gibt
etwas Interessantes für das, was ich Advanced Enums nenne. Dafür werden wir eine neue Java-Klasse
erstellen. Auch hier ist das die Tool-Stufe, und das wird hier auch in eine Aufzählung
umbenannt,
ich werde hier tatsächlich einige Sachen
vom anderen
Monitor
kopieren . So steht Ihnen das
natürlich auch zur Verfügung, ein GitHub-Repository
oder Adjustment. Sie können sehen, dass
dies zwar eine Aufzählung
ist, aber hier einen Konstruktor hat und
wir eine gewisse Felderrate haben. Das ist sehr merkwürdig.
Ja. Die Idee ist also, dass Sie Enums definieren
lassen können. Natürlich
ist das eine Diamant-Enum. Und nur für allgemeine
Beispiele hier. Und das Coole ist, dass diese
genauso funktionieren wie die anderen. Ich kann also
sagen, dass eine zweistufige
Stufe beispielsweise dem
Tooltip-Diamant entspricht , oder? Und was ich dann sehr
einfach tun kann, ist, dass ich
System Out
Print-Zeilenebene sagen kann , zum Beispiel Git-Tag-Multiplikator
,
der mir dann den Angriffsmultiplikator
von allem bringt der mir dann den Angriffsmultiplikator
von allem der die Stufe zugewiesen wurde. Also kann ich im Grunde eine haben, ich möchte
es nicht unbedingt eine Liste nennen weil eine Liste
etwas anderes ist, aber Sie können hier in dieser Aufzählung vordefinierte
Werte in dieser Aufzählung haben ,
in dieser Aufzählung. Das ist also die Aufzählung und Sie können dann auch
auf diese zugreifen. Das wird also
wirklich enden, kann wirklich nützlich sein. Und wir werden
dieses Beispiel auf jeden Fall sehen , wenn
wir Werkzeuge,
benutzerdefinierte Tools oder Minecraft herstellen . Das ist definitiv etwas
, das wir sehen werden. Aber ansonsten ist das
so ziemlich genau das für die Enums. Ich wollte
dir das nur zeigen und erwähnen ,
dass du das
wenigstens schon mal gesehen hast. Sonst wäre das
für diese Vorlesung genau hier. Ich hoffe, Sie fanden dies
in Neuronen des Neuen nützlich, und wir sehen uns in der
nächsten Vorlesung. Also ja.
35. (Java) Exceptions: In Ordnung, willkommen zurück
zur Java-Einführung
für die Mikrowellenmodellierung. Und in diesem Vortrag werden
wir einen Blick auf Ausnahmen und die Versuch-
und Auffangaussage werfen. Insgesamt ist dies also nicht
das interessanteste oder was würdest du sagen, das aufregendste Thema? Es ist jedoch, dass es
ziemlich wichtig
sein kann . Nichtsdestotrotz. Obwohl wir Ausnahmen haben wir ein paar davon
gesehen. Zum Beispiel das etwas wie die IndexoutOfBoundsException und die NullPointerException. Es gab also ein paar
Ausnahmen, die wir zuvor
gesehen haben , die durch den eigentlichen Code
ausgelöst wurden. Und was wir tun werden,
ist, dass wir jetzt unsere eigene benutzerdefinierte Ausnahme auslösen werden. In unserem Paket erstellen
wir also eine neue Klasse, die die Testausnahme ist, weil wir hier nur eine Testausnahme haben
müssen. Wir werden einfach
die Exception-Klasse hier erweitern . Und ich
werde tatsächlich
die beiden Konstruktoren kopieren , die
wir dafür brauchen werden. Das steht Ihnen natürlich
entweder im GitHub-Repository zur Verfügung oder auch energiegeladen. Wir werden es haben, dass
wir
einen Scanner haben , bei dem wir
einfach ein paar
Sachen System hier drin scannen können . Und dann speichern wir
einfach das Folgende. Also werden wir nächstes int sagen, und wir
werden hier im Grunde etwas in
einer Ganzzahl
speichern. Und nur aus
Gründen des Arguments werden
wir
diese Ausnahme werfen, werden
wir
diese Ausnahme werfen wenn wir hier
eine Zahl 0 in eine
bestimmte Methode übergeben . Also privat, statisch,
ungültig prüfen auf 0. Das ist sehr einfach
in der Nummer. Und was wir einfach tun werden, ist dass
wir sagen, wenn die Nummer, wenn die Zahl irgendwelche Restwerte
überschreitet, dann werden wir
eine neue Ausnahme machen .
Wie machen wir das? Wir werden schreiben
neue Testausnahmen werfen, und dann werden wir einfach sagen
, dass Zahl 0 ist. Zum Beispiel
so etwas. Und das ist
so ziemlich alles, was wir hier
wirklich tun müssen. Was Sie sehen, ist, dass dies
hier
tatsächlich einen Fehler auslöst , da Ausnahme
zur Methodensignatur hinzugefügt wird. Also müssen wir das tatsächlich bei
dieser Methode hier haben. Also müssen wir die
Throws-Test-Ausnahme zur
Methodensignatur hinzufügen , sonst funktioniert es nicht. Und wenn ich das jetzt nenne, oder? Wenn ich also nach 0 suche, dann werden Sie
sehen, dass
dies auch zur Hauptmethode hinzugefügt werden muss Hauptmethode da dies nicht richtig
gehandhabt wird, also behandeln wir
diese Ausnahme nicht. Was Sie also tun können, ist, dass wir das
einfach ausführen werden. Und wenn ich zum Beispiel hier einen
eintippe, passiert
nichts. Das Programm endet normalerweise
vorbei, wenn ich eine 0 einfüge, Sie können Ausnahme und
Hauptthread-Anzahl und
Ihre Testausnahme sehen , sehr interessante Zahlen 0. Und dann kann man sogar sehen, wo das heißt, oder? Also hier zuerst und dann hier war die Ausnahme
, die geworfen wurde. Das ist also sehr interessant. Lassen Sie uns zunächst einen
Kommentar dazu herausnehmen und den künstlerischen
Bereich dort oben
loswerden. Und was wir jetzt tun können, ist, dass
wir zum Beispiel sagen können, sagen
wir einfach, z ist gleich
dem Scannerpunkt next int. Oder überspringen Sie
es einfach, da ich dafür hier bin. Das ist in Ordnung. Wir können jetzt eine Versuchserklärung abgeben. Das wird also ein Versuch
mit den geschweiften Klammern sein. Und dann wird es hier
einen Fang haben , mit einer
Ausnahme e darin. Und das geht im
Grunde genommen um einen Fehler, oder? Die try and catch-Anweisung
dient also dazu, einen Fehler zu behandeln. Also werden wir das gleich hier
versuchen. Schreib einen Scheck für 0 I. Und wenn eine Ausnahme
abgefangen oder ausgelöst wird, oder? Und wir können es hier erwischen. Und dann können wir
etwas damit anfangen. Zum Beispiel können wir
im Grunde einfach so
etwas machen. Also GET Nachricht
dann nur vorerst, im Grunde einfach ausdrucken was hier tatsächlich
passiert, oder? Die eigentliche Ausnahme ist, dass es natürlich andere Dinge
gibt, die Sie tun
oder tun müssen , wenn eine
Ausnahme abgefangen wird. Und dann hast du
das auch endlich hier, was wir einfach folgendes
machen werden. Wir werden
im Grunde einfach endlich ausdrucken, nur um zu sehen, dass
dies gedruckt wird, und dann
werden wir es tatsächlich kopieren. Und das wird sein,
das passiert immer. Aber jetzt
ist das Interessante, wenn Sie
Ausnahmen tatsächlich mit einer
try and catch-Anweisung richtig behandeln ,
dann passiert
das Programm
nicht einfach kaputt geht dann passiert
das Programm
nicht oder es
nicht einfach endet, es geht tatsächlich weiter. Was Sie also sehen können,
ist das zuerst, wenn ich anrufe, wenn ich zum Beispiel
eine 1 einlege, oder? Eines Tages gehst du endlich, und das passiert immer. So
ist das Endlich, wie Sie sehen können, immer kalt und dann
heißt das immer auch, oder? Und dann ist das
Interessante , dass
Sie sehen können, dass wir die Nachricht
ausdrucken, wenn die Ausnahme ausgelöst wird. Aber endlich passiert es immer noch. Und das, weißt du, das passiert immer noch, passiert
auch immer noch. Der Rest des
Programms geht also weiter. Was sehr wichtig
ist, ist,
dass Ihr Code im Allgemeinen so laut wie möglich fehlschlägt nur weil Sie möchten,
dass Fehler
sehr, sehr früh angezeigt werden. Deshalb kann das Werfen von
Ausnahmen nützlich sein. Jetzt, bei der
Mikrowellenmodellierung, ist es sehr unwahrscheinlich, dass
Sie, besonders am
Anfang, richtig? Ich meine, das meiste davon nehme
ich für
Anfänger an, oder? Dies wird für Anfänger nicht sehr
wichtig sein. Dies ist etwas viel
mehr für Fortgeschrittene. Wenn du wirklich
da sitzt, meinst du: Okay, ich werde jetzt wie ein
Riesenmodus machen, oder? Ich möchte es wie die
nächste Wärmeausdehnung machen, sagen
wir auf dieser Ebene so
etwas und machen dann einige
benutzerdefinierte Ausnahmen. Auf jeden Fall sehr kluge Idee. Aber was auch immer der Fall sein mag, das ist es für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
36. (Java) Lambda: In Ordnung, willkommen zurück
zur Java-Einführung für Minecraft-Modellierung. Und in diesem Vortrag werden
wir
einen vorläufigen
Blick auf einen Lambda-Ausdruck werfen. Lambda-Ausdrücke
können also sehr kompliziert sein. Ich möchte Ihnen nur
einen sehr kurzen Überblick über die geben einen sehr kurzen Überblick über ,
die wir haben und
welche Lamda-Ausdrücke sind. Also im Allgemeinen, und die Veteranen
gehen zu drei Methoden. Sie sind im Grunde Funktionen
oder Methoden als Variablen. Das ist ziemlich cool,
wenn du darüber nachdenkst. Und wir werden uns diese fünf nur
in sehr, sehr spärlichen Details
ansehen . Also werden wir überhaupt nicht
ins Detail gehen. Ich möchte nur, dass du diese gesehen
hast ,
um
das in Zukunft im Grunde zu speichern. Denn gerade
bei der 4D-Modellierung ist
dies etwas, das in Stoff sehr
wichtig ist , nicht so sehr, naja, was auch immer der Fall sein mag. Ein Lieferant zum Beispiel hier,
richtig, hat keine
Parameter, sondern einen Rückgabewert. Und es könnte
so etwas geschrieben werden, oder? Also keine Parameter in
den Klammern und ein Pfeil und dann
könnte das x sein, was zurückgegeben
wird. Sie können sehen, dass Lieferant vom Typ Integer bedeutet, dass
eine Ganzzahl zurückgegeben wird. Und dann sieht es
so aus. Das Coole daran
ist, dass dies auch bedeutet, denn wenn wir eine Variable
daraus machen können, könnten
wir
sie auch in eine Methode weitergeben, was bedeutet, dass wir diese
Lieferanten dort hineinbringen könnten , die möglicherweise
unterschiedliche Funktionen haben. Das ist also ziemlich cool, dies wird auch verwendet viel zu
programmieren oder zu
modellieren, vor allem denn
wenn der Lieferant, wenn man etwas
drin hat, ist
dies wird nur aufgerufen, wenn die
getMethod hier aufgerufen wird. So können Sie das
Laden bestimmter Variablen
und ähnliches irgendwie verzögern . Das ist so ziemlich auch das
Ausmaß meines Wissens in
diesem Bereich. Also werden wir nicht zu viel darauf
eingehen. Und nachdem wir
diesen Fehler hier pro
Meter behoben haben , richtig? Die Verbraucherart
im Namen
verbraucht also wirklich einen Parameter,
gibt aber keinen Wert zurück. Hier ist ein Beispiel für den
Verbraucher für eine Zeichenfolge
, an der Sie im Grunde genommen
eine Zeichenfolge übergeben und dann
etwas mit dieser Zeichenfolge macht. Ein Callable ist kein Umfang
und kein Rückgabewert. So sehr ähnlich wie bei einem Lieferanten, löst es
jedoch eine Ausnahme aus, so dass es
möglich ist, einen Sturz auch als
Ausnahme
zu bezeichnen. Das ist die allgemeine Idee. Sie können auch immer den Mauszeiger
darüber bewegen und Sie können tatsächlich
eine sehr schöne Zusammenfassung dessen finden , was
sie tatsächlich sind, oder? Also hier rufen wir in diesem Fall das
Callable auf, dann ist ein Runnable
etwas, das
keine Parameter und
keinen Rückgabewert hat . Dann
ist eine Funktion im Grunde buchstäblich wie eine
Funktion, die
eine bestimmte Eingabe
einer bestimmten Ausgabe zuordnet eine bestimmte Eingabe
einer bestimmten Ausgabe zuordnet ist nur die Funktion
für den Kreis, im Grunde habe ich nur
den Pi hier. Aber das ist so ziemlich alles
, was es wirklich gibt. Insgesamt wollte ich, wie gesagt, wirklich nur, dass
du
das durchgehst , wenn ich das schon einmal gesehen habe, wenn ich sage: Hey,
wir werden
einen Lieferanten machen , den du nicht da
sitzt und du meinst: oh, ich habe keine Ahnung was das ist. Nein. Ein Lieferant ist im Grunde
ein Datentyp
, der mehr oder weniger
in einer Funktion oder einer Methode speichert . Es ist nicht ganz so, aber es ist sehr nah dran, so dass es, besonders für Anfänger,
ausreicht , so
darüber nachzudenken. Wie auch immer der Fall
sein mag, das ist
es eigentlich für diese Vorlesung genau hier. Ich weiß, dass dies sehr
kurz war, aber wie gesagt, es ist wirklich nur ein
sehr kurzer Überblick anstatt wirklich
jedes Detail davon zu erklären. Aber ich hoffe immer noch
, dass Sie das
nützlich fanden und
etwas Neues gelernt haben. Wir sehen uns in der
nächsten Vorlesung. Also ja.
37. (Java): In Ordnung, willkommen zurück
zur Java-Einführung für Minecraft-Modellierung und für diese letzte Vorlesung des
Java-Einführungsabschnitts werden
wir einen
vorläufigen Blick auf Generika werfen. Generika, die haben wir natürlich schon
mal gesehen, oder? Eine Liste war
zum Beispiel ein Generikum, bei dem wir im Grunde eine ganze Zahl
wie jede Klasse eingeben konnten Grunde eine ganze Zahl
wie jede Klasse und im Grunde die Zahlen haben, zum Beispiel mit einer
neuen ArrayList hier. Das hat also alles
sehr einfach und sehr gut geklappt. Das war gut,
ziemlich einfach. Aber was ist, wenn wir Generika haben
, die wir
selbst verwenden möchten ,
werden
wir hier tatsächlich eine
neue Klasse schaffen. Wir werden einfach die Paarklasse
sein. Und Sie können
zwei verschiedene Werte darin speichern. Also machen wir einfach diese Winkelklammern und dann x, y. Und die Idee ist, dass X und Y
jetzt Platzhalter für
bestimmte Datentypen sind . Also werden wir zuerst ein
privates x Quadrat
und eine private Lüge
namens Second haben , oder? Und das ist, die Idee ist dass Sie jetzt
darüber nachdenken müssen, okay, das
sind Generika, was bedeutet, dass dies sind Generika, was bedeutet, dass nur Platzhalter
sind,
wie ich sagte, oder? Und lassen Sie uns dafür einfach
einen Konstruktor generieren. Klicken Sie also mit
der rechten Maustaste auf Konstruktor Und dann werden wir für beide
einfach den Konstruktor lesen. Und dann werden
wir auch rechten Maustaste klicken, Getter und
Setter für beide generieren . Und da gehst du. Das ist im Grunde die
gesamte Klasse bereits erledigt. Und Sie können sehen, dass es
immer das x und
das y verwendet , weil dies im Grunde nur Platzhalter für
die tatsächlichen Datenwerte oder Datentypen
sind, die verwendet werden. Was nun sehr
interessant ist, was Sie auch tun können, ist, dass sich ein bestimmter Datentyp von einem anderen
erstreckt. So können wir zum Beispiel „extenses float“
sagen,
was bedeutet, dass das y jetzt den Float erweitern
muss,
was bedeutet, dass es sich was bedeutet, dass das y jetzt den Float erweitern
muss,
was bedeutet, entweder um einen Float oder eine
andere Unterklasse dieser
Klasse handeln kann , die hier definiert wurde. Das ist auch sehr interessant. Es ist etwas, das
Sie tun können und das wird in Minecraft-Modellierung
ausführlich
gemacht. Und was du auch tun kannst, lass uns hier einfach ein neues
Paar machen, oder? Also Paar, Nehmen wir an,
sind wie
Integer, Integer Float vorerst, wie dieser Begriff gleich
einem neuen Paar von ihnen. Wir werden
einige wie 2250,55 sagen. Klar, das ist okay. Stellen Sie sicher, dass dies hier ein
f ist, dann sollte es funktionieren. Da gehst du. Das funktioniert jetzt
vollkommen gut. Und was Sie auch tun können, anstatt
einen bestimmten tatsächlichen Wert
oder einen bestimmten Datentyp zu übergeben , können
Sie
dies auch zu einem Fragezeichen machen. Und dann wird das Generikum es
einfach herausfinden. Das nennt man
ein Wildcard-Generikum. Wir werden darüber nicht zu sehr
ins Detail gehen. Dies ist etwas, das
Sie auch
in Minecraft-Modellierung
ein wenig sehen werden. Dies bedeutet jedoch, dass es
keinen wirklichen Grund gibt , dies zu verstehen. Es liegt ganz daran,
dass Generika definitiv etwas sind, das weit fortgeschritten ist, wie
ein sehr fortgeschrittenes
Thema, das selbst wie erfahrene Programmierer nicht viele von ihnen mögen erfahrene Programmierer nicht viele von ihnen mögen, das nicht
einmal verstehen. Als würde ich mich übrigens nicht
in diese Beschreibung
aufnehmen , kenne
ich Generika gut genug, kenne
ich Generika gut genug damit ich im Grunde damit
umgehen kann. Aber wenn ich selbst wie eine
echte generische Klasse mache, werde
ich ehrlich sein, das ist sehr, sehr schwer, oder? Das ist also ein sehr
kompliziertes Thema, also gibt es überhaupt keine Sorgen. Ich wollte das nur erwähnen
und wollte, dass Sie sehen, dass dies existiert und dass Sie
auch Ihre eigenen Generika herstellen können. Aber das wäre es für die Java-Einführung in
diesem Abschnitt des Kurses. Ich hoffe, du hast das
nützlich gefunden und du lernst etwas Neues, wenn du
ein Anfänger bist.
Ich hoffe, dass du jetzt die Java-Foundation
hast, die du brauchst, um mit der Mikrowelle
fortzufahren modellieren. Also viel Glück für Sie, und ich hoffe, dass Sie
den mikrobiotischen Teil
dieses Kurses genießen werden .
38. (Minecraft Grundlagen) Installation und Setup und GitHub: Alles klar, Willkommen bei
der Mikrobe Portion für den Forge 118 Kurs. Und in diesem Vortrag werden
wir alles herunterladen und die Entwicklungsumgebung
einrichten die Entwicklungsumgebung
einrichten ,
damit er das
Mikrobenmodell starten kann. Unabhängig davon
, ob Sie
sich die
Java-Einführung angesehen haben oder nicht , müssen
wir dieses Mal den JDK 17
herunterladen. Denn weil
Minecraft 118 und höher wahrscheinlich hier
fertige Höhle und Teenager benutzen würde . Also habe
ich ihn wieder hier adoptiert. Sie laden einfach
die neueste Version herunter
und stellen sicher, dass Sie auf
Tamarin sind, ist 17 genau hier. Wenn Sie auf
einem anderen sind,
sollte es theoretisch Ihr
Betriebssystem und all das erkennen. Andernfalls können Sie immer
noch zu
den anderen Releases gehen und dann Ihr Betriebssystem und
Ihre Architektur
auswählen , und es sollte
Ihnen gut gehen. Ich empfehle unter Windows, dass Sie einfach das MSI
herunterladen und dann im Grunde genommen auf
Ihrem PC installieren wie jedes andere Programm
im Grunde genommen auf
Ihrem PC installieren. Eine Sache, die ich wärmstens empfehle,
ist
zu sagen: hey, ja, wir möchten, dass die Java-Home-Variable
genau hier eingestellt wird, denn das wird nur viele Probleme
weiter unten sparen . Denn wenn die
Java-Home-Variable einmal eingestellt ist, macht
sie unser Leben im Grunde nur ein
bisschen einfacher
, nachdem sie installiert wurde, wir brauchen auch eine integrierte
Entwicklungsumgebung von IDE und wir werden gehen um IntelliJ idea zu
verwenden. Ich empfehle dringend, dies
auch zu verwenden , da
es sonst
einige Unterschiede in
den Bändern geben kann einige Unterschiede in
den Bändern , die sie wie Tastenkombinationen
drücken müssen. Wir sind auch dort, wo Sie bestimmte Dinge
in Ihrer
Entwicklungsumgebung
finden . Sie wählen die
Community-Version aus, da sie kostenlos
ist und
auf Open Source basiert. Es ist also perfekt für uns. musst du
nichts bezahlen. Es ist absolut kostenlos. Laden Sie es einfach herunter
und
installieren Sie noch einmal ein anderes
Programm auf Ihrem PC ,
bevor wir bis
heute zum ersten Mal öffnen Jetzt müssen
wir Micro Forge
herunterladen, in diesem Fall für eine
Mikrobe aus dem 19. Jahrhundert. Wenn Sie sich
das in Zukunft ansehen, sind wir
vielleicht schon bei einhundert,
achthundertzweiundzwei oder sogar höher. Wer weiß es? Was definitiv höher sein wird ist diese Version genau hier, Moment sind wir jetzt bei 39.5
, das ist völlig in Ordnung. Was wir tun werden, ist, dass
wir den NDK herunterladen werden. Aber bevor wir das tun,
ein sehr wichtiger Hinweis hier aus der Zukunft. Bitte benutze
einhundertachthundert eins , wenn du den Kurs beginnst. Ich kann das wärmstens empfehlen. Wenn Sie dies nicht tun
und 1800s zwei
verwenden, funktionieren einige Dinge nicht wie die Tags, das erweiterte Element, das wir
im Grunde sowohl
mit den Tags als auch für
die Weltgeneration verwenden werden. Jetzt, sobald ich dran
bin, möchte ich sehr bald dran sein. Aber hoffentlich
gab es in Zukunft ganz am Ende des Kurses einen
Abschnitt, ganz am Ende des Kurses einen
Abschnitt, der 1820er Jahre ist, wenn man das tatsächlich sieht. Werfen Sie also einen Blick auf
alle Vorträge. Und wenn Sie am Ende einen
Abschnitt sehen
Das ist wie 1182 Updates, dann können Sie dort hineingehen und tatsächlich
den gesamten Kurs durchlaufen. Und dann jedes Mal,
wenn es ein bestimmtes gibt, ein Thema, das
nicht wie Tags funktioniert. Es wird die Tags-Vorlesung und alle Vorträge der
Weltgeneration sein. Dann kannst du grundsätzlich alles andere
überspringen, zum Ende des Kurses
gehen, diese
machen und dann
zurückfahren. Ich empfehle dringend, dass die beste
Wahl darin besteht, vorerst bei
einem 1800er zu bleiben einem 1800er zu und dann
den gesamten Kurs einmal zu durchlaufen, dann wird es auch
eine Vorlesung sein, in der ich in
182 wechseln werde die Zukunft ganz am
Ende des Kurses. also keine Sorgen. Lasst uns
einfach eine sehr kluge Idee machen. Ansonsten steht es Ihnen
natürlich frei, es zu wählen, aber bitte beachten
Sie, dass einige Dinge im 19. Jahrhundert nicht mehr so
funktionieren wie in 181. wollte ich nur sagen. Jetzt lasst uns wieder alles
einrichten. In Zukunft. Sie werden wahrscheinlich
zwei Fenster haben, eines der
neuesten und dann empfohlenen Fenster, wählen Sie
immer den
empfohlenen Build aus
, der noch nicht auf
eine ausreichende Version aktualisiert wurde. Damit sie im Grunde sagen: Hey, das ist die empfohlene Version, das wird gut,
aber es
wird immer der M-Cdk sein, den wir wollen. Und dann müssen
wir hier nur fünf Sekunden warten bis wir
die ZIP-Datei herunterladen können. Und dann klicken wir oben auf
die Schaltfläche Überspringen und dann auf den
Zip-Firewall-Download. Ich habe es bereits vorbereitet, also habe ich meine
Zip-Datei genau hier. Also klicke ich mit der rechten Maustaste
und extrahiere dann, um hier einen verrückten Namen zu fälschen. Und ich werde das natürlich auch
umbenennen, einem 1800er Jahren, sie. Dann können wir die
Zip-Datei genau hier löschen. Dies ist der Inhalt des Projektordners oder den
Sie haben werden. Und was wir tun können, ist, dass wir all diese löschen
können, die Credits, die
Änderungssperre, die Lizenz und die Redmi, weil
es spezifisch zu
fälschen gibt , waren tatsächlich
oder
ich persönlich, ich werde meine eigenen haben
Lizenzdatei und all das in nur ein bisschen
darüber, nachdem das eingerichtet wurde, können
wir jetzt
zum ersten Mal Intelligenz starten. Jetzt
wird das Fenster, mit dem Sie begrüßt werden wahrscheinlich ein
bisschen anders aussehen als Sie. Was Sie jedoch definitiv
haben werden, sind drei Schaltflächen, die Schaltfläche „Neues Projekt“,
die Schaltfläche „Öffnen“ und sie
erhalten von der VCS-Button. Wir möchten auf die Schaltfläche Öffnen klicken und wir möchten
zu diesem Verzeichnis navigieren. Also kann ich es auch einfach kopieren, hier
hineinlegen und dann genau hier diesen Ordner
auswählen, wo die Quellordner in diesem hier okay sagen, wir werden sagen, wir werden
sagen, wir vertrauen dem Projekt, dann öffnet sich ein neues Fenster. Jetzt wird es im Hintergrund
passieren. Möglicherweise bekommen Sie Fehler, vielleicht bekommen
Sie hier
etwas Rotes. Mach dir darüber keine Sorgen.
Wir werden sie
alle Schritt für Schritt beheben, genauso mit einer Warnung
hier können Sie rot sehen, diese Warnung genau hier. Das ist alles in Ordnung. Lass das einfach durchlaufen. Entweder werden wir gebaut fehlgeschlagen oder ein Build erfolgreich. Jeder
ist im Moment völlig in Ordnung für uns. Alles klar, sieh dir das an. Ich habe hier tatsächlich einen Build
erfolgreich gemacht ,
das ist total in Ordnung. Wie ich schon sagte, wenn
eine Rechnung fehlgeschlagen ist, werden
wir dies durchgehen und sehen, was wir
im Grunde ändern können. Es gibt einige Schritte
, die wir grundsätzlich
unternehmen müssen , unabhängig
davon, was passiert. Was wir also
tun wollen, ist die Nummer eins, Sie möchten zu Datei gehen und
dann zur Projektstruktur, wir möchten sicherstellen
, dass im
Projekt-SDK genau hier 17. steht. Deshalb möchten wir im Grunde
das JDK auswählen , das wir
gerade installiert haben. Gleiche gilt für das Projekt der
Sprache. Dies sollte 17 sein. Wir werden auf
Übernehmen klicken und sagen: Okay, wir werden auch zu
Einstellungen gehen , um die
Ausführungsbereitstellung zu erstellen, integrierte Tools Gradle,
und stellen sicher, dass hier mit 17 Project SDK
steht. Diese Schritte sind
äußerst wichtig. Bitte stellen Sie sicher, dass hier
alles korrekt ist. Danach müssen wir noch eine Änderung vornehmen
. Wenn ich den
Java-Ordner hier öffne, kannst
du sehen, dass alles
hier irgendwie verteilt ist. Wenn die Intelligenz
zum ersten Mal offen ist, könnte
es für
dich
etwa so aussehen , hier einfach
auf die Ausrüstung zu gehen. Stellt sicher, dass sowohl
abgeflachte Pakete als auch kompakte
Middle-Pakete ausgeschaltet sind. Und dann wird es
hier genauso
aussehen wie
für mich gerade. Alles hier ist
richtig durchgelaufen, das ist großartig. Was wir also tun werden,
ist, dass wir hier
das Terminal öffnen und einen Punktschrägstrich einsetzen Gradle w Gen Intel
J läuft genau dort. Und dann
drücken wir Enter und lassen es einfach durchlaufen, da
das im Grunde genommen ein paar weitere
Sachen
herunterlädt und nur
sicherstellt , dass alles
im Grunde richtig gemacht wird. Und dann bauen wir erfolgreich. Wenn Sie eine erste
Pille erfolgreich haben, ist dies möglicherweise nicht
immer notwendig. Trotzdem ist es großartig, dies zu
tun. Und jetzt
wechseln wir noch ein paar Sachen. Aber zuerst werden
wir die integrierte DOD Gradle-Datei öffnen. Und dann sehen Sie hier, dass es eine Version der Gruppe und
eine Archivnamenbasis gibt. Aber die Version, naja, lasst uns einfach
etwas wie 0.01 einsetzen. Und dann
ist es normalerweise ratsam,
etwas hineinzulegen , das auch die
Mikroversion sagt. Also werde ich
meine Version von 0.01 sagen und dann 100.801 dash, weil
wir jetzt in 181 sind, die Gruppe hier ist die gleiche wie die Namen unserer
Paketstruktur. Für mich wird das also
Net out und Joe Mc Kurs sein. Für Sie wäre dies
netto oder beruhigen Sie Ihren Namen. Und dann
könnten Sie zum Beispiel auch einen MC-Kurs wählen, oder wenn Sie ein anderes Modell haben, können
Sie natürlich auch eine andere Melodie
wählen. Hier nehmen wir auch unsere
Modelidee auf, und das fasst ziemlich alles
zusammen, was wir hier brauchen. Ich muss wirklich nicht so viel
ändern. Was wir
hier nicht ändern können , können Sie den Beispielmodus sehen. Hier heißt es, wir können einfach
das auswählen , drücken Sie Control R und
ändern Sie diesen dann in MC-Kurs. Sie können sehen, dass oben ein neues Fenster
erscheint. Und dann können wir hier grundsätzlich
Beispiel Mater auf den
Top-MC-Kurs setzen und dann einfach sagen , dass alles im Grunde
überall
ersetzt wird, wo es Beispielmod
in dieser Datei
sagt , es wird
durch EMC Kurs ersetzt. Und was wir
dann tun können, ist, dass wir
die größten Änderungen laden können , indem den kleinen Elefanten
oben rechts drücken, wie Sie gesehen haben. Und dann wird es
im Grunde wieder durchlaufen. Das sollte nicht so
lange dauern wie das erste Mal, dass sie in neun
Sekunden gut erfolgreich sind, das ist großartig. Und dann werden wir noch
ein paar Sachen ändern und noch ein
paar Sachen ändern , die wir
in der Beispiel-Mod-Klasse machen werden. Denn was
hier passiert, ist,
dass wir im Grunde keinen Beispielmodus
haben. Was wir haben ist, dass wir Netz-Baumwollseil,
MC Kurs oder netto deinen
Namen
haben , MC Kurs. Was wir also tun werden, ist ganz oben hier im Paket, wir werden Net Out
und Joe Dot MC Kurs sagen. Natürlich ist das
mit einer roten Unterstreichung gekennzeichnet und
wir werden den Mauszeiger darüber
bewegen und sagen Move to
Packet Net Cotton Joe MC Kurs
Ich werde ja sagen. Und dann sehen Sie
hier eine neue Paketstruktur. Jetzt können wir
den Rest löschen, der leer ist. Dann möchten wir diese Klasse
umbenennen. Was wir also tun können, ist, dass wir darauf
klicken, die Umschalttaste F6 drücken und dann werden wir das vor Tag
den MC-Kurs-Mod nennen. Nun ist es sehr wichtig
, dass diese Klasse, die MC-Kurse-Mock-Klasse, später als
eine Art Hauptklasse
oder Ihre Hauptmod-Klasse bezeichnet wird . Wenn ich also jemals sage, dass ich
das meine, dann kommen wir zur MOD-ID. Die ID ist etwas
, das sehr wichtig ist. Also hören Sie bitte genau zu. Die MOD-ID darf nur
Kleinbuchstaben enthalten. Format-ID ist im Grunde eine eindeutige
Kennung für Ihren MOD. Und es wird in
Zukunft oft kommen. Ganz oben
hier im AdMob sieht
man, dass wir hier eine Zeichenfolge
haben. Was wir also tun werden,
ist, dass wir
die gesamte Zeichenfolge mit
den Anführungszeichen auswählen . Wir klicken mit der rechten Maustaste. Wir gehen zum Re-Faktor. Wir werden sagen „
Einführungskonstante“. Ich nenne das
die Mod-Unterstrich-ID. Ich werde
das eigentlich ganz oben kopieren . Dieser wird in Zukunft oft benutzt
werden . Und das ist für den US-MC-Kurs. Ich empfehle dringend, dabei zu
bleiben und das
Gleiche hier einzubringen. Dies ist ein sehr wichtiger MC-Kurs alle in
Kleinbuchstaben geschrieben ist. Dies muss auch
im Ressourcenordner übereinstimmen, Meta nth Mode Stato Mo. Und du kannst hier sehen Mod ID, das muss auch übereinstimmen. Das ist unglaublich wichtig,
sehr wichtig hier. Anzeigename, sagen wir
einfach zum Beispiel den Minecraft Modern Course Mod. So etwas bietet
wie wäre es mit Cotton Row? Diese sind alle nicht notwendig, aber das ist nur ein Idealfall, das
müssen Sie nicht unbedingt einsetzen. Lassen Sie uns auch die Lizenz für den Fall und das Ego auf DAS
MIT
ändern . Dies ist also die allgemeine Idee im Grunde
alles einzurichten. Sie müssen diese
intime Stern-Tom-O-Datei ändern. Und hier oben ist das
sehr wichtig. Und normalerweise sollte das fast alles
lösen
, was Sie haben. erneut sicher, dass Sie die
Projektstruktur in den Einstellungen
überprüfen. Und nachdem du all das
geändert hast, lauf,
der Punktschrägstrich Gradle,
Jen intelligent läuft. Und nachdem du das getan hast, sind
wir ziemlich eingerichtet. Das ist so ziemlich alles, was
wir für das Setup tun müssen. Oder wir können jetzt nach oben rechts
zur Registerkarte Gradle gehen ,
die Aufgaben
erweitern und
die Schmiedeschienenverläufe erweitern und dann
darauf doppelklicken, einen Client ausführen. Mal sehen, ob Minecraft zum ersten Mal
anfängt. Das ist der wichtigste Schritt. Im Grunde bin ich mir sehr sicher
, dass das gut funktionieren wird. Da gehst du. Das Fenster hat sich bereits
geöffnet und
sehen wir wahrscheinlich, dass wir den Ton sehr bald
hören werden. Und da sind wir. Okay, lass mich zuerst die Musik und
die Lautstärke
sofort ein
wenig
ausschalten . Sie sind schon her. In unseren Modi sehen Sie das Microbe Modern Kursmodell. Im Moment gibt es eine
MC-Kursversion 0, da wir
dies in der
Mos-Dot-HTML-Datei nicht richtig definiert haben. Aber das ist so ziemlich
alles, was du tun musst. Wenn du diesen Punkt erreichst
und Minecraft geöffnet hat. Nun, willkommen um morgen zu schmieden. Es wird eine großartige
und großartige Reise werden, da bin
ich mir sicher. Und das nächste
, was wir
tun werden, ist, dass wir
das GitHub-Repository
für dieses Projekt einrichten werden. Ich empfehle dringend, den Schritt nicht zu
überspringen, da das GitHub-Repository Ihnen
bei den Fragen und Antworten hilft. Wenn Sie mir
beispielsweise nur Ihr
GitHub-Repository zur Verfügung
stellen, kann Ihnen Ihr GitHub-Repository viel schneller helfen als im Grunde wenn du einfach
sagst, Hey, ich hab diesen Pfeil. So macht es unser
ganzes Leben ein bisschen einfacher. Daher empfehle ich dringend, auch ein GitHub-Repository
einzurichten. Wir werden die
Schritte sofort durchlaufen. Was Sie
dafür benötigen, ist ein GitHub-Konto, aber das ist völlig kostenlos und ich
empfehle dies dringend. Dies ist ein Tool, das von fast allen Programmierern verwendet wird . Es gibt einige verschiedene Websites, aber GitHub an sich ist sehr seriös und ich
empfehle nur dringend, es auch zu verwenden. Nachdem wir dort
ein Konto erstellt haben, können
wir
intelligent zum VCS gehen und wir können sagen, dass wir
das Projekt auf GitHub teilen können. Und dann siehst du, dass
ich das am 18.
den Schmiedekurs nenne . Das ist in Ordnung. Ich werde das persönlich privat machen. Wenn Sie es teilen möchten, können Sie es
natürlich nicht privat
machen. Und wenn ich jetzt auf
die Schaltfläche Teilen klicke, kannst
du sehen, hey, das
Konto ist leer. Wir fügen
ein neues Konto hinzu. Und was ich sagen werde ist, dass ich mich über GitHub einloggen
werde. Ich kann darauf klicken und dann öffnet sich
dieses Fenster hier, sagen
Sie einfach, GitHub autorisieren. Und weil ich hier bereits bei GitHub
angemeldet bin, hat
dies jetzt
autorisiert und Sie können Chair von github.com
slash coulomb joule
sehen. Jetzt sagen wir Teilen
und dann öffnet sich eine Reihe neuer Dinge hier. Sie können Dateien hinzufügen,
Möbel, Commit sehen. Wir werden sagen,
das ist natürlich völlig in Ordnung. Und dann können Sie
sehen, dass es tatsächlich auf GitHub
geteilt wird und das ist eigentlich alles, was
Sie tun müssen. Ich kann jetzt
darauf klicken und es sollte das GitHub-Repository
öffnen. Und da ist es. Dieses GitHub-Repository steht Ihnen ebenfalls zur Verfügung. Das
ist übrigens sehr wichtig. Ich werde jede Vorlesung in
verschiedene
Zweige aufteilen lassen, damit Sie das, im Grunde sehr leicht sehen was Sie geschrieben haben,
im Grunde sehr leicht sehen
und vergleichen können. Ich habe auch individuelle
Gists für jede Vorlesung. Also keine Sorgen. Der gesamte Code wird in einer Form verfügbar sein , die für Sie
sehr nützlich sein wird,
wenn Sie jetzt hier eine Änderung vornehmen. Zum Beispiel
werde ich so etwas
wie einen sehr wichtigen Kommentar sagen . Sie werden sehen, dass die Datei, in der die Änderung stattfindet, blau
wird. Und was ich dann
tun muss, ist, dass ich hier zu
diesem Commit-Tab
gehen hier zu
diesem Commit-Tab muss und alle Änderungen auswählen muss,
die
ich übernehmen möchte. Ich sage dann, dass ein
wichtiges Element hinzugefügt wurde. Dies ist also nur ein Name
dessen, was passiert ist. Und ich klicke auf Commit. Normalerweise bekommst du
vielleicht auch, hey, ich habe etwa 63 Warnungen bekommen. Bist du sicher, dass du dich verpflichten willst? Normalerweise möchten Sie sich verpflichten. Jetzt
ist das gerade durchgegangen,
war sehr wichtig, nur weil wir etwas engagiert
haben bedeutet
das nicht, dass
es noch online ist, denn um es online zu machen, müssen
wir es tatsächlich pushen. Ganz oben, der grüne Pfeil, der nach oben rechts
zeigt, müssen
wir darauf klicken. Dann sehen Sie
den wichtigen Kommentar hinzugefügt. Wir können die
Änderungen im Grunde sehen, wer, wer diese
Änderungen vorgenommen hat und all das. Und dann können wir einfach
auf den Druckknopf klicken. Und dann heißt es, ein
Commit zum Ursprungsmaster gedrängt. Wenn ich das dann erneut öffne
und diese Seite neu lade, kannst
du einen
wichtigen Kommentar sehen. Ich möchte nicht, dass
sich das in
einen GitHub verwandelt oder hier ein
Tutorial bekommt. Aber vorerst ist
das so ziemlich genau das. Das ist so ziemlich
alles was du brauchst. Und jetzt können Sie sich mit 4241801 auf die verrückte und coole Reise des die verrückte und coole Reise des
modernen Minecraft begeben. Aber das ist es für diesen
Vortrag genau hier. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung.
39. (Minecraft Verwendung von Parchment: Alles klar, willkommen zurück
zum vierten Kurs für 118. In diesem kurzen Vortrag werden
wir
unsere Zuordnungen in
Pergamentzuordnungen ändern . Nun, hier nur
eine kleine Erklärung. Die Idee ist, dass wenn wir
die normalen Mappings verwenden, die
durch das Zusammenführen des
offiziellen Servers bereitgestellt werden , in die RI Build-Up-Gradle-Datei
gehen. Sehen Sie, ich habe hier die offiziellen
Mappings für 180 eins. Und obwohl das völlig in Ordnung ist, passiert es, dass alle Methoden keine Map-Parameter
haben. Dies bedeutet, dass jede Methode , die wir überschreiben könnten
oder so ähnlich, der Parametername
immer einige sein wird,
wie P einige Zahlen unterstreicht und dann
eine oder was auch immer unterstreicht. Und das ist wirklich
verdammt, nervig, besonders wenn Sie
Methoden haben, die möglicherweise 56, 57 Parameter
haben. Und sie haben alle
diese seltsamen Namen da sie Fremitus sind. Deshalb empfehle ich dringend, mit Pergament zu
gehen. Jetzt habe ich zwei Links
in den Ressourcen. Eine davon ist das
Bibliothekar-GitHub-Repository hier aus Pergament, und eines ist das
Pergamentrepository. Und was Sie feststellen werden,
ist, dass
die 118 X Version derzeit nicht
existiert. Es wird also nicht festgestellt, dass
es nicht genau stimmt, dass es einen
nächtlichen Schnappschuss gibt. Nun bedeutet ein nächtlicher Schnappschuss
in diesem Fall, dass es sich definitiv
noch nicht um eine vollständige Veröffentlichung handelt. Es ist, äh, es funktioniert und du
kannst schon damit arbeiten, aber es ist nicht dringend zu
empfehlen, weißt
du, es ist
sozusagen noch nicht fertig , wir
werden es immer noch benutzen. Und was ich sagen werde, ist, dass ich diese Vorlesung aktualisieren
werde. Oder wenn wir
durch das Pferd gehen, werfe
ich vielleicht ein oder zwei
Pergamentaktualisierungsanleitungen in ihrer Gesamtwertung ein, normalerweise ändert sich das Aktualisieren
ziemlich nur. Eine Sache, die ich
dir in einem Moment zeigen werde. Was wir jetzt tun können, ist in
der Bibliothekarin hier zu
sehen , dass er im Grunde
alles sagt, was Sie tun müssen. Es ist also sehr einfach. Das erste,
was wir zum Beispiel
tun müssen, ist, dass wir
dies hier hinzufügen müssen. Also das Pergament aus dem
Maven-Pergament-Lager. Lassen Sie mich das kopieren. Geh gleich hier zum
Futterkurs. Und ganz oben,
darunter, wollen wir
das einfügen. Du siehst jetzt, dass wir
das Pergament dort haben. Und dann wollen wir den zweiten
überprüfen. Und das wird
jedoch der Bibliothekar sein , der Satz des Klassenpfades. Also noch einmal
Control C kopiert und dann hier unter
den Gradle
eingefügt. Also genau hier zu
den Abhängigkeiten, dann wollen wir das
Plug-In genau hier nehmen, und das muss
genau darunter liegen. Also genau hier, richtig
sehr wichtig. Fügen Sie es nicht hier ein, sondern unter dem Netz
Minecraft Gradle, sonst funktioniert es nicht. Ganz wichtig. Und zu guter Letzt müssen
Sie die Zuordnungen ändern. Ich kopiere das tatsächlich
von dem anderen Bildschirm, den ich hier
habe, weil ich
die nächtliche Version
im Grunde schon fertig habe. Mal sehen wir sie uns vor. Dies wäre also die nächtliche Version des 13.
Dezember, nächtliche Momentaufnahme in diesem Fall, wie ich schon sagte, wenn neuere
Versionen herauskommen, werde
ich sie hier
irgendwo verlinken oder zukünftige Vorträge halten oder
ändern
diese Vorlesung. Und wir
werden nur sehen, dass wir das
machen werden , überhaupt keine Sorgen. Und insgesamt sollte das jetzt in
Ordnung sein, wenn wir
diese vier Dinge haben. Also der Maven, die
Klassenpfadabhängigkeit hier, dann das Plugin und Ändern des
Mapping-Sehers, wird es Ihnen gut gehen. Was wir jetzt tun können, ist, dass wir die Gral-Änderungen laden
können. Das sollte eigentlich
nicht allzu lange dauern. Wieder einmal
hängt es von Ihrem PC ab, es hängt von der Geschwindigkeit der
Internetverbindung ab, die Sie haben. Es gibt ein paar Faktoren,
die vielleicht, ich stehe darauf, aber wieder sollte es nicht länger als vielleicht ein oder zwei Minuten dauern. Aber lasst uns einfach geduldig sein und das durchlaufen
lassen, oder? Wie Sie sehen können,
bauen Sie in
55 Sekunden erfolgreich , das ist großartig. Und nun ist es
im Grunde genommen erledigt. Wir haben jetzt, dass wir jetzt
die Pergamentzuordnungen verwenden. Und das wird großartig werden. Das wird viel besser sein. Ich empfehle
dies auch wärmstens. Es ändert wirklich nur
die Parameternamen. Also gibt es jetzt abgebildet es ist so ziemlich
alles, was es tut, die Methodennamen
und die Klassennamen und alles, was
völlig gleich bleiben sollte. Aber das ist schon für
diese Vorlesung genau hier. Ich hoffe, du hast das im neuen
nützlich gefunden, und wir sehen uns in
der nächsten Vorlesung. Also ja.
40. (Minecraft Erstelle ein a Element: Oder ich komme zurück zum
Futterkurs für 118. In dieser Vorlesung
werden wir vorerst
unseren ersten
Kundenartikel hinzufügen , das wird eine sehr
interessante Sache sein , die wir tun werden. Und was wir tun werden, ist, dass wir
tatsächlich zwei Artikel hinzufügen. Wir werden
einen hinzufügen, wir werden im Grunde jeden Schritt durchlaufen. Und dann zeige ich es
dir sofort nachdem wir
den Gegenstand im Spiel gesehen haben. Oder du kannst eine
zweite hinzufügen, weil es
manchmal etwas
verwirrend für die Leute ist. Warte, wie
füge ich jetzt eine zweite hinzu? Muss ich
jeden Schritt noch einmal durchlaufen? Und nein, es gibt einige Abkürzungen, die Sie im Grunde nehmen
können. Nun, das erste,
was wir
tun werden und das ist sehr wichtig, ist in unserem MC-Kurs-MOD
oder unserer Hauptmod-Klasse, wir werden
dies genau hier auswählen. Also alles, einschließlich des GetMethod-Ereignisbusses
mit den Klammern, und wir klicken mit der
rechten Maustaste auf diesen Re-Faktor und führen dann eine Variable ein. Und dann werden
wir sagen, dass
alle drei Vorkommnisse ersetzt werden. Und wir nennen
das den Event Bus. Doppelklicken Sie also einfach
auf den Event-Bus. Und dann wird es uns gut gehen. Wir werden auch tun, dass wir im Grunde
alles löschen
werden ,
außer der Setup-Methode. Wir wollen die
Registrierungsereignisse nicht, wir wollen die
Serversortierung nicht, nichts davon. Brauchen wir? Und dann
müssen wir
hier Dinge lesen , damit wir
beide auch löschen können, damit unser Konstruktor grundsätzlich
nur den Eventbus hat. Sie sind der Listener genau hier, unten
im
Ereignisbusregister hier und die Setup-Methode, da dies eine
Methode ist, die in Zukunft
definitiv verwendet werden muss. Es gibt eine andere
Methode,
die auch in
einer zukünftigen Vorlesung hinzugefügt werden muss. Aber wir werden das machen,
sobald wir tatsächlich zwei haben. Also jetzt weiter zum Hinzufügen des Artikels. In unserem MC-Kurspaket wir mit der
rechten Maustaste auf neues Paket, das als item bezeichnet wird. Anstatt dort klicken
wir dann erneut mit der rechten Maustaste auf die neue Java-Klasse,
die Mod-Item-Klasse genannt wird. Jetzt
folgt die Mode Items
Klasse einer Art Schema oder einer bestimmten Vorlage , der viele verschiedene
Klassen folgen werden. Und das wird das Folgende
sein. Wir werden also ein
aufgeschobenes Register haben. Also werde
ich das einfach aus ihnen
heraustippen und sehen, was das ist. Dies wird ein
öffentliches statisches Finale sein, das dritte Register, sehr
wichtig, F2, unseres. Aber dieser hier aus Net Microforms
Registers überprüft ob Sie dies richtig schreiben,
weil es
einige Leute gab , die es falsch
geschrieben haben, und das führt natürlich
dazu, dass es nicht funktioniert Sie es eingeben können und dann einfach Tabulatortaste
drücken, um es automatisch zu vervollständigen. Und dann brauchen wir diese
Winkelklammern, wenn Sie sie
in die erste und die
zweite eingeben in die erste und die
zweite , die automatisch generiert werden soll. Und dann brauchen wir hier drin einen Gegenstand. Sehr wichtig, dass wir
Nettoartikel der Minecraft-Welt haben. Wir nehmen diesen noch einmal, Autocomplete und
dann
wird es sofort die Klasse hier importieren. Dies wird als
Elemente in Großbuchstaben bezeichnet, sehr wichtig und
dies ist ein letztes Feld, daher muss es in Großbuchstaben geschrieben
werden. Das ist in diesem Fall nur eine
Java-Konvention, dies wird
einem anderen Register entsprechen. erneut sicherstellen, dass
Sie es richtig schreiben, können
Sie automatisch mit
einer Registerkarte abschließen, wenn Sie
dort tatsächlich
die Überlastung sehen , die erstellt wird. Und dann noch einmal können wir es
einfach in
der Klammer automatisch vervollständigen , die dann generiert
werden. Dann können wir
Schmiederegister
, die Elemente in meinem
MC-Kursmodell,
dieser Modell-ID, speichern , die Elemente in meinem
MC-Kursmodell, und dann alles
mit einem Semikolon
beenden. Sie können also sehen, dass wir die Modell-ID
bereits verwenden. Hier sind das andere Register. Im einfachsten ausgedrückt
das aufgeschobene Register. Sie können sich dies
nur als eine Liste all
Ihrer Artikel vorstellen , die Sie
mit Ihrem MOD-Atom haben. Deshalb müssen wir
die Melodie liefern , damit Forge weiß, okay, alle diese Elemente stammen von dieser Modell-ID
aus diesem Modus. Das ist die allgemeine Idee. Natürlich ist es etwas
komplizierter als das. Aber nur zu Ihrem
allgemeinen Verständnis können
Sie sich dies
als eine Liste aller
Ihrer Artikel vorstellen und wir müssen uns
im Grunde dort registrieren , wenn Sie
ein aufgeschobenes Register
im Grunde für jede Sache haben das hat
hier Register gefälscht , ich kann mir das mal ansehen. Für all diese Dinge. Wir können im Grunde
eine andere Klasse und ein
anderes verzögertes Register haben. Und jedes Mal,
wenn wir
ein anderes Register haben
, werden wir
eine öffentliche statische Lücke oder
die Registermethode
mit einem Ereignisbus haben eine öffentliche statische Lücke oder . Event-Bus als Umfang. Wir sagen Artikel
Punktregister-Eventbus. Nun, wenn irgendwann
etwas hier rot sein könnte. So ist es beispielsweise möglich, dass der Artikel hier rot wird. Was passiert, ist, dass Sie
einfach darauf klicken und Alt und Eingabetaste
drücken,
um die Klasse zu importieren, um
sicherzustellen, dass Sie hier das
Nettomikrowellen-Weltelement auswählen , und dann sollte alles funktionieren. Stellen Sie sicher, dass die
Importe korrekt sind. Das ist auch sehr wichtig. Und jetzt haben wir die
Register-Methode und wir müssen dies in unserer
MC-Kurse-Mod-Klasse
zurückrufen, unserer Hauptmod-Klasse innerhalb
des Konstruktors genau hier, wir müssen mehr Items sagen Punktregister mit dem Event-Bus. Also müssen wir
in diesem Eventbus genau hier
in die
Register-Methode einsteigen. Und dann
wird auch das eigentliche
andere Register registriert. Wir müssen also sozusagen
unsere Listen
aller unserer Artikel registrieren sozusagen
unsere Listen . Und wie fangen wir an, wie fangen
wir an, einen Artikel hinzuzufügen? Nun, wir brauchen ein öffentliches statisches
endgültiges Registry-Objekt. Noch einmal mit den
Winkelklammern vom Typ item. Und das wird der
Kobalt-Unterstreichbarren sein. Jetzt können Sie noch einmal sehen, ich etwas habe,
das im
roten Registry-Objekt markiert ist . Ich
kann einfach drauf klicken. Und geben Sie ein, und es
importiert dann die richtige Klasse
, die wir benötigen werden. Und das wird gleich
zwei Punkte sein Punktregister. Der erste Parameter
wird eine Zeichenfolge sein. Und dieser Bus, oder wie
Sie bald sehen werden, Name automatisch generiert, Sie
müssen dies nicht eingeben. Sehr wichtig für Walt
Unterstrich Barren ist der Name. Dies folgt den gleichen
Regeln wie die Mod-ID. Nur
Kleinbuchstaben, Unterstriche oder Bindestriche und Zahlen, sonst
nichts. Und Sie können sehen,
nachdem ich das
Common hinzugefügt habe , heißt es jetzt Name. Dies wird wieder automatisch
generiert, dies geschieht durch die IDE, dies geschieht durch intelligent. Du
musst das nicht tippen. Und der zweite Parameter
wird ein Lieferant sein. Also haben wir offene und
geschlossene Klammern, wird durch diesen Pfeil
und dann einen neuen Gegenstand. Also neuer Artikel mit den
anderen Sachen hier drin. Also neue Elementeigenschaften, die Sie innerhalb des
Elementkonstruktors
sehen können , ich werde
dies einfach automatisch vervollständigen und dann Punktregisterkarte sagen. Und dann müssen wir auf einem Tab
liefern. Das ist also die kreative
Sterblichkeit, die es braucht. Und Sie können sehen, wo es
nur der Tab Diverses ist. Wir
doppelklicken einfach darauf und dann werden wir
damit einverstanden sein. Wir können sehen,
dass dies jetzt alles ist , was wir brauchen, um den Artikel zu
registrieren. Der Gegenstand wäre
bereits im Spiel. Natürlich hat es
noch keine Textur und hat auch
keine Funktionalität. Wir werden
in dieser Vorlesung hier keine Funktionalität
hinzufügen , aber in den folgenden Vorträgen
werden wir natürlich sehen, kann dies grundsätzlich hinzufügen. Nun, eine wichtige Sache ist, dass diese Elementeigenschaften hier
tatsächlich ein Builder-Panel sind, sodass Sie es danach
auf einen Punkt schlagen können Nach der Registerkarte können Sie
sehen, dass ich auch ein
paar andere Dinge wie nennen kann Sentinel-Reparatur, Feuerwiderstand, vielleicht
Rest, solche Sachen. Es gibt also ein paar coole Dinge , die ich hier im Grunde nennen kann, und es hat den Gegenstand auch auf diese
Weise verändert. Wir werden vorerst daran bleiben, nur den Tab
zu haben und
dafür nur den Tab
zu haben und einfach den Tab
Verschiedenes zu verwenden , und das werden fünf sein. Jetzt. Nun, was heißt das? Nun, es hat
noch keine Textur. Wie definieren wir das? Überhaupt keine Sorgen. Jetzt kommt die Ordnerstruktur, die sehr wichtig ist. Stellen Sie also sicher, dass Sie sich das genau ansehen und schauen Sie sich
das genau an. Es gibt hier
einen Rechtschreibfehler. Eigentlich wird
es geschafft haben , damit etwas nicht
funktioniert. Anstelle des Ressourcenordners wir mit der rechten Maustaste auf ein
neues Verzeichnis namens Assets. Und dann klicken
wir mit der rechten Maustaste auf neues Verzeichnis namens MC course. Das muss genau deine
MOD-ID sein. Sehr wichtig. werden
wir ein neues
Verzeichnis erstellen, alte Modelle. Wir werden auch ein neues
Verzeichnis namens lang LNG erstellen. Wir werden auch
ein neues Verzeichnis innerhalb
des MOOC-Kurses
über kalte Texturen erstellen . Bitte beachten Sie noch einmal, dass diese richtig
geschrieben werden müssen. Also im Models-Ordner werden
wir ein neues
Verzeichnis namens item erstellen. Und dann werden
wir wieder innerhalb des
Models-Ordners ein neues
Verzeichnis namens block erstellen. Was ich tun kann, ist, dass wir beide brauchen werden. Ich kann beide auswählen und
sie dann
in den Texturordner ziehen ,
während ich die Kontrolle halte, wodurch
diese Ordner dupliziert werden. Und weil
ich im Grunde auch den Block und
den Elementordner innerhalb
des Texturordners brauche . Beginnen wir nun oben
mit dem Längenordner. Im Längenordner
werden sich
die Übersetzungen befinden. Wir klicken also mit der
rechten Maustaste auf neue Datei. Und das wird der
EN unterstrich uns db.json. Sehr wichtig, dass
Sie den Punkt Jason hinzufügen, sonst wird er nicht
richtig erkannt. Das ist sehr wichtig.
Auch E und unterstreichen Sie uns, dass wir auch richtig
geschrieben werden, drücken Sie Enter und dann erscheint
die Datei. Dieses Fenster wird angezeigt. Wenn Sie ein GitHub-Repository haben das nicht haben, werden
Sie dies nicht sehen. Das ist vollkommen in Ordnung. Wenn Sie ein
GitHub-Repository haben, möchten
Sie grundsätzlich add sagen, weil es es dann im Grunde genommen
zum GitHub-Repository für
Ihr nächstes Commit hinzufügt , und die EN unterstreicht uns
JSON-Datei wird wie folgt gebaut. Ich beginne
mit einer geschweiften Klammer, die sofort die zweite
geschweifte Klammer für uns
generiert. Hier möchten wir das Element
übersetzen. Das Problem ist also, dass wir das
einfach austippen werden. Item Punkt AMC Kurs Dot
o Ball, Unterstrich, Barren, Doppelpunkt und
dann Altenglisch. Die allgemeine Idee
ist also, dass dies
der unbekannte lokalisierte Name
des Elements ist der unbekannte lokalisierte Name
des , da
dieser hier genau hier ist. Der Kobalt-Unterstreichbarren ist der Name, den wir diesem Gegenstand
gegeben haben. Es ist ein Gegenstand, und
das ist unser Motett. All das sollte
logisch sinnvoll sein, oder? Es sollte nicht so sein, warum passiert
das hier? Nein, nein, das sollte Sinn ergeben. Dies ist der lokalisierte Name. Warum haben wir das überhaupt? Warum müssen wir das
so wie eine JSON-Datei definieren ? Nun, es gibt
verschiedene Sprachen. Und wenn Sie für jede
dieser Sprachen
übersetzen möchten ,
als den lokalisierten Namen und
dann einen lokalisierten Namen
hier zu haben lokalisierten Namen und dann einen lokalisierten Namen , macht
das sehr sinnvoll. Eigentlich. Deshalb müssen
wir es so machen. erneut sicher, dass
die Ordnernamen
zerstört sind und auch der
Name einer Datei hier. Ansonsten sieht das gut aus. Gehen wir dann zur
Artikelmodelldatei über. Und das Artikelmodell
ist sehr interessant. Ich tippe das aus. Was wir also tun werden, ist
im Modell-Elementordner rechten Maustaste auf eine neue Datei namens der
rechten Maustaste auf eine neue Datei namens Kobalt-Unterstrich
Barren Punkt JSON. Der Name dieser Datei muss genau
mit dem hier
angegebenen Namen übereinstimmen. Dies ist auch sehr wichtig
und endet dann mit dem JSON. Nun, wie ich schon sagte,
werde ich das einmal austippen. Wir werden das
ziemlich schnell machen und dann
erkläre ich jeden Teil davon. Also werden wir
hier einen Elternteil
haben , Doppelpunkt, Elementschrägstrich, generierte
Munitionstexturen, offen gefallen, geschweifte Klammer, Ebene 0. Alles ein MC-Kurs, gefallener Gegenstand, Schrägstrich
oder Bolzenunterstrich. Ich sage vielleicht, was der
FREC hier passiert. Keine Sorge. Wir werden
das durchmachen. Das übergeordnete Element bestimmt hier, wie diese bestimmte Textur in Ihrer Hand
angezeigt wird. Und auch dreidimensional. Adam ist
im Grunde genommen nur, es wird die Textur ein wenig
extrudieren lassen , so dass
sie eine Art 3D-Look hat. Und das wird es im Grunde
sein. So wird also ein
normales Element angezeigt. Wir müssen dann
alle Texturen definieren. Und das müssen
Texturen sehr wichtig sein. Stellen Sie sicher, dass dies
alles richtig geschrieben ist. Layer 0, ebenfalls wichtig. Und dann definiert dies genau hier
im Grunde das Verzeichnis, in dem sich die
Textur befindet. Das wird sich also den Ordner „MC-Kurs Assets“ ansehen. Also Assets MC Kurs innerhalb
des Texturen-Ordners, genau hier unter Artikelschrägstrich Kobalt Englischer Punkt PNG, also item. Und dann haben wir da
nichts drin. Ich werde jetzt
das Extra kopieren, das in Git Dot PNG
sprudelt. Und sie gehen, und das
ist im Grunde genommen die Textur,
die es im Spiel zeigt. Eins. Ein sehr wichtiges Detail hier für die Texturen ist, dass bitte hier die Credits
Datei beachten. Alle Texturen werden also
durch Nano-Angriff erstellt und sie werden unter
dieser Lizenz direkt hier verteilt. Wenn Sie diese also in
einem öffentlichen Repository
verwenden möchten , folgen Sie bitte der Lizenz, fügen Sie diese Datei
einfach Ihrem
Projekt oder Ihrem Repository hinzu, und dann wird es Ihnen gut
gehen. Ich wollte nur erwähnen, dass dies ziemlich wichtig
ist. Sie können die Texturen verwenden. Denken Sie daran, dass
wir den Artikel registriert haben, bei dem tatsächlich alles
erledigt den Artikel registriert haben, bei dem tatsächlich alles
erledigt ist. Wir haben eine Übersetzung hinzugefügt, wir haben die
JSON-Datei des Elementmodells und die Textur hinzugefügt JSON-Datei des Elementmodells und die Textur . Zum ersten Mal können wir übrigens für Arbeiten einen
dieser roten Pfeile
sehen, einen
dieser roten Pfeile die Sie möglicherweise sind
bekommen ist
vollkommen in Ordnung. Dies kann manchmal passieren,
nachdem Sie grundsätzlich zum ersten Mal eine Anordnung
hinzugefügt haben , aber
das ist völlig in Ordnung. Sie sollten
dies ignorieren können, solange es
weitergeht und das Minecraft
tatsächlich beginnt, das sollte kein Problem sein. Und das geschah auch nur einmal oder vor ihm, Minecraft. Mal sehen, gehen wir
zum Tab Verschiedenes und gehen wir ganz nach unten. Und da ist es.
Der Kobaltbarren wurde erfolgreich zum Spiel
hinzugefügt. Das ist ziemlich cool
Alles in Betracht gezogen, oder? Und damit du es gesehen hast, lass uns auch das Nugget hinzufügen. Die Grundidee
hier ist also, dass wir keine zweite
Items Klasse benötigen. Dies ist manchmal der Ort, an dem
die Leute etwas verwirrt werden. Das einzige, was wir tun
müssen, ist, dass wir dieses
Registrierungsobjekt kopieren müssen . Ich mache Control
C, nachdem ich alles
ausgewählt und dann Control
V, füge es hier ein. Wir
müssen dies dann einfach in
Nugget umbenennen und dann auch
die Synagoge umbenennen. Für jedes Element, das
Sie registrieren, wird ein Registrierungsobjekt
zugeordnet. Das ist die allgemeine Idee. Und natürlich hat es
auch einen Namen. Wir brauchen also ein neues
Artikelmodell, JSON, aber lasst uns zuerst
ins
Ohr gehen und
uns hier die JSON-Datei unterstreichen. Und was wir tun werden, ist, dass wir diese Zeile einfach duplizieren, indem wir Control D
drücken und dann hier ein Komma hinzufügen. Und dann werden
wir das noch einmal in Nugget
umbenennen. Dieses Nugget auch. Und jetzt können
wir in unseren Artikelmodellen diese JSON-Datei einfach
nehmen und sie in denselben
Ordner ziehen, während wir die Kontrolle gedrückt halten, und dann duplizieren wir sie. Und dann können wir den
Namen hier ändern, auch navigieren. Dann ändert hier natürlich auch dieses Nugget. Und dann kopiere ich noch einmal
die Artikeltextur. Und das ist im Grunde der Vorgang
des Hinzufügens eines zweiten Artikels. Das ist also im Grunde immer
das, was du tun wirst. Es
wird einige Unterschiede geben, insbesondere wenn es
um die Modelldateien geht. Vielleicht sehen sie ein
bisschen anders aus. Aber insgesamt ist dies so
ziemlich immer das, was
Sie bei einem Registrierungsobjekt
bei der Übersetzung in die E
durchgehen müssen bei einem Registrierungsobjekt
bei der Übersetzung in die E
durchgehen und uns JSON-Datei
bei einem Artikelmodell JSON
unterstreichen. Und dann die Textur, das ist so ziemlich
alles, was es dazu gibt. Sie werden nur zur
Vollendung willen
sehen, ob es funktioniert oder
ob ich so ein Minecraft bin. Wie Sie sehen können, wurde
auch das Kobalt erfolgreich hinzugefügt. Das Spiel ist jedoch,
wie Sie sehen können, ziemlich einfach, wenn
Sie wissen, wie es gemacht wird. Und das ist nur eine Sache, Sie sich nur
vertraut machen müssen mit der
Sie sich nur
vertraut machen müssen und
im Grunde genommen Elemente hinzufügen müssen. Und es wird
im Grunde genommen zur zweiten
Natur für dich werden , oder? Aber das wird es schon
für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt. Der gesamte Code
steht Ihnen übrigens im GitHub-Repository oder einer
Person genauso gut zur Verfügung, dass Sie grundsätzlich nie alles selbst
eingeben müssen . Sie können auch einige
Dinge kopieren, wenn dies für das Lernen
für Ihre spezielle Idee
förderlicher ist . Ansonsten sehe ich dich in
der nächsten Vorlesung. Also ja.
41. (Minecraft Erstelle einen benutzerdefinierten Block: Alles klar, willkommen zurück
den vierten Kurs für 118. Und in dieser Vorlesung werden
wir Minecraft
benutzerdefinierte Blöcke hinzufügen. Die benutzerdefinierten Blöcke sind
etwas stärker involviert. Aber weil wir
im Grunde einen Teil
des Hinzufügens von Elementen gesehen haben , sind
die Blöcke ähnlich,
aber wie gesagt, ein bisschen mehr involviert
wie ein kleines bisschen anders, aber nicht zu viel. In unserem MC-Kurspaket wir mit der rechten Maustaste auf ein
neues Paket namens book. Und drinnen klicken wir mit der rechten Maustaste auf eine
neue Java-Klasse,
die als
Modus-Sperr-Klasse bezeichnet wird. Jetzt wird diese Klasse ein bisschen anders
sein,
aber vor allem werden
wir das öffentliche statische
endgültige verzögerte Register
des Blocktyps haben , um
sicherzustellen, dass wir Net
Minecraft-Weltebene wählen blockieren. Sehr wichtig, nicht die ewig geschworene
OpenJDK-Einheit, sondern der
Levelblock, der sehr wichtig ist. Und dann sagen wir, dass
Blöcke gleich
dem dritten
Registerpunkt erstellen Register sind, diese Box mit unserem
MC-Kursmodell, das MID. Und ob es sich um ein
anderes Register handelt, wir benötigen auch
ein Publikum, das
eine nichtige
Anruflistermethode mit dem Ereignisbus ist . Event-Bus. Und das nennen wir Box Dot Register
mit dem Event-Bus. Und bevor wir es vergessen, werden
wir es sofort in
unserer
MC-Kurse-Mod-Klasse hier aufrufen , mod blocks dot registrieren sich
beim Eventbus. Da gehst du. Jetzt ist das aufgeschobene
Register registriert. Und jetzt brauchen
wir
tatsächlich zwei Hilfsmethoden. Ich werde alles
eintippen und dann
erkläre ich , nachdem ich das getan habe, der Code für Sie
im GitHub-Repository oder einer
Einzelperson genauso gut verfügbar ist . Du musst hier nicht
alles tippen. Sie können es im Grunde auch
kopieren. Wenn ich also eine private statische
und dann die Winkelklammer habe,
verlängert T den Block void. Eigentlich machen wir
diesen Artikel, tut uns leid, lassen Sie uns dieses
Registry-Objekt von Elementen erstellen. Dann
ist der Name der Methode der Registerblock Atum
, der einen
String-Name-Parameter und
ein Registrierungsobjekt
vom Typ T haben ein Registrierungsobjekt wird
, das der Block sein wird. Das ist also der zweite Parameter. Und dies wird mehr Artikel
zurückgeben,
Artikel, die sich
mit dem Namen registrieren. Und dann ein Lieferant
eines neuen Buchelements mit der Registerkarte Blockpunkt-Punkt-Punkt Eigenschaften für
neue Elemente. Und lasst uns vorerst in
den kreativen
Tab MRTK setzen . Aber wir werden das tatsächlich
ändern. Eines der Probleme hier ist , dass wir jetzt im Grunde genommen
fest codieren, okay, das
wird immer auf der Registerkarte „Verschiedenes“ sein
, tatsächlich
einen dritten Parameter hinzufügen
, der der
reaktive Modus sein wird Reiter, Tab. Und dann werden
wir das genau
hier platzieren , was wir
im Grunde bedeuten können, Hey, wir werden den
spezifischen kreativen Tab mehr erstellen. Und dann formatiere ich
das einfach ein bisschen
anders. Da gehst du. Und dann haben wir
eine andere Methode , die eine private Statik ist. Wieder einmal verlängert die Winkelklammer
T einen Block
, der
dieses Mal auch
ein Registrierungsobjekt vom Typ T,
der Registerblock-Methode, zurückgibt dieses Mal auch
ein Registrierungsobjekt vom Typ T,
der Registerblock-Methode . Und das wird eine Zeichenfolge aufnehmen, wir nennen den Lieferantentyp T
und dann einen Block namens Brock,
und dann acht und dann
ein dritter Parameter
, das ist und dann einen Block namens Brock, und dann acht und dann
ein dritter Parameter
, die Registerkarte „
Kreativmodus“. Tab. Jetzt wird dieser folgendes
tun. Es wird zunächst ein
Registrierungsobjekt vom Typ T
erstellen oder,
das dem
Blockpunktregister entspricht,
den Namen mit dem Block zurückgeben das dem
Blockpunktregister entspricht, . Dann wird es bei der
Registerblock-Item-Methode
mit dem
zurückzugebenden Namen und der Registerkarte abkühlen . Und dann kehren wir zurück
, um zurückzukehren. Jetzt sehen diese Methoden
absolut verrückt aus. Sie sind jedoch nicht
wirklich so verrückt. Das sind also nur einige
Hilfsmethoden für uns denn wenn wir
einen solchen Block registrieren, oder? Wenn wir nur
Blöcke aufrufen, die sich registrieren, passiert
es, dass der Block erstellt wird, aber kein
Element für den Block erstellt wird. Und das ist eine Art
Problem, weil wir
Blockelemente für
jeden unserer Blöcke benötigen . Nun, es so zu machen, macht meiner Meinung nach viel Sinn. Wenn wir jemals auf einen Block stoßen, kein
Blockelement benötigt, was wir tun,
werden wir einfach eine andere Methode erstellen, die diese
Registerblock-Item-Methode
nicht aufruft. Und dann wird es uns im Grunde
gut gehen. Lieber heißt
das zum Beispiel das? Nun, es bedeutet, dass T nur ein
Generikum ist und es
bedeutet nur, dass alles, was hier in das T steckt, die Blockklasse erweitern
muss . Wir werden die Blockklasse sowieso immer benutzen, denn das ist alles
, was wir in diesem Fall wirklich brauchen
werden. Aber ja, das stellt nur sicher , dass dies der richtige Typ ist. Das Ziehen der
Registrierungs-Blog-Item-Methode sollte ebenfalls sinnvoll sein. Dies
registriert im Grunde nur das Element, das mit diesem Block
verknüpft ist , hier , dass wir im Grunde genommen ein
Hat den gleichen Namen erstellen , und das sollte
so ziemlich alles sein
dass du wissen musst, es das in den
Tab steckt, den wir hier übergeben. Also sollte alles in Ordnung sein. Lass uns das einfach in
Aktion sehen und mal sehen. Lassen Sie uns also ein öffentliches statisches endgültiges
Registry-Objekt vom Typ block erstellen. Wird der
Kobalt-Unterstrichenblock, dem Registerblock gleich
sein wird, mit dem
Namen Kobaltblock noch
einmal, war der
doppelte Unterstrich Block in diesem Jahr wichtig, generiert automatisch sozusagen das
Namensschild 2. Und dann ein Lieferant
eines neuen Blocks. Und das wird
Blockverhaltenseigenschaften aufnehmen, das Material.me. Und wenn ich dann einen Punkt einlege, kannst
du sehen, dass es
ein paar weitere Eigenschaften gibt , die
wir hier zwei Blöcke hinzufügen können. Was sind die
, die ich hinzufügen möchte, die Festigkeitseigenschaften. Dies ist also im Grunde die Zeit benötigt
wird, um diesen Block zu brechen. Und dann auch sehr
wichtig, dass wir anrufen, erfordert ein korrektes
Tool für Drops, das im Grunde
genau das tut, was ich wollte. Das ist auch nicht
kopiert dieses Zeug. Oh, es tut mir sehr leid. Das Ego. Und dann wird der dritte
Parameter
der Aktiv-Modus-Tabpunkt sein . Lass uns noch einmal
Verschiedenes machen. Aber dieser tut genau das, was
auf der Dose steht, erfordert ein auf der Dose steht, erfordert korrektes Werkzeug für Tropfen, da wir später
IT-Tools definieren müssen, im Grunde damit sich der
Kobaltblock tatsächlich selbst abfällt. Dies ist etwas, was wir in einem späteren Vortrag
sehen werden. Eigentlich fällt der Block ab, die werden mit
Lou Tischen, Wissenden gemacht. Wir werden das schaffen. Dies
ist jedoch wieder der Block und
das zugehörige Blockelement, das mit diesem
registriert wurde. Ich empfehle dringend,
auch nur mit einigen der Eigenschaften
herumzuspielen ,
die Sie hier hinzufügen können.
Sie können sehen, dass es hier einige
gibt , die
Sie im Grunde hinzufügen können. Normalerweise werden wir sehen, wie ein paar von ihnen die Vorträge durchlaufen. Aber schauen wir uns jetzt die JSON-Dateien an, da diese
sehr interessant sind , weil
wir im
MC-Kursordner genau hier ein neues
Verzeichnis oder Blockstatus hinzufügen müssen. Es ist auch sehr wichtig
, dass richtig geschrieben wird. Und ich werde das noch
einmal austippen. Also werden wir hier eine
neue Datei namens Kobalt-Unterstrich-Block-Punkt-Punkt-Punkt Jason erstellen, stellen Sie
erneut
sicher, dass dies
korrekt geschrieben ist und
das Ende JSON hat. Dies ist also der Name
, den es haben muss. Und dann tippe ich
das aus. Also geschweifte
R1-Sekunden-Klammern, Varianz, Doppelpunkt, frühe Klammer, leere
Anführungszeichen, geschweifte Klammer des
Doppelpunkts. Und dann Modell Doppelpunkt, MC-Kurs, Doppelpunktblock, Peitsche,
Kobalt, Unterstrich Block. Was passiert hier? Nun, der Blockstatus definiert
im Grunde verschiedene Varianten
desselben Blocks. In unserem Fall haben wir hier
keine Abweichung, da dies nur ein normaler Block
sein wird. Und das
deutet jetzt auf ein Blockmodell JSON hin. Also in unseren Modellen kaputte
Datei sucht es nach einem Kobalt-Unterstrich
Block-JSON-Datei. Also klicken wir mit der rechten Maustaste
auf diese neue Datei, Kobalt unterstrichen blog.js. Und das
sieht tatsächlich
dem Artikelmodell aus, das
wir zuvor gesehen haben. Geschweifte Klammern,
Elternteil, gefallen, Block, Slash Cube, alle
Komma-Texturen gefallen. Nur Rekord. Alle Doppelpunkt, MC-Kurs, Doppelpunktblock,
Kobalt, Unterstrichenblock. Das Blockmodell
bestimmt, wie der Block innerhalb der Welt
aussieht.
Was heißt das? Nun, während die
Blockzustände auf Affen mit einem
bestimmten Blockmodell verweisen, bestimmt
das Blockmodell
die Texturen Blocks und bezieht sich dann im Grunde genommen auf diese
Textur genau hier. Und wir brauchen auch ein
Artikelmodell für unsere Blöcke. Das ist sehr wichtig. Oh, das
wird tatsächlich ein
neuer Kobalt-Unterstrich blog.js sein . Dies sieht jedoch ein
bisschen anders aus. Dies wird
geschweifte Klammern und dann übergeordnete gefallene
MC-Kurs in Brock Slash
Kobalt Unterstrich Block haben. Dies bezieht sich dann auf dieses Blockmodell
und lässt es
irgendwie in 3D erscheinen , dass Blöcke innerhalb des t0-Inventars
erscheinen. Kopieren wir die
Kobaltblock-Textur direkt hier in den Buchhalter. Und dann lass auch die Übersetzung
hinzufügen. Ebenfalls sehr wichtig. Lassen Sie uns das kopieren. Und dann nennen wir
das den Block MC Course Kobaltblock. Und das ist natürlich
ein Block, den sie her sind. Nun, das ist alles, was wir noch einmal wiederholen
müssen ,
wir müssen hier
das
Registrierungsobjekt für diesen bestimmten Block erstellen . Wir benötigen dann eine Block
States JSON-Datei, eine JSON-Datei des Massenmodells, eine
JSON-Datei des Elementmodells und die Textur. Dies ist eine allgemeine Idee. Und nachdem wir gesehen haben,
ob es funktioniert oder nicht, sehen
wir auch einen
zweiten Block B, der im Grunde genommen hinzugefügt wurde , damit
Sie ein anderes Beispiel haben. Aber im Moment sehen wir, ob es funktioniert oder wir
uns dafür im Hinterkopf haben. Wie Sie sehen können, wurde der
Cobol-Block hinzugefügt, also legen wir ihn
ab und sie gehen, es sieht ziemlich toll und alles funktioniert gut. Wenn es also Probleme
mit diesem Block gibt, oder? Wenn also
Texturen fehlen, können
wir grundsätzlich
eine Checkliste durchgehen , die Sie überprüfen können. Wenn der Block also nur
keine Textur im
Inventar hat, ist
es das Artikelmodell
Jason, das schuld ist. Textur
funktioniert auf der Welt nicht, funktioniert
aber
im Inventar. Es muss der Block States
Jason sein, das ist schuld. Und wenn es in
keinem von ihnen funktioniert, dann ist es entweder das
Blockmodell JSON oder alle von ihnen. Das ist also eine allgemeine
Checkliste, die Sie
durchgehen und im Grunde überprüfen können . Aber jetzt, nur für, du weißt, dass du ein anderes Beispiel
hast, lass uns einen weiteren Block hinzufügen, oder? Dies
beinhaltet also noch einmal viel Kopieren hier. Also werden wir das kopieren,
ich füge es ein. Dies wird das Kobalt oder der Block sein, und dann wird
dies der Kobaltunterstrich sein
oder anstelle von Metall wird das nicht sein. Und das wird
eher als fünf Stärke sein ,
nur Kraft, oder? Das wird gut werden.
Jetzt ist der Rest hier in Ordnung. Dies hat den Block jetzt
registriert. Natürlich
brauchen wir jetzt das Buch, das besagt, dass Reason Model Jason
und den Artikel alter Jason mitgebracht hat. Kopieren wir dies einfach indem wir es in denselben Ordner ziehen,
während wir
die Kontrolle halten und den Namen hier
ändern, um zu blockieren, Kobalt oder Thema hier. Dies verweist nun auf ein Blockmodell Jason im Ordner genau hier, das
Kobaltunterstrich oder Punkt-JSON genannt wird. Wir werden das auch
in das Namensjahr für die
Textur
erstellen , auf die es verweist, die wir
in nur einem Moment hinzufügen werden. Fügen wir die
Übersetzung auch sofort hinzu. Aber was ODER, und natürlich
der Name hier, wer das Ego
unterstreichen wird. Kopieren Sie auch das Kobalt- oder
Artikelmodell und benennen Sie es um. Oder und dann unterstreichen
oder auch hier. Und dann brauchen wir nur
die Textur dafür. Ich kopiere
das auch. Und da hast du es. Jetzt wird der nächste Block gemacht. Und ja, wieder einmal, das ist einfach die normale
Vorgehensweise. musst du nur in der nächsten Vorlesung
durchgehen . Grundsätzlich haben Sie eine Aufgabe,
zwei eigene Blöcke hinzuzufügen. Das
geht im Grunde genommen um
Kobaltblock und den Deep State
Cobol oder Block zu rocken . Das ist also nur etwas, das
man im Grunde beachten sollte. Abgesehen davon
sehen wir einfach, ob die Fertigstellung gesucht wird, ob der oder
Block ebenfalls hinzugefügt wurde oder nicht. In Ordnung, wir finden diese
Rücken und Mikrovesikel. Sehen Sie, dass das Kobalt oder der Block ebenfalls erfolgreich zum Spiel
hinzugefügt
wurde. Also funktioniert
hier alles super. So
einfach ist es eigentlich auch,
einen zweiten Block hinzuzufügen , oder? Wie ich bereits
sagte,
wird die nächste Vorlesung einige Aufgaben beinhalten. Ich empfehle
Ihnen dringend,
dies durchzugehen , da es sehr,
sehr positiv sein kann und nur
eine sehr gute Idee ist, diese
im Grunde zu tun nur damit Sie ein
bisschen Gefühl bekommen. Wieder einmal ist der gesamte Code für die Vorträge
hier
im GitHub-Repository oder
einer Einzelperson genauso verfügbar . Aber das wäre es für
diesen Vortrag genau hier. Ich hoffe, Sie fanden das nützlich
, wenn Sie etwas
Neues lernen und wir sehen uns
in der nächsten Vorlesung. Oh ja.
42. AUFGABE 5: Block & Artikel: Oder ich komme zum ersten Auftrag für
den vierten Kurs in
der Minecraft-Sektion. Und wie ich
bereits gesagt habe, werden
Sie hier im Grunde
zwei Blöcke und einen Gegenstand erstellen. Das sollte eigentlich
nicht zu verrückt sein. Hoffentlich findest du die Aufgabe irgendwo in einem
schriftlichen Ort. Im Grunde genommen
haben Sie die Aufgabe auch
als schriftliche Frage. Und die Idee ist, dass
Sie
den Felskobol-Block
sowie den tiefen
Schieferkobalt oder Block hinzufügen den Felskobol-Block
sowie müssen. Jetzt sind die Texturen für diese
Blöcke verfügbar. Gleiche gilt für den Artikel. Bitte beachten Sie, dass die
Credits- Datei hier für die Texturen
einer bestimmten Lizenz folgt. Wenn Sie sie also
in einem öffentlichen Repository
oder ähnlichem verwenden möchten , beachten Sie bitte,
dass die
Gläubiger, wie gesagt, einreichen. Und für den Artikel fügen
Sie den
rohen Kobaltartikel im Grunde hinzu, und das wäre es so
ziemlich. Andere sollten alle nicht zu verrückt für dich
sein. Hoffentlich, wenn Sie
die letzten Vorträge
gesehen haben , sollte es
ziemlich einfach sein. Nun, viel Glück und viel Spaß
bei der Aufgabe. Also ja.
43. LÖSUNG 5: Block und Artikel: In Ordnung, werfen wir einen Blick auf die Lösung für den
ersten Auftrag hier. Und natürlich
war es hoffentlich ziemlich einfach. Sie haben gerade die beiden
Registrierungsobjekte für
die beiden Sperren hinzugefügt , die
wir hinzufügen wollten. Gleiche gilt für den Artikel
hier, das rohe Kobalt. Und dann brauchten wir nur die
Blöcke, diese JSON-Dateien, die einfach auf zwei verschiedene
Blockmodell-JSON-Dateien verweisen, die wiederum im
Grunde auf die Texturen hier zeigen. Und dann wird die Übersetzung
, die an
dieser Stelle sein sollte , hoffentlich
zur Routine. Und dann brauchten wir nur die Becken des
Artikelmodells. Und dazu gehört auch
das Felskobalt, das dann genau hier
auf eine Textur hinweist. Insgesamt war
dies hoffentlich leicht zu tun. Und das ist so ziemlich
alles, was du
tun musst, um das in deinem Spiel zu haben. Und wir werden
im Grunde genommen das rohe Kobalt und all
die anderen Dinge
auch in Zukunft verwenden im Grunde genommen das rohe Kobalt und all . Oh, es ist definitiv eine gute Idee, dies auch
in deinem Spiel zu haben. Der gesamte Code ist natürlich auch im
GitHub-Repository oder
in einer Einzelperson
genauso verfügbar . Und wir sehen uns in
der nächsten Vorlesung. Also ja.
44. (Minecraft Benutzerdefinierte kreative Tab: Alles klar, willkommen zurück
zum Futterkurs für 118. In dieser Vorlesung
werden wir dem Spiel
unser eigenes Tablett für kreative
Modi hinzufügen . Dies ist eigentlich ein ziemlich einfacher und unkomplizierter
Prozess. In unserem Artikelpaket wir mit der rechten Maustaste auf eine
neue Java-Klasse, die als
Modell Creative
Mode, Tabs oder Tab bezeichnet wird . Dies wird Folgendes
implementieren. Dies wird eine
öffentliche statische endgültige Lesung
der Registerkarte „Modus“ namens „
Korps-Unterstrich-Registerkarte“ haben , die einem neuen entspricht. Und du kannst Norris nur
die Registerkarte „Kreativmodus“ sehen. Und wenn wir die Tabulatortaste drücken, generiert
es die, generiert eine anonyme
Klasse für uns. Wir
müssen das hier tatsächlich
mit einem Semikolon betreten . Und anstatt hier null
zurückzugeben, und wir werden weiter abwandern,
ist ein neuer Item-Stack. Weitere Gegenstände Punkt Kobalt,
Barren, Dot bekommen. Und dann fügen
wir drinnen eine Zeichenfolge hinzu. Dieses Label wird hier wieder
automatisch generiert. Und das wird nur die Registerkarte „Kursmodell“
sein. Welchen Gegenstand Sie auch hier einlegen, auch welcher Block Sie hier
einsetzen, wird das Anzeigebild
für die eigentliche Registerkarte sein, und dies wird
für die Übersetzung benötigt. Also werde ich
das tatsächlich kopieren. Und wir gehen zu
unserer E und unterstreichen uns die
JSON-Datei
ganz unten hier. Und wir fügen einfach den Doppelpunkt
CourseMatch Tab CourseMatch
hinzu, fügen Sie den Doppelpunkt der Elementgruppe hinzu. Und wir nennen
das den MC-Kurs. Nicht. Das ist okay. Jetzt ist dies ein Ausreißer in
Bezug auf Übersetzung hier haben wir ein großes G für das Großbuchstaben G für
die Artikelgruppe. Und dann natürlich Mod
Tab mit äußerster Idee. Aber das ist so ziemlich alles
, was wir tun müssen, um es hinzuzufügen. Jetzt fügen wir auch unsere
Artikel und unsere Blöcke hinzu. Anstatt den Kreativmodus
zu sagen,
tippen Sie hier auf, wir werden kreativer,
mehr Tab und Punkt Course Tab sagen. Kopieren Sie dies einfach über die
Auswahl, drücken Sie Strg C und dann Control
V, um es
hier einzufügen und
dasselbe genau hier zu tun. Grundsätzlich überall wo Sie die Registerkarte „Verschiedenes“
haben. Wir werden jetzt den Kurs-Tab
eintragen. Und jetzt werden alle unsere Artikel
und unsere Blöcke jedoch im Vier-Schritt
sein. Mal sehen, ob es funktioniert oder wir befinden uns
wieder in Minecraft. Und ein sehr gutes Zeichen
ist, dass wir hier
eine zweite Seite haben , um MC-Kerne
MOD zu sehen und alles ist hier genau so, wie Sie es
erwarten würden. Das ist perfekt. Und einfach
alles funktioniert genau so, wie man es schreiben möchte, schon für diese
Vorlesung genau hier
ist. Ich hoffe, Sie fanden dies in Jurten des Neuen
nützlich, wenn er unsere sehr
geschätzte Rezension von Ihnen gemacht hat. Ansonsten sehe ich dich in
der nächsten Vorlesung. Also ja.
45. (Minecraft Neue Rezepte: Alles klar, Willkommen zurück bei
dem Futterkurs für 180. Und in dieser Vorlesung werden
wir Minecraft
benutzerdefinierte Rezepte hinzufügen, oder benutzerdefinierte Rezepte
werden über benachbarte Dateien erstellt. Sie werden nicht
im Assets-Ordner, sondern in einem neuen Ordner ausgeführt. also in den Ressourcen mit der rechten Maustaste auf ein
neues Verzeichnis namens Daten oder Daten innerhalb
ihres MC-Kurses und dann innerhalb
ihrer Rezepte. Was nun sehr
wichtig ist, ist noch einmal, dieses Verzeichnis vollständig und vollständig korrekt
geschrieben sein muss ,
sonst funktioniert es nicht. Und ich zeige im Grunde ein
Beispiel für jedes Rezeptjahr. Wie ich schon sagte, diese sind wieder im
JSON-Format. Und was wir
tatsächlich tun können , ist, dass wir hier unten in die
externen Bibliotheken gehen können . Wir können das erweitern. Und dann wirst du
irgendwo unten finden, weißt
du, runter. Aber endliche Minecraft
neun zusätzliche 180, eine oder was auch immer die
aktuelle Version ist. Wenn Sie dies erweitern und in den Datenordner
gehen, sehen
Sie Minecraft und dann alle JSON-Dateien
, die sich in Minecraft befinden. So
können wir uns zum Beispiel jede dieser JSON-Dateien
ansehen . Dies sind im Grunde alle
Vanille-Rezepte wie „Auszahlen“. Wie
funktioniert das? Sie können sehen, dass Kohle kühl oder interessant
springt, aber Sie können bereits sehen, dass es verschiedene
Arten von Rezepten
gibt. Wie wird der Komposter,
wie wird der Verbrenner hergestellt? Du siehst das. Du siehst O-Tag, interessant. Okay, wir benutzen hier Tags. Kochzeit könnte ausgefranst sein. Wir haben Dinge wie den Keks. So findest du hier grundsätzlich
Beispiele für Sachen. Ich empfehle dringend,
das durchzugehen und hier rein zu gehen. Wenn Sie jemals
ein Rezept haben, das Sie im Grunde neu erstellen möchten, können
Sie es einfach finden. Man kann dann zum Beispiel
für den Knochenblock hier sagen , oder? Oh, das ist wirklich eine
Sache, die ich machen möchte. Sie können grundsätzlich
Strg C drücken, um es zu kopieren. Gehe zurück zu deinen Ordnern, geh hier rein und kontrolliere
V, um es einzufügen. Und dann
könnte ich zum Beispiel sagen Kobaltblock von Barren wo sie hingehen,
und dann
öffne ich das und dann kannst du
jetzt sehen, dass öffne ich das und dann kannst du
jetzt sehen ich es natürlich ändern kann. Und die allgemeinen Ideen so gut, du hast verschiedene
Arten von hier, oder? In diesem Fall haben wir
ein Formrezept. Das Muster ist gefüllt.
Was ist das Muster? Ist der Elternteil drei
Strings der Länge drei? Dies stellt also
das Handwerksraster dar. Dies ist der obere linke Slot und dann der obere rechte Slot
und so weiter und so weiter. Das sollte also nicht
zu verrückt sein, um es zu verstehen. Wir können hier Schlüssel einlegen. Sie können also sehen, dass
dieses Hashtag-Symbol in diesem Fall
grundsätzlich einen
neuen Artikel der Schüssel darstellt.
Nun, wir werden dies
in unsere Kundenartikel ändern. Also
sagen wir MC Course Colon oder kauften Unterstrichenbarren. Und dann wird das Ergebnis hier
natürlich MC-Kurs-Dolon
oder fett unterstrichener Block
sein . Aber das alles
sollte im Moment tatsächlich
Sinn ergeben und
sollte nicht zu verrückt sein. Aber das ist ein geformtes Rezept, wie gesagt, weil es eine bestimmte Form
hat. Was jetzt auch funktionieren würde,
ist so etwas. Dann müssten Sie
entweder
die beiden oberen Reihen oder
die unteren zwei Reihen in
der Handwerksbank abrechnen die beiden oberen Reihen oder
die unteren zwei Reihen . Sie
müssen also nicht immer drei oder drei Saiten
lang sein . Es gibt auch Arbeiten. So etwas, das zum Beispiel das
Boot
wäre, würde auch funktionieren, weil
man das Boot
entweder ganz oben oder
auch unten einsetzen kann. Das ist also sehr wichtig. Und ich werde tatsächlich alles
kopieren Ihnen
im GitHub Repository
oder einer Einzelperson
zur Verfügung steht . Sie können zuerst
sehen, dass es sich um
ein formloses Rezept handelt ,
weil wir die Zutat
im Grunde
überall in die
Bastelbank legen können die Zutat
im Grunde
überall in die
Bastelbank legen . Und das ist im Grunde
ein Kobaltblock, oder? Und dann kriegen wir
Roboterbarren und dann neun von ihnen. Im Grunde genommen ist dies das Gleiche
wie dieser im Gegenzug, oder? Umgekehrt können
Sie die neun
Barren jedoch aus einem Block zurückholen. Und dann haben wir
diese beiden, die die Barren oder
das Schmelzen sind . Du kannst also sehen, dass ich
das Kobalt oder in
einen Barren riechen kann . Gleiche gilt dafür, aber
lasst uns einfach schmelzen oder sprengen wird ziemlich
selbsterklärend sein ,
alles in Betracht gezogen. Und dann können
Sie nur als Beispiel einfach verwenden,
Wir werden mehrere Schlüssel. Auf
diese Weise benutzt man sie. Und Sie können
Minecraft-Gegenstände auch entweder als Ergebnis oder als
Bastelgegenstand verwenden, das völlig gut funktioniert. Als gäbe es überhaupt kein Problem
damit. Das ist also
eine Art allgemeine Idee, Jahresende, Naja, in nicht
ganz der nächsten Vorlesung, aber der Vortrag
danach, wenn ich mich nicht irre, werden
Sie
Ihre eigenen Rezepte machen und im Grunde genommen habe ein paar
Ideen von dem, was du machst. Aber sie sind alle
ziemlich einfach. Obwohl es insgesamt das
war's. Sehr wichtig. Die externen Bibliotheken
empfehlen sehr , dies
durchzugehen,
da es auch den Assets-Ordner in dem alle Sperrzustände, der Lang, die Texturen auch
hier enden, Die Texturen sind hier drin. So können Sie sich
im Grunde alles ansehen, auch
die Modelldateien. Daher empfehle ich dringend, hier die externen
Bibliotheken
durchzugehen hier die externen
Bibliotheken
durchzugehen da dies
einfach
das Beste ist , was Sie sich jemals ansehen können. Wenn du es nicht weißt,
Hey, wie kann ich
ein Rezept machen , das genau
wie x in Vanille ist? Geh einfach hier rein,
sieh es dir an. Ganz einfach, überhaupt keine Sorgen. Dies ist jedoch ein sehr
einfacher Prozess. Aber mal sehen
wir vorerst, ob es funktioniert oder warum wir uns
wieder in Minecraft befinden. Also lasst uns zuerst das
Kobaltinnere ausprobieren und sie gehen und kobalt
blockieren und mal sehen, ich kann die neun
Barren auch zurückholen. Und was Sie auch finden
werden, ist, dass es automatisch so
wird, wie Rezepte auch im
Rezeptbuch. Das ist also echt nett. Und mal sehen, ob wir
auch das Kobalt riechen können oder, und natürlich können wir,
das ist völlig in Ordnung. Das funktioniert auch. Obwohl
alles hier gut funktioniert. Und auch nur aus
Gründen der Argumentation, warum nicht versuchen, den
Diamantenstapel hier zu machen, die Ego 64-Diamanten
funktionieren auch. Netter Wrapper, das wäre es
schon für diese
Vorlesung genau hier. Ich hoffe, Sie fanden diese Nützlichkeit
und Unkenntnis des Neuen. Wieder einmal sind alle
JSON-Dateien
im GitHub-Repository
oder wo eine
Einzelperson genauso gut verfügbar im GitHub-Repository
oder wo eine ist. Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
46. (Minecraft Drops mit Loot: Alles klar, willkommen zurück
zum vierten Kurs für 118. In dieser Vorlesung werden wir
einen Blick darauf werfen, Minecraft benutzerdefinierte
Routentabellen
hinzuzufügen. Oder ein loser Tisch
definiert im Grunde genommen , was aus einem Block
fällt. Dies ist auch einer der
Gründe, warum wir hier
die erforderlichen richtigen
Tools für Drops hinzugefügt haben , das alles genau dort. Denn wenn wir das nicht haben, im Grunde jedes Werkzeug, mit dem
Sie diesen würde
im Grunde jedes Werkzeug, mit dem
Sie diesen Block blockieren könnten den tatsächlichen Lu-Tisch
oder die Rock-Drops fallen lassen sozusagen den tatsächlichen Lu-Tisch
oder die Rock-Drops fallen lassen. erneut in unserem Datenordner im MC-Kursordner mit der rechten Maustaste auf ein neues Verzeichnis
namens Loot Underscore-Tabellen. erneut sicher, dass
es richtig geschrieben ist. Dann drinnen ein neues
Verzeichnis namens blocks. Und dann kopiere ich tatsächlich
den Beutentisch für den
Kobaltblock, um das zu sehen. So sieht es also aus. Es ist vom Typ Block. Es gibt einen Pool und dann haben Sie grundsätzlich andere
Einträge in diesem Pool. Wir können diese Rute einmal sehen,
da gibt es hier den Eintrag, einen Eintrag vom Typ Item. Und dann lassen wir im Grunde
einen Kobaltblock fallen oder all das kann manchmal
etwas verwirrend werden, besonders wenn ich jetzt über den Beutentisch
für das Kobalt
kopiere oder wegen
blockiert natürlich funktioniert das ein
bisschen anders. Wir werden sehen, dass dies
komplizierter ist, als es zunächst merkwürdig wäre. Aber was wir haben,
ist, dass wir nur einen Eintrag haben. Was es ist, ist sozusagen ein
Alternativeintrag. Und die Idee hier ist, dass es
entweder das
fallen lässt und es geht, es wird dies fallen lassen, wenn
die Bedingung hier erfüllt ist,
was bedeutet, dass die Verzauberung
an unserem Werkzeug Silk Touch sein muss
. Und dann lässt es das
Kobalt fallen oder sonst wird
es zwischen 25 Ra fallen. Das ist die allgemeine Idee hier. Und Sie können sehen, dass
es auch
einen Bonus anwendet , wenn es um die
Glücksverzauberungen geht. Das ist etwas, das in diesem Fall auch
mit einer Funktion
gemacht wird . Ich empfehle dringend noch einmal, auf die
externe Bibliothekseinheit zu
gehen, Microwave Client extra ein 1801, anstelle des Datenordners werden
Sie auch feststellen, dass
der Ordner für anspielte Tabellen. Und dann kann man
sich alle Loops ansehen, Tische aus allen Vanilleblöcken. Ich kann es sehr empfehlen. Ich kann nicht genug empfehlen, hier
runter zu gehen und mir das nur anzusehen. Ich gebe Ihnen auch andere Ressourcen, die wirklich wichtig
sind. Einer von ihnen ist der
Wiki-Eintrag aus dem Micro-Fan und Wiki, denn
hier werden Sie
tatsächlich all die
verschiedenen Dinge sehen , all die verschiedenen Dinge die Sie können im Grunde genommen eingelegt. Sie können sehen, dass hier
eine Menge Sachen drin sind. Empfehlen
Sie
dringend, sich das anzusehen, im Grunde genommen wie es funktioniert. Und dann gibt es noch
einen, und das wird
falsch ausgerichtet sein Punkt-GitHub
IO Beutetisch. Und das ist ein
Rodeltabellen-Generator. Stellen Sie einfach sicher, dass Sie hier oben
auf 118 sind. Und wenn du das hast, kannst
du im Grunde
alles ändern. Du kannst sagen, Hey, ich möchte
ein paar bestimmte Funktionen. Sie können sehen, dass dies alle
Funktionen sind, oder? Sie werden sie nach
bestimmten Bedingungen fragen wie eine zufällige Chance. Du kannst so sein, Hey,
ich frage mich, ob die Entität von einem Spieler
getötet wird, all das, all das, all
das, all das. Es gibt also eine wahnsinnige Menge an Sachen, die Sie hier im
Grunde hinzufügen können. Ich empfehle dringend,
offen für Experimente zu ein paar Sachen
auszuprobieren. Dies ist das Beste, was
Sie für Loop-Tabellen tun können. Und ich bin mir sicher, dass Sie es zu
diesem Zeitpunkt schaffen werden, etwas wirklich
Lu-Tisch zu bekommen, das
genau das ist, was Sie sich wünschen
würden. Aber das ist eigentlich
nicht alles, was wir
tun müssen , weil wir tatsächlich etwas anderes hinzufügen
müssen. Und das ist noch einmal
in unserem Datenordner Klicken Sie mit der rechten Maustaste auf das neue Verzeichnis
namens Minecraft, das Spiel, das Sie vielleicht davon gehört
haben. Und dort müssen
wir
ein neues Verzeichnis hinzufügen , alte Tags. Und dann müssen
wir dort ein neues
Verzeichnis namens blocks hinzufügen. Und dann müssen
wir dort ein neues
Verzeichnis namens mineable hinzufügen. Warum brauchen wir das? Nun, wir müssen definieren, was
unsere Blöcke, unsere Gedankenbreite. Und dafür
gehen wir tatsächlich in den Datenordner
Minecraft, Eier, Blöcke, und dann werden wir die
Unterkiefer genau hier sehen. Was ich tun werde, ist, dass ich sie
einfach alle auswähle und die Steuerung C
drücke, um sie zu kopieren. Dann gehe ich hier rein und
drücke Control V, um es einzufügen. Habe all diese JSON-Dateien mit all den
Vanilla-Blöcken hier. Was ich tun kann, ist
einfach, dass ich alles auch auswähle und es
einfach oder
all diese JSON-Dateien loswerde. Aber das sind Tags. Jetzt können
Sie sich Tags im Moment im Grunde genommen als eine Sammlung
verschiedener Blöcke oder Elemente
vorstellen verschiedener Blöcke oder Elemente , die eine ähnliche
Funktionalität wie sie haben. Wir werden auch
in einem späteren Vortrag durchgehen, welche Blöcke es gibt . Aber
vorerst werden
wir dem Pic X Jason einfach alle
Blöcke hinzufügen , die wir
haben. Das wäre also
MC-Kurs-Doppelpunkt-Kobalt-Unterstrichenblock. Und dann werde ich das nur viermal
duplizieren. Dies ist dann eine
Felskobol-Blockwand oder dann auch der IEP-Schiefer. Sehr wichtig
ist jedoch, dass Sie
nur Blöcke definieren können , die in Ihrem MOD
vorhanden sind. Wenn ich jedoch nicht
das tiefe Kobalt hätte oder ich hier hinzufüge, bekomme ich einen
Fehler, wenn ich versuchte, einer Welt
beizutreten , die
sehr wichtig ist. Und dann gibt es
noch drei Dinge, die ich brauche. Und das ist, naja, das Niveau des Werkzeugs, das ich
für dieses andere Level brauche. Also kann ich im Grunde
danach suchen. So können Sie sehen schöner Diamant 200
Eisen braucht, um Steinwerkzeug zu benötigen. Noch einmal kopiere ich
alle drei davon. Ich empfehle dringend, dasselbe zu tun. Diese stehen Ihnen natürlich auch
im GitHub Repository oder einer
Einzelperson genauso gut zur Verfügung. Und dann mache
ich das einfach und wir
sagen das einfach und dann das Steinwerkzeug auch
einfach los. Und so
sagen wir zum Beispiel, wissen Sie was, ich denke, dass Cobol und
es zumindest Eisenwerkzeuge sind. Was wir also tun werden,
ist, dass ich
MSE Kurs Doppelpunkt o
Bolt Unterstrich Block sagen werde. Und dann merkst du, weißt
du was? Nehmen wir die einfach, kopieren sie rüber und
legen sie hier rein. Das ist ein bisschen einfacher. Sie gehen. Wir können
also nur diejenigen mit
mindestens einem Eisenwerkzeug abbauen. Und hoch, das ist die Idee. Also Eisen Werkzeug und höher, wir werden diese jetzt abbauen können, jeden neuen Block, den wir hinzufügen, müssen
Sie diesen Tags
hinzufügen. Ich werde das wahrscheinlich nicht machen
, während wir weitermachen. Ich werde es definitiv
nicht zeigen, denn an dieser Stelle, weißt du, wenn du es einmal gesehen hast, solltest
du sie wahrscheinlich
sehr leicht selbst hinzufügen
können. Es sollte ziemlich
einfach sein, aber das sollte alles sein
, was Sie tun müssen. Und nachdem
wir die Tags und
die Lautentabellen hinzugefügt haben , Mal
sehen, ob es funktioniert. Oder wir haben Sagen in Minecraft gefunden. Also mal sehen, ob ich das abbauen kann und sie gehen die Blockabfälle. Und hier sollten wir uns etwas
roh für Walt besorgen und das haben wir getan. Damit alles vollkommen gut
funktioniert. Versuchen wir es auch einfach mit
einer Steinspitzhacke und Sie können schon sehen, dass es ziemlich lange
dauert, also funktioniert es wahrscheinlich nicht. Und Sie können sehen, dass es mit dem Diamond aX nicht
dasselbe ist. Es dauert so lange, bis
einmal wie beginnt zu sehen, dass die brechende Animation nicht einmal einen Versuch wert
ist. Natürlich wird es nicht
funktionieren, genau da gäbe es schon für diese Vorlesung genau hier. Ich hoffe, Sie fanden
dies in Bezug auf
das neue nützlich , wieder einmal alle JSON-Dateien
sind
im GitHub-Repository oder in
einer Einzelperson verfügbar . Und wir sehen uns in
der nächsten Vorlesung. Also ja.
47. AUFGABE 6: Rezept und Loot: Okay, willkommen zurück
zur zweiten Aufgabe hier für den Kurs für 118. Und in dieser Aufgabe solltest
du
ein paar lose Tische
und ein paar Rezepte hinzufügen . Die Rezepte, die Sie hinzufügen
sollten, sind die Nummer 1. Das Rezept für die Nuggets. Dafür kann ich einen Barren hineinstecken
und neun Nuggets rausholen. Und dann natürlich noch einmal
umgekehrt, wo ich grundsätzlich neun Nuggets in
die Bastelbank
stecken und
dann einen Barren rausholen kann . Das ist die Nummer eins. Nummer zwei ist, Sie
sollten auch
die Rezepte für den
tiefen Schieferbrunnen hinzufügen oder geschmolzen werden, sowie das rohe Kobalt oder zum Schmelzen. Und dann auch in der Lage sein, den rohen Kobaltblock
dazu und dann im Grunde auch
wieder zurück
herzustellen . Und dann
ist noch eine Sache, dass Sie
ein Rezept hinzufügen sollten , das
mindestens zwei Vanilleartikel enthält. So ähnlich wie die
Stapeldiamanten von einem anderen Stern. Damit haben wir es hier geschafft, müssen hier
nur zwei
Minecraft-Artikel enthalten. Und dann können
Sie den Rest grundsätzlich ausfüllen, wie
Sie möchten. Es kann zu
allem führen, was Sie
gerne kreativ sein möchten, und probieren Sie einfach ein paar Sachen
aus, oder? Also viel Glück und viel
Spaß mit der Aufgabe. Also ja.
48. LÖSUNG 6: Rezept und Loot: In Ordnung, Willkommen bei dieser
Lösung für diese Aufgabe. Und natürlich, wenn wir
die Rodeltabellen hinzufügen, beginnen
wir damit, wäre ziemlich einfach
gewesen. Jahr haben wir im Grunde nur
den Cobaltblock-Beutentisch genommen den Cobaltblock-Beutentisch und durch
den Cobol-Block der Reihe ersetzt. Dann gilt das Gleiche für den Kobalt- oder Beutentisch aus tiefem
Schiefer, wo anstelle von
Kobalt oder es fällt das späte Kobalt oder Reihenkobalt hier
immer noch normal fallen sollte. Das sind also die Lautentische. Und wenn es um die Rezepte
geht, kann
man sehen, dass es einige gibt. Insgesamt sollten diese auch ziemlich
einfach
sein, oder? Das Letzte aus dem tiefen Schieferkobalt oder es wird ziemlich einfach
sein, ist das Gleiche wie der normale,
nur, weißt du, mit dem
tiefen Zustand da drin. Und so ziemlich das
Gleiche gilt für den Rest davon. Alles davon sollte
ziemlich selbsterklärend sein. Alles in Betracht gezogen.
Wenn überhaupt, bleibt unklar oder Sie haben
Fragen, können
Sie natürlich jederzeit
das zur Verfügung gestellte Q und ein verwenden . Und ich werde die
Fragen am besten beantworten. Aber sonst
wäre das für diesen Auftrag genau hier. Hoffe, du hast das nützlich
und Anführer des Neuen gefunden. Wir sehen uns allerdings in der nächsten
Vorlesung. Ja.
49. (Minecraft Erweiterter Artikel: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung
werden wir Minecraft
ein benutzerdefiniertes Advanced
Item hinzufügen . Was ich jetzt als
erweitertes Element nenne, ist im Grunde ein Element, dem eine eigene
Klasse zugeordnet ist. Dies bedeutet nicht immer, dass es notwendigerweise verrückt fortgeschritten ist, aber Sie haben im Grunde
die
Möglichkeit, diesem Artikel viel mehr Funktionalität
hinzuzufügen . Also lasst uns einfach sehen,
wie das geht. In unserem Artikelpaket. Wir klicken mit der rechten Maustaste auf
ein neues Paket namens Custom. Und dann würde
dort keine neue Java-Klasse mit der rechten Maustaste auf die neue Java-Klasse
namens „Dowsing Rod Item“ machen . Ich empfehle dringend jeden benutzerdefinierten Artikel mit dem Wort Item zu beenden, damit
Sie wissen, was es ist. Dies erweitert die
Item-Klasse genau hier, wird den Mauszeiger über diesen Create,
Konstruktor passt super. Und dann schauen wir uns im Grunde an, was wir tun können. Wenn wir also mit der mittleren Maustaste auf die Item-Klasse
klicken, können
wir tatsächlich alle verschiedenen Methoden sehen , die wir
möglicherweise überschreiben können. Und Sie können sehen, dass es viele
Methoden
gibt , die wir hier außer Kraft setzen
können, was wirklich cool ist. Und es gibt sogar ganz hinten hier, ich schmiede einen Gegenstand, auf den wir
auch mit der mittleren
Maustaste klicken können , und es gibt noch mehr Methoden
, die wir überschreiben können. Sie können auch die
Methoden sehen, die wir
überschreiben können , wenn wir hier Override eingeben
. Und dann können Sie
im Grunde alle verschiedenen Methoden sehen , die zum Überschreiben möglich
sind. Und das sind viele Methoden,
wie Sie deutlich erkennen können. Es kommt also wirklich darauf an, noch einmal ein paar Sachen
auszuprobieren und ein paar Sachen auszuprobieren. Und noch einmal ein paar Sachen
ausprobiert, offen für Experimente zu
sein, wahrscheinlich das Beste, was
ich Ihnen im Grunde sagen kann. Jetzt werden wir
einen Gegenstand der Werbetrute herstellen. Und ich möchte damit anfangen, ist
das Folgende. Ich möchte mit diesem
Element in einem Block mit der
rechten Maustaste klicken können . Und dann wird es sich im Grunde in den Boden
erstrecken. Schauen Sie sich im Grunde jeden Block an , der sich unter dem Block befindet
, auf den wir gerade geklickt haben. Und wenn es einen
wertvollen Block findet
, werden
die Koordinaten ausgedruckt .
Das ist alles was ich tun will. Das ist schon
eine ziemlich interessante Idee. Alles, was wir sehen, wird die Rechtsklick-Methode sehen, wenn
Sie mit der rechten Maustaste auf Blöcke klicken, da es
zwei verschiedene Methoden
gibt , mit der rechten Maustaste auf Nanoblock
und sozusagen mit
der rechten Maustaste in die Luft zu klicken. Also können wir es einfach nutzen, und Sie können diese
Verwendung genau hier sehen. Dies ist derjenige, der heißen
würde. Diese Methode würde
aufgerufen, wenn wir einfach mit der rechten Maustaste in die Luft ,
damit
Sie dies wünschen würden. Die Methode US on ist
hier die Methode, die aufgerufen wird
, wenn Sie
mit der rechten Maustaste auf einen bestimmten Block klicken. Aber das ist derjenige, den
wir
hier außer Kraft setzen und sehen, dass
es den Kontext verwendet. Und was wir tun werden, ist, dass
wir es einfach tun werden, nun, ich werde die
Funktionalität einsetzen und
versuchen, es am besten zu erklären,
während ich weitermache. Wir werden also
eine if-Anweisung haben , bei der
wir
im Grunde den p-Kontext fragen werden
, der ein Level erreicht. Also kriegen wir die Welt. Das Level hier, sagen
wir, ist Kundenseite. In diesem seltenen, seltenen Fall wollen
wir in
diesem Fall eigentlich
alles auf dem Kunden machen , weil es uns tatsächlich etwas
interessanter
ist. Also sagen wir
block Pause, Position. Anklicken ist gleich
dem Kontext-Punkt, Position
abrufen, DIA,
geklickt werden, hier pausieren. Und der Modul
wird dies
durch Drücken von Alt und Enter importieren . Dann wollen wir den Spieler. Der Spieler wird
Kontexte sein, Punkt-Dot-Dot-Player, den du gehst. Und dann noch einmal auf Player
klicken und diesen dann auch mit
Alton
importieren. Und dann haben wir nicht
zuletzt ein boolesches
Buch, das hier gleich falsch ist. Und dann wollen wir eine for-Schleife. Also werde ich einfach
diese for-Schleife einsetzen und
dann schauen wir uns an
, was das
im Grunde tut. Aber wir fangen hier an. Ich werde sagen, dass ich mehr
gleich Position darauf geklickt habe, hol y i plus plus. Und dann möchte ich im Grunde den Block bekommen, der
sich unter
dem Block befindet, den ich mir
gerade angeschaut habe. Blockieren Sie also unten, was dem p-Kontextpunkt
entspricht, wieder Level bekommen, nicht Sperre, Datum an
der bestimmten Position, die die Position ist, auf den Punkt unten
geklickt, genau wie viel
ich aufzähle. Und dann
holen wir einfach den Block davon und importieren den Block, indem wir erneut Alt
und Enter drücken. Was ich dann
will, ist, dass ich die Koordinaten
ausgeben möchte und ich muss auch überprüfen,
okay, ist dieser Block,
weißt du, etwas Wertvolles. Dafür werden wir zwei Hilfsmethoden
erstellen. Jetzt kopiere
ich tatsächlich die Ausgabe der
Koordinaten, oder? Dies ist die Ausgabemethode hier. Wir können also sehen, dass wir nur den Namen des Blocks
bekommen und dann
die Koordinaten herausgeben. Das ist also alles, was wir hier
wirklich machen. Und dann wollen wir auch
ein privates boolesches,
altes, wertvolles Schloss, das hier nur einen Block
einnimmt. Und wir geben dann einfach ein
True zurück , wenn dies ein wertvolles Buch ist, was wir tun werden, ist, dass
wir
Block Equals Blocks
Punkt-Umfrage zurückgeben oder zum Beispiel oder LOC gleich, Sperren oder, oder. Und dann lass uns einfach das duplizieren wird hier
noch eine Orange haben. Formatiere das ein
bisschen anders. Wenden Sie das an. Ja, und dann werden wir
auch Diamant
oder vielleicht auch
Eisenerz hier einsetzen . Und Eisenblock aber
Eisen oder sie vor. Dies sind die vier wertvollen
Blöcke vorerst. Wenn Sie mehr möchten, können
Sie in einer späteren Vorlesung natürlich weitere
hinzufügen. Wir werden auch einen robusteren Weg
sehen dies mit Tags zu tun. Aber vorerst wird
das gut werden. Was wir dann sagen werden
, dass wir
sagen werden , wenn es wertvoll ist, gehen Sie einen Block unten. Wir werden die
Koordinaten
jedoch in der Position ausgeben, auf die unten
geklickt wurde, mit I hier, da dies die
tatsächliche Position ist, auf die wir gerade mit dem Spieler
und dem Block unten
geklickt haben. Wir setzen dann fest, dass der gefundene
Block wahr ist. Und dann brechen wir hier
aus der for-Schleife aus, weil
wir einen Block gefunden haben. Und wir
müssen grundsätzlich
keine Überprüfung mehr durchführen , da wir nur den
ersten Block ausgeben wollen, den wir finden. Und wenn wir
mit der for-Schleife fertig sind, werden
wir sagen,
wenn nicht noch Blöcke gefunden. Das bedeutet also, dass kein
Block gefunden wurde. Wir werden
Spielerdaten und Nachrichten mit einer neuen
übersetzbaren Textkomponente angeben. Artikel, MC Kurs Dowsing,
Rod Dowsing, kein Unterstreichungswert. Und dann nach den Klammern wird
der zweite Parameter Player
Dot Get UUID vor einem Jahr sein . Dies ist natürlich eine Möglichkeit, eine Nachricht in den Chat
auszugeben. Nun, dies ist eine übersetzbare
Textkomponenten, also müssen wir dies
genau hier nehmen und es
der un-unterstrichen
uns JSON-Datei hinzufügen . Also werden wir das einfach
hinzufügen und einfach keine Wertsachen
aussagen. Ich empfehle,
übersetzbare Komponenten
überall dort zu verwenden , was Sie im Grunde genommen
nur ein bisschen robuster machen nur ein bisschen robuster oder auch in anderen sprechenden
Ländern. Im Grunde genommen, wenn
Sie eine andere
Sprache haben , die es gerade ein
bisschen schöner macht zu lesen
und zu verwenden. Was ist der Rest? Was ist hier los?
Nun, zuerst stellen
wir sicher, dass
wir beim Kunden sind. Dies ist normalerweise nicht der Fall. Normalerweise möchten wir auf dem
Server sein, aber in diesem Fall, weil wir nur etwas
ausgeben Auf
dem Client ist in Ordnung,
weil diese Verwendung tatsächlich alles zweimal
auf dem Server erfolgt und
die client wird dann einfach zwei Variablen hier
erstellen. Also die Position, auf die du
geklickt hast, und dann der Spieler. Und wir werden dann
vom Ende der Welt
bis zur tatsächlichen
Position gehen , auf die wir geklickt haben. Das wird y sein. Und wir werden anfangen,
wenn wir das erreicht haben. Was wir jetzt tatsächlich tun
müssen , ist,
dass wir dieses winzige Stück
hier im Blockzustand tatsächlich
ändern müssen . Denn wenn ich hier unten eine negative
Zahl einfüge, würden
wir natürlich plötzlich
über alles hinausgehen. Also kann ich tatsächlich auch darauf
eingehen. Mal sehen. Wir werden in dieser Entfernung
in die Abwärtsposition
gehen. Jetzt ist das eigentliche Problem natürlich, dass die Entfernung
hier negativ ist. Und natürlich gehen wir einfach nach
oben, anstatt runter zu gehen. Und wir wollen tatsächlich eine
64 hinzufügen , weil es natürlich, anstatt dass 0 die
Grenze der Welt
ist, jetzt negativ 64 ist. Deshalb
müssen wir dies im Grunde auch um ein 64-Jahr erhöhen und dann
sollte der Rest völlig gut funktionieren, denn der erste Block, den wir uns buchstäblich
ansehen werden , ist der Block selbst
, den wir gerade haben geklickt. Und dann, wenn ich eins werde, werden wir
eins runtergehen und so weiter und so weiter bis wir bis
0 sind, wenn wir das erreichen. Aber dann
ist es die Sache, dass wir dann weitermachen können. Dafür darunter. Deshalb fügen wir hier eine 64 hinzu. Insgesamt sollte dies
alles sein, was wir tun müssen. Gehen wir zur Klasse Mehr Items und lassen Sie uns die Elemente erstellen. Wir werden das einfach kopieren und das zur Rute
machen. Und dann hier die
gleiche Werftrute. Statt eines neuen Gegenstandes ist
dies ein neuer Gegenstand der Dowsing Rute. Dies ist äußerst wichtig
, dass Sie dies tun. Bitte beachten Sie, dass es
sich um einen neuen Dowsing Rute handeln muss. Sonst wird es diese Funktionalität natürlich
nicht erhalten. Sehr vorsichtig mit. Fügen wir auch die
Übersetzung hinzu. Es gibt also eine Dowsing Rute, und hier
ist es eine Dowsing Rute. Lassen Sie uns das
englische Artikelmodell
hier für die Dowsing Rute kopieren . Und ändere den Namen
hier, Dowsing Rod. Und dann kopieren wir auch die Wurfstangen-Textur in
den Items Ordner genau hier. Dowsing Rod sie vor. Und jetzt sollte das
alles sein , was
wir brauchen werden. Obwohl. Mal sehen, ob es funktioniert. Ordnung, wir befinden uns in Minecraft und wie Sie sehen können, das Dowsing oder wurde dem Spiel
hinzugefügt. Mal sehen, ob ich mit der rechten Maustaste klicke. Nun, das ist eine
großartige Sache zu sehen. Ihr, das ist natürlich nicht
ganz das, was wir im Sinn hatten. Sie können keine Wertgegenstände sehen,
die völlig gut funktionieren. Dies ist nur die tatsächliche
Ausgabe ist natürlich, würde
etwas schöner zu lesen gemacht werden, aber keine Sorgen. Wir können die tatsächliche
Position davon sehen. Und nun, ich meine, das ist
absolut perfekt. Das scheint völlig gut zu
funktionieren. Und alles ist gut. Jetzt gibt es
tatsächlich zwei Dinge , die wir auch hinzufügen sollten, und das ist in den
Artikeleigenschaften, ich sollte auch die
Haltbarkeit genau hier hinzufügen. Und das wäre zum Beispiel
16, also können wir es 16 Mal benutzen. Und dann sollten wir
auch sicherstellen , dass wir die Gegenstände tatsächlich
beschädigen. Dies wird also
außerhalb der if-Aussage geschehen. Wir werden
P-Kontexte sagen, Punkt-Dot-Dot-Dot, einen Gegenstand in
die Hand
bekommen, der weh tut und kaputt geht. Nach dem einen. Wir sagen P-Kontexte,
Punkt-Dot-Dot-Dot, Spieler holen. Dann werden wir sagen, mach eine Klammer, wo wir den Spieler hier
einsetzen, dann einen Pfeil,
und dann sagen wir, Spieler-Punkt-Übertragung, Break Event mit dem
Ebenenpunkt benutzte Gegenstandshand. Dies wird also im Grunde jedes Mal, wenn wir diesen Artikel verwenden
,
eine Haltbarkeit
erhöhen oder subtrahieren . Und dann stellt das im Grunde
nur sicher , dass wir eine gewisse Haltbarkeit haben. Sie sind etwas
, das wir auch
nicht stapeln können , was natürlich sehr sinnvoll ist. Lassen Sie uns dann auch
nur aus Gründen
des Arguments in diesem Fall sein, anstatt den GetName zu machen, machen
wir einfach als Element und
holen Sie dann den Registrierungsnamen und setzen ihn
dann in eine Zeichenfolge. Das sollte auch funktionieren. Ich glaube, das sollte dann Minecraft-Doppelpunkt
ausgeben, und dann was auch immer
der eigentliche Block ist, was auch völlig in Ordnung ist. Das sind nur einige
Anpassungen hier. Der gesamte Code steht Ihnen
natürlich in einem GitHub-Repository zur Verfügung und auch
individuell. Aber das wäre es für
diese Vorlesung genau hier. Ich hoffe, Sie fanden dies in Euro des Neuen
nützlich, und wir sehen uns in
der nächsten Vorlesung. Also ja.
50. (Minecraft Erweiterter Block: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten erweiterten
Block hinzufügen . Ähnlich wie beim erweiterten Artikel. Und Advanced Block benötigt eine
eigene separate Klasse. also im Blockpaket rechten Maustaste auf ein neues
Paket namens custom. Irgendwie klicken
wir mit der rechten Maustaste auf neue Java-Klasse,
die als SPD-Block bezeichnet wird. Und der Spirit Block wird die folgende
Funktionalität
haben. Wenn wir weitermachen, werden
wir einen Effekt auf uns anwenden. Und das ist die
Bewegungsgeschwindigkeitseffekte werden
im Grunde schneller werden. Jetzt erweitert dies
die Blockklasse und
stellt sicher, dass wir
einen
Minecraft-Minecraft-Welt-Level-Block wählen . Sehr wichtig. Und dann bewegen wir den Mauszeiger über diesen Creed-Konstruktor, der super
passt. Und wenn der Parameter
hier nicht zugeordnet ist, können wir
einfach darauf klicken, Umschalttaste F6
drücken und dann Eigenschaften
wählen, nur damit es
ein bisschen schöner aussieht. Und dann ist die Methode
, die wir
überschreiben möchten , die Schritt-on-Methode. Also geben wir das einfach ein und drücken
dann Tab zwei.
Schließe das ab. Und wieder
können wir mit der rechten Maustaste auf die Blockklasse klicken und
wir können viele verschiedene Methoden sehen, die wir überschreiben können, wahrscheinlich sogar mehr
als im Element. Und das ist natürlich
nicht der Fall, denn es gibt auch eine
I4-Block-Schnittstelle , die
noch mehr Methoden hat, mit
denen Sie dies außer Kraft setzen können. Sie können sehen, dass das verrückt
ist und viele Methoden,
die ich wärmstens empfehlen kann. Wieder einmal ist es einfach
offen für Experimente. Sie können sehen, ob ich hier mit
der Eingabe von Override angefangen habe. Es gibt die US-Methode , die zum
Rechtsklick oder Blockieren verwendet wird. Es gibt Methoden wie Add Landeeffekt
bei Laufeffekten. Das ist verrücktes Zeug. Ernteblock kann Block ernten. Das ist wie bei einem
bestimmten Gegenstand, Canvas erntet den Block. Wir haben eine wahnsinnige Menge an Dingen, wie Sie alles
klar sagen können. Es gibt die Zerstörungsmethode, Es gibt die
Feder-Hover-Text-Methode, und dann einige von ihnen
, die hier veraltet sind. Jetzt, normalerweise, wenn
Sie eine veraltete Methode
wie zum Beispiel die onRemove- oder die US-Methode haben. Die US-Methode ist ein
großartiges Beispiel dafür, bedeutet nicht immer, dass Sie sie nicht verwenden sollten. Das bedeutet, dass
Sie
diese Methode nicht aufrufen sollten , einschließlich
der Super Cool. Aber das ist etwas, das
man hier im Hinterkopf behalten sollte. Aber für uns interessieren wir uns nur für
den Schritt auf die Methode. Und was wir hier überprüfen möchten,
ist im Grunde genommen Wir sind nicht auf dem Kunden oder das
muss eintippen, ist Ausrufezeichen P
Level clientseitig. Jetzt ist dieses Ausrufezeichen
hier äußerst wichtig. Okay, mach es nicht ohne das Ausrufezeichen, denn ohne das Ausrufezeichen überprüfen
wir ein
fremdes, die Clients, die wir auf dem Server sein möchten
. Wir müssen
dies sehr wichtig annullieren. Dann wollen wir
prüfen, ob das Unternehmen, das
darauf getreten ist, ein Lebewesen ist oder nicht. Dies bedeutet einfach, dass wir es
ohne Probleme umsetzen können. Wir können also Lebewesen sagen. Und Entität ist gleich
der E-Entitätspunkt-Besetzung Und dann wird es meistens Lebewesen schon
vorschlagen. Das ist also großartig. Und was wir dann tun können, ist,
wenn es ein Lebewesen ist, können
wir Dot Add-Effekt nennen. Und hier
wollten wir im Grunde nur eine neue Mob-Effekt-Instanz
aufrufen. Hier geben wir einen Mob-Effekt ein
, was immer wir wollen, in diesem Fall ist es
Bewegungsgeschwindigkeit. Und dann wird der zweite Parameter hier die Länge sein. Dies ist also die Zeit
, die dieser Effekt hat. Wenn wir 200 einsetzen würden, wären
das 200 Zecken. Teilen Sie dies also durch 20, um die Zeit
in Sekunden einfach zu erhalten. Und Sie können auch
einen dritten Parameter hinzufügen, und das wird der Verstärker sein. Das ist also im Grunde
ein Additivverstärker, bedeutet, dass, wenn Sie hier nichts
haben ,
es
einer sein wird , das wird sp2 sein, das wird sp3
und so weiter und so weiter sein. Das ist also die
allgemeine Idee hier. Lasst uns einen machen, nur
damit wir das auch sehen können. Und nun, das ist
so ziemlich alles, was wir
im Bereich der Funktionalität für
die schnelle Blockkraft tun müssen im Bereich der . Jetzt müssen
wir es immer noch registrieren. Wir werden einfach
über das Deep Sleep Cobol oder
hier kopieren und
wir nennen dies den SPD-Unterstrich. Und dann der Name
das Gleiche, schneller Unterstrich Block. Dann sehr wichtig. Dies ist dieses
Mal wieder ein schneller Block und kein normaler Block. Die anderen Dinge, mit denen ich
tatsächlich zufrieden bin, jetzt kommt es nur noch
um die JSON-Dateien , die ich kopieren werde. All diese stehen
Ihnen natürlich auch im GitHub-Repository oder
einer Einzelperson zur Verfügung. Sehen Sie, dass dies nur ein
normales Blockmodell ist. Jason. Dann lassen Sie uns das
hier kopieren und sagen ET
Unterstrich Block. Und dann
wird der Name schnell blockiert als Kopie über das
Blockmodell. Wieder einmal auf ein
normales Blockmodell,
das auf eine Textur hinweist. Und das Artikelmodell besitzt
auch nichts Verrücktes oder Spektakuläres. Es ist nur ein normales Artikelmodell,
wie wir es bei vielen
anderen Blöcken gesehen haben , das einfach auf das Blockmodell
zurückweist. guter Letzt fügen
wir natürlich auch
Textur und Ego hinzu. Jetzt haben wir alles hinzugefügt
, was wir hinzufügen müssen. mal sehen, ob es funktioniert. Oder Straftaten zurück und
Migräne können sehen, dass die SVD pleite zu den Spielen
hinzugefügt wurde. Lass es uns einfach ablegen. Und was sehr
wichtig ist, ist,
dass dieser Pfeil zwar in diese Richtung
zeigt, aber immer in diese Richtung egal wie ich ihn absetze. Das werden wir einfach im Hinterkopf behalten. Weil diese Textur
im Grunde immer
in die gleiche Richtung zeigen wird. Wir werden
in einem späteren Vortrag sehen wie sich das ändern kann. Lass uns hier zur Schule gehen und
du kannst sehen, dass ich mich
bereits bei mir bewerben kann,
während ich dort bin. Ich werde das ständig auf mich
zutreffen lassen. Aber sobald ich losgehe,
siehst du jetzt, dass ich auch Geschwindigkeit habe. Dies könnte zum Beispiel ein wirklich
cooler Block sein,
für jede Art von
Abenteuerkarte oder wie Parkour-Map, möglicherweise Gummi, für
diese Vorlesung genau hier schon
wäre. Ich hoffe, Sie fanden dies
in Bezug auf die neue Kraft nützlich. Wieder einmal
steht Ihnen der gesamte Code
im GitHub-Repository oder einer
Einzelperson genauso gut zur Verfügung. Wir sehen uns in
der nächsten Vorlesung. Also ja.
51. (Minecraft Benutzerdefiniertes Brennelement: Alles klar, willkommen zurück
zum Futterkurs für 118. In dieser Vorlesung
werden wir Minecraft
einen benutzerdefinierten Brennstoffartikel
hinzufügen . Das Hinzufügen eines benutzerdefinierten Brennstoffartikels ist eigentlich
ziemlich einfach. wir jedoch tatsächlich müssen wir jedoch tatsächlich eine neue
Klasse erstellen. also in unserem benutzerdefinierten
Paket hier
mit der rechten Maustaste auf die neue Java-Klasse, die
als Kohlesplitter bezeichnet wird. Und dies wird die Item-Klasse
erweitern. Lasst uns den Mauszeiger über dieses Erstellen bewegen,
Konstruktor passt super. Und dann müssen
wir wirklich nur eine bestimmte Methode außer Kraft setzen. Und das ist D bekomme Brenndauer. Genau hier. Wir doppelklicken einfach darauf
und dann kehren wir jeder Zeit zurück, die dieser
tatsächliche Artikel zum Brennen benötigt. Jetzt werden
wir für unsere Zwecke für eine 100 tun. Wieder einmal ist dies
die Zeit, die es braucht, also ist das sehr wichtig. Und zum Beispiel
hat Kohle eine Brenndauer von 1600, also ist dies genau 1 Viertel, gut
wie Fieberbläschen. Gehen wir nun zu unserer Klasse für
mehr Gegenstände und kopieren wir einfach
über die Werftrute. Dies wird der
Kohle-Unterstrich sein. Und im selben Jahr
unterstreicht Kohle Splitter und
stellt sicher, dass wir keine Haltbarkeit
haben . Das ist sehr wichtig. Und dass wir hier
eine neue Kohle einen
Splitter-Gegenstand kreieren. Abgesehen davon ist das
alles, was wir tun müssen. Natürlich
brauchen wir immer noch ein Artikelmodell. Kopieren wir einfach
das Artikelmodell
des Kobaltbarren und wir nennen das den Kohleunterstrich. Und dann ändere ich mich auch in
diesem Jahr. Cool, wir unterstreichen die Leber. Vergessen Sie nicht, auch die
Übersetzung hinzuzufügen. Wir werden Splitter unterstreichen. Schlimmer noch, dies
die OLS-Leberkraft zu nennen. Und dann nicht zuletzt, sondern auch über
den Artikel kopieren. Genau hier in unseren
Items Ordner für Intro, den
Texturen-Elementordner sie vor. Und das ist eigentlich alles
, was wir tun mussten. Mal sehen, ob es in Minecraft funktioniert oder
weiterleitet. Und lasst uns einfach die
Küste des Ehemannes sehen. Und natürlich
funktioniert es vollkommen gut. Und man sieht, dass
das Feuer im Grunde gut, ziemlich schnell
abnimmt. Alles in allem
sollte es im Grunde 20 Sekunden dauern
, dass es Verbrennungen gibt, also sollte es
für genau zwei Gegenstände reichen. Das Stinken vollständig,
im Grunde genau 1 Viertel des tatsächlichen
Kerngegenstandes können wir rochen. Also würde ich sagen, das ist ziemlich cool. In Ordnung, und
so einfach kann es sein,
den benutzerdefinierten
Brennstoffartikel zu Minecraft hinzuzufügen . Und ja, leider müssen
Sie hier immer
eine neue benutzerdefinierte Klasse erstellen,
was
Sie theoretisch auch tun
können, ist, dass Sie eine anonyme Klasse
in den weiteren Elementen hier
erstellen können . Aber ich schlage nur vor, es
so zu tun , weil das
einfach viel einfacher ist. Seien wir einfach ehrlich, denn das ist nicht allzu verrückt. Und es sollte auch in Ordnung sein. Sie können immer ein neues Paket
erstellen das wie Treibstoffartikel
kostümiert ist, und dann einfach alle
Ihre Artikel hineinlegen wenn Sie sich wirklich
darüber ärgern, mit diesen Klassen, das
sollte auch möglich sein. Sonst wäre das
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen. Und wir sehen uns allerdings in der
nächsten Vorlesung. Ja.
52. (Minecraft Benutzerdefinierte Lebensmittelgegenstand: Alles klar, willkommen zurück
im Futter Course Room 118. Und in dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten Lebensmittelartikel hinzufügen . Das Hinzufügen eines benutzerdefinierten Lebensmittelartikels ist eigentlich nicht so schwierig. Du brauchst im Grunde nur
einen normalen neuen Artikel. Also brauchen wir hier nur einen neuen Artikel. Und das wird
eine Rübe sein. Und natürlich gilt das
Gleiche hier, Rübe. Und wenn wir es
tun müssen, müssen wir
die Dot-Food-Methode
genau hier nennen die Dot-Food-Methode und
einige Lebensmitteleigenschaften weitergeben. Anstatt diese
Lebensmitteleigenschaften in Einklang zu bringen, werden
wir
nun eine neue Klasse erstellen und das Artikelpaket
mit der rechten Maustaste auf die neue Java-Klasse
namens Mode Woods klicken. Und dann kann man dieses Essen
im Grunde kreieren. Das Vanille-Beispiel
wäre die Klasse des Essens. Drücken Sie also zweimal die Umschalttaste
und legen Sie hier Lebensmittel ein. Stellen Sie sicher, dass Sie hier die Elemente
ohne Projekt einschließen
ankreuzen . Und dann können wir
das öffnen und sie gehen, jetzt haben Sie im Grunde
Zugang zu allen Lebensmitteleigenschaften
,
die Bonilla auch anbietet, damit Sie grundsätzlich wissen
können, was
Sie dort hinzufügen sollten. Also werden wir hier unser
eigenes Lebensmittelobjekt hinzufügen, also machen wir eine öffentliche Statik. Final, gute Eigenschaften
werden auftauchen. Und dann ist das
gleich einem neuen Essen von Partys, die Baumeister. Und wir werden Nahrung
hinzufügen. Aber das ist die Anzahl der AF-Treffen im Grunde genommen, die
Sie wiederhergestellt werden. Der Sättigungsmodus ist im Grunde das, was im Hintergrund
passiert. Und dann, nur
damit Sie es gesehen haben, können
Sie hier auch einen
Effekt hinzufügen, da Sie
sehen können , ob wir hier einfach
einen Anbieter einer neuen
Mob-Effekt-Instanz verwenden können , zum Beispiel die mobilen Effekte, diese Bewegungsgeschwindigkeit oder sagen
wir mal wieder 200 Ticks. Und dann gibt man auch eine Wahrscheinlichkeit ein, wie
oft das passiert. Wenn du zum Beispiel
sagst, weißt du was? Ich möchte eigentlich nur, dass es 10 Prozent der Zeit
passiert. Dann setzt man Punkt 1 f ein. Am Ende musst du
immer mit einem hier gebauten Punkt und dem Ego enden. Und das ist im Grunde genommen
die Rübe fertig. Und jetzt
wird dieses Jahr genau hier angerufen. Wir werden nur
Mod von Lebensmitteln sagen, die auftauchen. Und vor ihnen ist das
alles, was wir
tun müssen, um den benutzerdefinierten Lebensmittelartikel hinzuzufügen. Jetzt
brauchen wir natürlich immer noch sowohl die Textur als auch die JSON-Datei ls des
Elementmodells. Vergiss jetzt, und die
Übersetzung auch hier. Rübe ist natürlich ein Verb. Und dies wird
das Rübenartikelmodell sein, das
ein normales Artikelmodell ist , wie wir jetzt viel Zeit
gesehen haben, das einfach auf diese
einzigartige Textur hinweist. Und nun, nachdem wir all das
hinzugefügt haben, Mal sehen, ob es in Minecraft funktioniert oder
anstößig ist. Also lasst uns einfach die Rübe essen. Wie Sie sehen können, wurde es
hinzugefügt und es hat genau
einen Hungerriegel aufgefüllt. Die Idee ist also, dass
wenn man zwei Hälften einsetzt,
das natürlich zwei Hälften füllen würde,
was bedeutet, dass ein See,
ein Hühnerbein,
eine im Grunde genommen die
Bar genau dort trifft. Stimmt's? So einfach kann es sein , Minecraft benutzerdefinierte Lebensmittel hinzuzufügen. Stimmt's? Und das würde sich für
diese Vorlesung genau hier Sorgen machen. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen. Wir sehen uns in
der nächsten Vorlesung. Also ja.
53. (Minecraft benutzerdefinierte Tooltips: Alles klar, willkommen zurück
beim Futterkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten Tooltip hinzufügen . Und was ist ein benutzerdefiniertes Tool? Nun, es ist genau
das, was Sie sehen, wenn Sie den Mauszeiger über
einen bestimmten Gegenstand bewegen. Aber zuerst werden
wir es dem Gegenstand der Dowsing Rute hinzufügen , da wir dafür
normalerweise eine benutzerdefinierte
Artikelklasse benötigen. Wir werden jedoch auch
sehen, wie wir
es schaffen können und im Grunde auch
zu den Blöcken hinzugefügt werden, denn das ist
etwas,
nach dem viele Leute in der Vergangenheit gefragt haben. Also wollte ich das auch
zeigen. Also werden wir damit
beginnen,
die
Methode append Hover Text genau hier zu überschreiben . Also geben
wir einfach einen Stift Hover Text ein und vervollständigen ihn
dann automatisch
mit der Tabulatortaste. Und dann
brauchen wir das nicht mehr denn was wir wollen,
ist, dass wir den Mauszeiger über die eigentliche Dowsing
Rute bewegen wollen und dann etwas wie Redshift
für weitere Informationen
sagen wird . Und wenn wir dann die Umschalttaste
gedrückt halten, können wir im Grunde
den eigentlichen Tooltip sehen .
Aber wie machen wir das? Nun, wir werden sehen, ob das als Verschiebung nach unten
angezeigt wird, dann werden wir noch eine Sache
machen. Wir werden noch etwas tun. Und das einzige, was wir tun
werden, ist,
dass wir Tooltip-Komponenten dot add sagen. Wir werden hier eine neuere
übersetzbare
Komponente verwenden . Und der Schlüssel wird
Tooltip Punkt,
Punkt, Dowsing, Unterstrich sein. Über, sag einfach
Tooltip, diese Verschiebung. Wieder einmal sehr wichtig. Diese Schlüssel
stimmen einfach mit ihm überein. Das ist das Wichtigste. In diesem Fall. Ich denke
, das ist in Ordnung. Wir können das einfach kopieren. Und dann sagen
wir hier unten einfach ohne die Verschiebung. Nun, wo definieren wir
das noch einmal, genau wie wir es hier getan haben, definieren
wir dies einfach innerhalb
der Yen us JSON-Datei. Genau wie wir es hier oben gemacht haben. Wir definieren dies in der
ENR Score us JSON-Datei. Wir werden das
hier einfach ganz unten machen . Und dann wird das
ungefähr wie folgt aussehen . Die Verschiebung ist also diejenige
, die tatsächlich auftaucht,
wenn Sie die Umschalttaste gedrückt halten. Und es wird mit der
rechten Maustaste klicken, um Wertsachen zu finden. Und wir
duplizieren einfach die Zeile, indem wir
Strg D drücken und
die Verschiebung hier entfernen. Und dann fordert dies
den Benutzer grundsätzlich auf, die Umschalttaste zu drücken. Und so können wir das
tun, ist, dass wir hier ein
Absatzsymbol einfügen
können , E, heben und Absatzsymbol r. Und das wird dies zu
einer anderen Farbe machen. Ich werde die Ressourcen verlinken, eine großartige Ressource, um diese Farbcodes im Grunde
zu sehen. Ich empfehle dringend,
sich das anzusehen. Grundsätzlich sind es
die Formatierungscodes , mit denen Sie auch
alle Minecraft-Bücher verwenden können. Ich empfehle
dringend, sie sich anzusehen denn dann kannst du
im Grunde alles
einfärben , was du
willst und du kannst es ziemlich cool
machen,
alles in Betracht gezogen. Aber ja, das ist eigentlich alles
, was wir für den Artikel brauchen. Gehen wir dann zu
den Blöcken weiter. Die Blöcke sind ein
bisschen anders, aber sie sind auch
ziemlich einfach. Also werden wir es nicht
für den schnellen Block machen, wir werden es tatsächlich tun. Nun, wir werden diese
beiden Methoden außer Kraft setzen , oder? Was heißt das also? Nun, wir werden sie nur zuerst
kopieren, und dann werden wir
einen Fehler bekommen, weil
wir zwei Methoden haben, die
mit anderen Methoden übereinstimmen. Aber was wir einfach
tun können, ist, dass wir hier einfach einen neuen Parameter
hinzufügen. Und das wird
nur eine Schnur sein. Und das wird
der Tooltip-Schlüssel sein, dann
wird das Gleiche passieren. Also kopiere ich
das einfach in die Registrierungsblock-Methode. Und dann siehst du
alle Arbeiten wieder. Denn was wir dann tun
werden, ist, dass
wir das auch hier weitergeben werden. Also der Tooltip, er wird
hier weitergegeben. Und dann werden
wir hier,
anstatt
nach diesem nur
ein normales Blockelement zu erstellen ,
eine anonyme Klasse erstellen. Und dann können wir hier einfach den Hover-Text
anhängen. Was wir dann sagen werden
, ist, dass wir Tooltip dot add
sagen werden. Und dann sagen wir einfach eine neue übersetzbare Komponente mit dem Tooltip-Schlüssel, den
wir dort übergeben haben. Und da gehst du. Jetzt wird dies nur
aufgerufen, wenn wir hier tatsächlich
einen Tooltip e am Ende
des Blocks hinzufügen . Also wenn ich es nicht hinzufüge, dann wird es einfach den Block ohne ihn
erstellen. Wenn ich es hinzufüge,
kann ich es einfach machen. Lassen Sie uns zum Beispiel den SPD-Block machen, weil das
nicht viel Sinn ergibt. Dann können wir
zum Beispiel Werkzeug,
Tipp, Punkt, Sperren oder Block sagen . Es spielt keine Rolle. Schneller Block,
sagen wir zum Beispiel. Und dies
fügt dann einen bestimmten Tooltip mit dem SPD-Block hinzu. Wir müssen das jetzt auch hier reinlegen
. So etwas wie es beschleunigt sich
wirklich so. Und dies wird
dann auch angezeigt wenn wir den Mauszeiger über
den SPD-Block bewegen. So einfach kann
es auch sein, dies hinzuzufügen. Nun, auch bestimmte Blöcke. Jetzt werden wir nicht
die besondere Funktionalität
der Halteverschiebung haben . Wir könnten natürlich auch auf eine bestimmte
Weise hinzufügen , die auch funktioniert. Aber irgendwelche Änderungen hier, wirklich mit ein
bisschen Java-Wissen, bin
ich mir sicher, dass Sie diese auch
verwalten werden, oder? Nachdem wir beide
hinzugefügt haben, schauen
wir mal, ob sie funktionieren oder wir uns
wieder in Minecraft befinden. Also mal sehen, da gehst du. Werfen Sie mehr Drücken Sie Shift
aus mehr Informationen. Es funktioniert natürlich entweder im Tab „Kein kreatives“ oder
im eigentlichen Inventar. Und wenn ich die Umschalttaste gedrückt halte, klicken Sie mit der
rechten Maustaste, um Wertsachen zu finden, genau wie wir es wollen. Und dann ist hier der SVD-Block. Es wird sehr schnell, zeigt das
auch. Das ist also wirklich
großartig und so
einfach ist es,
die benutzerdefinierten Tooltips
zu Minecraft hinzuzufügen . In Ordnung, und das
wäre
es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt. Wenn du das tätest, würde ich mich sehr über eine Bewertung von dir freuen. Ansonsten sehe ich Sie jedoch
in der nächsten Vorlesung. Ja.
54. (Minecraft Alles zu Tags: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in dieser Vorlesung werden
wir Minecraft
benutzerdefinierte Tags hinzufügen . Also benutzerdefinierte Tags, das
sind nicht die Namensschilder. Dies sind eigentlich Tags, über die wir zuvor
mit den abbaubaren Tags
und den Nadelwerkzeug-Tags gesprochen haben. Im Grunde genommen
werden wir jetzt nicht
nur unser eigenes benutzerdefiniertes Tag erstellen, wir werden auch sehen,
wie Sie dem Forge-Namespace Tags
hinzufügen können . Und das könnte bei der
Kompatibilität zwischen
Ihrem MOD und anderen Monaten
MC-Kurspaket helfen Ihrem MOD und anderen Monaten
MC-Kurspaket Wir klicken hier mit der
rechten Maustaste auf ein neues
Paket namens util-Paket. Und dann werden
wir drinnen
eine neue Java-Klasse erstellen, die
als Veeam-Modell-Tags bezeichnet wird. Jetzt sehen die Motormarken wie folgt aus. Dies ist also im Grunde
den Tags von Orange
nachempfunden . Sie haben also im Grunde
zwei statische Klassen, wenn die Klasse blockiert und
wann Items class. Und hier auch sehr interessant,
im Grunde einige
der optionalen Tags zu betrachten , die sie bereits vordefiniert
haben. Im Grunde
kann man auch Sachen hinzufügen. Das ist also sehr gut. Ich kann wärmstens
empfehlen, einen Blick darauf zu werfen. Was wir also
tun werden, ist, dass öffentliche statische Klasse
namens „Blöcke“ heißt. Und dann darunter eine öffentliche
statische Klasse, coole Items. Sie vor und jetzt in der
Blocks-Klasse benötigen wir einen privaten statischen
Tag-Punkt optional benanntes
Tag vom Typ Block. Wir rufen einfach
das Methoden-Tag mit einem String-Name-Parameter auf. Importieren wir die Blockklasse
und stellen sicher, dass wir natürlich
den richtigen
Minecraft-Minecraft-Welt-Level-Block auswählen. Und dann können wir
die Block-Tags, die
optional gelesen werden, mit einem neuen
Ressourcenstandort
unseres MC-Kurs-Mods, der
Mod-ID und des Namens zurückgeben die Block-Tags, die
optional gelesen werden, mit einem neuen
Ressourcenstandort unseres MC-Kurs-Mods, . Das ist alles, was wir tun müssen. Und dann
werden wir das kopieren. Und wir werden den anderen
anrufen,
der orangefarbene Tag ist da. Wir erstellen ein gefälschtes Etikett. Anstelle von r mod ID. Wir werden
den Namespace Forge übergeben. Und dann können wir beide
Methoden nehmen und sie einfach nach
unten
kopieren und einfach in Element ändern , Gleich
mit diesem. Und dann haben wir anstelle von
Block-Tags Artikel-Tags. Das Ego und die Klassen
sind im Grunde gebaut. Jetzt ist die Frage, naja,
was wollen wir hier? Nun, fügen wir zuerst unser eigenes benutzerdefiniertes Tag hinzu, das eine öffentliche Statik sein
wird. Final Tags sind optional
mit dem Namen Tag des Typs block. Und das wird der
Unterstrich der Werbetrute wertvoll
sein , gleich einem neuen Tag. Und dann unterstreichende Unterstriche,
unterstreiche den Kampf. Nun, was macht das? Nun, im Moment
macht es nichts, aber wir können später darauf verweisen und alles, was sich in
diesem Tag befindet
, wird jedoch
in irgendeiner Weise ausgewertet. Um dem Tag Sachen hinzuzufügen, gehen
wir zu
MC-Kernen und dann erstellen
wir hier ein neues
Verzeichnis namens Tags. Und dann werden wir da drinnen einfach eine neue Datei erstellen. Es gibt tatsächlich diesen Namen, also dowsing, Rod
unterstrichen Wertsachen. Und es ist sehr JSON, sehr wichtig, dass
die Namen hier übereinstimmen. Mein Leben ein bisschen einfacher. Ich werde die Art und Weise,
wie das
Ding strukturiert ist, überschreiben . Und dann werde ich
auch tatsächlich
den gesamten
Inhalt kopieren . Diese
stehen Ihnen alle
im GitHub Repository zur Verfügung und
individuell genauso gut. Das macht es
hier ein
bisschen einfacher , man kann
im Grunde sehen, dass ich das Kobalt oder auch einen Haufen anderer Erze hier drin habe. Und bist du
vielleicht immer noch wie Yeah, aber wie macht das, okay, jetzt haben wir ein Tag dafür. Wie können wir etwas damit machen? Nun, im Gegenstück der Dowsing Rute erinnern
Sie sich, dass wir diese
wertvolle Blockmethode haben , bei der wir sozusagen
manuell Blöcke übergeben
mussten. Und was wir jetzt
tun könnten, ist, dass wir
mehr Tags sagen können , die blockieren, die Gaußsche oder Wertsachen
, die Block enthalten. Und dies wird nur zurückgeben ob der Block
, den wir
hier passiert haben, im Wertsachen-Tag
der
Wertsachen-Tag der Wertschutzstange enthalten ist oder nicht, und das war's. Das ist alles, was wir tun müssen. Und jetzt können wir das
ziemlich unendlich erweitern. Andere Modi könnten sich erweitern. Dies macht unseren Mod nur 10 Mal besser in
Bezug auf die Kompatibilität. Und während wir in der
Kompatibilität der Elemente arbeiten, fügen
wir auch auch
öffentliche statische Finale,
Tags, Punkt-Punkt-Punkt,
optionale benannte Tag-, Item
- oder Bolt-Unterstrich-Ingots hinzu. Und das ist gleich
einem gefälschten Tag. Unter Barren sind mutig. Und dann werden wir das
einfach duplizieren. Ich werde im Grunde auch die Nuggets
nur zur Show
einsetzen , dann wäre das ihr Fahrzeug. Warum sollten wir das jetzt machen wollen? Nun, zuallererst müssen
wir zwei Unterschiede machen. Wenn wir hier in
diesem Modus ein optionales
Tag erstellen , tut die Steuerklasse nicht
unbedingt etwas. Dies ermöglicht es uns nur
, bestimmte
Tags anzugeben oder darauf zu verweisen, die wir
in unserem Code wie dieses
erstellt haben . Dies ist nicht immer notwendig, kann
aber
manchmal notwendig sein. Für unsere Zwecke erstellen
wir also einen neuen Ordner im
Datenordner namens Forge. Und dann erstellen
wir drinnen einen neuen Ordner namens Tags. Und dann erstellen
wir drinnen einen
neuen Ordner mit dem Namen Items. Und dann werden
wir drinnen einen weiteren
neuen Ordner erstellen, alte Barren. Und dann schließlich drin, klicken Sie mit der rechten Maustaste auf eine neue Datei
namens Kobalts JSON. Jetzt werde
ich
den Inhalt dieses
hier noch einmal kopieren , damit
wir die grundlegende Steuerstruktur haben. Und dann sage ich
nur MC Kurs, Doppelpunkt oder Bolt
unterstrichen England. Jetzt habe ich
meinen Kobaltbarren hinzugefügt, den gefälschten Kobaltbarren. Was der LSAT so
schreiben soll , bringt uns nirgendwohin. Wie, warum sollten wir das machen? Schauen wir uns das an. Wenn ich ein Rezept habe, in dem
ich das Kobaltenglisch verwendet habe, vielleicht auch unsere 1D- oder andere Modi,
die Kobalt hinzufügen, weißt
du, dafür
kann auch verwendet werden. Aber jetzt kann ich anstelle
von item sagen, ich sage tag, und statt dessen
sage ich forge einen neuen Namespace. Wir stehen unter Barren Slash Kobalt. Jetzt kann alles, was zu diesem Tag
hinzugefügt wird, direkt hier
verwendet werden , um dieses Rezept
herzustellen. Und das ist wahnsinnig mächtig, besonders wenn du ein großes
Mod-Pack hast, weißt
du, du willst es miteinander
kompatibler machen. Das ist eine großartige Sache,
wie richtig cool. Denk definitiv
darüber nach, sieh dir das an. Und ja, das sind so ziemlich
die beiden, naja, meine Gründe. Ich würde sagen, du
möchtest hier vielleicht Tags hinzufügen, oder? Lass uns hier einfach
noch eine einzige Sache hinzufügen. Und das wird eine Öffentlichkeit sein, man vermeiden soll
,
die Register-Methode genannt wird. Da wir nur beide Klassen
registrieren müssen , da es
sich um statische Initialisierer
handelt. USA gibt es etwas wackeliges. sind sie, wir werden
nur
ein Register-Block-Tags haben , in dem
im Grunde nichts drin sind. Das ist in Ordnung. Und die neue Ausrüstung, und
wir nennen das die Horse-Item-Tags. Und hier nennen wir es nur
Blöcke, nicht Block-Tags und Elemente, Datenregister Punkt 10. Und dass diese Register-Methode einfach hier
aufgerufen
wird. Also werden wir
einfach mehr Tags dot sagen, was ist das Ego, oder? Und hier ist natürlich ein
bisschen Tippfehler. Eigentlich
muss dies unter der Kategorie Logs stehen. Da gehst du. Und dann
sollte alles gut funktionieren. Jetzt schauen wir uns für Arbeiten oder Finanzen oder
Pack und Minecraft an. Mal sehen, ob der Cobol
Ingrid funktioniert. Und da gehst du. Natürlich funktioniert das
Handwerk immer noch. Das ist großartig. Nehmen wir die Dowsing Rute und lass uns
einfach sehen, da gehst du. Ich kann sogar sehr früh
Sachen finden und ich kann sogar Dinge finden
, die ich vorher nicht finden konnte, wie das Deep
State Gold
oder den tief ermordeten Redstone-Krieg. Das eigentliche Tag funktioniert also auch. Das ist großartig, oder? Wieder einmal ist der gesamte
Code
im GitHub-Repository verfügbar und auch
individuell. Aber das wird es schon
für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung. Also ja.
55. (Minecraft Benutzerdefinierte Treppen, Querschnitte: Alles klar, willkommen zurück
zum Forstkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
benutzerdefinierte Treppen und
Platten hinzufügen . Jetzt beginnt dies sozusagen ein
kleiner Abschnitt von
nicht blockierten Blöcken, wie ich sie gerne nenne. Dazu gehören, wie gesagt, Treppen und Platten
sowie Zäune, Zäune, Wände, Knöpfe,
Druckplatten, die Tür und die Falltür. Es wird also im Grunde
die nächsten vier Vorträge geben. Und nun, fangen wir einfach an. In der Modocs-Klasse werden
wir also einfach überschreiben,
sagen wir den
Tiefschlaf oder hier, weil das
für uns im Moment ein bisschen einfacher ist. Und dann nennen
wir das die Kobalt-Unterstrichen-Treppe. Und dann natürlich auch hier, unterstreicht
Kobalt, deren. Oh, dann kopiere das rein und
mach die Platten daraus. Also Platten, eigentlich
Platten, sehr wichtig, aber Treppen, es ist Laurel und
mit der Platte ist es einzigartig. Und dann
wird das hier ein Treppenblock sein, während dies ein Plattenblock sein wird
. Und der Block nimmt
tatsächlich einen
anderen ersten Parameter
auf, der
ein Applier von Blockpunkt-Kobalt sein wird , Blockpunkt-Punkt-Punkt erhält den Standard
- oder Standardblockstatus. Dies ist
im Grunde nur der Block , aus dem die
Treppe besteht. Das wird darin gut werden. Lasst uns beide Material
Metall machen , nur damit wir das haben. Und abgesehen
davon bin ich damit
ziemlich zufrieden. Jetzt ist die Sache an allen Nicht-Block-Blöcken, dass
die eigentliche Registrierung? Nun, das ist ein ziemlich einfaches Jahr. Was ist wirklich das meiste, was ich sagen würde, nicht
unbedingt nervig, aber es wird nervig, wenn
wir zu
den Türen und ähnlichem kommen , weil es viele JSON-Dateien
geben wird. Kopieren
wir einfach die JSON-Dateien vor dem IRS und den Platten. Was Sie also zuerst
bemerken werden, wenn Sie einfach
die Kobalttreppe öffnen, ist hier viel
mehr drin als zuvor. Das erste, was ich sagen
möchte, ist, dass Ihnen alle JSON-Dateien
im GitHub-Repository
oder einer Einzelperson
zur Verfügung stehen . Tippen Sie das nicht ein. Das ist Wahnsinn, okay, mach dieses
Worst-Case-Szenario nicht. Wenn Sie aus irgendeinem Grund nichts für mich herunterladen
können, können
Sie immer zu
den Assets, Minecraft gehen, also im Grunde externe
Bibliotheken und es Mikrowellenclient extra
181 und dann zum, zu den Vermögenswerten Microblock-Staaten. Und dann kannst du zum Beispiel einfach
die verrückte
Keisha-Treppe nehmen . Man sieht, dass sie
im Grunde genau gleich sind. Der einzige Unterschied hier ist
die MOD-ID und der Name. Und ich zeige
dir einen schnellen Trick. Was Sie tun können, ist, dass Sie
dies auswählen und dann Strg R drücken. Und hier ändern Sie
zum Beispiel einfach das Motto De. Wenn Sie eine
andere Modell-ID haben, ist Alle
ersetzen und dann
werden sie alle ersetzt. Gleich mit dem Namen
der eigentlichen Treppe, rechts, ist ausgewählt Drücken Sie Strg R und
dann können Sie sie ändern. Du hast Titan, zum Beispiel Twitter zu Titan und das Ego. Das ist also eine sehr
gute Sache. Ich empfehle dringend
, das
zu tun , wenn Sie wirklich etwas ändern möchten, aber das definitiv nicht
tippen, das wäre Wahnsinn. Nun, was machen
all das, oder? Wir haben hier also bestimmte
Varianten, und die Varianz
wird durch Blockstatuseigenschaften definiert. Jetzt blockiert sie Eigenschaften, über die
wir in
einem späteren Vortrag sprechen werden. Denken
wir einfach
über die Idee nach, dass bestimmte Blöcke auf der Welt unterschiedliche Eigenschaften haben
können. Okay, das sollte nicht zu verrückt
sein. Und dann, abhängig von
diesen Eigenschaften, rechts, wenn die zugewandten
Eigenschaften Ost und die Halbeigenschaft unten und die
Formeigenschaften in unserer Linken sind, dann zeigen wir eine bestimmte Modell mit einer
bestimmten Rotation hier. Und dann sperrt UV Lock im Grunde die Drehung der Textur ,
damit sie sich nicht mit dem Block
dreht. Das ist nur, weißt du, es ist in diesem Fall nicht allzu wichtig. Das sind wirklich die
wichtigsten. Und ja, das deutet im Grunde auf ein
anderes Modell
hin. Und was Sie sehen werden ist, dass wir die Kobalttreppe
innen
haben und dann haben
wir plötzlich
die Cobol-Treppe außen und hier haben wir
nur die Kobalttreppe. Was Sie vielleicht
schon vermutet haben, ist, dass es mehrere Blockmodelldateien für die Treppen
und auch die Platten geben
wird . Aber bevor wir diese hinzufügen, fügen wir zuerst die
Übersetzung hinzu, nur damit wir sie nicht vergessen,
weil das manchmal passieren
könnte. Ich werde nur
kopieren, dass die Bestellung
die Cobol-Treppe sein wird. Und die Cobol-Platte wird
die Cobol-Platte sein. Und hier ist weiß und dann kann ich die JSON-Dateien
des Modells kopieren. So stehen Ihnen die
Blockmodell-Jason-Dateien, wie gesagt, alle
im GitHub-Repository oder im
Einzelnen genauso gut
zur Verfügung . Das
werden nur fünf sein. Es ist eigentlich nicht so schlimm. Und die Sache daran ist, sie selbst sind eigentlich
ziemlich einfach. Wenn man sich das
zum Beispiel anschaut , ist es
nichts zu verrückt, oder? Also der Elternteil hier das ist
anders, das ist Platte. Und dann haben wir drei
verschiedene Texturen. Aber eigentlich zeigt der OH auf den Kobaltblock,
weil
die Cobol-Platte natürlich im Grunde wie die Hälfte
eines Cobol-Blocks
aussieht. Und wenn sie
übereinander stehen, wird das als Block bezeichnet. Also gehen sie und dann
gleich mit der obersten. Es sieht genauso aus,
außer dem Elternteil. Werfen wir auch einen
Blick auf diese Treppen nur um der Fertigstellung willen. Und du wirst schnell sehen,
dass
es plötzlich nicht wirklich so verrückt ist. Es ist nur der Elternteil
ist anders. Und das übergeordnete Element bestimmt im Grunde
nur die Form des tatsächlichen Blocks, der angezeigt
wird. Möglicherweise haben Sie Treppen
, die normale Treppen sind. Wenn Sie Treppen
in einem Winkel
von 90 Grad hinzufügen, wissen
Sie, dass sie eine andere Form erhalten. Das ist im Grunde nur buchstäblich das
, was der Elternteil hier macht. Und die Texturen bleiben gleich. Und es geht um die Artikelmodelle. Sie sind eigentlich ziemlich langweilig. Alles in allem sind es
nur normale Artikelmodelle. Die Treppe zeigt einfach zurück auf die Treppe und die Platte zeigt
einfach zurück auf
die normale Platte. Was wirklich
cool ist, ist, dass wir keine Texturen hinzufügen
müssen ,
da alle Texturen,
die die Treppen und die Platten verwenden,
der Cobol-Block sind. Sie müssen also keine Texturen
hinzufügen. Und damit ist das
eigentlich gut, im Grunde genommen gemacht. Oh, ich schätze, um der Vollendung willen, mal sehen, ob es funktioniert oder sich in der
Mikrofinanzierung
bezieht, kann
sowohl die Treppen sehen , als auch diese Labors wurden
erfolgreich zum Spiel hinzugefügt. Und alles hier
funktioniert gut. Ich kann sie auf
jede Art und Weise gut niederlegen, wie ich möchte. Ist das nicht einfach großartig? So einfach ist
es eigentlich, diese zu
Minecraft hinzuzufügen oder wo auch immer es für
diese Vorlesung schon hier
wäre. Ich hoffe, es war nützlich
im neuen, wieder einmal der
gesamte Code in der
JSON-Datei ist im GitHub-Repository verfügbar, in dem ein einzelner Just steht. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
56. (Minecraft Benutzerdefinierte Buttons und Druckplatten: Alles klar, willkommen zurück
zum Forstkurs für 118. In dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten Button und eine
Druckplatte hinzufügen , oder? Also sind die Taste und die Druckplatten tatsächlich
ziemlich einfach, oder die Registrierung selbst ist
nur die JSON-Dateien
, die ein verrücktes Jahr sind. Aber fügen wir einfach einen Button und dann den gesamten Speicher-Button. Dies wird ein
Steinknopfblock sein, da es in diesem Fall keinen
Metallknopfblock gibt. Und dann sehr wichtig, was wir auch einen
Anruf brauchen, ist, dass wir
hier die No Collision
nennen müssen . Aber wir können grundsätzlich
ohne Probleme durch den Block gehen. Und dann für den
Kobaltdruck zu spät unterstreichen. Und hier, mobiler Unterstrich, Druck unter
dem Skript
wird natürlich ein
Druckplattenblock 0 sein. Und das ist tatsächlich ein weiterer erster
Parameter, der die Empfindlichkeit sein
wird . Wir werden uns einfach alles
aussuchen. Klicken Sie mit der mittleren Maustaste
auf den Druckplattenblock. Die
Signalstärke-Methode ist hier grundsätzlich
für die Empfindlichkeit verantwortlich. Wie Sie sehen können,
gibt es
hier einen Schalter , alles und Mobs. Und eine allgemeine Idee
ist, dass Sie, wenn Sie wirklich eine
andere Sensibilität haben möchten, diese Methode im Grunde genommen außer Kraft setzen
und dann hier eine
Reihe von Dingen ändern können . Empfehlen Sie etwas
Java-Wissen, das es definitiv
erforderlich ist , um dies zu tun und etwas zu
haben, aber es
sollte praktikabel sein, oder? Lasst uns jetzt
zu den JSON-Dateien übergehen. Dies hat zuerst
die Übersetzung hinzugefügt , denn
das wird am einfachsten sein, dies schnell
zu
tragen, damit Sie
den Kobaltknopf und
die Cobol-Druckplatte sehen können Kobaltknopf und
die Cobol-Druckplatte und dann die verrückten JSON-Akten. Jetzt stehen Ihnen alle diese
noch einmal im Repository oder einer Einzelperson
genauso gut wie immer zur Verfügung. Und das wird verrückt sein. Also ist die Druckplatte eigentlich, ich meine, das ist heilig in Ordnung. Schreiben Sie es entweder falsch, also Strom oder nicht mit Strom versorgt. Und dann zeigen wir entweder
den Druckabfall oder die Druckplatte
normal, es gibt genug. Was ist mit dem Button? Nun, der Button ist
etwas verrückter. Also der Button hier,
wie Sie sehen können, wie wieder einmal bei drei verschiedenen
Blöcken Datumseigenschaften, und abhängig von ihnen ändern
wir im Grunde genommen, welches Modell er zeigt und
auch die Rotation hier. Das ist also ziemlich
verrückt. Aber glücklicherweise
hat der
Knopf eigentlich nur drei verschiedene
Blockmodelle, während die Druckplatte, wie wir gesehen haben, nur zwei hat. Arbeite also noch einmal um fünf Uhr. Kopieren wir sie einfach rüber und schauen wir uns sie einfach an. Aber insgesamt zeigt die Druckplatte, wie Sie sehen können, wie Sie sehen können,
nur auf die Textur
des Kobaltblocks nur
ein anderes Elternteil. Das Blockmodell Jason ist also
hier, nicht wirklich interessant. Das Gleiche gilt für alle Knöpfe. Es ist nichts zu verrückt. Dies ist also etwas, das für die Nicht-Block-Blöcke passiert für die meisten der
tatsächlichen JSON-Dateien des
Blockmodells . Sie sind eigentlich nicht
so interessant. Es gibt nur viele von
ihnen, damit Sie
im Grunde alles definieren können , was Sie möchten. Und das erstreckt sich
ziemlich auch auf die JSON-Dateien des Artikelmodells. Sie können dies auf
das Gesamtblockinventar sehen das Gesamtblockinventar und dies deutet nur auf
die normale Druckplatte hin. Wieder einmal müssen wir
keine Textur hinzufügen, da alle Texturen, auf
die es zeigt immer der Kobaltblock
sein werden. Deshalb sind wir
tatsächlich schon fertig. Wieder einmal alles, was
Sie aus dem Wesentlichen kopieren können. Also der GitHub, ich kann das nur
wärmstens empfehlen. Und lasst uns einfach sehen, ob es funktioniert oder warum wir
Verdacht in Mikro gefunden haben. Wie Sie sehen können,
wurde alles hinzugefügt und es funktioniert
auch völlig
gut. Ist das nicht großartig? Sie können sehen, dass alles genau so
funktioniert, wie Sie es erwarten
würden. Und das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
57. (Minecraft Benutzerdefinierte Zäune und Zäune: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in diesem Vortrag werden
wir benutzerdefinierte Zäune,
Zäune, Tore und
Mauern
hinzufügen Minecraft benutzerdefinierte Zäune,
Zäune, Tore und
Mauern
hinzufügen. Dies ist also wieder eine ziemlich einfache
Übung. Alles in Betracht gezogen. Da ist, gehen wir einfach in die Klasse „mehr Blöcke“
und lassen Sie uns zuerst dreimal hier den
Button kopieren. Und das
wird der Kobaltzaun sein. Und dann werden das natürlich auch
die Promoter-Stifte sein. Das wird ein Zaun sein. Sieh mal, das
wird der Zaun auf acht sein. Und das ist dann natürlich auch das Zaun-Unterstreichtor, das ein Zaun Acht Block ist. Und dann
wird der letzte eine Football-Wall sein. Wall auch hier. Und das
ist natürlich ein Wandbuch. Jetzt nehmen wir hier
die „Keine Kollision“ weg. Das wäre gut, nicht das Beste, wenn die
Zäune plötzlich
keine Kollision hätten , würde den Zweck von ihnen irgendwie
besiegen. Und der Rest wird hier völlig gut gehen. Jetzt sind die
JSON-Dateien wieder da, wo sie sind. Lassen Sie uns zuerst die
Übersetzung nur so dass wir sie haben, dann
müssen wir uns darüber keine Sorgen mehr machen. Ich
kopiere es einfach, der Kobaltzaun entkoppeln Lüfter hier in die Kobaltwand
kommen. Und dann fügen wir den Block hinzu s3 ist nicht weit,
da alle diese Ihnen
natürlich noch einmal
im GitHub-Repository oder einer
Einzelperson
zur Verfügung stehen . Und Sie werden sehen, dass dies tatsächlich ein
bisschen anders ist. Werfen wir zunächst
einen Blick auf das Zauntor. Wieder einmal hat es
drei verschiedene Blöcke. Es umfasst oder
kastenförmige Eigenschaften, und es zeigt nur auf
verschiedene Blockmodelle. Nichts Neues, was wir in den
letzten beiden Vorträgen
noch nicht gesehen haben. Aber der Zaun
und die Mauer. Diese sind anders, weil
diese mehrteilig sind. Jetzt mehrteilig. Die allgemeine Idee ist, dass, naja, wie Sie
das genau hier sehen können, oder? Und das erste Multipart
haben wir dieses Modell angewendet. Und dieses Modell wird immer angewendet, wenn dieses gesetzt wird. Wenn nun eine bestimmte
Roxy-Eigenschaft wahr ist, in diesem Fall,
wenn
etwas wahr ist wenden wir
in diesem Fall,
wenn
etwas wahr ist, eine
andere Eigenschaft an. Du bist ein anderes Model hier. Und in diesem Fall wird
es
die Seite sein , von der Sie wissen,
dass Sie, wenn Sie
den Zaunpfosten
selbst niederlegen und dann einen Zaunpfosten im Norden
hinzufügen. Wir fügen die
Seite danach tatsächlich hinzu. Aber das ist eine sehr
häufige coole Sache , dass es so funktioniert. Und das ist eigentlich eine sehr einfache
Art, dies zu tun. Obwohl. Das ist definitiv ein
bisschen anders. Ich empfehle es mir einfach
anzuschauen und einen
Blick darauf zu werfen. Es sollte eigentlich nicht zu
verrückt sein,
alles zu verstehen, was in Betracht gezogen wird. Wir fügen einfach verschiedene
Modelle hinzu, je nachdem , ob etwas im Grunde ein Nachbar
ist oder nicht. Im Grunde die Idee. Jetzt hat das aber auch die hinzugefügte Sache,
dass es jetzt
viele Jason-Akten geben wird. Lassen Sie uns also einfach alle kopieren , denn das wird
ein Wahnsinn sein. Wir haben diese alle von ihnen. Kopiere sie einfach über
11 von ihnen insgesamt. Jetzt werden wir nur einen kurzen
Blick auf sie werfen, weil sie ehrlich gesagt
alle sehr langweilig sind. Im Grunde wird
es immer der Elternteil sein
, der anders ist. Sie können
die ganze Zeit deutlich sehen , in
der wir genau hier auf dieselbe
Textur hinweisen. Du kannst sehen, dass es einfach der Elternteil
sein wird , der anders ist. Und im Grunde
gilt das Gleiche für alle anderen. Wir haben immer
darauf hingewiesen, dass dieselbe Textur nur der Elternteil
ist
, der anders ist. Ich könnte es nur noch einmal
empfehlen, wenn Interesse an
anderen JSON-Dateien besteht. Gehen Sie einfach zu den
externen Bibliotheken, Einheit, dem Mikrowellen-Client, dem
zusätzlichen Geld TIN, und schauen Sie sich einfach die
gesamte Verfolgung genau hier im Assets
Minecraft-Ordner, Sie können alle
Blockieren Sie JSON-Dateien des Modells. Du würdest das alles sehen,
der Block sagt JSON-Dateien. Also
steht Ihnen grundsätzlich auch hier alles zur Verfügung. Dies wird dringend empfohlen, Sachen
zu kopieren und nicht
alles zu tippen, besonders wenn Sie mehrere
Wände und ähnliches haben . Das wäre einfach
Wahnsinn, oder? Lassen Sie uns auch das
Drei-Item-Modell Jason über n. Die sind
alle nicht allzu verrückt, weil wir
ein Inventar für Kobaltzaun
und ein cooles Wandinventar haben . Diese werden im Grunde genommen
hier referenziert. Und dann ist dieses nur das
normale Kobaltzauntor. Und da
alle Texturen die Fußraumblock-Textur
verwenden, müssen
wir keine Texturen
hinzufügen. Jetzt gibt es noch
eine Sache, die
wir hinzufügen müssen damit die Zäune und
ein Walzer richtig funktionieren. Und das werden Tags sein. Innerhalb des Minecraft-Tags, Block-Tags oder des Blockordners möchte
ich eine neue Datei erstellen, die
als Zäunenpunkt JSON bezeichnet wird. Noch einmal kopiere ich
einfach
die Struktur, bei der du vorbei bist. Und das wird
MC-Kurs sein, Boolean, Kobalt
unterstrichen Zaun. Dann nehme ich
das und
ziehe es hier rein, während ich die Kontrolle
halte. Und ich
nenne das Mauern. Und das
wird die Kobaltwand sein. Wenn ich das nicht habe,
verbinden
sich die Zäune und die Wände nicht miteinander. Aber das ist auch sehr wichtig. Wir brauchen das. Aber wenn wir
das und den Rest hinzugefügt haben, dann schauen wir mal, ob es funktioniert. Oder wenn ich bei einem Migranten asic war und sehe, dass alles
erfolgreich hinzugefügt
wurde und alles verdammt gut
aussieht. Sie können es nebeneinander aufstellen. Genau wie
wir erwarten würden. Vor ihnen hat alles
gut funktioniert, wo auch immer das für diese
Vorlesung genau hier sein wird. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen, und wir sehen uns in der
nächsten Vorlesung. Also ja.
58. (Minecraft Benutzerdefinierte Türen und Trapdoors: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem Vortrag werden
wir Minecraft
eine benutzerdefinierte Tür und
Falltür hinzufügen . Lasst uns also die Briefkastenklasse öffnen und lass uns einfach
die Kobaltwand holen. Und statt Kobalt wird
dies tatsächlich
Sherry
Unterstrich Blüte
Unterstrich Tür sein . Gleiche natürlich im Namen. In diesem Fall werden
wir
hier
ein anderes, naja,
ein anderes Material haben , weil wir keine
Türen aus Kobalt machen werden, sondern aus dem Holz, das wir in einem zukünftigen Vortrag hinzufügen
werden. Und was
hier sehr wichtig ist, ist, dass
die Kohle ohne Okklusion hinzugefügt wird
und dass wir das Material
herstellen
würden, denn wenn wir
das Material Metall herstellen das Material Metall wird
diese Tür
wie eine Eisentür funktionieren. Wenn wir das machen würden,
können wir es öffnen, indem wir mit der rechten Maustaste klicken. Gleiches gilt für die Falltür des
Kirschblütenunterstrichs. Kopiere einfach
den Namen hier drüben und füge die Falle
hier vorne hinzu. Und das ist dann ein
Falltürblock. Ich bin hier und stelle sicher, dass
dieses Material das tun würde und dann auch die
Keine Okklusion hinzufüge. In Okklusion wird hier Kälte
benötigt, da wir
Alpha-Werte in der
tatsächlichen Textur haben . Und aufgrund
dieser Alpha-Werte müssen
wir tatsächlich auch
in unsere MC-Kurse-Mod-Klasse gehen. Und drinnen
müssen wir eine neue Methode erstellen. Wir werden also
eine neue private Lücke machen die
als Client diese
Up-Methode bezeichnet wird, mit einem endgültigen
FML-Client-Satz von Ereignissen oder Ereignissen. Und dann werden
wir drinnen
die Elementblock-Rendertypen aufrufen , die später rendern. Für die Modusblöcke erhalten
Punkt, Kirschblüte, dor dot mit dem Rendertyp, der
erwachsen ist, duplizieren Sie die Zeile. Und dann stellt hier sicher
, dass die Falltüren eingestellt sind. Jetzt heißt das
noch nicht, denn was wir tun
müssen, ist, dass wir Event Bus sagen, Listener
hinzufügen, diesen
Doppelpunkt, Doppelpunktzeilen einrichten müssen . Nachdem dies geschehen ist, werden jetzt die tatsächlichen FML-Clients jetzt die tatsächlichen FML-Clients,
die Methode haben, hier aufgerufen, die Methode und dann werden diese
Renderstämme richtig
eingestellt, bevor wir
alle verrückten JSON-Dateien hinzufügen lasst uns zuerst
die Übersetzung hier hinzufügen. Ziemlich einfach,
nichts zu verrückt. Und jetzt gehen wir
zu den JSON-Akten weiter. Zuallererst heißt es natürlich
der Block, dass Jasons. Das wäre also nur die Tür und die Falltür, die du gehst. Also
gibt es natürlich wieder ziemlich verrückt. Die Tür hat tatsächlich vier verschiedene
Blockstatuseigenschaften, wie Sie sehen können. So stehen Ihnen alle angrenzenden Dateien und der
gesamte Code angrenzenden Dateien und der
gesamte Code im
GitHub-Repository oder einer
Einzelperson genauso gut
zur Verfügung . Ich empfehle, diese zu kopieren , wenn es um
die Blockmodelle geht. Nun, wir werden uns auf
einen Leckerbissen freuen
, denn das werden wieder
sieben von ihnen sein. Das wird also ziemlich verrückt
sein. Jetzt sind diese ein
bisschen anders, wie ein kleines bisschen komplizierter,
aber auch nicht ganz so schlimm. Sie können also noch einmal sehen, dass sich das als Elternteil am meisten unterscheidet. Da Türen sozusagen
zwei Teilblöcke sind , haben wir eine
obere und eine untere Textur. Sie können eine
Kirschblüten-Türspitze und einen
Kirschblüten-Türboden sehen. Und dann sieht
man das Scharnier hier , dass es nur ein
anderer Elternteil ist. Aber insgesamt werfen Sie sie noch einmal einen Blick auf sie,
gehen Sie einfach ein bisschen durch. Weißt du, wie sie aussehen, sie sind insgesamt nicht zu verrückt. Der Artikel und die Modelle sind
auch irgendwie interessant. Die Falltür sollte
nur ein normales Artikelmodell sein. Aber wir können das sehen. Dies deutet nur auf
das Becken des Blockmodells in diesem
Jahr zurück , die Tür weist tatsächlich auf
eine bestimmte Artikelstruktur hin. Hat die Tür tatsächlich auch
eine bestimmte Textur
für den Artikel? Also werden wir zunächst
eine Kopie der Artikeltextur hier drüben machen. Und dann brauchen wir natürlich auch die drei verschiedenen
Kirschblüten-Texturen. Dies könnte also
der Türboden, Tür oben und die Texturen der
Falltür sein. Nun, das ist eigentlich
alles, was wir tun müssen. Sehr wichtig ist dieses
Kunden-Setup hier, das wir auch in
zukünftigen Vorträgen benötigen werden. Aber jedes Mal, wenn wir einen Block haben
, dass er sozusagen nicht
den gesamten Raum des
Röntgenblockzustands ausfüllt den gesamten Raum des
Röntgenblockzustands ,
müssen wir dies im Grunde auch hinzufügen. Das ist also sehr wichtig. Ansonsten
schauen wir mal, ob es funktioniert. Oder wenn ich vermute und
microRNAs können
sowohl die Kirschtür als auch
die Kirschblüte gefangen sehen sowohl die Kirschtür als auch die Kirschblüte gefangen oder dem Spiel hinzugefügt wurden. Und ich kann mit der rechten Maustaste klicken
und sie öffnen. Wer sagt, dass ich mit irgendeiner anderen
Holztür oder Falltür bin? Das ist also ziemlich cool. Rubber, das wäre es schon für diese Vorlesung genau hier. Ich hoffe, Sie fanden das
nützlich und alarmiert das Neue. Und wir sehen uns in der
nächsten Vorlesung. Also ja.
59. (alles über Tools) Gestalte ein neues Toolset: Alles klar, willkommen zurück
zum vierten Kurs für 118. Und in dieser Vorlesung werden
wir Minecraft
ein benutzerdefiniertes Tool-Set hinzufügen . Dazu gehören also das Schwert, die Spitzhacke, die Schaufel, die Axt und das Ganze. Wir werden tatsächlich eine neue benutzerdefinierte Klasse und
das Artikelpaket oder
die modernen Stufen
erstellen . Denn was wir
definieren müssen, ist eine benutzerdefinierte Stufe. Glücklicherweise macht
es uns Schmiede sehr einfach. Wir können einfach sagen, dass
öffentliches statisches Finale hier namens Kobalt
geschmiedet wird, was
einem neuen, hier geschmiedeten entspricht. Und dann müssen wir nur viele Parameter
übergeben. Das Level reduziert die Geschwindigkeit, den Angriffsbonus und den Tag-Schadensbonus,
den Vorsitzenden. Dann müssen wir Block-Tags
weitergeben. Dot braucht Eisenwerkzeuge und dann nur einen
Anbieter eines Gradienten. Und wir werden Zutat von
mehr Gegenständen
sagen , Dot, Dot Get. Und ich werde es jetzt erklären. Also was ist hier los? Das ist verrückt, eigentlich
ist es nicht so verrückt. Das erste ist
natürlich ein Level. Dies ist nur die Ebene, die dieser Artikel hier
im Grunde genommen diese Stufe
darstellt. Also können wir tatsächlich
darauf eingehen und du kannst sehen, dass es hier eine
Menge Sachen gibt. Und das Niveau repräsentiert
im Grunde genommen, Sie genau hier sehen können, stellt
im Grunde
die Idee dar, hey ist das Steinwerkzeuge, Eisenwerkzeuge oder Diamantwerkzeuge? Das ist im Grunde
das allgemeine Niveau, die allgemeine Vorstellung
des Levels hier. Und wir haben die Anzahl der Benutzer. Dies ist also, wie viele
Verwendungszwecke dieser Artikel hat. Obwohl die
Haltbarkeit im Grunde genommen die Geschwindigkeit
ziemlich selbsterklärend sein sollte. Es gibt nur die Geschwindigkeit
des tatsächlichen Artikels. Der Angriffsschadenbonus ist
nur ein Bonus für den Angriff. Das bekommt, lassen Sie uns das
tatsächlich auf 3 setzen und der Chairman Value
ist nur Channel. Dies sind die Block-Tags. Ich bin mir nicht
hundertprozentig sicher, aber ich glaube, dass
dies wieder einmal darauf
beschränkt ist, was
diese eigentliche geschmiedete
Träne oder diese Reihe
von Werkzeugen hier
grundsätzlich abbauen diese eigentliche geschmiedete
Träne oder diese Reihe kann. Und dann
ist
der letzte, der Lieferant der Zutat hier, der Zutat hier, im Grunde nur die
Zutat, mit der Sie die Artikel
dieser Stufenbreite reparieren können . Jetzt, da wir dies haben, können
wir zur Klasse mehr
Items gehen und ich kann anfangen, im Grunde
genommen die Reihe zu erscheinen. Nehmen wir einfach das und lassen Sie uns das auch hier zum
Kobalt-Unterstreichungsschwert machen. Kobalt-Unterstrich gespeichert. Lasst uns das ganze Jahr loswerden. Das ist irgendwie wichtig. Und das wird
ein Boardgegenstand sein. Der erste Parameter wird
mehr Tränen Punkt Kobalt sein. zweite Parameter ist der
Angriffsschaden-Modifikator. Und der dritte
Parameter wird Modifikator für die Angriffsgeschwindigkeit
sein. Und dann kommen die tatsächlichen Eigenschaften, die gut werden. Und wir werden das
fünfmal duplizieren und dann einfach die anderen
holen. Also werden wir auch hier die
Wandspitzhacke oder den Bolzen Big
X haben. Dies ist ein Spitzhacke. Und wir haben die Reise
wird auch hierher reisen. Und das ist ein Schaufelartikel. Es werden die Roboter-Ats sein. Und Kobalt wirkt auch hier. Natürlich, Item. Und dann zuletzt und
mit Sicherheit zumindest die Kobalt WHO. Aber natürlich müssen wir
das Ganze hier reinbringen, welches ist der Kobalt WER
und ein ganzer Gegenstand, oder? Normalerweise kann man diese Zahlen natürlich ändern,
oder? Du kannst sie optimieren. So haben zum Beispiel
die Hausgemachten hier
keine zusätzlichen Modifikatoren. Der ACS könnte dieses haben, wissen
Sie, aber daher ist vielleicht
ein negativer Modifikator oder einfach nur einen
Modifikator 0 hier. Und der Rest
wird gut werden. Das ist also etwas, mit dem
Sie auf jeden Fall
herumspielen müssen ,
nur zu spielen und
offen für das Experimentieren
mit den Zahlen hier zu sein. Weil das
im Grunde nur das Modell ausbalanciert. Und insgesamt ist das so
ziemlich die, weißt
du, die Registrierung erledigt. Wir brauchen jetzt nur noch
die Übersetzung hier, aber lassen Sie uns einfach die Übersetzung hinzufügen. Ich
kopiere das einfach vorbei. Das sollte ziemlich
selbsterklärend sein, oder? Genau wie wir es eine Million
Mal gesehen haben , könnten wir schon sprechen. Und dann haben die Artikelmodelle eine bestimmte Sache, die bei ihnen ein bisschen
anders
ist, was ich Ihnen zeigen werde, wenn ich sie noch einmal
kopiere, all dies steht Ihnen
zur Verfügung in das GitHub Repository oder
Einzelperson genauso gut. Sie können sehen, dass das übergeordnete Element
hier ein Item-Schrägstrich handgehalten ist. Dies ist sehr
wichtig, andernfalls wird
das Extra nicht
in
3D in Ansichten der dritten Person angezeigt . Das ist also sehr
wichtig, dass Sie
den übergeordneten Artikel hier handgehalten haben . Und sonst können wir jetzt auch die Texturen kopieren
. Alle fünf von ihnen
auch, sie gehen. Und das ist so ziemlich
alles, was wir tun müssen, um die benutzerdefinierten
Tools zu Minecraft hinzuzufügen. Also mal sehen, ob es funktioniert. Ordnung, wir befinden uns
wieder in der Mikrofinanzierung und sehen, dass alle Tools erfolgreich hinzugefügt
wurden. Also lasst uns einfach sehen, ob ich
tatsächlich Sachen damit abbauen kann. Also
wird dieses Jahr in diesem
Fall natürlich nicht funktionieren, weil wir dies als Stufe eins
definiert haben . Das sollte also funktionieren. Lassen Sie uns jedoch einen Versuch sehen. Das funktioniert vollkommen gut. Das ist natürlich ein gutes
Zeichen. Der Vogel sollte auch arbeiten. Es gibt definitiv
nicht sehr schnell, aber das ist natürlich völlig
in Ordnung. Und dann klicken Sie mit der rechten Maustaste
hier auch mit diesem Rechtsklick. Das Abziehen der Protokolle
sollte genau definiert funktionieren, genauso wie beim Pfading. Alles hier
wird
natürlich
nur fünf durch die Geschwindigkeit sein , ist hier definiert. Das wäre also, du
willst die Geschwindigkeit
dieses keinen tatsächlichen Riss erhöhen und das Niveau hier, du kannst es so machen. Und was Sie dann auch
tun können, ist hier im Geschmiedeten, wenn Sie
hier auf die Stufe drücken und dann Control H drücken und die Tränen
von Minecraft selbst sehen. Und Sie können
sich hier grundsätzlich nur alle Vanille-Werte
der Werkzeuge ansehen . Dafür kannst du diese
im Grunde ändern und einige
davon kopieren, oder? Aber sie wären es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das
nützlich gefunden und es lernt vom Neuen und wir sehen uns
in der nächsten Vorlesung. Also ja.
60. (alles über Tools) Erstellen eines Multi-Tools (Paxel): Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten
Paxil-Gegenstand hinzufügen . Das stimmt genau. Wir werden Minecraft eine
Art Multi-Tool hinzufügen . Und dafür brauchen wir
eine neue Klasse und das benutzerdefinierte Paket, das
der Paxil-Artikel sein wird
, der den Baggerartikel genau hier erweitern wird. Und dies wird
die ehrwürdige Schnittstelle implementieren. Lassen Sie uns einfach den Mauszeiger darüber bewegen und einen Konstruktor erstellen, der super
passt. Jetzt
müssen wir das tatsächlich ein
wenig ändern , weil wir keines davon
brauchen. Weil diese beiden Parameter
tatsächlich genau hier passen. Wir sollten
so etwas machen. Und dann
wird das Getaggte für die Blöcke tatsächlich
verschwinden , weil
wir das
jetzt unseren Modell-Tags hinzufügen werden. Die Art und Weise, wie
wir das machen, ist wir in
unsere Kfz-Steuerklasse gehen. Dann kopieren wir einfach die Wertsachsachen
der Wertsachtel der Werstange. Und hier
werden wir diesen
Paxil-Unterstrich abbaubar machen . Und dann wird der Name
davon der abbaubare Schrägstrich Paxil sein . Und dies wird jetzt genau hier
referenziert. Also mod-Tags, dunkle Blöcke. Und einfach so sollte
alles vollkommen
in Ordnung sein, oder? Und jetzt sollte dieser Kurs komplett abgeschlossen
sein. Und das Tolle ist, dass wir,
weil wir
diese Tags hier definiert haben, nun
in unseren C-Corps-Datenordner,
in die Tags, die Blöcke gehen
und dann mit der rechten Maustaste auf neu klicken können in unseren C-Corps-Datenordner,
in die Tags, die Blöcke gehen
und dann mit der Verzeichnis namens mineable. Und dann werden
wir da drinnen
eine neue Datei namens
Paxil erstellen , diese JSON. Und was wir dann
tun werden, ist, dass ich diesen einfach aus Gründen
des Arguments
kopieren werde diesen einfach aus Gründen
des Arguments
kopieren nur damit wir die
grundlegende Struktur des Tags haben. Und man könnte sagen, wir jetzt
in den Spitzhacke gehen müssen und nur all das
hinzufügen müssen. Wissen Sie, was wir tun können, ist, dass wir Tags auch Tags hinzufügen
können. Aber was wir
tun müssen, ist, dass wir den
Hashtag Minecraft sagen müssen. Dies ist also der Namespace
des Tags, das wir hinzufügen möchten. Und dann abbaubarer Schrägstrich, abbaubarer Schrägstrich, wählen Sie zum Beispiel
X. Und dann werden wir
das einfach kopieren. Wir machen den ACS, fügen hier Kommas hinzu und
legen dann die Schaufel hier ein. Unser Paxil wird also alles abbauen können , was eine Spitzhacke kann, ein Axon und eine Schaufel. Und das Beste daran ist , dass wir es
so hinzugefügt haben , dass wir
auf die anderen Tags verweisen. Wenn ein anderer Modus diesen Tags
Dinge hinzufügt, funktioniert das Paxil-Element auch für diese Blöcke. Das ist also das wirklich coole Ding. Wie erstellen wir jetzt
den eigentlichen Paxil-Artikel? Nun, sehr einfach. Wir kopieren nur die Kobalt WHO und wir
nennen das auch Kobalt
Paxil oder was packt Layer. Und dann wird das nur
ein Axl-Gegenstand sein. Und das war's. Da
gehst du. Paxil ist fertig. So einfach ist es eigentlich. Es ist eigentlich nicht so verrückt. Natürlich müssen Sie wissen, wie Sie im Grunde genommen verschiedene Tags in Ihren
eigenen Tags und ähnlichem
verwenden können . Insgesamt ist dies jedoch
ziemlich einfach. Es gibt eine bestimmte, naja, das ist eine Einschränkung,
die der Paket-Artikel hat und keine
Rechtsklick-Funktionalität hat. Jetzt könnten Sie die
Rechtsklick-Funktionalität hinzufügen. Wenn wir auf den
Bagger-Gegenstand klicken und die Steuerung H drücken , könnten
wir zum Beispiel auf den gesamten Gegenstand
gehen. Und Sie können hier die USA
mit der rechten Maustaste auf Methode
verwenden sehen . Und du könntest das außer Kraft und du könntest
verschiedene Dinge hineinlegen. Man könnte sagen, hey,
lass uns eine Standardaktion
machen, so
weiter und so weiter. Und dann mach das
Gleiche für das, zum Beispiel, wenn du schleichst, dann kannst du mit der rechten Maustaste klicken
und dann den Pfad, weißt
du, jemanden wie diesen,
und dann mit der rechten Maustaste klicken. Und Sie könnten auch
den Rechtsklick
mit der AKS-Funktionalität hinzufügen . werden wir in
diesem Beispiel nicht genau hier machen. Dies wird
nur ein Paxil-Gegenstand sein,
ein Multi-Tool-Gegenstand, der im Grunde genommen L2 Mine sein
wird, mehrere verschiedene
Arten von Spaziergängen. Fügen wir die
Übersetzung auch hier hinzu. Das sollte natürlich
nicht zu verrückt sein. Es ist natürlich nur das Kobalt
Paxil. Und dann dasselbe für das
Artikelmodell, nichts zu verrückt. Es wird nur
der Cobol Paxil sein, der auf das Kobalt Paxil Extra
hinweist, das ich natürlich auch habe. Dies ist eine A, B, a, eine coole Textur, die wir in einem Moment im Spiel
sehen werden. Und nun, das ist eigentlich
alles, was wir brauchen, um den umgekehrten
Schrägstrich zum Spiel hinzuzufügen. Also mal sehen, ob es funktioniert. Oder Rückschlüsse zurück
und Migranten können sehen, dass der umgekehrte Schrägstrich hinzugefügt
wurde und es sieht absolut
großartig aus. Also lass uns sehen. Da gehst du. Ich kann es als Schaufel benutzen, genau wie man es erwarten würde. Mal sehen, ob ich
diese Blöcke auch abbauen kann. Sie brauchen vielleicht ein
bisschen länger, aber insgesamt kann
ich
sie immer noch vollkommen gut abbauen. Und dann lasst uns tatsächlich etwas
finden. Aber dieser sollte jetzt
funktionieren, denn wieder ist
die Kobaltstufe
nicht hoch genug. Aber wenn wir uns nur ein bisschen
runtergraben, sollten
wir hier Stein finden können
. Und dann
sollte ich auch Stein
meinen können und ich
sollte Kopfsteinpflaster bekommen. Da gehst du. Ich hab
etwas Kopfsteinpflaster. Wie Sie sehen können, funktioniert hier
alles. Völlig in Ordnung. Axl Artikel, absolut. Erstaunlich, oder? Aber das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
61. (Alle Infos zu Tools) Waffen, die Effekte anwenden: Oder ich komme für 180 wieder zum
Futterkurs. Und in dieser Vorlesung
werden wir ein Werkzeug hinzufügen, das der getroffenen
Map einen Effekt
verleiht. Was
heißt das wirklich? Nun, lasst uns das einfach durchgehen und sehen, was das
im benutzerdefinierten Paket wirklich bedeutet. Klicken Sie mit der rechten Maustaste auf neue Java-Klasse, oder dies wird das
Schwebeschwert-Objekt sein. Und dies wird erweitert, dass
der Schwert-Gegenstand Mauszeiger über diesen
Creed-Konstruktor bewegen
wird, der super passt. Und was wir dann tun werden, ist, dass wir Methode des verletzten Feindes
außer Kraft setzen. Und das einzige, was
wir hier tun müssen, ist, dass wir sagen müssen p
Angreifer Dot Add-Effekt, neue Mob-Effekt-Instanz, Mob-Effekte, nicht Levitation, sagen
wir für 200 Ticks. Und dann der, nach den ersten Klammern P Angreifer als Quelle
des Angriffs hier. Und das ist
so ziemlich alles, was wir für die
Ideen tun
müssen, die
wir hinzufügen werden, die
hier oder vor einem Tag tatsächlich Ziel
sein wird , das Ziel bei Effect. Und dann hier P Angreifer. Die Idee ist also, dass wir,
wenn wir einen Feind verletzen, die Levitationseffekte hinzufügen werden Feind
die Levitationseffekte hinzufügen werden
, wenn wir ihn
mit dieser bestimmten Art treffen. Das ist
etwas, worum viele Leute zuvor
gebeten haben . Aber deswegen zeige ich das. Es ist eigentlich sehr, sehr einfach, dies zu tun. Jetzt müssen
Sie diese Klasse natürlich genau hier verwenden. Zum Beispiel können
wir hier
für unsere Cobol-Sortierung hier Levitation
Sort Item sagen. Und jetzt sollte es jedes Mal, wenn
wir eine Entität oder
ein Tier mit dem
Kobaltsortiergegenstand treffen , zehn Sekunden lang Levitation
erhalten. Das wäre echt witzig, aber mal sehen, ob es funktioniert. Oder dein Apotheker
zurück in Minecraft. Also lasst uns einfach sehen, ob ich
das Tier traf, das sie gegangen sind, es wird Levitation und es sollte das
für zehn Sekunden bekommen. Obwohl sie einfach im Urin schweben
werden. Irgendwann werden
sie dann wieder auf die Erde fallen. Und das wird tatsächlich auch zum Sterben
führen. Das ist also irgendwie witzig. Es ist ein cooler Effekt des
Schwebeschwertes, der im Grunde nicht der
interessanteste ist, aber es gibt viele Ideen,
verschiedene Effekte, die
Sie im Grunde bei einem
Treffer mit Ihrer benutzerdefinierten
Waffe hinzufügen können . richtig? Aber das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das
nützlich gefunden und lernt von dem Neuen und wir sehen uns
in der nächsten Vorlesung. Also ja.
62. (alle alle über Tools) Gestalte ein neues Rüstungsset: Oder ich begrüße wieder zum
Futterkurs für 118. In dieser Vorlesung
werden wir Minecraft
eine benutzerdefinierte Rüstung hinzufügen . Sehr ähnlich den benutzerdefinierten
Werkzeugen für das Rüstungsset müssen
wir tatsächlich eine neue Klasse
erstellen. Dies wird
in unserem Artikelpaket enthalten sein. rechten Maustaste auf neue
Java-Klasse,
die als Modus-Rüst Und dies wird
die Schnittstelle für Rüstungsmaterial implementieren die Schnittstelle für Rüstungsmaterial und es wird eine Aufzählung sein. Was wir tun werden, ist, dass wir mit der mittleren Maustaste
darauf klicken und dann
Strg H drücken , um zu den
Rüstungsmaterialien zu gelangen. Und was ich tun werde, ist, dass
ich hier ganz oben
klicke, direkt in die frühe Klammer, gehe ganz nach unten,
halte die Umschalttaste gedrückt und dann unten
klicke und
dann die Strg C drücke
, um kopiere alles und kontrolliere dann
V, um es einzufügen. Lasst uns das hier einfach
loswerden. Und
das einzige, was wir tun
müssen, ist, dass wir hier den Namen
des Konstruktors ändern müssen . Und das wird gut werden. Das einzige, was
wir nicht haben, ist, dass wir die
Parameternamen hier nicht abgebildet
haben. Jetzt kannst du sie selbst abbilden. Grundsätzlich können Sie auf
Umschalttaste F6 klicken und es dann richtig benennen, um
es zu benennen. Und dann kann man
ständig durchgehen, aber es wird wirklich nicht
unbedingt benötigt. Ich werde
den Konstruktor tatsächlich kopieren , weil ich das tatsächlich auf die abgebildete
Weise vorbereitet
habe. Materialien sie vor. Und da gehst du. Das einzige, was nicht
funktioniert, ist das, denn anstatt
ein faul geladener Wert zu sein, wir das einfach zu einem faulen Jahr machen
. Und dann sollte
hier alles
gut funktionieren , aber der Rest
sollte in Ordnung sein. Dies
steht Ihnen natürlich alles
im GitHub Repository oder einer
Einzelperson genauso gut zur Verfügung. also keine Sorgen. Und nun, was macht das? Nun, zuallererst können
wir alle
Vanille-Werte genau hier sehen. Und weil das eine Aufzählung ist, ist es ziemlich cool, weil
das nicht fortgeschritten ist. Wissen Sie, sogar wir können hier
mehrere verschiedene Werte definieren . Sagen wir einfach,
dass
unser Kobalt zum Beispiel irgendwie auf dem Niveau von Gold sein wird. Aber sagen wir, Sie wissen
was, es wird
ein bisschen mehr Haltbarkeit
haben ein bisschen mehr Haltbarkeit , sagen wir etwas wie 13. Vielleicht
wird die Interoperabilität etwas geringer sein, aber nicht zu weniger,
wie vielleicht 21, so etwas. Die Zielfinsternis ist in Ordnung. Vielleicht wird es sogar ein kleines bisschen Zähigkeit haben . Ich weiß nicht, wie 0,5, kein
Klopfwiderstand. Und die Zutaten, mit
denen Sie es reparieren können, werden mehr Gegenstände sein, Punkt bekommen. Und dann brauchen wir den Rest
nicht mehr. Das wird Kobalt sein. Und dann muss der Name
hier natürlich auch Kobalt sein. Und diese Werte
hier sind interessant weil diese Werte Sie
sehen können , dass dies der dritte Parameter
ist, ein ganzzahliges Array, das
als Slot-Schutz bezeichnet wird. Jetzt sind langsame Schutzmaßnahmen
im Grunde genommen
der Schutz jedes verschiedenen Rüstungsstücks. Das fängt ganz unten an. Das sind also die Stiefel, Leggings, die Brustplatte
und dann der Helm. Das ist sehr wichtig.
Und vielleicht wollen wir das ein bisschen ändern,
vielleicht so etwas. Vielleicht ist der Talmud tatsächlich
ein bisschen stärker. die Brustplatte
und das Ego. Aber wenn es um die Zahlen
geht, spiele mit ihnen herum, sei
offen für Experimente. Wenn du deinen Modus wirklich
ausgleichen willst, wird
es so sein, dass
du auf irgendeine Weise
damit herumspielen musst . Es gibt also keine Sorgen,
es gibt jedoch
eine weitere Änderung, die wir vornehmen müssen, und das ist in der
getName-Methode genau hier. Denn was wir hier
zurückgeben wollen, ist MC Course Mod, Mod a, D plus Doppelpunkt
plus dieser Name. Dies ist sehr wichtig
, dass Sie dies tun. Andernfalls funktioniert die Textur
nicht so, wie wir
sie einrichten werden. Es gibt also keine Sorgen. Aber abgesehen davon, je mehr
Rüstungsmaterialien gemacht werden, wenn Sie jemals
ein anderes Rüstungsmaterial hinzufügen möchten, müssen Sie im Grunde auch alle
diese Gläser haben. Und im Grunde trennen Sie
sie dann mit einem Komma. Also nennen wir dieses Kobalt zwei aus Gründen der Argumentation, solange sie
anders genannt werden,
wird das gut. Sie sind alle
durch ein Komma getrennt. Und dann endet das
mit einem Semikolon. Das ist sehr wichtig. Ich
wollte das auch erwähnen, weil ein paar Leute
damit verwechselt wurden. verrückt sollte es eigentlich nicht
sein. In diesem Fall ist es nur ein sehr grundlegendes
Java-Wissen. Aber was auch immer der Fall sein mag, gehen
wir jetzt zur More
Items Klasse. Und lasst uns unsere
oder Rüstungsgegenstände kreieren. Nehmen wir einfach die Achse hier
und lassen Sie uns
das einfach zum Kobalthelm machen und
dann auch hier Helm. Unterstrich-Element. Und das wird der
Rüstungsgegenstand sein, sehr wichtig. Der erste Parameter
wird das
Modus-Rüstungsmaterial, Kobalt, sein. Und dann hat der Knoten
drei Parameter. Genommen. Einer davon ist der Ausrüstungs-Slot. Der Ausrüstungsschlitz hatte in
diesem Fall ein Ziel. Und dann
erlauben uns die Artikeleigenschaften es uns einfach dreimal zu kopieren und dann lasst uns die Brustplatte hier
holen. Dieser Teller. Und dann müssen wir
nur den Ausrüstungsschlitz hier
ändern. Das ist sehr wichtig
, dass wir dies ändern. Andernfalls werden wir
auf einige Probleme stoßen. Für welche Leggings? Gamaschen auch hier. Und dann nicht
zuletzt die Stiefel. Und dann bootet auch hier. Seltsam diese beiden Beine und dann dieser Ausrüstungsschlitz zu essen. Und damit werden alle vier
Gegenstände tatsächlich hinzugefügt. So einfach kann es sein. Was wir jetzt tun wollen, ist
natürlich, bevor wir die JSON-Dateien hinzufügen, einfach die Übersetzung hinzufügen. Dies sollte an
dieser Stelle trivial sein. Es ist nur, ich habe es einfach kopiert,
um ziemlich selbsterklärend zu sein. Und wenn es
um die Artikelmodelle geht, werden es sich auch um normale
Artikelmodelle handeln. Denn natürlich sehen sie
innerhalb des Inventars einfach
wie normale Gegenstände aus. Es gibt jedoch eine
interessante Sache. Zuallererst sieht
man hier nur Punkte auf eine Textur. Und
das wird gut werden. Lassen Sie uns alle Texturen kopieren. Aber dann ist die Frage, naja, wie bekommen wir das,
die 3D-Rüstung? Nun, innerhalb unseres
Textures-Ordners, klicken Sie mit der rechten Maustaste auf ein neues
Verzeichnis namens models und anstelle des neuen
Verzeichnisses namens armor. Und das ist die amerikanische
Schreibweise, die sehr wichtig ist. Also ihr Leute aus
Großbritannien, tut mir leid, aber es wird einfach so sein, dann lasst uns
diese beiden gut PNGs hier kopieren. Dies wird der
Kobalt-Unterstrich Layer 1 und der coole Unterstrich Schicht 2 sein. Das ist sehr wichtig. Bitte achten Sie hier auf. Wenn wir also das
mehr Rüstungsmaterial definieren, diesen Namen genau hier, muss
Kobalt
genau mit
diesem Namen übereinstimmen . Und dann unterstrichen Sie Layer, Unterstrich eins wird
im Grunde genommen die 3D-Darstellung
sein. Es sieht so aus. Du kannst es
ein bisschen ändern, aber nicht zu viel. Und das wird sein, du
kannst die Brustplatte,
den Helm, ein
bisschen von dem anderen Zeug sehen . Und dann glaube
ich meistens hier, dass die Leggings
und die Stiefel genau passen müssen. Es können keine Leerzeichen da drin sein, keine Klammern 1, weil Sie es
von irgendwo kopiert haben. Genau so.
Beachten Sie dies, dass dies korrekt im richtigen
Ordnernamen und sie alle
richtigen Namen haben. Sehr wichtig. Wenn Sie sich jemals fragen, wo die anderen Texturen oder
Sie können zu
externen Bibliotheken gehen , dass Mikroklima extra 118 im
Texturen-Ordner und dann in der Models-Rüstung, Sie haben Sie grundsätzlich
Zugriff auf alle Vanille-Vanille und Sie können sie
theoretisch ändern, wenn Sie möchten. Das ist also echt verdammt cool. Aber das ist eigentlich alles
, was wir hinzufügen müssen. Also mal sehen, ob es funktioniert. Ordnung, wir befinden uns
wieder in Achtsamkeit. Kann sehen, dass
hier alles zum
Spiel hinzugefügt wurde und es sieht
häufig, erstaunlich aus. Oh, so einfach
kann es sein, die Rüstung hinzuzufügen. Man sieht sowohl frühe
Rüstungswerte als auch ein bisschen
Zähigkeit darin. Das ist echt verdammt cool, so
wie wir es
in unseren Rüstungsmaterialien definiert haben. Das ist ziemlich verdammt cool. Und es bringt Schweine zum Fliegen, oder? Aber das wird es schon
für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen, und wir sehen uns in
der nächsten Vorlesung. Also ja.
63. (Alle alle Tools) Voller Armor: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir
einen benutzerdefinierten vollen Rüstungseffekt hinzufügen . Was heißt das jetzt? Nun, die Idee ist, dass wenn wir unsere gesamten Rüstungssets
tragen
, alle
Kobalt-Rüstungsmaterialien hier aufgestellt werden. Was wir dann wollen,
ist, dass wir
mit dem Spieler
einen benutzerdefinierten oder einfach normalen Trankeffekt hinzufügen einen benutzerdefinierten oder einfach normalen möchten. So wie wir das machen, ist, dass
ich tatsächlich den Kurs
kopieren werde, den
wir brauchen werden. Dies steht Ihnen
im GitHub Repository oder einer
Einzelperson genauso gut zur Verfügung. Okay, also das ist die
ganze Klasse und insgesamt werden
wir einfach durchgehen und
ich erkläre es mir, während ich weitermache. Das erste, was wir
haben, ist natürlich eine Karte. Diese Map wird also im
Rüstungsmaterial einer bestimmten
Modus-Effektinstanz zugeordnet . Jetzt ist die Nummer eins sehr
wichtig, dass diese Instanz, die
wir in
dieser Map verwenden , eigentlich
nie selbst verwendet wird. Wir nehmen nur
die Werte daraus. Sie können also sehen, dass ich, wenn ich
das Rüstungsmaterial Kobalt anlege , einen Glückseffekt
auf mich mit
einem Verstärker von einem bekommen werde . Das bedeutet also, dass ich
tatsächlich das Schloss
2 und dann natürlich
auch 200 Ticks bekomme . Das wäre also für 10 Sekunden. Derzeit funktioniert dies nur
mit Mod-Rüstungsmaterialien, also nur mit deinen benutzerdefinierten
und nicht mit Vanille. Das ist hier eine sehr wichtige
Einschränkung. Nun, wie funktioniert das bei
Rüstungszecken gut , nennt man hier
diese Methode. Wir überschreiben dies
und dies wird jedes
Mal aufgerufen , wenn sich ein bestimmtes
Rüstungsstück, in diesem Fall das
Modus-Rüstungsgegenstand, in deinen Rüstungsschlitzen
befindet. Das heißt also, wir werden sicherstellen,
dass wir auf dem Server sind, und dann prüfen wir,
ob
der Spieler eine
volle Rüstung hat oder nicht . Dies ist eine benutzerdefinierte
Methode, die ich geschrieben habe. Es ist nicht nichts
zu Verrücktes hier. Wir
bekommen im Grunde nur die Rüstung der Slots 0 bis drei, aber alle Unterarme
sind Schlitze und
prüfen dann nur , ob
sie nicht leer sind oder nicht. Wenn also keiner von ihnen leer ist,
werden wir ein
wahres Ergebnis bekommen und
dann werden wir die Rüstungseffekte
weiter bewerten. Dafür
gehen wir im Grunde die Gesamtheit der Map
des
Materials durch , um das Map zu beeinflussen. Und nur sicherstelle, dass hey, hat der Spieler
die richtige Rüstung auf vier, im Grunde ein Effekt. Und wir werden
sicher gehen , dass wir
sichergehen werden. Und das hier. Dieser sagt also nur, hey, ist es das Material
all dieser Rüstungen, im Grunde das gleiche
Material wie dieses. Und wenn das der Fall ist,
dann können wir noch
weiter fortfahren, dann können wir noch
weiter fortfahren indem wir diese im Grunde zufriedenstellend
hinzufügen. Wir stellen sicher
, dass der Spieler den
Effekt
nicht bereits hat. Andernfalls würden Sie im Grunde jedes Häkchen die Tatsache anwenden, was vielleicht ein
bisschen zu oft sein könnte. Also habe ich diesen
Vernunfaltscheck im Grunde genommen hier hinzugefügt. Dann prüfen wir auch
noch einmal, ob die Rüstung eingeschaltet ist und
ob das der Fall ist, dann werden
wir den Effekt hinzufügen. Also werden wir hier
eine neue Effektinstanz
der tatsächlichen
Effektinstanz
machen , Effekt-Iteration
kann Verstärker werden, wie gesagt, dieser kleine
Effekt genau hier, diese Instanz hat nie benutzt,
wenn wir Hier definiert, wird
dies nur als Vorlage verwendet,
damit wir grundsätzlich
auch die Dauer
und den Verstärker einsetzen können . Ja, das ist so ziemlich
alles, was es dazu gibt. Es sollte nicht zu verrückt sein. Weißt du, wenn die
Frage auftaucht, geht dir gut, wie
hast du das gemacht? Wie hast du das gemacht? Nun, es ist erst am Ende
des Tages in Java-Wissen , das Sie brauchen und wahrscheinlich auch
ein bisschen
Minecraft-Wissen. Und wie können wir diese Klasse benutzen. Jetzt werden wir in unseren Mod-Gegenständen, ich persönlich bevorzuge es,
den Kobalthelm zu benutzen , um hier
einen MOD-Rüstungsgegenstand herzustellen. Und was sehr wichtig
ist, ist, dass Sie hier nur eines Ihrer Sets
erstellen müssen . Also ein Gegenstand in deinem Set, der Modus-Rüstungsobjekt. Wie ich schon sagte, normalerweise
bevorzuge ich den Helm. Das Schachspiel mag auch Sinn
machen, oder die Stiefel, was immer Sie wollen,
aber nur einer von ihnen muss ein
Rüstungsgegenstand sein. Und wenn das der Fall ist, können wir bereits
sehen, ob es
funktioniert oder nicht oder ob Unternehmen
wie in Minecraft. Also mal sehen, ich
habe schon alles
außer dem Helm an und lass es uns anziehen und da ist er. Ich habe jetzt
für zehn Sekunden Glück. Und wenn ich eines
dieser Rüstungsgegenstände abziehe, sich nicht erneuern,
sobald der Effekt nachlässt wird er sich nicht erneuern,
sobald der Effekt nachlässt. Wie du siehst, gehst du los. Und dann spielt es im Grunde keine
Rolle, was wenn ich weiter bin und was
wenn ich nicht gelesen habe. Es ist wirklich im
Grunde genommen nach jedem anderen Stück zu suchen und sie haben dir noch einmal Glück, oder? Es gibt sicherlich einige
Einschränkungen bei dieser Klasse, aber das sollte
hoffentlich
eine coole Einführung
für Sie sein . Sie können natürlich
immer den
gesamten Code ändern, der
im GitHub-Repository oder in
einer Einzelperson verfügbar ist der
im GitHub-Repository oder in . Und das wäre es schon für diese Vorlesung genau hier. Ich
hoffe, du hast das nützlich gefunden. Und was das Neue angeht,
sehe ich Sie jedoch in der nächsten
Vorlesung. Ja.
64. (alle alle über Tools) Benutzerdefinierte Horse: Oder ich komme für 118 zurück zu
den Futterkernen. In diesem Vortrag werden
wir Minecraft eine
benutzerdefinierte Pferderüstung hinzufügen . Für benutzerdefinierte
Pferde-Rüstungen ist eigentlich ein ziemlich einfacher
Prozess. Es gibt jedoch
eine Kleinigkeit , die Sie beachten müssen. Nun, lassen Sie uns einfach
die Kobaltstiefel hier überschreiben. Und lassen Sie uns einfach die
Kobalt-Unterstrich-Rüstung des Pferdes
unterstreichen. Und das Gleiche hier unterstreicht Kobalt
Pferd Rüstung. Und das wird ein
Pferde-Rüstungsgegenstand sein, oder? Das hier. Und was wir dann wollen,
ist der erste Parameter, sagen
wir etwas wie 12. Und der zweite Parameter
wird
eine Zeichenfolge für Bolt sein . Jetzt ist die Saite hier sehr
wichtig, da dies den Namen der
Pferderüstungstextur
definiert. Lassen Sie uns also zuerst
die Übersetzung noch einmal hinzufügen. Wir werden die Rüstung der
Pferdeunterstriche unterstreichen. Für
Kobaltpferde-Rüstung natürlich. Das Ego und dann ein Gegenstandsmodell. Ich kopiere nur
den Barren hier, und ich nenne das einfach die Kobaltpferde-Unterstreichungsrüstung. Und dann werden wir es auch hier
ändern. Schlimmer noch, schlimmere Unterstrich-Rüstung. Und dann fügen wir das langweilige Artikelmodell hinzu,
wie in, dies ist nur
ein normaler Gegenstand. Und fügen wir hier die langweilige
Artikelstruktur hinzu. So langweilig, dies jedoch nur die normale
Textur ist. Was ist mit der 3D-Textur? Nun, das geht tatsächlich
in den Assets-Ordner, aber in Minecraft für einen neuen Ordner im
Assets-Ordner namens Minecraft. Und dann brauchen wir
da drinnen Texturen. Und dann brauchen wir anstelle der
Urne Entity. Und dann brauchen wir
da drinnen ein Pferd. Und dann brauchen wir
da drinnen eine Rüstung. Wieder einmal die
amerikanische Rechtschreibung. Und dann kopiere ich
das vorbei. Sie können die
Rüstung des Pferdes unterstreichen sehen, Kobalt unterstreichen. Das ist genau der Name
, den wir hier geben. Wenn wir also mit der mittleren
Maustaste auf
den Pferdepanzerungsgegenstand klicken , können
Sie sehen, dass es im Grunde genau das hier
dauert. Es braucht also Detektoren, Entität,
Pferd, Rüstung, Pferdeunterstrich,
Unterstriche, wo immer der
Identifikator ist, den wir hier einsetzen. Und Punkt PNG, im Grunde ist es
das, was es
auf 43 verweist, die Rüstung. Und das ist im Grunde alles
, was Sie bei
der Pferderüstung im Auge
behalten müssen . Das eine andere Sache , die
interessant sein könnte, ist, dass wenn wir uns
das ansehen können, zum Beispiel Eisen als fünf Schutzgold
sieben hat und Diamant 11 mit 12
hat. Das wäre eigentlich ein
bisschen besser als Diamant-Pferde-Rüstung, aber
das ist völlig in Ordnung. Sie können
dies natürlich so ändern, wie Sie möchten. Aber mal sehen, ob es funktioniert. Oder ein Öfen in Minecraft und wie es der
Zufall will, haben wir hier bereits ein gezähmtes
Pferd. Lass uns einfach
die kalte Pferde-Rüstung geben. Und da ist es. Es sieht dem Diamanten sehr
ähnlich aus, sieht
aber immer noch
ein bisschen anders aus. Obwohl. Das ist
wirklich großartig und so einfach ist es, Minecraft benutzerdefinierte
Pferdepanzerungen hinzuzufügen. Das zu schreiben wäre es
schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns allerdings in der
nächsten Vorlesung. Ja.
65. (Alle alle über Tools) Benutzerdefinierte Verzauberung: Alles klar, willkommen zurück
zum Kurs für 118. Und in diesem Vortrag
werden
wir uns ansehen, wie Sie Minecraft individuelle Verzauberungen
hinzufügen können . Verzauberungen an
und für sich sind also ziemlich einfach hinzuzufügen. Es ist schwer, die
eigentliche Funktionalität der Verzauberungen ist. jedoch im MC-Kurspaket mit der
rechten Maustaste auf ein neues
Paket, das als
Verzauberungspaket bezeichnet wird Klicken Sie jedoch im MC-Kurspaket mit der
rechten Maustaste auf ein neues
Paket, das als
Verzauberungspaket bezeichnet wird. Dann brauchen
wir da drinnen zwei neue Klassen. Einer von ihnen heißt
Mod Enchant Minuten-Klasse. Und der andere
wird unser
tatsächlicher und Vorsitzender sein , den wir tun werden. Und das wird der Blitzbrecher in Shenzhen sein. Es gibt auch den Kurs, mit dem
wir anfangen werden. Dies wird die
Verzauberungsklasse genau hier erweitern. Und dann lassen Sie uns einfach den Mauszeiger über den richtigen Konstruktor bewegen, der super
passt. Dann ist das sehr wichtig, dass wir die
Geräterutsche hier auf
drei Punkte
umstellen , anstatt hier
der tatsächliche Bereich zu sein. Und was ich dann auch wärmstens
empfehlen kann , ist,
auf diesen und den Vorsitzenden
und das drängende Control
H zu klicken , um im Grunde alle
Vanille-Verzauberungen
sehen zu können , die Sie haben. Also gibt es zum Beispiel, ich meine, es gibt so viele
verschiedene Dinge, oder? Die Dornen des Vorsitzenden, schauen Sie sich das
einfach an. Du siehst, Hey,
wie funktioniert das? Aber wie ist das grundsätzlich
möglich? Und man kann sich im Grunde
einfach alle hier drin ansehen . Ich empfehle
dringend, einen Blick darauf zu werfen, da dies wirklich eine großartige Ressource
ist um die möglichen
Funktionen hier zu sehen. Und für unseren Vorsitzenden werden
wir zunächst die GetMax-Levelmethode
außer Kraft setzen. Und wir werden a2
zurückgeben, denn hier bestimmt
dies im Grunde genommen, wie
viele Bücher generiert werden. Weil die Bücher, die
Bücher tatsächlich automatisch
generiert werden , denn unsere Verzauberung ist wirklich cool. Und das bestimmt im Grunde,
wie viele Levels es gibt. Jetzt möchten wir
die Methode do post attack überschreiben, die im Grunde nach
einer Weile als Angriff auf eine Entität bezeichnet wird . Und wir werden das
einfach durchmachen. Also versuche ich es zu erklären. Wir werden also sagen, dass
nicht die P-Angreiferebene nicht clientseitig ist. also im Grunde sicher
, dass wir auf dem Server sind. Bitte beachten Sie das
Ausrufezeichen ganz vorne, das die Clientseite
annulliert. Sehr wichtig, dass wir dafür auf dem Server sein wollen
, wir möchten sagen, Serverebene, die gleich ist,
nennen wir es einfach Welt, das ist in Ordnung. Also ein bisschen daran gewöhnt, die Levelwelt zu
nennen. Und ja, er Angreifer
Dot Level, aber auf Serverebene
geworfen eigentlich nicht auf
Client-Level, Serverebene. Sie haben vor und dann so
geendet. Und dann erstellen wir
eine Serverschicht für Spieler, die dem Punktepunkt des P-Angreifers
entspricht, der an den
Serverplayer
geworfen wird . Genau. Und dann werden wir
eine coole Position des Block-Passes haben, die
dem Zielpunkt entspricht, bekommen. Eigentlich ist es einfach blockiert. Position. Da gehst du. Genau das ist es. Wir werden auch die
Blog-Posts Klasse importieren. Dann können Sie hier drinnen
sehen, dass wir das P-Level bekommen, das hier im Grunde genommen
ein Level erreicht, oder? Also werden wir das
Niveau der Verzauberungen erreichen. Also werden wir sagen, wenn
P-Level gleich eins
ist, bedeutet das, dass
wir keinen Blitz tauschen werden. Aber die Idee ist, dass wir den Entitätstyp
Punkt-Punkt-Punkt-Blitzbolt-Spawn in der Welt
nennen wollen Entitätstyp
Punkt-Punkt-Punkt-Blitzbolt-Spawn in der Welt
nennen . Nl Spielerposition, mobiler Spawn-Typ, Typ Punkt ausgelöst. Und dann wahr und dann wahr. Dies ist also im Grunde eine Möglichkeit ,
einen Blitzbolzen zu spawnen. Sehr einfach. Und das Beste
ist, dass dies nicht
nur ein Weg zu einem kleinen
Blitz ist , Sie werden buchstäblich alles
hervorgebracht, was Sie wollen, a,
b und Ax , kleine Fledermaus, ein Gebiet, Tatsache Cloud anscheinend
ein Rüstungsset, was immer du wirklich willst. Aber vorerst werden
wir es so behalten. Jetzt
werden wir das einfach kopieren, diese Stufe zwei
machen, und dann werden
wir nur kleine Auskleidungen machen. Das ist eigentlich alle
Funktionen, die wir benötigen. Wenn Sie eine bestimmte
Funktionalität für
Ihre Verzauberung wünschen , geht
es nur darum,
Java mehr zu lernen und einfach eine Menge Sachen
auszuprobieren. Sei offen für Experimente. Werfen Sie einen Blick auf die, die Lunula-Verzauberungen,
sehr zu empfehlen. Man kann im Grunde
nichts Besseres machen. Inzwischen müssen wir unserer
Mod-Verzauberungsklasse noch Sachen
hinzufügen. Und das wird
etwas haben , das Sie
zuvor gesehen haben, und es ist ein öffentliches statisches, endgültiges
verzögertes Register vom Typ Verzauberungen. Dieses Mal werden wir Verzauberungen. Und das ist gleich einem
anderen Register, das den MC-Kursmod, die Mod-ID und ob es sich um
ein anderes Register handelt, erstellt oder registriert,
verzaubert . Es gibt auch
eine öffentliche statische
Void-Register-Methode mit einem
Eye-Ereignisbus oder Ereignisbus als Umfang. Wir rufen einfach
die Verzauberungen an, die sich beim Eventbus registrieren. Und seine
Registermethode ist natürlich, hier
gerade nach dem Gesetz genannt
werden,
der Mock blockiert Register, wir werden sagen,
Mod-Erfolge
Punktregister mit dem Eventbus. Da gehst du. Und jetzt ist das registriert. Was wir jetzt
brauchen werden, ist, dass wir im Grunde nur tun werden, dass
das Folgende tatsächlich sehr einfach sein wird. Wir brauchen natürlich nur ein öffentliches
statisches Registry-Objekt vom Typ Verzauberung, das der
Blitzunterstrich-Stürmer sein wird
, der den
Verzauberungen entspricht, beginnen Register Blitz
unterstreicht Stürmer. dann in einem Anbieter von neuen Blitzeinschlägen oder
Verzauberungen mit der Seltenheit Lassen Sie uns dann in einem Anbieter von
neuen Blitzeinschlägen oder
Verzauberungen mit der Seltenheit etwas
Ungewöhnliches tun? Ungewöhnlich, ja. Für Seltenheit und die Kategorie
Verzauberungen ist
Waffe, als der
Ausrüstungs-Slot nicht gefüttert wird,
aber wir werden diese Ausrüstung nur
Slashdot über gemeine Hand
machen . Ja, da gehst du. Und das ist es eigentlich. Das ist alles, was wir tun müssen, um diese Verzauberung zu registrieren. Dies ist die Funktionalität, dies ist die Registrierung abgeschlossen. Was wir jetzt noch hinzufügen
müssen, ist, dass die Übersetzung anstelle
der e und
uns benachbarte Datei unterstreicht, wir sind es gewohnt, weißt du, ich werde
das hier ganz unten setzen. Wir werden das überschreiben. Das ist nichts zu verrückt. Dies ist nur die im Grunde genommen Verzauberung
MCQs, Lightning Stryker. Dieser Name muss
also
natürlich wieder mit diesem
Namen übereinstimmen. Und dann ist das nur
Verzauberung Vermont ID. Und du wirst nur
dieses brauchen, obwohl
es mehrere verschiedene Ebenen gibt, wird
dies für
jede dieser Ebenen übersetzt, oder? Nachdem wir all das
hinzugefügt haben, Mal sehen, ob es funktioniert oder warum wir wieder
in der Mikrofinanzierung funktionieren, kann
den Blitzeinschlag sehen oder
erfolgreich zum
Spiel hinzugefügt wurden , den Verzauberungen. Fügen wir es in diesem Fall einfach zu unserem Diamantschwert
hinzu
und verwenden wir einfach diejenigen
, die die Nummer eins sind. Wenn wir dann Nummer zwei verwenden, ist
es nicht zu bemerken, aber es ist etwas anderes. Also los gehst du. So
einfach ist es eigentlich,
einen Kunden hinzuzufügen , der
zu Minecraft geleitet wurde. Und das wird es schon
für diese Vorlesung genau hier sein. Ich hoffe, du hast das im Urin
nützlich gefunden. Also das Neue, und wir
sehen uns in der nächsten Vorlesung. Also ja.
66. (Fortgeschrittene) BlockState: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem Vortrag werden
wir über
Blockstaatseigentum
sprechen. Block sagt also, dass Eigenschaften
eine sehr interessante Sache sind. Und im Grunde werden
wir
zunächst eine Art Theorie behandeln, die dahinter steckt. Und dafür nehmen wir die PowerPoint-Folien
heraus. Werfen wir einen Blick auf
die Unterscheidung zwischen Blöcken und Blockzuständen. Also block, du kannst dir das als eine Art einziges Muster vorstellen. Die Idee ist, dass wir für uns in unserer Klasse mehr Blöcke oder für die Rindler-Blöcke
in der Block-Klasse verschiedene Felder
für bestimmte Blöcke haben. Jetzt werden diese erstellt, sobald Sie sich daran erinnern, dass sie
öffentlich statisch endgültig sind, also werden sie einmal zugewiesen. Es gibt immer nur ein Feld für einen
bestimmten Block. Sie können sie sich also
als Singleton-Muster vorstellen. Während Blockzustände die Instanzen sind, die sich innerhalb
der Welt oder der Ebene befinden, speichern
die Blockzustände
eine Blockposition, die Blockeigenschaften, das
wären die Stärke
des Blocks. Sie wissen wie, wie viel Zeit es braucht, um solche Dinge zu brechen,
die wir grundsätzlich
in der Postfachklasse und
dann auch die
Blockstatuseigenschaften zugewiesen haben. Das sind also die drei Großen. Natürlich gibt es viel mehr
als das dahinter steckt. Das wären die großen Drei. Und du kannst dir das so vorstellen
. Die Blockstaaten werden
von der Welt gerettet und
können immer nur
von der Welt oder dem Level verändert werden. Indem Sie zum Beispiel Level
Sunblocker machen, als einige Parameter
einzugeben. Das ist die allgemeine Idee. Sie haben einen Block,
der ein einzelnes Muster ist sozusagen nur die Idee
eines Blocks. Denn wenn ich
Redstone oder Block sage, meinst
du: Okay, ich
weiß wie Redstone oder Block aussieht, aber wenn ich dann drei
verschiedene Redstone
oder Blöcke auf der Welt habe , sind
sie alle anders, aber
sie sind alle vom gleichen Typ. Das ist irgendwie die Idee.
Sie können sich also einen Block als Klasse vorstellen und der
Blockstatus wäre das Objekt, das daraus
erstellt wird, sagen
wir
sozusagen in Bezug auf die
Programmiersprache, oder? Was sind jetzt
Blocksit-Eigenschaften? Nun, die kleine Überschrift hier oder wie man Daten in
Blöcken speichert , ist nicht zu 100
Prozent korrekt, aber es ist
irgendwie die Idee der gleichen. In der
Kalziumblocker-Klasse
könnte in diesem Fall die allgemeine Frage sein, nun, warum
lege ich
dort nicht einfach einen Booleschen Wert ein und dann
wird es gut funktionieren, denken Sie noch
einmal darüber nach. Wenn wir einen Block erstellen, schreiben Sie die, diese Klasse wird
hier einmal erstellt. Wenn Sie also nur
einen Booleschen Wert für
alle Blöcke dieses Typs haben würden , wird
es dasselbe sein. Und dann macht es natürlich keinen
Sinn, denn
ob
dieser Redstone oder Block beleuchtet
ist oder nicht leuchtet, hat nichts mit dem zu tun,
wie zwei Blocks davon entfernt. Richtig. Und das
ergibt natürlich keinen Sinn. Hier
kommt also die Trennung ins Spiel und
dort müssen der Block Eigenschaften verwendet werden. Wir können hier sehen, dass wir eine
boolesche Eigenschaft namens lit haben. Und was sehr
wichtig ist, ist, dass wir dies in der Blockklasse
definieren. Und dann müssen wir immer die Methode zur Definition von
Blockstatus erstellen
hier aufrufen Methode zur Definition von
Blockstatus und die
Eigenschaften im Grunde dem Builder hinzufügen. Das ist sehr wichtig
ist, dass
Eigenschaften im Allgemeinen niemals null sein können. Sie haben also immer
einen Wert oben, können mehrere
verschiedene Eigenschaften haben. Und diese Eigenschaften
können später in der
Block States
JSON-Datei
verwiesen werden in der
Block States
JSON-Datei
verwiesen , um sich grundsätzlich auf
verschiedene Modelle zu beziehen , die wir bereits
gesehen haben, oder? Wir haben die Treppe innerhalb
der Türen gesehen, all das. Sie haben im Grunde viele verschiedene Blöcke,
die Eigenschaften und dann das Ende
je nach ihren Werten, beziehen
sie sich dann auf ein
anderes Blockmodell. Und er war im Grunde
ein Beispiel, oder? Das wäre, LET ist gleich falsch und dies wird beleuchtet,
ist gleich wahr. Ändern des Blockstatus. Nun, wie wird das gemacht? Nun, es ist eigentlich sehr einfach
gemacht. Wir brauchen hier nur ein Level. Also brauchen wir irgendwo eine
Levelvariable, setzen Sie den Block an einer
bestimmten Position. Dann bekommen wir den aktuellen Status. Wir legen den Wert von lit genau das fest, was hier drin
ist, oder? In diesem Fall stimmt es. Und dann sind die drei nur ein
Flag, das
das Aktualisierungsverhalten der
tatsächlichen Einstellung des Blocks bestimmt . Normalerweise geschieht dies
auf dem Server. Wenn Sie das nur
auf dem Kunden tun , wird es
nicht funktionieren. Stellen Sie grundsätzlich immer sicher, dass Sie sich in einem Server-Thread befinden,
wenn Sie den
Blockstatus ändern, wenn der Client einfach den Bach-Status
ändern könnte, oder das könnte zu einigen
interessanten Probleme, die sagen, und ja, das ist
so ziemlich die Idee, oder? Es passiert hier an einer
bestimmten Position. Der zweite Parameter
ist der neue Status an dieser Blockposition. Und dann ändert der dritte
Parameter, wie gesagt, das
Aktualisierungsverhalten. Wir werden im Grunde 3 4 Amin
durchmachen, im Grunde genommen die Gesamtheit dieses Kurses, denn
drei aktualisieren im Grunde nur alle
Nachbarn und aktualisieren das Aussehen und
das läuft um gut zu gehen. Im Moment würde
ich mir darüber keine Sorgen machen, wenn Sie wirklich etwas anderes
brauchen,
dann hoffe ich Ihnen an diesem wenn Sie wirklich etwas anderes
brauchen, Punkt,
dass Sie fortgeschritten genug sind um dies im Grunde herauszufinden
auch dein eigenes, oder? Aber das
wäre so ziemlich genau das für die Theorie hier. Gehen wir also in die
Intelligenz und drücken wir zweimal
die Umschalttaste
und legen wir einen roten Stein oder Block ein. Wir werden uns
diesen Kurs tatsächlich ansehen. Und wie Sie sehen können,
so ziemlich genau das, was wir hier hatten, eine boolesche Eigenschaft namens lit Ganz unten haben wir
die Credo-Block-State-Definitionsmethode genau hier, die aufgerufen wird. Beide sind also im Grunde
die wichtigen Dinge. Der Grund, warum ich
den Redstone oder den Block
hier gewählt habe , ist, dass dies
das einfachste Beispiel für eine
einzelne Blockstatuseigenschaft ist . Und es hat nicht zu
viele andere Dinge hier drin. Aber es gibt natürlich
noch ein paar andere Dinge. Angriff hier wäre, wenn Sie
einfach mit der linken Maustaste auf den Block klicken, dann beginnt er
die Interact-Methode zu suchen, die im Grunde genau hier ist. Und das ist sehr interessant. Wenn die Lippeneigenschaft also falsch ist, setzen wir sie auf „true“. Und Sie können sehen, dass dies genau
die Einstellung von true ist, die wir auch in der
PowerPoint-Präsentation hatten. Wir setzen den Blog an eine
bestimmte Position. Der Status, in dem wir
den Wert von LET the true festlegen, und dann ist das Flag hier drei. Ich glaube also, wenn
wir den Mauszeiger darüber bewegen, können
Sie sehen, dass weltweite
Flaggen wie folgt sind. Eines ist ein Blockupdate, zwei senden es an den
Client, um zu verhindern, dass
der Block erneut gerendert wird und solche Sachen. Und du kannst sie im Grunde hinzufügen. Aber wenn wir eine Drei eingeben, dann wird es
passieren, dass es sowohl ein Blockupdate verursacht als auch die Änderungen
an den Client
sendet weil wir 1 plus 2 setzen. Das ist die Grundidee. Wenn
Sie etwas anderes brauchen und sie im Grunde genommen
sind,
schauen Sie sich das vorerst an. Wir werden uns
darüber keine Sorgen machen. Nun, das ist alles in
Ordnung und gut, wir können uns das alle ansehen, aber seien wir ehrlich, wir wollen selbst etwas
machen, und
genau das werden wir tun. Wir werden hier eine neue Klasse schaffen. also in unserem benutzerdefinierten Paket mit der rechten Maustaste auf neue Java-Klasse. Und das wird
die Kobaltlampe schwarz sein. Und dies wird
die Blockklasse erweitern. natürlich genau hier dieses Bild, Importieren Sie natürlich genau hier dieses Bild,
das wir ausgewählt haben, dass wir das
richtige Bild ausgewählt haben, der super
passt. Und wenn uns das rauscht, dann können wir einfach darauf klicken, Umschalttaste F6
drücken und hier einfach Eigenschaften
wählen. Da gehst du. Alles klar, jetzt
brauchen wir natürlich einen Block, sagen wir Eigentum. Jetzt mache ich dies zu
einer öffentlichen statischen endgültigen booleschen Eigenschaft namens clicked, die dem booleschen
Eigenschaftenpunkt erstellen entspricht. Und das war's. Und Vorschriften, Sie haben
eine benutzerdefinierte Block-ID-Eigenschaft erstellt . Das ist alles, was wir tun müssen. Und natürlich müssen
wir die Methode zur Definition von Blocksätzen erstellen immer noch außer Kraft
setzen. Und dann nenne es im Grunde
P Builder dot add, geklickt. Da gehst du. Wenn Sie mehrere
Blöcke haben, die Eigenschaften, können
Sie sie einfach hinzufügen, indem sie
im Grunde durch ein Komma trennen. Natürlich ist es nicht sinnvoll
,
hier zweimal geklickt zu haben, aber wenn Sie mehrere haben, können
Sie
sie einfach durch ein Komma trennen und mit dem
Add-Code hier so viele hinzufügen, wie Sie möchten
. Jetzt wollen wir in der Lage sein,
diesen Block mit der rechten Maustaste zu klicken und dann wird er im Grunde genommen
ein- und ausgeschaltet. Wir werden einfach
die US-Methode hier nehmen. Das werden wir außer Kraft setzen. Also lass mich das einfach
ein bisschen anders machen. Und da
dies veraltet ist, können
Sie natürlich sehen, dass wir das nicht nennen
sollten. Wir werden nur das
Interaktionsergebnis dieses Erfolgs
zurückgeben ,
das wird in Ordnung sein. Jetzt ist die Frage: Okay,
was werden wir tun? Nun, wir werden sagen,
ob P-Level auf Kundenseite ist. Im Grunde genommen
sicherzustellen, dass wir das haben, ist
das sehr wichtig,
dass wir
das
Ausrufezeichen an der Front haben das
Ausrufezeichen an der Front dies
im Grunde zunichte machen, oder? Also wollen wir auf dem
Server sein, nicht auf dem Client. Und ich sage, p-hat entspricht
Interaktion Hand in Hand. Wir werden das nur jemals
nennen,
das ist die Grundidee. Und das ist sehr wichtig. Also Ausrufezeichen, bitte beachte das, weil ich das mehrmals
gesehen habe. Die Leute haben
das Ausrufezeichen vergessen dem wir auf dem
Server sein wollen, nicht auf dem Client. Und dann werden wir sagen, dass der
boolesche aktuelle Status dem Zustand
entspricht, in dem
wir weitergegeben wurden. Dies wäre also der
eigentliche Blockstatus , auf den wir gerade mit der rechten Maustaste geklickt haben. Und ich werde sagen,
erhalte einen Wert von geklickt. Und was wir dann
tun werden, ist, dass wir einfach
Level Set Block sagen , der aussieht, hätten
wir an dieser
bestimmten Position gesehen, auf die wir mit der rechten Maustaste geklickt haben,
mit einem Zustand, auf den wir mit der
rechten Maustaste geklickt und
eingestellt haben der Wert, der auf den aktuellen Status
geklickt wurde, negierte die ersten Klammern, orientierte sich und setzte sich in drei ein, was die Flags sind. Und das ist eigentlich
alles, was wir
tun müssen, damit sich diese Lampe ändert. Nun, es ist ein blockierter Zustand. Und wir werden sehen, wie wir dies im Grunde darstellen
können oder wie wir das in einem Moment sehen können
. Aber ja, das ist so ziemlich
alles, was wir tun müssen. Du kannst alles sehen hier drin. Das sollte zu diesem Zeitpunkt nicht zu
verrückt sein. Ja, also lasst uns den Block auch
registrieren. In unserer Klasse mehr Blöcke kopiere
ich einfach über die
Kirschblüten-Falltür und
das wird
die Kobalt-Unterstreichungslampe sein die Kobalt-Unterstreichungslampe sein denn es ist das Gleiche
hier, Kobaltlampe. Und das ist jetzt ein
Kobaltlampenblock
, der
definitiv kein Holz aufnehmen wird. Nehmen wir uns
ein Metall und dann
ist auch keine Okklusion nicht der Fall. Was wir jetzt tatsächlich
hinzufügen werden , ist etwas
sehr Interessantes. Lass es uns nicht unbedingt notwendig
sein, aber ich wollte das zeigen. Im Grunde möchte ich, dass wenn die Click-Eigenschaft wahr
ist, möchte ich, dass
diese dort eingeschaltet wird. Wie machen wir das? Nun, Sie können sehen, dass wir
diesen See-Level hier haben
, der eine
Int-Funktion des Blockstatus ist. Was heißt das? Nun, es nimmt im Grunde einen Zustand hier ein und dann
haben wir es ähnlich wie ein. Sie können sehen, dass dies
einem Lieferanten ähnlich ist , und dann müssen wir es
nur zurückgeben, damit wir zum Beispiel 15 eingeben
können. Unabhängig vom Bundesstaat können
Sie sehen, dass es
nur 15 zurückgeben wird. Das war nicht ganz
das, was ich im Sinn hatte. Was ich im Sinn hatte, ist, dass
wir State Dot sagen einen Wert von
Kobaltlampe Black Dot anklicken. Also
bekommen wir im Grunde den Wert und dann werden wir den ternären Operator
verwenden. Wenn dies der Fall ist, geben
wir 15 zurück, was Max Light Level ist, und sonst geben
wir 0 zurück. Das ist die allgemeine Idee hier,
ist nur ein, etwas, das
man im Grunde hinzufügen kann. Und auch dann du,
jetzt weißt du, hey, so kannst du
ganz einfach
eine Lichtstufe dort zu
einem Block hinzufügen , wenn du willst. Und jetzt natürlich weiter
zu den JSON-Akten. Also lasst uns zuerst
die Übersetzung hinzufügen , nur weil das ein
bisschen schneller sein wird. Ich kopiere hier einfach
über den Zaun. Die Kobaltlampe. Sie gehen über die Lampe. Und dann kopiere
ich auch die Blockzustände. Diese stehen Ihnen natürlich
alle im GitHub Repository oder
Einzelpersonen genauso gut zur Verfügung. Und los geht's. Klicken Sie also auf diese gleiche
falsche Kohortenlampe aus. Also werden wir auf
dieses Modell zeigen , sie haben
geklickt ist wahr. Dann zeigen wir auf die
Kobalt-Unterstreichungslampe des Blockmodells. Lassen Sie uns also diese beiden
Blutmodelle auch kopieren. Sollten sie nicht zu verrückt
sein, oder? Nein, natürlich nicht. Sie sind eigentlich nicht zu verrückt. Und sehen Sie, wir haben gerade auf die Kobaltlampe
gezeigt , und dann auf die
andere, können Sie raten? Ja, insgesamt, Lamm an. Eigentlich ist es also sehr
einfach. Die Texturen, auf
die wir mit dem
Artikelmodell verweisen, wissen Sie, es wird nur auf das Off
zeigen, Lasst uns tatsächlich
auf das Unimodale zeigen. Nun, wissen Sie was, lassen Sie uns diesen Punkt auf
das Modell bringen , denn das ist in diesem Fall etwas schöner. Und dann kopieren Sie natürlich
einfach die Texturen, wie wir es mehrmals
gesehen haben. Jetzt. Sie gehen und gut, das ist so ziemlich alles
, was wir tun müssen, oder? Das meiste schwere
Heben hier durch das boolesche Eigentum, und der Rest ist, naja, sollte ziemlich
selbsterklärend sein. Also mal sehen, ob es funktioniert. Oder wir befinden uns
wieder in Minecraft. Wie Sie sehen können, war der
Cobol M ein unaufgefordert unten
und da ist er. Es fing in der On-Position an. Im Grunde beginnt es damit eine boolesche Eigenschaft nicht
wahr ist, das ist völlig in Ordnung. Natürlich gibt es dort
keine Sorgen. Und was Sie
tatsächlich sehen können, wie lassen Sie uns hier
nachts Zeit setzen und sehen,
ob ich mit der rechten Maustaste darauf klicke. Jetzt können wir tatsächlich sehen, dass das Licht
das ist, was ein- und
ausgeschaltet wird. Das ist also sehr häufig, cool. Aber so
einfach kann das auch sein. Aber nur damit wir es haben, wenn Sie vielleicht eine
andere Standardeigenschaft wünschen, können
wir
dies im Konstruktor aufrufen, diesen Standardstatus für Punktregister. Und dann können wir diesen
Punkt-Standardblockstatus sagen, unser eingestellter Wert von
angeklickt wird auf false. Und damit werden
wir im Grunde genommen das tun, dass
dies falsch ist. Die clip-Eigenschaft
ist also standardmäßig falsch. Aber das ist eine Art
allgemeine Idee für eine, eine andere interessante Sache
ist, dass Sie zum Beispiel, wenn wir in die
Boolesche Eigenschaft gehen, also mit der mittleren Maustaste
klicken, sehen Sie, dass dies
eine Eigenschaft des Typs ist Boolescher Wert. Wenn ich hier Strg H drücke, sehen
Sie, dass es sich auch um
ganzzahlige Eigenschaften sowie Enum-Eigenschaften handelt. Eine der meisten ist
die Direction-Eigenschaft. Sie können also auch
ganzzahlige Eigenschaften
und alle
anderen verwenden . Und wenn wir uns tatsächlich die boolesche Eigenschaft
ansehen , die zum Beispiel
erstellt , können
wir dies tun, aber wir können
uns
beispielsweise auch den Blockstatus ansehen . Ich glaube, es ist blockiert. Drei Immobilien. Gehen Sie Block, sagen Sie
Eigenschaften, dass Klasse im Grunde alle Vanilleblöcke
hat, die hier definierten
Eigenschaften, wir können
zum Beispiel einige ganzzahlige
Eigenschaften, Alter, Max, Alter sehen . Wir haben einen ebenen
Kesselstand,
Low-Level-Kondensator . Im Grunde genommen
einige Beispiele empfehle
ich dringend, sich dies anzusehen, wenn Sie Ihre eigenen
benutzerdefinierten Blöcke zu einer Eigenschaft machen
möchten. Sonst
wäre das schon
für diese Vorlesung genau hier. Ich hoffe, Sie haben das in Bezug auf das Neue
nützlich gefunden, und wir sehen uns in
der nächsten Vorlesung. Also ja.
67. (Intermediate) Wie funktioniert NBT: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir uns
NVT-Daten ansehen oder wie sie jetzt genannt werden,
zusammengesetzte Tags, werden
im Grunde MVT-Tags sein. Also was sind das? Nun, es ist im Grunde eine
Möglichkeit, Daten
beispielsweise auf Item-Stacks zu speichern . Die erste
Frage, die mir
in den Sinn kommt, sind
Abwasserartikelstapel. Nun, so wie Block-Staaten
die Darstellungen eines
Blocks innerhalb einer Welt sind , sind
ähnliche Artikelstapel Darstellungen von Gegenständen
in Ihrem Inventar. Wenn Sie also zwei
verschiedene Diamantschwerter haben, sind sie beide der
Gegenstand, Diamantschwert, aber sie sind beide
verschiedene Gegenstände, Stapel, das ist eine allgemeine Idee. Und dafür
werden wir das Ergebnis
speichern, das wir
von der letzten Rute hatten. Klicken Sie mit der rechten Maustaste auf ein Bohrloch
in NVT-Daten. Und was wir
tun werden, ist, dass wir
dafür einen neuen Gegenstand machen werden . Sie in unserem benutzerdefinierten Paket
mit der rechten Maustaste auf die neue Java-Klasse, die
als Datentablet-Element bezeichnet Und das wird natürlich das
Element erweitern, über all diese Create
Konstruktor passend super. Und was wir dann tun
werden, ist
, dass wir einfach ein paar Sachen hinzufügen. Zunächst müssen
wir also nichts
hinzufügen, um NVT-Daten hinzufügen zu können. Wir können NVT-Daten zu
jedem gewünschten
Artikelstapel hinzufügen . Das ist so ziemlich genau das Richtige. Was wir jedoch tun werden,
ist, dass wir
die folgenden Dinge haben werden. Also Nummer eins, ich
möchte tatsächlich, dass die NVT-Daten als Tooltip angezeigt werden. Wir werden es tun, wenn wir
sagen „Hover Text anhängen“. Und was ich tun werde ist, dass ich im Grunde sagen
werde, Hey, wenn der eigentliche Stapel
hier, richtig, Tags hat. Dies ist also die Methode, die
überprüft,
ob hier NVT-Daten oder
Angriffe vorhanden sind oder nicht. Dann werden wir sagen,
Orangen sind nur eine Schnur. Und
das werden wir aus dem Stapel lesen. Dot wird markiert, also
erhält dies das NVT-Tag oder
das zusammengesetzte Tag. Dann können Sie sehen, dass es
verschiedene Arten von
Methoden gibt , die wir im Grunde genommen
ein paar verschiedene Gets bekommen
können. Es gibt auch ein paar Puts. Nun, was wir
tun werden, ist, dass wir
eine Zeichenfolge mit dem folgenden Schlüssel bekommen , MC Course Dot letzten
Unterstrich oder. Und dann fügen wir das einfach zum Tooltip hinzu. Also P Tooltip-Komponenten, Punkt-Add-neue
Text-Komponente oder eine Alles klar, also haben wir jetzt zwei
der drei wichtigen Tag-Methoden gesehen, die im Grunde genommen
ein Tag haben und dann getaggt werden. Und dann können Sie
im Grunde jedes Tag
über ein bestimmtes Schlüsseljahr erhalten . Und wir werden es auch tun, dass
wir dieses Glied machen werden. Also werden wir im Grunde das verzauberte Glitzern
an diesem Gegenstand
haben , wenn
es ein Tag-Gefängnis gibt. Wir werden also sagen, dass es Folie ist und wir werden
den Stapel einfach zurückgeben, nicht als Tag, aber das ist es so
ziemlich. Sobald es eine
p-Tag-Komponente auf diesem Stapel hat, wird es
anfangen zu glitzern, als wäre es verzaubert. Und dann überschreiben wir auch
die US-Methode genau hier. Und was wir tun werden, ist, dass
wir folgendes sagen werden. Wir werden sagen, wenn der
Spieler keinen Gegenstand in die Hand bekommt, er eine Hand benutzt, die Tags hat. Also noch einmal, wenn wir ein Tag haben, dann werden
wir den Spieler GetItems einfach sagen und diesen Tag verwenden. Dies ist also der dritte
zu einem neuen Compound-Tag. Denn wenn wir dies
nur auf
ein neues zusammengesetztes Tag setzen , dem nichts
zugeordnet ist, dann wird
das Tag im Grunde genommen gelöscht und
der Hashtag
wird jetzt falsch sein. Wenn wir also
einfach mit
der rechten Maustaste auf das
Datentablet des Artikels D in der Luft
klicken, werden
alle Daten gelöscht , die sich dort befinden. Das ist die Grundidee hier. Und nun, das ist so ziemlich
alles, was es dazu gibt, oder? Wir haben den Hashtag, wir haben das Git-Tag und wir haben den Set-Attack. Das sind so ziemlich alle
drei großen Methoden , über die wir nachdenken müssen. Und jetzt werden wir es tatsächlich
tun, wenn wir natürlich Änderungen an der
Werbetrute machen werden. Dafür benötigen
wir einen Util-Helperkurs in
unserem YouTube-Paket. Klicken Sie mit der rechten Maustaste auf neue Java-Klasse
namens Inventar Ich werde
diese beiden Methoden tatsächlich kopieren , weil es das nur ein
bisschen einfacher machen
wird. Sie können also sehen, dass
es nur eine boolesche Methode und
eine Integer-Methode ist. Und die boolesche
Methode sagt nur:
Hey, hat der Spieler, dieser Spieler diesen Gegenstand
irgendwo in seinem Inventar? Und dann sagt der andere nur
im Grunde: Hey, hat den, wo ist der Index des
Gegenstandes, den wir übergeben? Aber das ist im Grunde
die allgemeine Idee hier. Und was wir tun werden, ist
in unserem Dao Single Item, wir werden das jetzt ändern. Einer der Kernpunkte steht Ihnen
natürlich auch
im GitHub Repository oder einer
Einzelperson zur Verfügung. Aber ich werde hier
die Hauptmethode kopieren, die die
Anzeige in BT auf das Datentablet sein wird. Wie Sie sehen können, müssen
wir tatsächlich auch die Registerkarte „Mehr
Artikeldaten“
definieren. also keine Sorgen.
Wir werden es einfach tun, ist einfach sofort
das zu registrieren. Also Datentablet. Und dann hier
unterstreichen Daten Tablet. Und das ist natürlich
ein Datentablet-Element, sie vor nur den
normalen Eigenschaften haben. Und dann. Alles hier
sollte gut funktionieren. Das sollte nicht zu verrückt sein. An dieser Stelle haben wir so viele Artikel
registriert. Die Registrierung eines Artikels
sollte fast zweitrangig sein. Was machen wir jetzt hier? Nun, wir holen
den Gegenstand im Grunde aus dem Inventar des
Spielers. Aber indem wir den
ersten ganzzahligen Index erhalten, erhalten
wir die
erste Instanz
dieses Artikels im Inventar. Das ist sehr wichtig. So wird es also im Grunde
funktionieren. Ich werde es natürlich
nur einen Moment
in der Demonstration zeigen . Und dann erstellen wir
hier ein neues Tag , also NVT-Daten. Und dann setzen
wir einfach eine Zeichenfolge mit
diesem Schlüssel ein. Sehr wichtig, dass
dieser Schlüssel richtig ist, denn dies muss
genau derselbe sein, wenn wir
dies grundsätzlich vorlesen. Und dann legen wir einfach das gleiche Zeug ein, das wir hier reingebracht haben. Also drucken wir
einfach den Namen und im Grunde die Position,
an der wir ihn gefunden haben. Und dann setzen wir hier
nur das Tag des Datentabletts auf MVT-Daten. Und dann drinnen von
hier, im Grunde ,
kurz nachdem
wir es gefunden haben, werden
wir im Folgenden sagen,
wir werden sagen, ob Inventar util dot Spielerstapel hat und Inventar mit dem Spieler und je mehr Gegenstände
der
Datentablet-Punkt erhält. Wenn das der Fall
ist, möchten wir hier
NVT-Daten mit dem Spieler hinzufügen , die Position unter I klicken und dann auch unten sperren. Da gehst du. Das ist so ziemlich genau das.
Dies ist natürlich nicht wichtig für die
NVT-Daten im Allgemeinen. Dies ist im Grunde genommen die
Art und Weise, wie wir es hinzufügen. Das ist also wirklich der Hauptteil
der NVT-Daten hier, in diesem Fall wird ein
neues zusammengesetztes Tag erstellt und dann den Tack für diesen
bestimmten Elementstapel festgelegt. Das ist so ziemlich
die Grundidee. Nun, um der Fertigstellung
willen, fügen
wir die
Übersetzung natürlich auch hier hinzu. Dies wird das
Datenunterstrichen-Tablet sein. Datentablet hier. Sehr nett. Und dann fügen Sie auch das Artikelmodell genau dort hinzu, damit Sie
sehen können, dass es auf
den Datenunterstrich des
Tablets zeigt , besonders neugierige und abseits Textur. Will gibt es auch eine eigene
Textur? Ja, das gibt es. Aber das werden
wir
in der nächsten Vorlesung sehen . Eigentlich. Wir werden
das einfach kopieren. Und das sollte so ziemlich
alles sein , was wir tun müssen, um das Datentablet
und einige benutzerdefinierte Entitätsdaten gut hinzuzufügen. Also mal sehen, ob es funktioniert. Oder Farces zurück und Mikrovesikel sehen, dass die Datentabelle zum Spiel hinzugefügt
wurde. Jetzt müssen
wir
das maximale Stapeln hier
in nur einem Moment ändern , aber das wird
natürlich eine sehr einfache Lösung sein. Und mal sehen, ob
ich Wertsachen finde. Dann sollten wir das
erste Mal ein Tablet sehen. Da gehst du. Jetzt können wir also Found Minecraft Kupfer sehen oder
genau an der Position, die
wir dort hatten. Also funktioniert alles. Wenn ich
jetzt mit der rechten Maustaste damit klicke. Es wurde jetzt gelöscht. Und was sehr wichtig ist
, ist, dass wenn ich einen anderen finde, man sehen kann, dass es
es für den ersten außer Kraft setzt. Das ist im Grunde das, was ich gesagt habe, aber es wird es
außer Kraft setzen und das nächste
nicht anbringen. Sie könnten natürlich eine andere gut,
inventarübliche Methode
erstellen , die
wie eine Suche
ohne NVT-Daten ist . Und dann
fügst du es dem nächsten hinzu. Das würde
natürlich auch völlig gut funktionieren. Aber vorerst ist
das ziemlich gut. Nun lasst uns
das Stapeln tatsächlich reparieren. Jetzt kannst du also sehen, dass sie sich
nicht mehr stapeln. Einer von ihnen
hatte NVT-Daten drauf. Aber du siehst, ich kann hier einfach
neue bekommen und
ich kann sie stapeln, was natürlich
nicht ganz das ist, was wir wollen. Also lasst uns das einfach schnell beheben. Aber das ist natürlich eine
sehr einfache Lösung, oder? In den Artikeleigenschaften fügen
wir einfach die
Steuer zur Methode hinzu, und wir werden
nur eine 1 eingeben. Das sollte also hier ziemlich
selbsterklärend sein. Und damit ist im Grunde das
gesamte Datentablet fertig. Und das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen. Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
68. (Zwischen) Artikeleigenschaften: Oder ich komme zurück zum
Futterkurs für 118. In dieser Vorlesung fügen
wir unserem Datentablet
eine benutzerdefinierte Elementeigenschaft
hinzu. Nun könnten einige von Ihnen sagen: Warten Was zur Hölle ist eine benutzerdefinierte Elementmodelleigenschaft
oder eine Elementeigenschaft? Davon hab ich noch nie gehört. Nun, es ist im Grunde einem
Blockstaatseigentum
sehr ähnlich. Es ermöglicht uns jedoch, 0 zu einer anderen
JSON-Datei des Elementmodells zu setzen, wenn
die Eigenschaft ihren Wert ändert. Was wir also tun können,
ist,
dass wir
die Textur des
Datentablet-Elements ändern können ,
dass wir
die Textur des
Datentablet-Elements , wenn wir beispielsweise BT-Daten darauf
haben . Was wir tun werden, ist, dass
wir im util-Paket
eine neue Klasse erstellen , die Mod-Item-Eigenschaften
bezeichnet wird. Und dann machen wir
eine öffentliche statische Lücke namens
Add Custom Item
Properties Methode. Und dann werden
wir folgendes tun. Zunächst drücken
wir
zweimal die Umschalttaste und fügen
die Artikeleigenschaften ein und stellen
dann sicher, dass das
Häkchen hier im die Artikeleigenschaften ein und stellen
dann sicher, dass das Grunde genommen angekreuzt ist, dass das Kästchen
Nicht-Produktartikel enthält. Und dann gehen
wir in diese
Klasse und Sie können sehen, dass
dies Klasse und Sie können sehen, dass im Grunde die
Item-Eigenschaftenklasse ist. Und wenn wir nach unten gehen, sehen
Sie dies zum Beispiel die Schüssel mit der Stange und die Eigenschaften
des Ziehgegenstandes, die
verwendet werden , um
die Textur im
Inventar der Schüssel zu verändern . Das ist also echt verdammt cool. Und das ist
eines dieser Dinge, bei denen es sehr schwer ist,
darüber
nachzudenken, wenn
man nichts davon weiß . Aber sobald wir es wissen, sobald Sie gesehen haben, wie es funktioniert, wird es tatsächlich
ziemlich einfach sein. Wir werden also
Elementeigenschaften sagen die die
Moduselemente, das Datentablet, das
Punkt-Get und dann einen
neuen Ressourcenstandort
namens
MC-Kursmod, Mod-ID und dann weiter
registrieren Punkt-Get und dann einen
neuen Ressourcenstandort namens
MC-Kursmod, . Dies ist also nur der Name des,
der Immobilie im Grunde genommen. Und was wir brauchen, ist, dass wir eine verrückte Well-Methode
brauchen. Und was wir dann tun werden,
ist, dass wir einfach Klammern und dann API einsetzen . Und Sie können sehen, dass
es grundsätzlich nur einmal für uns
die Item-Eigenschaftsfunktion generiert hat. Also drücken wir
einfach die Tabulatortaste und dann ist das in Ordnung. Jetzt gibt diese
Elementeigenschaftsfunktion einen Float zurück und dies ist im Grunde genommen
der Wert, den die
Item-Eigenschaft annimmt. Was wir
sehen werden, ist, dass wir
P Stack Dot Hashtag,
Western Mark eins, f Doppelpunkt 0, F. sagen P Stack Dot Hashtag,
Western Mark eins, f Doppelpunkt 0, F. und wir verwenden im Grunde
den ternären Operator. Wieder einmal
wird es einen zurückgeben, wenn ein Angriff tatsächlich vorhanden ist und 0, wenn kein Angriff vorhanden ist. Nun, dann ist das so ziemlich
alles, was wir tun müssen. Ich muss das
in unserem Kunden-Setup anrufen. Dies ist sehr wichtig,
das heißt die direkte Methode hier
Elementeigenschaften, mehr Elementeigenschaften, die
benutzerdefinierte Elementeigenschaften hinzufügen .
Und das ist so ziemlich genau das. Für jeden weiteren Artikel. Wir fügen hier einfach einen neuen
Registeranruf hinzu. Und dann wird das so
ziemlich alles
sein, was wir tun müssen. Nun, wo
benutzen wir das hier? Nun, wir verwenden das innerhalb
des Artikelmodells. Was wir also
machen werden, ist zuallererst, dass
wir im Grunde ein neues Modell
haben werden. Also das Datentablet hier, ich werde
das tatsächlich kopieren. Also ziehe ich es
in denselben Ordner während ich die Kontrolle halte. Ich nenne
das das Datentablet auf. Ich werde das einfach hier in ein
Datentablet umwandeln , nicht zu früh, sondern auf dem Ego. Und dann kopiere ich
das andere Datentablet
oder den Inhalt hier. Wir werden das einfach öffnen. Wir haben jetzt einen
Datentablet-Unterstrich nur normal basierend auf Datei. Und das kopiere ich
den Inhalt und erkläre gut,
wie das im Grunde funktioniert. Standardmäßig ist dies die
Textur, die es wählt, das Datentablet ausgeschaltet. Jetzt gibt es hier eine Überschreibung. Dies ist im Grunde eine Liste
verschiedener Überschreibungen
, die ein Prädikat haben. Und das Prädikat ist im Grunde , dass
Sie sich das als eine vorstellen können ,
wenn das stimmt, dann werden
wir es einfach mit
diesem Modell hier überschreiben. Und das Prädikat ist, hey, MC-Kerne auf der
Item-Eigenschaft müssen eins sein. Und dann werden
wir es
mit diesem hier außer Kraft setzen , dem
MOOC-Kurselement Datentablet auf dem wir gerade hier erstellt haben, das dann im Grunde auf den Kontext des Daten-Talent. Das ist so ziemlich
alles, was
es gibt, ist, dass dies nicht zu verwirrend
sein sollte, das sollte nicht zu verrückt sein. Wir machen es im Grunde auf eine sehr ähnliche Weise, da der Block sagt, dass Eigenschaften nur
ein bisschen anders sind. Und ja, das ist
so ziemlich alles, was es dazu gibt. Also füge ich einfach
das andere Datentablet auch
zur Textur hinzu. Und was wir dann im Grunde genommen bereit sind, uns das anzuschauen. Wieder einmal empfehle ich dringend, einfach offen für
Experimente zu sein und damit
ein bisschen
herumzuspielen, weil die Eigenschaften des Gegenstands
wirklich verdammt
cool sind und ich das wirklich liebe. Es ist eigentlich ziemlich
einfach, dies zu tun. Daher empfehle ich dringend
, einen Blick darauf zu werfen. Aber um der Vollendung willen,
schauen wir mal, ob es funktioniert. In Ordnung, wir befinden uns
wieder in Minecraft. sehen, lasst uns versuchen, ein paar Wertsachen
zu finden. Und sobald wir es
gefunden haben, ist es da. Und dann
hat sich auch die tatsächliche Textur geändert. Das ist also
wirklich verdammt cool, und ich kann mit der rechten Maustaste darauf klicken, wir löschen die Daten erneut und dann ändert sich die Textur zurück. So
einfach ist es also,
im Grunde genommen die
Textur zu ändern und einfach so etwas
Kleines, oder? Das Ändern der Textur
auf dem Tablet ist ein
so cooler
Effekt, dass
es sicher ist, wird es einen ganzen Mod wissen
lassen? Aber wenn du so
etwas
zu deinem MOD hinzufügst , wird es einfach so viel
kühler
sein, oder? Und das war's schon für
diese Vorlesung genau hier. Der gesamte Code
in den JSON-Dateien steht Ihnen natürlich
im GitHub-Repository und
einer Person genauso gut zur Verfügung. Und wir sehen uns allerdings in der
nächsten Vorlesung. Ja.
69. AUFGABE 7: Blockstaaten und NBT: Alles klar, Willkommen
zu dieser Übung hier für den Schmiedekurs. Und was Sie hier
im Grunde
tun sollten , ist, dass wir eine Blockstatuseigenschaft und
dann ein Beispiel für NVT-Daten erstellen. Im Grunde ist Ihre
Kreativität einfach, Sie können tun, was Sie wollen. Sei im Grunde einfach kreativ. Werde nicht zu verrückt, oder? Denk nicht so, als würde
ich
ein verdammtes verrücktes Zeug mit
sechs verschiedenen NVT-Daten machen . Oh, sehr langsam, sehr einfach, oder? Vielleicht machen Sie eine andere
boolesche Eigenschaft, vielleicht machen Sie eine Ganzzahleigenschaft, was auch immer es gibt, dies zu
etwas, das wirklich cool,
aber auch nicht zu verrückt ist . Geh damit nicht zu weit über
Bord. Denken Sie einfach darüber nach und dann werden
Sie diese Aufgabe verwalten. Dafür gibt es keine wirkliche Lösung
,
denn im Grunde können Sie hier tun,
was Sie wollen, was vielleicht ein
bisschen zu groß ist, aber ich bin mir sicher, dass
Sie es schaffen werden, aber ich bin mir sehr
daran interessiert sieh mal, was du dir einfallen lassen kannst und ja.
70. (Fortgeschrittene): Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem Vortrag werden
wir Minecraft
eine benutzerdefinierte Ernte hinzufügen . Custom Crop ist also tatsächlich ein ziemlich einfacher
Prozess. Alles in allem
gibt es natürlich
einige ganz besondere Dinge, die wir noch nicht gesehen haben, aber insgesamt wird es völlig
in Ordnung sein. Zunächst benötigen wir einen benutzerdefinierten Durchgang in
unserem benutzerdefinierten Paket, klicken Sie mit der rechten Maustaste auf eine neue Java-Klasse, die
als Rübe Rob-Block bezeichnet wird. Und nun, wir haben hier zwei
verschiedene Möglichkeiten. Wir können es entweder
vom Ernteblock aus erweitern oder, und das wird
zuerst einfacher,
wir werden dies tatsächlich
vom Rübenwurzelblock aus erweitern . Nun wird der Grund
dafür in nur einem Moment offensichtlich
sein. Zunächst einmal, wenn der
Parameter Ihr Rauschen ist, verschieben
Sie F6 und benennen es
dann in
Eigenschaften um und klicken Sie mit der mittleren
Maustaste auf die
Bead-Straßensperre hier. Jeder wird sehen, dass es eine
Integer-Eigenschaft namens Alter hat. Jetzt
geht diese ganzzahlige Eigenschaft von 0 auf drei, was genau
der gleichen Anzahl von Alters- oder Alterswerten entspricht, die auch
unser Block hat. diesem Grund können wir das
im Grunde
fast vollständig übernehmen . Wir müssen nur
die gute Seed-ID-Methode
genau hier in unserer eigenen Klasse außer Kraft setzen . Und der Rest kann grundsätzlich genau so
bleiben, wie er ist. Wenn Sie nun ein anderes
Alter in Ihrer gewohnten Ernte haben, werfen Sie einen Blick auf den Ernteblock. Sie können sehen, dass das
Ernteglück in diesem Fall tatsächlich
eine Person im Alter von
sieben Jahren hat . Wenn Sie dies
ändern möchten, können
Sie es auch einfach ändern, indem Sie jedes Jahr
ein anderes verwenden , oder Sie
können Ihr eigenes Alter definieren, wenn Sie wissen, dass 12357 und 15 oder 25 keiner der gewünschten
Agenten
sind. Sie können einfach Ihre
eigene Integer-Eigenschaft erstellen. haben wir schon mal gesehen. Das sollte also nicht zu verrückt sein. Das einzige, was etwas verrückt
sein könnte, ist diese Form nach Alter genau hier. Also kann ich tatsächlich ein bisschen
herauszoomen und dann einfach scrollen und weiter
scrollen und scrollen. Das ist in meinem Kopf einfach sehr schlecht
formatiert. Mir gefällt das einfach nicht, dass alles in einer Zeile ist. Die allgemeine Idee ist, dass
wir im Grunde nur
eine Box im wilden Level
dieser Box haben . Die Box ist der schwarze Umriss , den ein Block hat, wenn
Sie den Mauszeiger darüber bewegen. Und der Umriss ändert sich hier durch das Alter der tatsächlichen Ernte. Und dann gilt das Gleiche
im Grunde für den Rübenwurzelblock. Man sieht im 0ten Alter, es sind 246 und eine Acht. Und Sie können
diese im Grunde auch im Willen ändern. Das ist also etwas
, das Sie auch tun können. All das sollte nicht zu verrückt
sein. Alles in Betracht gezogen. Wissen Sie, wenn Sie eine
völlig benutzerdefinierte Ernte haben die Sie mit
einem anderen Alter und all dem implementieren möchten , bin
ich mir sicher, dass Sie es schaffen
werden, weil meiste davon nicht zu verrückt ist. Stellen Sie einfach sicher, dass Sie wissen, Sie die
GetMax-Altersmethode überschreiben. Werfen Sie im Grunde nur einen
Blick auf die Rübenwurzel. Werfen Sie hier einen Blick auf
den Zuschneideblock hier. Werfen Sie einen Blick auf die
Änderungen, die sie
von einem zum anderen vorgenommen haben ,
und dann den Rest. Ich bin mir sicher, dass du es
schaffen wirst und es herausfinden wirst. Und wir müssen
die Seed-ID vorerst überschreiben , was wir tun werden, ist, dass
wir das einfach machen und
dies zu einem Fehler machen. Also vergesse ich das nicht. Das ist nur ein kurzer kleiner
Tipp hier, denn
ich möchte vielleicht vergessen, dies zu
ändern, und dann
musst du es noch einmal durchmachen. Also lasst uns das nicht machen. Und lasst uns dann eine,
naja die Ernte hier
in unserer Box-Klasse hinzufügen . Das wird also ein bloßes
Kopieren der Falltür hier sein. Und wir nennen das
die Rübenunterstrich-Ernte. Was jetzt sehr
interessant ist, ist, dass dies
natürlich
auch
die Rübenunterstriche sein wird. Jetzt ist dies kein Registerblock, das ist Block-Punktregister. Und der Grund, warum wir
Blöcke oder Register aufrufen ,
anstatt die
Registerblock-Methode durchzuführen, liegt
darin , dass wir tatsächlich
kein Blockelement möchten mit dieser
bestimmten Requisite
verknüpft ist. Was wir wollen, ist, dass
wir später einen Samen machen wollen. Also sagen wir
Rüben-Ernteblock. Und dann wird das tatsächlich
Material sein, aber wir werden kopieren und mono sagen,
sagen Blöcke Dot Weizen, deine
Zelle, die wir eigentlich machen, lass uns Rübenwurzel machen, Rübenwurzeln, sie gehen
und der Rest ist gut. Ich glaube, das einzige
andere, was wir wollen,
ist, dass wir auch keine
Kollision machen. Also keine Kollision, keine Okklusion. Länge 2 sollten wir hier
eigentlich nicht wirklich brauchen. Und dann
sollte der Rest sowieso
von den Rübenwurzeln kopiert werden, also keine Sorgen. Das ist also der
Block tatsächlich erledigt und wir brauchen den Artikel immer noch. Jetzt
wird dieser Gegenstand, wie gesagt, nur der Samen sein. Also wählen wir einfach das Datentablet aus und
wir werden nur sagen, IP-Unterstrichen-Seeds drehen. Und dann tauchte natürlich
auch der Name
hier auf Unterstrich Samen. Und das wird ein
Element, ein Name, ein Blockelement sein. Das ist interessant, ja. Stellen Sie sicher, dass sich dies tatsächlich auf mehr als nur einen
stapelt. Und dann ändern wir auch hier einfach den Namen. Also diese Reihenfolge und dann der erste Parameter
wird
Blockmodus sein Blöcke
Punkt urllib zuschneiden. Aber lassen Sie uns die
Formatierung ein wenig ändern. Ich meine, das
wird gut werden. Das
wird gut lesen. Aber wir müssen
dies zu einem Gegenstand
mit dem Namen Blockelement machen ,
da wir tatsächlich den Namen der Samen
anstelle des BlockName von Rübenmist an
der
Reihe nehmen
wollen . Was wir jetzt
in der Klasse tun können, da wir mehr Gegenstände,
Punktrübe, Samen.rb,
genau hier zurückgeben
können . Und dann hat die Klasse
tatsächlich getan, wie gesagt, wenn Sie ein bestimmtes Alter
und
ähnliches haben , schauen Sie sich die Ernteklasse an schauen
Sie sich die
Rote-Bete-Blockklasse an. Ich empfehle dringend, dass dies im Grunde alles
sein sollte , was
Sie wirklich tun müssen. Und im
MC-Kurs mod eine Klasse, müssen
wir auch
die Rübenzucht der
spezifischen Renderschicht hinzufügen . Also lasst uns das einfach mit Control D duplizieren und dann gleich hier einen Zuschnitt erstellen. Und das ist auch erledigt. Und dann
sind JSON-Dateien alles was übrig geblieben ist. Lassen Sie uns
die Übersetzung zuerst machen denn es gibt eine kleine Tendenz, dies zu vergessen. Lassen Sie uns also den
Unterstrich-Schnitt auftauchen. Und dann wird dies genau hier
die Rübenernte sein. Und was wir dann tun werden, ist dass
wir einfach hinzufügen werden, das werden tatsächlich
die Samen sein, sie werden Samen werden. Und dann wird die Ernte
tatsächlich hier hinzugefügt. Es wird also
aufgetaucht, unterstrichen Sie die Ernte. Dreh auf, Rob. Vielleicht möchten Sie diese
Übersetzung auch, nur damit Sie
sie haben, wenn Sie das haben, was sehe ich mir ein
Modell an, das im Grunde den tatsächlichen Namen
der Boxen
anzeigt , die
Sie betrachten. Dies kann manchmal auch dort
helfen. Mit dem Übersetzungs-Basic. Lassen Sie uns über den Block kopieren States Jason und ich werden es erklären. Natürlich kann man sehen, dass
das nichts zu verrückt ist,
nichts, was wir noch
nicht gesehen haben. Wir haben im Grunde
vier verschiedene Altersgruppen, 0 bis drei, und wir
zeigen nur auf verschiedene JSON-Dateien des
Blockmodells. Das ist also im Grunde
alles, was es dazu gibt. Das sollte
nichts ganz Neues sein. Wir werden
diese auch einfach kopieren. Diese stehen Ihnen natürlich
alle im GitHub Repository oder einer
Einzelperson genauso gut zur Verfügung. Und du wirst sehen, dass das jetzt nur noch hier zugeschnitten
ist. Und dann zeigen die Texturen
auch auf Zuschneiden. Und dann zeigen wir einfach auf
verschiedene Blockmodelle. Wir zeigen nur auf
verschiedene Blocktexturen. Das ist also so ziemlich
alles, was es dazu gibt. Und lassen Sie uns dann auch die Samen hier kopieren
. Zeigt auch nur auf eine Textur. Nichts Verrücktes daran. Nun, das
ist eigentlich nicht so verrückt. Alles in Betracht gezogen. Lassen Sie uns die
Aedes-Textur holen und
lassen Sie uns dann auch eine Lead-Texturen
für die Blöcke besorgen. Sie sind nur 0 bis 3 Jahre. Und dann wird noch eine sehr
interessante Sache der Beutetisch sein . Wie funktioniert der Lu-Tisch? Nun, dafür gehen wir
einfach zu den externen Bibliotheken. Wieder einmal der
Datenordner hier, rechts Mikrowellenclient und zusätzliche 1181 zu den Lautentabellen Blöcke. Und dann sagen wir
zum Beispiel nur die Rübenwurzeln. Wir werden das einfach öffnen
und Sie können sehen, dass dies in diesem Moment etwas
komplizierter
ist. Aber was wir tun können, ist, dass wir
einfach alle Steuerelement C auswählen können, oder wir können auch
die JSON-Datei Control C auswählen und dann einfach hier zu
unserem MC-Kurs Lou Tabellenblöcke
Control V gehen , um sie einzufügen. Und dann
werden wir einfach sagen, ob Eve die Unterstrich-Ernte auftaucht, und dann müssen wir nur
ein paar Sachen hier drin ändern. Jetzt ist es sehr wichtig,
wie Sie sehen können, dass wir tatsächlich
nach einem Block suchen, sagen ,
Eigentum, Alter, und
es muss drei sein. Und dann ist dies
die Bedingung
, unter der der tatsächliche Aufschlag sinkt. Das ist sehr wichtig. Das wird also
MC-Kurs-Rübe sein die wir dies ändern werden. Und dann wird das natürlich
MC-Kurs sein. Drehen Sie Unterstrichen-Samen auf. Jetzt sehr wichtig, wir
müssen diesen Block
ebenfalls ändern, oder? Denn das wird jetzt
der MC-Kurs Olin Rübenernte sein . Da wir nach
der Altersgrundlage suchen und die
Rübenernte nicht mehr den Beat haben,
blockieren die Wurzeln im Grunde genommen. Und dann geht
das Gleiche hier unten und
stellt sicher, dass wir dies erneut
auf den Begriff Ernte ändern . Und dann sind hier
ein paar zusätzliche Samen, wo es fallen könnte. Wir werden das auch einfach
kopieren. Stellen Sie sicher, dass sich sowohl
die Modus-ID als auch die Namen der Elemente
und Blöcke geändert haben. Es ist sehr einfach,
sich die MOD-ID hier anzusehen. Also ja, diese Datei
steht Ihnen natürlich auch zur Verfügung, also keine Sorgen,
aber das ist eigentlich alles, was wir tun
müssen, um
den benutzerdefinierten Zuschnitt hinzuzufügen. Also mal sehen, ob es funktioniert. Oder wenn Francis zurück
und Mikrovesikel sehen wurden
die Rübensitze erfolgreich zu
den Spielen hinzugefügt. Mal sehen. Ich kann sie auch pflanzen. Das ist ein sehr guter Anfang. Und lasst uns einfach
ein paar Knochenmehl
verwenden und sie gehen, also
bauen sie Milchprodukte an und lassen Sie uns
einfach gewalttätig wechseln. Siehst du, ich kriege sogar ein paar
Rüben und ein paar Sitze zurück. Genau das
wollen wir C, und mal sehen, ob
sie auch wachsen, wenn die Zeit hier
im Grunde
etwas schneller gemacht wird. Zufällige Tics
sind also nur
zweitausend zu mögen und dort wachsen sie auch. Also funktioniert alles erstaunlich. Natürlich, wenn ich
sie kreativ breche, bin ich
deshalb
zum Überleben gewechselt. Wenn wir also zum Überleben gehen, los geht's, es hat hier
ein paar nette Rüben. Und da sind wir los. Und jetzt können wir der
Gärtner unserer Träume werden, oder? Und das ist es schon für
diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich
und er erfährt von dem Neuen, und wir sehen uns in
der nächsten Vorlesung. Also ja.
71. (Fortgeschrittene) Füge dem Composter Elemente hinzu: Alles klar, willkommen zurück
zum Futterkurs für 118. In diesem sehr kurzen Vortrag zeige
ich Ihnen, wie Sie
Ihre Artikel zum Komposter hinzufügen können . Sie können
sie also grundsätzlich kompostierbar machen, sehr, sehr einfach in der
Setup-Methode, die Sie haben. Hoffentlich sollte dies mit dem gemeinsamen Ereignisparametersatz
FML erfolgen. Was Sie tun werden, ist, dass
Sie Event
Dot und q praktikabel sagen werden. Und dann
steckst du Klammern,
einen Pfeil und die
geschweiften Klammern ein. Und im Inneren möchten
wir
Komposter loc dot dot dot nennen, mehr Gegenstände
setzen, die
Rübensamen, die
zum Beispiel 0,5 erhalten , glaube ich, die richtige Zahl
ist. Dann dupliziere das
mit Control D, und dann legen wir
es auch hier in eine Rübe. Ich setze 65 ein. Also können wir uns
die Compossible Map genau hier ansehen . Und das sind im Grunde
die Änderungen, die wir haben. So sieht man diese drei,
also sieht der Ligand
hier grundsätzlich typische 3.5 Potato VDD. Ich schätze, die Samen
sind eigentlich weniger, also gibt es tatsächlich drei. Lasst uns das in drei ändern. Das ist auch vollkommen in Ordnung. 0.3. Da gehst du. Das ist so ziemlich genau das. Das ist alles, was Sie
tun mussten, um sie
dem Komposter hinzuzufügen, aber um der Fertigstellung willen zu
sehen, ob es funktioniert. Oh, wenn Freunde, es gibt ein Minecraft
und los geht's. Der Komposter, beide arbeiten genau so, wie
man es erwarten würde. Und jetzt haben wir ein Knochenmehl, oder das wird es schon
für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und etwas
Neues gelernt und wir
sehen uns in der nächsten
Vorlesung. Also ja.
72. (Fortgeschrittene): Oder ich begrüße zurück zum
vierten Kurs für 118. Und in diesem Vortrag werden
wir Minecraft
eine benutzerdefinierte Blume hinzufügen . Eine benutzerdefinierte Blume zu
verweilen ist eigentlich ziemlich einfach. In unserer Modellblock-Klasse werden
wir also nur
die Kirschblüte kopieren , eine Falltür. Und das werden
die rosafarbenen Unterstrich-Zeilen sein. Und natürlich
auch für den Namen rosafarbene Unterstriche Zeilen. Jetzt wird dies ein Blumenblock
sein, der tatsächlich
drei verschiedene Parameter aufnimmt. Der erste ist
ein Mob-Effekt oder -Effekt, die zum Beispiel
Blindheit sagen. Und dann ist die Effektdauer, die beliebt ist, um zu kommen
und zu verlassen, diesmal tatsächlich in Sekunden
anstelle von Ticks. Ich weiß nicht, warum es sehr inkonsistent
erscheint, aber es ist was es ist
und das eigentliche Mapping, was wir
tun werden, ist, dass
wir nichts davon brauchen werden. Und dann werden wir diesen
Dandy-Löwen hier aus Blöcken
kopieren , damit wir im Grunde alle
Eigenschaften haben , die wir brauchen werden. Die Eigenschaften, die
wir brauchen werden,
sind also grundsätzlich keine Kollision
im seborrhoischen Ende. Ich glaube auch, dass
das Material aus Plan
Ihnen im Grunde genommen keine Okklusion bringt. Also diesen hier brauchen
wir beides, OK, keine Okklusion und keine Kollision. Aber indem Sie die Eigenschaften der beliebigen Zeile kopieren , in
der diese im Grunde
schon hier drin sind. Was wir auch für
die Blume tun
müssen , ist
unsere Einrichtungsmethode, wir müssen das für
die rosa Rose genau hier nennen. Also müssen wir die
Renderer-Ebene richtig einstellen,
und dann geht es im Grunde
genommen nur an die JSON-Dateien. Diese stehen Ihnen natürlich
alle im GitHub Repository oder einer
Einzelperson genauso gut zur Verfügung. Er Bloc sagt, dass Jason
nur ein normaler Blockstaat ist. Jason fügt auch die
Übersetzung hier hinzu, dies
nicht zu vergessen, die
rosa Unterstrich-Zeilen. Und dann stieg Pink genau
hier auf. Da gehst du. Und dann fügen wir auch das
Log-Modell hinzu. Nichts wirklich
Interessantes ist los. Diesmal haben wir ein Kreuzmuster und auch eine
Kreuzstruktur. Sie können dieses Mal sehen, dass
das Elternteil
hier das Kreuz ist und dann sind die
Texturen auch kreuzt. Das ist wirklich das
Interessanteste in diesem Fall. Und das Artikelmodell
ist eigentlich auch ziemlich interessant, weil
dieses auf eine,
naja, dieselbe Blocktextur verweist, auf
die der Block zeigt, denn obwohl es
im Grunde dasselbe ist , was
Sie haben Ihre Hand, dass es
im Grunde auch wie auf der Welt aussieht, werden
wir das auch einfach
kopieren. Also gehen sie und das
ist eigentlich alles
, was wir für
eine benutzerdefinierte Blume brauchen. Jetzt schauen wir mal, ob es funktioniert oder wir finden sie
wieder in Micro. Wie Sie sehen können,
wurde
die rosa Rose erfolgreich dem Spiel
hinzugefügt. Und sieht es nicht
einfach wunderschön aus? So einfach kann
es also sein,
Minecraft
eine benutzerdefinierte Blume hinzuzufügen , oder? Und dann ist es schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen. Und wir sehen uns allerdings in der
nächsten Vorlesung. Ja.
73. (Fortgeschrittene) Benutzerdefinierte Flower: Alles klar, willkommen zurück zum
Futterkurs bis 118. Und in dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten
Richtlinienplan hinzufügen . Nachdem wir also die benutzerdefinierte Blume hinzugefügt
haben, wir jetzt auch einen Teil
machen,
an dem diese Blume
variiert wird. Und so wie
wir das machen werden, wir
das einfach kopieren und sagen Teil es, Pink Rose. Und das
Wichtigste hier ist, dass diese tatsächlich nicht die
Registerblock-Methode aufruft, aber dies ruft wieder Blöcke auf, die sich hier registrieren. Was wir also tun werden,
ist, dass wir am Ende einfach den
Erleichterungshahn
wegnehmen werden. Und dann werden wir dies auch
zu dem Teil machen
, der rosa Rose unterstreicht. Und das ist jetzt nur dafür ein
Blumentopfblock. Dies wird tatsächlich auch
drei verschiedene
Parameter benötigen . Der erste ist ein Null, der zweite ist Mod-Blöcke, dunkelrosa, Rose,
dasselbe ohne Get. Und dann wird das nur das Audit Dandy
Lion machen , während es die Eigenschaften kopiert
. Nun könnte man sagen, nun, das ist es schon, nicht ganz, denn was wir noch tun
müssen, ist, dass wir es
immer noch mit
einer Liste möglicher
Brunnenblumen hinzufügen müssen , nur im Wesentlichen. Nach der Setup-Methode werden
wir also Blöcke sagen, diesen Blumenteil, diese Besetzung. Und dann werden wir
das hier in
einen Blumentopfblock werfen . Und dann können wir das tun, dann können
wir die Add-Methode aufrufen. Ich sage Blockmodus, blockiert Punkt, Zeilen, dot getID. Dann ist der
zweite nur gemappte Blöcke Punkt-Produkt, Rosa, Rose. diese Weise können Sie es im Grunde hinzufügen, dass Sie
mit der rechten Maustaste mit Ihren Zeilen hier klicken können
und dann diesen Block
herausbekommen. Jetzt ist dies immer noch
ein normaler Block, also brauchen wir immer noch einen
Block States Jason, Blockmodell Jason und eine Übersetzungsdatei
für die Piping Rose. Ich
kopiere das einfach vorbei. Der Blockstatus ist eigentlich
nur ein normaler Block, sagt Jason Jahr, das Modell
ist ein bisschen anders, aber nicht zu verrückt. Lasst uns das zuerst
tatsächlich machen. Lassen Sie uns also in
Gross teilen, sind epische Reihen. Jetzt
wird diese Übersetzung nur benötigt, wenn Sie etwas wie haben,
was schaue ich mir an? Der Modus, den
Sie im Grunde genommen können, wissen Sie,
das, was Sie im Grunde
betrachten, das ist der Name
des tatsächlichen Blocks, den
Sie betrachten. In diesem Jahr ist dieses
Blockmodell, das Sie sehen können tatsächlich
Blumen-Unterstreichungspartner. Und dann geben wir
das Vorderteil an. Jetzt ist es auch wichtig,
nachdem wir dies hinzugefügt haben, dass
wir keine andere Textur benötigen. Was wir brauchen,
ist, dass wir auch das öffentliche Rosa
hier in der
Renderebene ausschneiden lassen müssen das öffentliche Rosa . Ansonsten
werden wir auch ein bisschen
von einem Display haben , das dort ausgegeben wird. Ansonsten ist
das alles, was wir tun müssen, obwohl Sie sehen können, dass
es eigentlich
ziemlich einfach ist, aber trotzdem gibt es einige interessante
Dinge, besonders damit, mit dem Casting
der eigentlichen Blume topf. Nachdem wir das hinzugefügt haben, schauen
wir mal, ob es funktioniert. Oder Öfen wieder in Mikro. Also lasst uns das Teil einfach
abstellen und los geht's. Wir haben die vergossenen Tintenreihen, was völlig gut funktioniert. Aber
genau das würdest du wollen. Anstatt nur so schnell
hier am Ende, wenn sich jemand fragt, weißt
du, oh, wie können wir dafür den
LU-Tisch machen? Es kommt wieder, wir haben Vanille-Beispiele dafür die auf die
externen Bibliotheken
hinausgehen, hin zu Net Microwave
Client extra 181. Und dann können Sie in den
Loop-Tabellen einfach nach allen Topfpflanzen suchen. Sie können
sich das zum Beispiel ansehen und
dieses Allium dann im Grunde einfach hier durch Ihr eigenes
ersetzen. Also habe ich einfach über Control C,
Control V kopiert und dann geändert. So
einfach kann das eigentlich sein. Sie haben also immer alle Vanille-Beispiele
grundsätzlich griffbereit. Ich empfehle es sehr, diese auch anzusehen
. Wenn Sie jemals
verwirrt sind oder
etwas wollen , das bereits
Vanille enthält, wird es im Grunde genommen
nur repliziert. Es ist oft sehr einfach zu folgen, aber ansonsten wäre es das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen. Wir sehen uns in
der nächsten Vorlesung. Also ja.
74. (Fortgeschrittene) Benutzerdefinierte Geräusche: Alles klar, willkommen zurück
zum Kurs für 118. Und in dieser Vorlesung werden
wir Minecraft benutzerdefinierte Sounds
hinzufügen. Oder benutzerdefinierte Sounds
sind eigentlich, naja, ich würde sagen
ziemlich einfach,
alles in Betracht gezogen. Was wir tun
werden, ist, dass wir sie
natürlich registrieren müssen . also in unserem MC-Kurspaket mit der rechten Maustaste auf ein neues
Paket namens sound. Und dann innerhalb ihrer
neuen Java-Klasse für Städte wird diese
Mode-Sound-Klasse
ein öffentliches statisches endgültiges
verzögertes Register
des Typs Sound-Event haben ein öffentliches statisches endgültiges
verzögertes Register , das als
Sound-Underscore-Events bezeichnet wird, das
wird
gleich sein, um Register aufzuschieben
, das erstellte oder
registrierte Ereignisse, MC-Kurs-MOD, aber modifiziert. ob es sich um ein
anderes Register handelt, gibt es eine öffentliche statische
Void-Register-Methode mit einem Ereignisbus, coolen Ereignisbus oder seinem Parameter
und dann Sound-Ereignisse, die Übergabe in der
Event-Busperimeter. Dann wird diese Methode
hier natürlich direkt unter den
modernen Behandlungen
genannt. Also mod klingt, kein Soundereignis, sondern registriere
Ereignisbus. Da gehst du. Wie sahen die
Sound-Events aus? Nun, sie sind eigentlich
ziemlich einfach. Öffentliches statisches
Registry-Objekt vom Typ, Tonereignis,
Dowsing, Unterstrich, Stabunterstrich, das unter der Punktzahl gefunden wird
oder
der Name der Stunden sein wird. Und dafür werden wir
tatsächlich eine benutzerdefinierte Methode
erstellen. Nun, lass mich
das einfach für eine Sekunde machen. Und ich
werde eine neue Methode der privaten statischen Registry erstellen. Objekt vom Typ
gefundenes Ereignis würde Sound-Ereignisse registrieren. Und hier müssen wir nur einen String-Namen
übergeben. Und was wir dann
tun werden, ist, dass wir einen Ressourcenstandort
erstellen. Welcher Ausweis? Der neue Ressourcenstandort, MC-Kurs MOT, mot ID und der Name als
Parametername hier. Und dann geben wir
Sound-Events zurück , die
sich mit dem Namen registrieren, und dann einen Anbieter
eines neuen Sound-Events. Und hier müssen wir
ihm nur den Ressourcenstandort übergeben. Dies ist die
Hilfsmethode und dies wird unser Leben
tatsächlich einfacher machen. Hier werden wir
das Dosierungsunterstrich nennen. Unterstrich unter
der Punktzahl oder der Name hier
wird in nur einem Moment sehr relevant sein. Dieser Name hier wird also
tatsächlich der Name von etwas
sein,
das wir im Grunde
in einer separaten JSON-Datei deklarieren. Jetzt
wurde der Sound registriert. Zuallererst brauchen wir
natürlich eine
Art Sounddatei. Jetzt geht dies in die Assets in Ihrem MC-Kursordner
oder Ihre ID im Grunde genommen. Aber wir brauchen zwei Dinge. Nummer eins, wir brauchen eine neue
Datei namens Sounds data JSON, sehr wichtige Sounds dot JSON. Und es ist so angelegt. Wir haben geschweifte
Klammern und dann deklarieren wir grundsätzlich
verschiedene Sounds. Also kopiere ich die
Deklaration des Sounds. Und was Sie finden werden
, ist, dass dieser Name genau der gleiche ist
wie dieser Name hier. beiden müssen also übereinstimmen. Die Untertitel sind im Grunde was Sie in all dem sehen werden ,
was Sie in
Ihrem Ohr erklären, und unterstreichen uns JSON-Datei, wenn Sie Untertitel
haben. Dies ist also etwas
, das Sie einfach zur
EMRS-Curios JSON-Datei
hinzufügen können. Man kann das auch so
etwas wie Sounds Punkt M,
C Corps nennen , wo auch immer so
etwas. Ich werde
die Übersetzung hier nicht hinzufügen weil sie im Moment
nicht so relevant ist und
auch nur eine Sache ist , die
Sie kopieren. Es sollte für eine Weile nicht
zu verrückt sein , wenn es um die
Übersetzung geht. Das sollte
ziemlich einfach sein. Und was sehr
interessant ist, ist, dass das hier
klingt, das
ist eine Liste, oder? Da wir diese
Klammern haben, deutet
dieses Jahr auf den
unterstrichenen Unterstrich hin,
einen Unterstrich, der unter der
Schule gefunden wurde, oder wir werden es jetzt tun, wo befindet sich diese Akte? Nun, definitiv unter
EMT-Kurs-Namespace, aber wo genau gut, im Assets MC
Kursordner läuft. erneut mit der rechten Maustaste
auf New Directory Akkordsounds. Und dann brauchen wir drinnen eine OGG-Datei mit diesem Namen. Also werde ich
das vor ihnen kopieren. Und es ist sehr wichtig
, dass dieser Name hier genau mit diesem Namen übereinstimmt. Es ist, es muss eine OGG-Datei sein. Dies ist sehr wichtig
und muss unter dem
Mono-Sound, dem Klangtyp oder dem Klangraum liegen. Es muss eine Mono-OGG-Datei sein. Andernfalls könnten Sie auf
einige Probleme stoßen, die sehr wichtig sind. Und Sie können nicht einfach eine MP3-Datei
nehmen und das Ende umbenennen. Mp3 muss ordnungsgemäß
in eine OGG-Datei konvertiert werden. Das ist also sehr wichtig. Jetzt werden Sie nur noch finden, weil dies eine Liste ist, in der Sie
theoretisch mehrere
Einträge hier haben könnten . Sie können also jetzt sehen,
dass ich hier noch einen
haben könnte und dann würde es im Grunde eines davon
wählen. Das ist also sehr wichtig. Wir werden vorerst bei
einem bleiben, aber es besteht
im Grunde die Möglichkeit , mehrere
hinzuzufügen. Nun ist die Frage, wie nennen wir das oder Fenster
eigentlich? Wir werden das nennen, naja,
wir werden das
natürlich im
Dowsing Rod Item nennen , im Grunde wenn wir
einen wertvollen oder hier gefunden haben , wollen
wir das spielen. Und wie spielen wir das? Nun, wir werden die
Kontexte auf Punkt-Gate-Ebene sagen. Also brauchen wir den Pegel
, wenn ich sage „Ton spielen“. Und dann kriegen wir den Spieler, wir werden
die Position anklicken lassen. Wir kriegen Modern Sounds. Diese Dowsing Rod raus oder die Klangquelle
bekommt,
wird, sagen
wir mal Blöcke, das
wird in Ordnung sein. Und dann auch Volume 1, f und Pitch eins. Und so
einfach kann es sein, einen Sound hinzuzufügen oder
einen Sound
Rich Play als Sound zu bezeichnen. Du brauchst nur den Pegel
und spielst dann gut an. Aber es gibt verschiedene Möglichkeiten
, Sounds abzuspielen. Ich glaube, dass Sie diese Rate vielleicht so gesehen
haben, als ob ich ein Level hätte, könnte ein Level erreichen. Du siehst, dass
ich Sound spielen kann. Ich kann sogar lokalen Sound spielen, was dann
ein lokaler Sound wäre. Daher empfehle ich dringend, einfach ein
bisschen
damit
herumzuspielen und zu sehen, welcher
davon im Grunde am besten
funktioniert. Du kannst es auch für
den Spieler selbst machen. So kannst du auch
Spielersound machen. Du kannst aber sehen, dass
du gehst. Ich empfehle nur wärmstens,
damit ein
bisschen
herumzuspielen und zu sehen, was die beste Idee
für Sie sein
könnte. Ja, aber das ist
eigentlich alles, was wir tun müssen , um benutzerdefinierte Sounds
hinzuzufügen. Also mal sehen, ob es funktioniert. Oder ich farme als Mikrowelle
und stelle sicher, dass deine Lautstärke aufgedreht ist,
damit du sicher bist
, dass du es hören kannst. Und mal sehen, da ist es. N Wir haben es gehört. Ring, klingeln, klingeln. Also
funktioniert alles völlig gut. Und jetzt können Sie
auch sehen, wenn ich
die Blöcke ablege , weil wir es zu
Soundquellenblöcken gemacht haben. Und C Jetzt können wir es nicht
mehr hören, sobald ich
die Blöcke wieder auf den Rücken drehe . Aber das ist eigentlich echt cool. Lassen Sie mich die
Lautstärke noch einmal etwas verringern. Und es wird sehr ruhig sein. Vielleicht ist es, damit es so
leise ist , dass man es nicht einmal hören
kann. Aber ja,
so einfach kann es sein Minecraft benutzerdefinierte Sounds
hinzuzufügen, oder? So einfach ist
es wirklich und ich denke , dass es wirklich
ziemlich einfach ist. Nun, eine Sache, die dir
wahrscheinlich in den Sinn kommt, ja, aber ich möchte, dass mein benutzerdefinierter Block auch benutzerdefinierte Sounds
hat. Nun,
zum Glück werden wir uns
genau das in der nächsten Vorlesung ansehen. Aber das ist es für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues, und wir sehen uns in
der nächsten Vorlesung. Also ja.
75. (Fortgeschrittene) Benutzerdefinierte Sounds für Blöcke: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir einen benutzerdefinierten Soundtyp
hinzufügen. Minecraft. Jetzt enthält der Soundtyp
im Grunde fünf verschiedene Sounds und repräsentiert Klang für
einen bestimmten Block. Aber es gibt ein brechendes
Geräusch, das Trittgeräusch, das Platzieren von Klängen, einem
Hit-Sound und einem vollen Klang ist. Und wir werden
alle fünf hinzufügen. Jetzt kopiere ich
die Basisregistrierung. Ist das definitiv
nicht so interessant. Erstens ist
das wirklich witzig, dass dies nicht
der richtige Name ist, aber das ist
natürlich völlig in Ordnung. Sie registrieren in diesem Fall
Soundereignisse. Und Sie können sehen
, dass wir im Grunde Kobaltlampe brechen
Kobaltlampe Schritt
haben, Lasst uns schlagen und fallen. Das sind also die
Sound-Events, die einzelnen, die wir brauchen und die auch benötigt
werden, wenn wir einen benutzerdefinierten Schmiede-Sound-Typ
benötigen. Also werde ich
das auch kopieren und du kannst sehen, dass es so ziemlich
nur die Cobol-Sounds sind. Und das ist dann gleich
einer neuen
Klangtyp-Metrik , die
Lammgeräusche von Kollegen macht, um es zu studieren Es ist etwas klarer, worauf sich
das im Grunde bezieht. Und hier drin müssen wir
im Grunde genommen die
Modus-Sounds
passieren und wir müssen es
nicht bekommen, weil das Futter hier
tatsächlich einmal ein Lieferant klingt. Das wird also völlig in Ordnung
sein. Also wollen
wir dies grundsätzlich anstelle
des Soundtyps verwenden , nur um sicher zu
sein, denn das hat etwas
mit dem Laden
und im Grunde genommen Registrieren von Sachen zu tun . Im Moment dieser
fünf Sound-Events müssen
wir diese Sounds tatsächlich noch
registrieren. Json Akte genau hier. Jetzt werde ich das
noch einmal kopieren, aber keine Sorge. All dies
steht Ihnen natürlich auch
im GitHub Repository oder einer
Einzelperson zur Verfügung. Und Sie können sehen, dass
wir im Grunde
den Bruchschritt der Kobaltlampe haben , bitte drücken und fallen, was im Grunde genommen sobald Sie
die Untertitel hier erhalten haben und
sich dann auf eine bestimmte
Sounddatei beziehen. Wieder einmal müssen sie OGG sein, das ist sehr wichtig und sie müssen auch mono sein. Dies ist noch einmal unglaublich
wichtig, sonst könnte es
Probleme mit den Dateien geben. Und Sie können
eine MP3-Datei auch nicht einfach in eine OGG-Datei umbenennen , sie muss ordnungsgemäß konvertiert werden. Stellen Sie also sicher, dass all
diese Dinge der Fall sind. Und natürlich können
Sie in
unserem Beispiel hier natürlich
einfach diejenigen verwenden ,
die ich bereitstelle. Wir werden die einfach hier drüben kopieren
. Sie gehen, fünf von ihnen. Und das sollte so
ziemlich sein , also
sind die Sounds registriert. Das ist alles in Ordnung, aber wie fügen
wir das jetzt zu einem Block hinzu? Nun, wie eigentlich
ziemlich einfach, aber in unserem Fall möchten wir dies der Lampe hier
hinzufügen. Also werden wir nur
eine neue
Blockverhaltenseigenschaft hinzufügen , und das wird
das Ego klingen und dies schon
vermuten lassen. Also das wird Mod
Sounds Dot für was klingt, und das war's. Alles was wir tun müssen. Und jetzt
sollte die Kobaltlampe alle Geräusche haben ,
die mit
diesem Klangtyp verbunden sind, genau hier, die alle fünf sind. Obwohl ich meine, es klingt wie sehr antiklimaktisch, aber
das ist es so ziemlich. Also mal sehen, ob es funktioniert. Oder wir befinden uns wieder in Minecraft und schon hier. Es funktioniert vollkommen gut. Also lasst uns drauf gehen. Das stimmt genau.
Und lasst es uns brechen. Das ist genau richtig. Das einzige, was ich gefunden
habe und das ist
sehr interessant, ist , dass das fallende Geräusch aus irgendeinem Grund
nicht ganz funktioniert. Oder es hat dort funktioniert. Mal sehen. Jetzt
hat es nicht ganz funktioniert. Ich bin mir nicht hundertprozentig sicher. Das fallende
Geräusch
scheint manchmal nicht funktionieren zu wollen. Ich bin mir ehrlich gesagt nicht hundertprozentig sicher
, warum das der Fall sein könnte. Aber die Großen,
das Breaking Sound, der Platzierungsgeräusch, das
sind die Großen,
das Schlaggeräusch, ich glaube, dass ich auch hier
gehen kann und dann hier kann
man es
genauso hören wie Geräusche treffen und
Geräusche platzieren, Sachen wie das. Das sind wirklich die Großen. Obwohl. Das ist ziemlich cool, genau da gäbe es schon für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen, und wir sehen uns in
der nächsten Vorlesung. Also ja.
76. (Fortgeschrittene) Benutzerdefinierte Music: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
eine benutzerdefinierte
Musikdiskette hinzufügen . Um
unser Wagnis in
die Sound-Events abzuschließen , fügen
wir jetzt auch eine benutzerdefinierte Musikdiskette hinzu. Nun, das ist wieder einmal, so
ziemlich nur bei normalem
Sound-Event genau hier. Wir werden das einfach kopieren
und ich werde das tatsächlich
über die tatsächlichen
Soundtypen stellen , nur für den Fall. Manchmal kann es
ein bisschen getrennt sein. Hier wird die Bar Brawl
sein, und dann wird das Sound-Event
selbst auch als VAR-Unterstrich-Rolle bezeichnet. Da gehst du. Und dann ist natürlich das
Sound-Event erledigt. müssen wir natürlich immer noch zu den Substantiven
Punkt-Punkt-Punkt Jason hinzufügen Das müssen wir natürlich immer noch zu den Substantiven
Punkt-Punkt-Punkt Jason hinzufügen. Also
werde ich das noch einmal kopieren. Dies steht
Ihnen natürlich auch zur Verfügung. Und du wirst sehen, dass
es nur Barbara ist. Oh, das ist genau der gleiche Name
, den wir hier angegeben haben. Und dann deutet dies auf
eine Balkenschlägerei gut, Name, benannte Datei im Sounds
Ordner genau hier, die wieder seltsam sein muss. Und dieses Mal wird es immer
wichtiger, dass es sich Mono handelt, weil es
sonst auf
dem gesamten Server zu hören ist. Dies ist sehr wichtig
und Sie können sehen,
dass dieser Stream auch hier wahr ist, weil die Länge
der Datei zunächst eine bestimmte Länge hat. Und Nummer zwei ist
natürlich ein Stream , der sinnvoll sein sollte. Lassen Sie uns einfach diesen
Overbar-Unterstrich-Schlägerei kopieren. Es gibt. Du gehst so ziemlich hin. Jetzt für die eigentliche Diskette, oder? Wir müssen in
unsere Klasse für mehr Gegenstände gehen und hier einen neuen Gegenstand erstellen Nehmen
wir einfach das Datentablet
und kopieren wir das. Und das wird der Rekord des
VAR-Unterstrichs der Schlägerei
sein . Sagen wir jetzt für den eigentlichen Namen, den ich so tief
nennen werde , sind
Unterstrichenschlägerei und Musik Unterstrich Disk nur 21 stapeln ist
hier in Ordnung, und das ist ein Plattenelement. Jetzt nimmt dies einen
ganzzahligen Parameter als ersten Parameter auf. Und dann wird der zweite
Parameter
ein Modus sein , der Punktbalken klingt, Brawl. Sie können sehen, dass der erste
ganzzahlige Parameter der Komparatorwert
ist. Im Grunde genommen, was es ausgibt wenn die Stärke des Signals, das es ausgibt, wenn Sie
einen Komparator
neben die Jukebox
legen, wenn Sie diesen Datensatz einsetzen. Jetzt ist dies ein normaler
Gegenstand, aber es hat
sozusagen eine Spezialität. Und das wird, naja, wenn es um die
Übersetzung geht, die
wir für die Übersetzung benötigen, eine Folgende Sache
ist. Und genau das wird
es sein. Barbaro Music Disk greift also auf
den Namen zu, oder? Und dann brauchen wir diesen
DESC auch zur Beschreibung. Und das enthält normalerweise mit Künstlern,
die
dies im Grunde genommen gemacht haben, und dann den
Namen des Liedes. Ich habe auch CC Zero aufgenommen, um
im Grunde zu signalisieren,
dass dies gemeinfrei
ist, sodass Sie dies nutzen können. Ich empfehle nur wärmstens,
dem Künstler dies
immer zuzuschreiben
, denn das ist genau das
Richtige. Aber das ist auch ein normaler Artikel, also brauchen wir immer noch ein Artikelmodell und ich werde es
einfach kopieren. Das ist nichts zu verrückt. Es deutet nur auf eine normale
Artikeltextur genau hier hin, was natürlich
auch einfach nur eine ziemlich
einfache Sache
sein wird. Also, lasst uns das auch einfach
kopieren. Sie gehen und das ist
so ziemlich alles, was wir tun müssen. Das ist also so ziemlich es, den benutzerdefinierten Datensatz hier
hinzuzufügen. Also schätze ich, lass uns einfach
hören, ob es funktioniert. In Ordnung, Wir Farmen
als Mikrowelle können die Bar
sehen Brahms Musik, das wurde hinzugefügt, also legen
wir sie einfach in die Jukebox und da ist es. Und jetzt, was
sehr wichtig ist, ist
, dass man hören kann, dass
man hören kann, dass es leise wird, bis es
nicht mehr gehört werden kann. Und wenn ich näher komme, wird es wieder lauter. Das ist also perfekt. Und es ist so ziemlich
genau das, was wir wollen. Dies ist einer der Gründe, oder im Grunde müssen Sie in der
Lage sein , diese
OGG-Datei und Mono zu haben. Sonst wird es tatsächlich auf dem gesamten
Server
gehört, wenn Sie dies
spielen, um sicherzustellen
, dass es sterblich ist, ich habe den gleichen
Fehler schon einmal gemacht. Im Grunde ist
es also
im Grunde so einfach , eine benutzerdefinierte
Musikdiskette, Minecraft, hinzuzufügen, oder? Das ist schon für diese
Vorlesung genau hier. Ich hoffe, du hast das im Urin
nützlich gefunden. Also das neue, wenn er es getan hat, schätzen wir eine Bewertung von Ihnen
sehr. Ansonsten sehe ich
dich in der nächsten Vorlesung. Also ja.
77. (Fortgeschrittene) benutzerdefinierte Blockmodelle in Minecraft mit BlockBench: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir Minecraft benutzerdefinierte
3D-Blockmodelle hinzufügen . Aber das ist ziemlich
aufregend, oder? Hinzufügen eines benutzerdefinierten
3D-Blocks, dem Minecraft, ist
im Grunde
kein ganzer Block, sondern im Grunde nur eine andere
Form. Und es gibt viele
bewegliche Teile dazu. Zuallererst benötigen
Sie ein Programm namens Block Bench. Jetzt habe ich das schon
geöffnet und ich habe auch unseren Custom Block bereits hier
vorbereitet. Und du kannst sehen, dass es definitiv so ist, dass es definitiv so ist, als könntest du das definitiv
sagen. Und die allgemeine
Idee ist, dass wir
dies nur als Block exportieren werden. Was Sie also tun können, ist im Grunde wenn Sie hier eine neue Datei erstellen, Sie können einfach ein
Java-Block-Dash-Elementmodell erstellen. Sie können sogar
die Texturgröße angeben, nur einen neuen Namen, und sie können damit Sachen machen. Jetzt wird dies kein Vortrag
über die Blockbank selbst sein . Wenn es viele
Interessen dafür gibt, füge
ich vielleicht auch hier eins hinzu, aber vorerst wird
es keine sein. Grundsätzlich könntest du hier
einfach Würfel hinzufügen. Du kannst sie bewegen, oder? Im Grunde bauen Minecraft. Nun, sozusagen nicht in
Minecraft. Sie können einfach
etwas aus
Blöcken bauen und dann fügen
wir das
als benutzerdefinierten Block hinzu und
werden Sie es tun aber wir werden dies
im Grunde verwerfen. Das brauchen wir nicht mehr. Genau hier, was wir tun werden, ist, dass
wir zu
Dateiexport gehen und dann
Blockschlamm-Elementmodell exportieren. Und dies wird uns veranlassen, dies grundsätzlich
zu exportieren. Wir werden das retten. Also habe ich das
schon gerettet, aber
das wird gut. Und das wird in einer JSON-Datei
gespeichert. Jetzt öffne ich diese JSON-Datei
genau hier in Intelligent. Und du kannst sehen, dass es
irgendwie so aussieht. Das ist also eine Menge Weichheit, die
uns irgendwie verwirrend macht. Ich weiß nicht, was das bedeutet. Nun, die Elemente hier in
dieser Liste
definieren im Grunde nur die 3D-Objekte, die
sich in unserem Block befinden. Und dann wird hier die
Textur, die wie das Wichtigste ist,
im Grunde genau hier definiert. Jetzt müssen wir das ändern. Normalerweise ist das der Fall, also MC Course Colon und dann werde
ich das tatsächlich
unter Machines Slash legen ,
kaufte einen Blaster. Und dann gilt das Gleiche
für diesen hier. Und ich gehe dann auch
über die tatsächliche Textur API . Lassen Sie mich also zuerst schnell die
Textur machen und dann können
wir darüber sprechen, was
diese JSON-Datei macht. Erstellen Sie
hier ein neues Verzeichnis namens machines. Dann werden
wir drinnen
den Kobalt-Unterstrich
Blaster Dot PNG haben , den du gehst. Und wo geht
diese JSON-Datei dann hin? Nun, das ist einfach normal. Bmi ist kein Normalfall, aber es ist nur eine
Blockmodelldatei. Das ist ein Blockmodell, Jason. Sie sind schon her. Und da hast du es. Und das ist buchstäblich
alles, was Sie wirklich brauchen, damit das benutzerdefinierte
Blockmodell funktioniert. Nun gibt es einige interessante Dinge, die
Sie hier definieren können. So haben Sie zum Beispiel dieses
Display und hier können Sie beispielsweise definieren, wie
das in 3D aussieht? Wie würde es aussehen, wenn
ein Zombie es in der
dritten Person hält und du
Ego-Atmung machen kannst, Lesters Person
direkt auf dem Kopf, was irgendwie witzig ist. Und dann gibt es vor
Ort, weißt du, vielleicht ist das zu groß oder
vielleicht ist das zu klein, damit du das auch
alles ändern kannst. Und das ist alles Teil
der eigentlichen JSON-Datei, die
Sie hier exportiert haben. Sie können also sehen, dass das
genau hier ist,
dieses Display, das ist alles definiert, also funktioniert
alles
absolut großartig. Jetzt brauchen wir auch
ein Artikelmodell. Das bezieht sich natürlich nur noch auf das Blockmodell hier. Wir werden einfach Kobaltblaster
sagen, genau dort und
dann auch hier. Oder verputzt sie vor. Jetzt wird das eigentlich alles
schon funktionieren. Jetzt brauchen wir auch einen benutzerdefinierten
Blöcke States, Grayson. Jetzt, noch einmal, wählen Sie
einfach den Block aus und
wir werden diesen kopieren. Und das
wird nur auf
die JSON-Datei verweisen , die wir
gerade erstellt haben und die wir hier
exportiert haben. Wir werden uns dieses auf jeden Fall wieder einmal ansehen , denn was wir definitiv
ändern
müssen , vielleicht ein oder
zwei Dinge dort. Aber vorerst werden
wir einen neuen Block machen. Wir werden einen neuen Block
registrieren. Wir werden die
rosa Rose hier nehmen, weil die anderen die
Blöcke registrieren. Natürlich wollen wir auch einen Artikel
herstellen. Das wird also der
Kobalt-Unterstrich-Blaster sein. Dann auch hier,
unterstreicht Walt Blaster. Das
wird vorerst
ein normaler Block sein , weil du das
mit einem normalen
Block-Nein tun könntest oder was auch immer ist. Und das wird
nichts kopieren. Das wird oben sein. Und dann sagen wir etwas
wie Material, Metall. Und das ist eigentlich
vorerst alles, was wir brauchen. Jetzt werden wir dabei zwei sehr offensichtliche
Einschränkungen sehen. Wir gehen im Grunde ins Spiel, aber vorerst brauchen wir das so ziemlich genau. Was wir aber auch
brauchen, ist der eigentliche Render-Layer hier. Also lasst uns das
sofort für
den Cobol-Blaster einstellen , den du gehst, und das sollte in Ordnung sein. Jetzt werden wir dabei immer noch
ein paar
Einschränkungen sehen . Aber zum Glück werden wir
auch sehen, wie wir sie reparieren können. Zum ersten Mal in dieser Vorlesung, Mal
sehen, ob es funktioniert. Oder ich finde mich
in microRNAS kann sehen, dass der Cobol-Blaster hinzugefügt
wurde. Wir haben die Übersetzung nicht hinzugefügt, aber das ist natürlich
etwas, das man leicht beheben kann. Wenn ich es jetzt abstelle, kannst
du sehen, dass wir
zunächst ein Problem
mit dem Durchsichtigen haben werden. Das ist also etwas
, das wir leicht
reparieren können , und dann werden Sie auch
feststellen, dass wir zuerst sind, ich habe es niedergelegt, aber es
sieht immer in die gleiche Richtung. Das ist also irgendwie nervig. Und dann sind auch die
Grenzen hier nicht ganz das, was
sie sein sollten. Jetzt sind sie definitiv
nicht das, was sie sein sollten. Das ist also definitiv
etwas, das man sich ansehen sollte. Nun, zum Glück können wir
alle drei
dieser Probleme beheben . Also lasst uns sie eins nach dem anderen angehen. Das erste und einfachste
ist natürlich, denn die durchsichtigen, naja, wir brauchen nur die
Keine Okklusion genau hier auf den Blockeigenschaften,
Blockverhaltenseigenschaften. Und wenn das
cool ist,
wird das sofort behoben. Jetzt auf die anderen beiden. Nun, um die
Rotation korrekt zu machen, brauchen
wir tatsächlich einen Kunden, der uns dafür blockiert. Also werden wir eine
benutzerdefinierte Blockklasse erstellen,
die als letzter Block Kobalt bezeichnet wird . Und dies wird im Moment
die normale
Blockklasse erweitern . Wir werden einfach einen
Konstruktor erstellen, der Super Wenn die Eigenschaften hier nein sind, klicken
Sie darauf, Shift F6, und
ändern es dann in Eigenschaften. Und wir werden
eine benutzerdefinierte Eigenschaft benötigen. Jetzt ist dies nicht notwendigerweise
eine benutzerdefinierte Eigenschaft, wird eine Eigenschaft
sein, die
eine öffentliche statische Eigenschaft oder Facing für die endgültige
Richtung sein wird, die den
Blockstatuseigenschaften entspricht. Diese horizontale Ausrichtung
ist hier sehr wichtig. Und dann werden wir es
tun, dass wir
im Grunde
den Standardwert hier registrieren werden. Also das hat getState
Definitionspunkt, Punkt, ratlos. Ein Wert von Facing wird Richtung
nach Norden sein. Also gehen sie, dies wird
die Standardrichtung sein , der sie ausgesetzt sein wird. Und dann wollen wir
drei Methoden, die ich eigentlich vier Methoden habe
, die ich kopieren werde. Nichts zu verrückt hier. Sie werden also
natürlich zunächst eine
dekrete
Blockstatusdefinitionsmethode sehen,
bei der dekrete
Blockstatusdefinitionsmethode sehen, wir
dies zuvor gesehen haben, wir fügen einfach die
Phasing-Eigenschaft dem Builder hinzu. Das sollte
nichts Neues für dich sein. Diese drei sind definitiv bekannt,
und das hat tatsächlich auch die Überschreibung zu
beiden hinzugefügt , nur
damit wir sie haben. Obwohl der gute Zustand für Platzierung im Grunde genommen nur noch
einmal dafür sorgt, dass gut, die jeweilige
Platzierung korrekt ist. Und in diesem Fall wollen
wir tatsächlich die entgegengesetzte Platzierung meiner
Art und Weise, wie ich aussehe. Ich schaue nach Norden. Ich möchte, dass der Block
mir gegenübersteht. Es muss also nach Süden schauen. Das ist also die allgemeine Vorstellung
davon, was das alles bewirkt. Und dann wurden diese im Grunde genommen
einfach gedreht und gespiegelt, um gut in
der richtigen Ausrichtung zu sein. Nun, das ist eigentlich
alles, was wir in
dieser Klasse brauchen , zumindest hier. Und stellen Sie in unserer Klasse mehr Blöcke
sicher, dass Sie
jetzt natürlich die neue Kobalt-Explosion oder
den neuen
Block von Kobalt erstellt Kobalt-Explosion oder
den neuen haben und
nicht mehr nur einen normalen Block.
Das ist sehr wichtig. Das
vermissen die Leute manchmal , wenn sie
eine neue Blockklasse machen. Sie wissen, dass es nicht
so gut funktioniert , wenn Sie es nicht erstellt
haben. Das ist also in der Tat sehr
wichtig. Natürlich müssen wir auch unsere Blockstaaten
ändern. Jason hier und ich haben das schon
vorbereitet. Jetzt ist das nichts zu verrückt. Was das im Grunde nur tut,
ist, dass es im Grunde nur sagt ,
hey, wenn
wir in
eine andere Richtung blicken, drehen wir
es einfach auf der Y-Achse um 9080 oder 270 Grad ein. Aber das ist so ziemlich
alles, was das wirklich tut, das Modell
wird immer noch dasselbe sein. Wir werden einfach den gesamten Block im Grunde drehen
. Dies steht Ihnen natürlich auch
im GitHub Repository oder einer
Einzelperson genauso gut zur Verfügung. Und das hätte
jetzt das rotierende Problem beheben sollen. Und natürlich auch
das, wissen Sie, im Grunde das durchsichtige
Thema, aber zum zweiten Mal, diese
Vorlesung, lass uns sehen, ob es funktioniert. Alles klar, also zuerst sieht
man noch einmal, der eigentliche
Durchblick verschwunden ist. Und wenn ich es dann
so ablege, los geht's. Es steht mir jetzt gegenüber, genau wie wir es erwarten würden. Es ist also nur der
Begrenzungsrahmen, der jetzt das Problem ist. Und nun, wie das Glück es wollte oder ich schätze, da das Glück es nicht haben
würde. Dies ist auch das, würde nicht unbedingt
das komplexeste sagen, aber es kann sehr nervig werden. Aber mal sehen, nur
damit ich es nicht vergesse, füge
ich jetzt die
Übersetzung hier hinzu, Cobol 100 Score-Blaster. Weil ich das sonst
tatsächlich vergessen werde. Also los geht's, Cobol Blaster, und das sollte gut sein. Jetzt müssen wir die
Cobol-Explosion-Straßensperre noch einmal
anpassen. Die Klasse, die du bist, aber was
wir eigentlich brauchen ist, dass wir wieder Sachen
von der Blockbank brauchen werden. Lasst uns den Block punchier wieder öffnen. Und was du siehst ist, dass ich
alle meine Würfel unter der
Gruppe habe , die Voxel Shapes genannt wird. Das ist sehr wichtig. Ich brauche das tatsächlich unter
der Gruppe Voxel Shapes. Sonst wird es hier nicht sehr wichtig
funktionieren. Als Nächstes brauche ich ein bestimmtes Plugin 100 Plugins, unter denen Sie
verfügbar sein können , und Sie möchten nach weiteren Utils
suchen. Jetzt habe ich
das schon installiert. Es sieht so aus von
JDK 22 und dem Wetter. Dies ist sehr
wichtig, da Sie sehen
können, Voxel-Formen auszunutzen. Genau das
möchte ich hier exportieren. Wir wollen zur Voxelform gehen. Ich möchte das auswählen ,
damit
hier alles ausgewählt wird. Gehen Sie zu Dateiexport, und dann können Sie Voxel-Shape
exportieren sehen. Jetzt möchte ich
dies als MOOC-Mapping exportieren. Also offizielle Mappings
hier in diesem Fall. Und dann möchte ich „bestätigen“ sagen. Jetzt möchte ich das den
Voxel Shape Unterstrich n nennen. Jetzt könntest du sagen:
Warte, warum ist es n? Nun, wir
müssen dies
für alle verschiedenen
Orientierungen exportieren . Also müssen wir das um 90 Grad
drehen. Erneut exportiert,
um 90 Grad drehen, erneut
exportieren, um 90 Grad drehen
, erneut
exportieren. Und
dann sind wir fertig. Wir brauchen vier verschiedene
Voxel, Formen. Ich muss noch einen
besseren Weg finden, dies zu tun. Wenn du einen besseren Weg
dazu findest, sag es mir bitte. Ich möchte es wirklich wissen, weil es an diesem Punkt sehr gut
geworden ist, es ist sehr nervig, weil
wir das mehrmals tun
müssen . Aber ich zeige dir, wie der Firefox eine Java-Datei sein wird
. Und das kannst du im Grunde genommen haben, das wirst du dieses Jahr haben. Das erste
, was Sie
tun werden, ist, dass Sie dies im Grunde
aufräumen werden. Wenn Sie also diese
Nullen haben, sind Benutzer oder um sie
einfach aufzurunden oder auf
die nächste ganze Zahl
abzurunden . Dieses Jahr ist im Grunde ein Nullpunkt und dann
gefolgt von 14 Nullen. Und dann ist eine Drei wie okay, das wird natürlich eine 0
sein. Also wollen wir das im Grunde
aufräumen, damit es schön und ordentlich aussieht, was es nur hier eingeführt hat. Und dann können wir es
grundsätzlich benutzen. Und was wir tun werden,
ist, dass innerhalb der Klasse im Grunde genommen eine neue private Statik
erstellen wird. Private statische
endgültige Voxel-Form, halten Shape-Unterstrich n, was genau
diesem Jazz genau hier entspricht. Wir kopieren dies und
Control V, um es einzufügen. Ich importiere
die Voxel-Form. Wir werden den Stream
importieren. Importieren Sie die Voxel-Shapes. Eigentlich sind das nur Formen. Da gehst du. Es gibt Formen. Und dann
funktioniert das Auge Boolean auch anders. Dies ist eigentlich der
boolesche Wert, den sie vor ihnen haben. Jetzt wird das klappen.
Also die eigentlichen Mappings wahrscheinlich noch nicht aktualisiert, ganz für die Blockbank, aber das ist in Ordnung, denn
das ist im Grunde das, was wir hier brauchen und
nun, das ist großartig, aber jetzt
haben wir nur die Form für die nach Norden ausgerichtete Richtung,
da
die Form natürlich anders wäre, wenn sie in
eine andere Richtung blicken würden. Aber wir müssen es tun, dass wir im Grunde noch einmal die Voxel-Formen
auswählen müssen. Sehr wichtig ist
, dass der Drehpunkt an dem Sie ihn zentrieren können, aber Sie können sehen, dass
er jetzt nicht ganz zentriert ist, als wäre er zentriert, aber dann hat er diese
seltsamen Dezimalwerte. Stellen Sie sicher, dass dies
wie für
einen Punkt gesetzt ist, der auch Ganzzahlen ist. Denn wenn nicht, werden
Sie auf einige Probleme
stoßen. Und was wir tun werden, ist, dass
wir das um
90 Grad drehen , genau so. Und jetzt wirst du sehen, dass das eigentlich nicht ganz übereinstimmt. Das ist in Ordnung. Was Sie tun müssen,
ist, dass Sie
diese Pfeile verwenden müssen , um es zu verschieben. Und dann kann man
grundsätzlich wieder einsteigen. Jetzt wird das nicht bei C. Nun,
was hier passiert ist, ist, dass ich
im Grunde genommen versehentlich in die Nummer
gegangen bin und dann einfach jeden Würfel
bewegen wird. Das ist etwas, das sehr
seltsam ist und mit Blockbank zu
tun hat. Ich bin mir einfach absolut nicht sicher, ob du sehen kannst, ob
ich die Pfeile benutze, dann wird es gut sein, dass es sie im Grunde
als Gruppe zusammenbewegt. Wenn ich die Zahlen da
drin ändere und es wird sie irgendwie einzeln
verschieben. Ich bin mir einfach nicht hundertprozentig
sicher, warum das der Fall ist. Das ist nur die Verrücktheit
mit Blockbank. Leider gibt es im Moment wirklich
kein anderes Programm
, mit dem ich vertraut bin, weißt
du,
tut das so gut? Also
müssen wir einfach dabei bleiben. Und dann sieht man, nun, wir haben das jetzt gedreht und jetzt ist
der Block nach Westen gerichtet. Jetzt müssen wir also
noch einmal Voxel Shape exportieren. Und dann ist das
der Vox-Unterstrich W. Und das ist sehr
wichtig, oder? Stellen Sie sicher, dass Sie es
unter den Teppich exportieren ,
korrekter Name, richtig. Ich habe viele Leute gesehen. Es ist, als würde es nicht gut funktionieren, wenn man
Ost mit West verwechselt hat, kann es unter dem Diamanten
im Nordosten, Südwesten passieren , oder? Stellen Sie also sicher, dass
Sie dem folgen, es sei
denn, drehen Sie
es hier einfach noch einmal. Und Sie können sehen, dass wir es noch einmal bewegen müssen,
um
sicherzustellen, dass wir diese Pfeile hier
verwenden. Und es ist eigentlich in die
andere Richtung. Da gehst du. Und dann wäre das Süden. Also das ist Export einer Voxel
Form Unterstrich S. Und dann noch einmal zum Glück. Und dann sind wir hier im Grunde
schon fertig. Also so eins und dann
auf diese Weise, nein, ich habe noch einmal versehentlich auf die tatsächliche Nummer
geklickt,
stelle sicher, dass du es nicht tust. Wenn Sie dies tun, können Sie einfach Control Z
drücken, um
im Grunde den Schritt zurückzugehen.
Keine Sorge da. Und dann exportieren wir
das noch einmal,
exportieren Voxel Shape Box oder
Shape-Unterstrich E Diesmal oder Osten. Und dann nur um es zurück zu haben, die ursprüngliche
Position genau hier, 0, und dann
wird das 13 sein. Eigentlich. Da gehst du. Ich werde das
noch einmal sparen, nur damit ich das wieder an
dieser Position habe , damit es Ihnen auch zur Verfügung steht. Und ich habe jetzt auch die vier
Java-Dateien. wir
sie einfach hierher. Da gehst du. Lasst uns
diese Art von Unvollkommenheiten noch einmal da
rausholen. Weißt du, diese passieren
manchmal nur weil Fließkommafehler, es ist einfach das, was es ist. Aber das ist nicht so schlimm. Es wird im Grunde
nur alle
diese
Rundungsfehler des Ladepunkts entfernt . Und dann wird es
uns vollkommen gut gehen. Das wird
also wieder eine 0 sein. Lass mich 14 gleich hier
und 13 gleich hier. Speichern Sie das, speichern Sie das, und dann werden
wir mit E. fortfahren. Aber was ich tun werde,
ist, dass das oder mal
kopieren werde
und ich werde
Schafe E, S, Form w haben. und dann werden
wir mit E. fortfahren.
Aber was ich tun werde,
ist, dass ich das oder mal
kopieren werde
und ich werde
Schafe E, S, Form w haben.
natürlich, um
sicherzustellen, dass wir die richtigen wählen,
um dort zu arbeiten. Das war also E, ist E und dann werden
wir das einfach in Formen ändern. Und dann sind diese beiden
Boolean vor einem Jahr hoch. Und das wird S sein, und das wird auch S sein. Das ist großartig. Wieder einmal sind dies nur
Shapes und dann boolean up. Ich kopiere das nur
über ein Steuerelement C Control V. Und dann nicht zuletzt die Westseite der Voxelform. Wieder einmal, boolean
up, boolescher Tag vor. Wenn Sie vorhaben viele Blöcke mit vielen komplexen Walk-Through-Formen zu haben, oder vielleicht wird dies davon bestimmt
sein. Ich habe dringend empfohlen, damit
nicht verrückt zu werden. Und wenn du wie
verrückt wie verrückte detaillierte Voxel-Formen hast, auf denen du sie nicht wie komplett
aufbauen kannst. Normalerweise sind das
nur Blöcke, oder? Das sind nur normale Blöcke. Wenn Sie
plötzlich
so etwas hatten und es dann so
drehen, ist dies plötzlich kein echter Block mehr. Ich bin so, als wäre es
kein gerader Block. Wenn Sie viele dieser
verschiedenen Blockzustände
haben die dem
Block perfekt gefolgt sind, kann es passieren, dass es im Grunde genommen
das Spiel ganz deutlich herunterfahren kann ,
weil es natürlich Die Voxel-Formen bestimmten
grundsätzlich die Kollision mit dem
Spieler und den Entitäten. Und das braucht tatsächlich viel
Rechenleistung und so. Also empfehle ich dringend,
nicht mit
verrückten Voxel-Formen
von UW zu gehen, oder? Das sollte also einfach gut sein. Aber ich wollte grundsätzlich
davor warnen. Und was ich im Grunde genommen tun
werde , was wir hier
tun werden, ist, dass wir es genau hier mit der Good
Shape-Methode außer Kraft setzen werden . Und ich
kopiere tatsächlich den gesamten Inhalt. Das ist nichts zu verrückt. Es ist nur eine
Switch-Anweisung
, die Sie sehen können , die den Wert
der Facing-Eigenschaft erhält. Und wenn es südlich ist und
wir die Form nach Süden und
Norden zurückgeben werden, werden wir
die Form nördlich von ihnen zurückgeben, Südwesten, West, Ost,
Ost. Nichts zu Verrücktes
sollte hier ziemlich selbsterklärend sein. Und das ist so ziemlich
alles, was wir tun müssen. Jetzt hast du gesehen, dass das ziemlich kompliziert
ist. Wie gesagt, wenn
Sie viele
verschiedene Blogs mit
verschiedenen Voxelformen für Erwachsene haben , ist es genau das, was es ist. Wenn Sie tatsächlich
einen besseren Weg haben, dies zu tun, sagen Sie mir
bitte
in den Fragen und Antworten, ich bin sehr offen eine andere
Möglichkeit
zu haben, diese hinzuzufügen. Wenn wir jetzt etwas
ändern würden, müssten
wir alle
Voxel-Formen erneut exportieren. So ist es, es kann
irgendwie mühsam sein, aber was auch immer der Fall sein mag, wir haben es jetzt endlich getan. Wenn diese Vorlesung das letzte
Mal ist, schauen wir mal, ob es funktioniert
oder ob es zum Beispiel
wieder in Minecraft ist, und setzen
wir uns hin und vor
ihnen funktionieren die
Voxel-Formen perfekt. Mal sehen, es
sollte perfekt in
jede andere Richtung funktionieren, in die
sie gehen, ist auch eines
der wichtigen Dinge,
warum man
die Unvollkommenheiten
auf jeden Fall beseitigen sollte Unvollkommenheiten
auf jeden Fall beseitigen , weil es
sonst könnte
einfach nur das
kleinste, kleinste bisschen weg sein. Und das ist echt nervig. Und es
wird wahrscheinlich besser
sein, wenn
es eine Ganzzahl ist,
obwohl ich glaube, dass sie
sowieso wieder in einen Float umgewandelt wird, aber weißt du, es ist einfach, es macht die allgemeinen Berechnungen
etwas schneller. Aber ja, so kann man
so ziemlich viel
ein benutzerdefiniertes 3D-Modell hinzufügen Minecraft. Eine weitere Sache, die ich hier einfach entfernen
werde, ist der Elternteil hier, weil wir eigentlich kein Blau haben, diese
Eltern aber
nicht wirklich brauchen. Wir werden das einfach entfernen. Das sind sie. Das
sollte also auch in Ordnung sein. Aber ansonsten können Sie es
so ziemlich hinzufügen. Insgesamt. Es ist, naja, es kann sehr komplex
sein, besonders wenn man
diese verrückten Voxel-Formen hat, aber ansonsten ist es eine
ziemlich einfache Sache. Alles in Betracht gezogen,
je nachdem, wie viele verschiedene benutzerdefinierte
3D-Blockmodelle Sie möchten. Aber jetzt sind Sie mit
dem Wissen ausgestattet , dass
wir diese hinzufügen. Ich hoffe, du hast das
nützlich gefunden und du lernst
etwas Neues. Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
78. (Fortgeschrittene) Benutzerdefinierte Item mit BlockBench: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in dieser Vorlesung werden
wir
ein benutzerdefiniertes Artikelmodell hinzufügen , Minecraft. letzte Mal haben wir
ein benutzerdefiniertes Blockmodell gesehen. Jetzt geht es um das Artikelmodell. Zunächst
werden wir
hier ein neues Element und eine Kopie über das
Datentablet erstellen . Und das wird das
Kobalt-Unterstrich-Personal sein. Und dann für den Namen
natürlich auch, unterstreicht
Kobalt Mitarbeiter. Und das wird in diesem Fall ein
normaler Gegenstand sein. Und dann
wird es in diesem Fall tatsächlich völlig in Ordnung
sein. Und lasst uns sofort die Übersetzung
hinzufügen. Sonst werde ich es noch einmal
vergessen. Also das natürlich,
jetzt wollen wir zu Tode. Und dann alle Mitarbeiter genau hier. Und wieder einmal öffnen wir die
Blickbank genau hier, um das wirklich
coole Kobaltpersonal genau hier zu sehen. Und Sie können sehen, dass ich das gerade mit
einigen alten Vanille-Extras
sowie einer benutzerdefinierten Textur
vorbereitet einigen alten Vanille-Extras
sowie habe. Und ich empfehle dringend , hier anzuzeigen,
um im Grunde zu sehen wie es in die Hand
des Spielers aussehen wird. Dritte Person rechts,
dritte Person links. Wir haben die erste Person, erste Person übrig, keinen Kopf. Das ergibt
überhaupt keinen
Sinn , wie es vor Ort aussieht, eigentlich wirklich so. Und dann
ist der Frame auch wirklich cool in der Benutzeroberfläche. Auch richtig nett. Sie können das also definitiv
ändern und tun, würde es mögen, welches
Display Sie wollen? Ich empfehle dringend,
damit herumzuspielen. Und sobald Sie
mit Ihrem benutzerdefinierten Element zufrieden sind, gehen
Sie im Grunde zum
Dateiexport-Block. Jedes Modell wird
es als JSON-Datei exportieren. Und nach dem Ersetzen, weil
ich schon einen habe. Und dann werden wir die Akte
kopieren. Und dann
kopieren wir diese Datei für beide Mitarbeiter in
den Models-Elementordner. Und es gibt ein paar Dinge
, die wir tun müssen. Sie können also sehen, dass
die Texturen hier ohne Namespaces
kommen,
also müssen wir dies hinzufügen. Also Minecraft alles und blockiere Peitsche. Und dann mach das Gleiche für
hier, hier und hier. Dann können wir einfach dasselbe
für den Cobol-Block hineinlegen , aber das muss natürlich MC-Pferd sein, das ist hier
sehr wichtig. Ansonsten war's das. Wenn Sie alle
relevanten Texturen hier haben, ist
es so ziemlich
genau das, was Sie brauchen. Sie benötigen dies nur als
Artikelmodell und benötigen
überhaupt kein anderes Artikelmodell
dafür. Also das ist ich meine, das ist so
ziemlich schon. Ich meine,
ich denke, lass uns einfach sehen, ob es in Minecraft über Finanzen
funktioniert, wie Sie sehen können, wurde das kalte
Personal
dem Spiel hinzugefügt und es sieht
häufig, erstaunlich aus. Sie können es also grundsätzlich hier
umschalten. Und es sieht gut aus in
Ego-Person und Third-Person. Ich mag besonders
die Goldwarteschlange, im Grunde wie der gesamte Block , der in winziger Form vorhanden ist. Ich weiß es nicht. Ich mag
das Aussehen wirklich, also ja, so einfach ist es
so einfach, Minecraft
ein benutzerdefiniertes Artikelmodell
hinzuzufügen , oder? Wieder einmal ist
die Herstellung des Modells natürlich, was ist schwierig? Man muss nur ein bisschen
mit Block Venture herumspielen . Daran
wirst du dich ziemlich schnell gewöhnen. Ich habe das Gefühl, dass dies
ein sehr einfaches Programm ist , um einen Halt zu
bekommen, und ja,
Gummi, das wäre es
schon für diese Vorlesung genau hier. Ich hoffe, du hast das
nützlich gefunden und du hast
etwas Neues gelernt. Wir sehen uns in der
nächsten Vorlesung. Also ja.
79. (Fortgeschrittene): Oder ich komme zurück zum
Futterkurs für 118. In diesem Vortrag werden
wir ein benutzerdefiniertes Botha Minecraft
hinzufügen. Ein Kunde war also eigentlich
ziemlich einfach. Gehen wir in unsere Klasse für
mehr Gegenstände und lassen Sie uns einfach
das Kobaltpersonal überschreiben. Und das wird
der alte Unterstrich-Bogen sein. Und dann das Gleiche hier
und der Name Kobaltbogen. Und dann
wird dies ein 0 Item sein. Jetzt werden unservierte Stapel 2, 1, 0 tun, ist, dass
wir tatsächlich
die Haltbarkeit setzen , sagen
wir 500. Es wird
ein bisschen besser sein als der normale Bogen. Und für den Kunden müssen
wir die
benutzerdefinierten Artikeleigenschaften tatsächlich erneut festlegen. In unserer Item-Eigenschaften-Klasse werden
wir einen
privaten statischen Void-Aufruf
durchführen und alle Methoden
durchführen, die einen
Elementparameter aufnehmen, genau hier. Lassen Sie uns also auch an der Artikelklasse
arbeiten und sicherstellen, dass wir Net Minecraft
world item, item auswählen. Und dann klicken wir mit der
mittleren Maustaste auf die
Item-Eigenschaften-Klasse hier. Du gehst im Grunde rein
und wir werden im Grunde diese beiden
wählen, nennt das Register,
den Bogen und das Register beim Bot
im Grunde genommen wenn
ein Cabibbo für sie ist. Wählen Sie also STRG C , um Steuerelement V zum Einfügen zu kopieren. Und wir brauchen nur Artikeleigenschaften dot add vor
dem Register hier. Und dann werden wir die Gegenstände
ändern, die sich vor dem Gegenstand
beugen, der hier der Parameter
ist. Dann geht's los. Und jetzt können wir im Grunde so viele
machen, wie wir wollen. Wir nennen einfach „Bogen machen“ mit mehr Gegenständen für welche
Schüssel das bekommt. Und wenn du dann
mehrere Bälle
hast, rufst du das einfach
mehrmals an. Und dann werden sie, wir fügen die spezifischen
Artikeleigenschaften und ziehen zu diesem Gegenstand. Und dafür
brauchen wir im Grunde ein bestimmtes, naja, spezifisches Artikelmodell. Lasst uns zuerst
bei der Übersetzung gleich hier sein, nur
damit wir sie haben. Nun, unterstreicht Bogen und
Kobaltbogen auch hier. Und wenn es
um die Artikelmodelle geht, unsere Kopie über steht Ihnen
unsere Kopie über
alles hier
natürlich im GitHub Repository oder
einer Einzelperson zur Verfügung. Du siehst, dass wir tatsächlich vier von ihnen
brauchen. Also die Kobaltschale, wir schon einmal
mit Artikeleigenschaften gesehen haben ist
dies das Standardmodell,
das es braucht, oder? Es ist also nur diese
eigentliche Textur hier. Und dann, wenn es
im Grunde genommen überschreibt, wenn man als eins zieht. Wenn wir also gerade ziehen, fangen
wir an, dieses Modell
zu bekommen. Ziehen Sie also 0, wenn die Stange etwa 65 Prozent fertig
ist, wechseln wir
zu einem ziehen. Und wenn es zu 90 Prozent
erledigt ist und
wir zu bereit wechseln werden. Und ja, das ist, ich meine, das ist so ziemlich
die allgemeine Idee. Eine interessante Sache hier ist
, dass der Elternteil in
der Umfrage tatsächlich der Kobalt-Bot selbst sein wird
. Sie können also sehen, dass McQs Item
Cobalt Bot das übergeordnete Element ist. Und dann zeigt es wieder nur noch einmal auf
eine andere Texturen. Aber das ist wirklich
alles, was es dazu gibt. Nichts zu verrückt. So können wir jetzt auch
die Texturen hier hinzufügen. Das werden auch
vier von ihnen sein. Sie sind schon her, und das ist eigentlich alles, was wir wirklich tun müssen. Das große Ding ist wieder einmal das tatsächliche Hinzufügen
der Artikeleigenschaften. Da wir das bereits mit dem Datentablet gesehen
haben, sollte
dies hoffentlich nicht zu verrückt
oder
zu verwirrend für Sie sein . Und das ist so ziemlich
alles, was wir wirklich tun
müssen, um eine benutzerdefinierte Rolle hinzuzufügen. Oh, mal sehen, ob es funktioniert. Oder Phronese zurück
und Mikrolinsen. Sieh dir an, dass der Bot
erfolgreich zum Spiel hinzugefügt wurde. Und wie Sie sehen können,
wenn ich es fotografiere, ändert sich
auch die Textur für alles, was perfekt
funktioniert, richtig,
So einfach kann es sein Minecraft ein benutzerdefiniertes
Board hinzuzufügen. Und das ist schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
80. (Fortgeschrittene) Benutzerdefinierte Befehle: Alles klar, willkommen zurück
den vierten Kurs für 118. Und in dieser Vorlesung werden
wir Minecraft benutzerdefinierte Befehle
hinzufügen. Schreiben Sie benutzerdefinierte Befehle oder eine sehr interessante Sache. Jetzt fangen wir
an, während wir weitermachen. Dies ist also eine der
Vorträge, in denen wir anfangen , den Code zu kopieren. Obwohl wieder einmal alles
im Code
im GitHub-Repository und
einer Einzelperson verfügbar ist . Also keine Sorgen, das solltest
du
finden können. Keine Sorge. also in unserem MC-Kurspaket mit der rechten Maustaste auf ein neues Paket
namens Befehl. Und dann erstellen wir
sofort ein anderes Ereignis namens Event. Und wir werden uns
das Event in nur
einem Augenblick ansehen . Zunächst werden
wir uns das Kommando 1 ansehen, und wir werden zwei Klassen
kopieren. Ich werde
die Klassen tatsächlich in ihrer Gesamtheit kopieren . Das ist also der Befehl set home und der Befehl return home, und ich werde es erklären. Der Befehl wird also im Grunde mit diesem Dispatcher
erstellt. Also machen wir
Dispatcher Dot Register und dann haben wir einige
Commander-Literale. Was bedeutet das Home Set, was machen wir hier
und führen dann aus? Nun, das bedeutet, dass
im Grunde genommen das, was wir
in die Konsole stecken müssen , Slash Home Set
ist. Dann wird der Befehl ausgeführt. Dies ist also der eigentliche
Befehl, 0 dann gesetzt. Das ist die allgemeine Idee. Wenn wir uns Homer Churn
anschauen, können
wir sein Zuhause sehen und dann zurückkehren. Also für zu Hause, Set, sagte
sein Zuhause, ihre
Rückkehr nach Hause ist Homer an der Reihe. Das sollte nicht zu verrückt sein. Dies sollte ziemlich
einfach sein. In der Tat
ist es eine sehr komplexe Sache, Ihre
eigenen benutzerdefinierten Befehle zu erstellen . Also würde ich sagen, dass
dies etwas ist bei dem Sie, wenn
Sie
eine ganz bestimmte Sache haben , wenn
Sie
eine ganz bestimmte Sache , die
Sie mit Ihrem Kommando machen möchten ,
viel versuchen und irren müssen . Was ich dieser
Befehlsklasse wärmstens empfehlen kann, klicken Sie mit der
mittleren Maustaste darauf
und Sie werden alle Vanilla-Befehle sehen , die Ihnen zur Verfügung
stehen. Dies ist also die beste
Ressource, um zu sehen, welche Arten
von Befehlen es gibt. Und ich empfehle dringend
, einen Blick darauf zu werfen. Und ich werde dir vorher sagen, dass
sie
wirklich kompliziert sein werden, oder? Sogar so etwas wie
der Kill-Befehl, das ist wahrscheinlich einer
der einfachsten
, die man sich ansehen kann. Aber wenn du dann auf
so etwas wie den Glute-Befehl gehst, meine
ich, sieh dir das an, oder? So wie das ist, das sind so viele
Dinge, die hier drin sind. Und es ist so kompliziert, dass man auch hier sehen
kann, oder? Dies ist übrigens die
eigentliche Registrierung des Command Dispatchers. Also kannst du es sehen
, also ist es wie Slash-Beute und dann
okay, was machst du? Das Fischwerkzeug kann jemanden
haben, es gibt so viele
verschiedene Dinge obwohl es hier erforderlich ist. Sie können also fragen: Hey,
das ist die Person, die
zu diskriminieren versucht, das richtige Maß an
Erlaubnis zu
haben, nicht und so weiter. Sehr zu empfehlen. Werfen Sie einen
Blick darauf genauer. Wenn Sie etwas haben, das
Sie besonders wollen. In unserem Fall werden
wir nur
einige Daten in den persistenten
Daten des Spielers hier speichern . Wenn wir
die Heimatposition einstellen, sagen
wir im Grunde nur: Hey, das bringt die drei X
-, Y - und Z-Koordinaten in einen Bereich
in die persistenten Daten. Die Daten sind nur ein zusammengesetztes
Tag hier auf dem Player. Und ich stelle
das einfach unter MC Kurs MOD Composite. Das ist so
ziemlich genau das. Und dann werden wir
einen Erfolg mit Set Home
an einer bestimmten Position schicken , auf
die wir es gerade eingestellt haben. Wenn es um die
Rückkehr nach Hause geht,
ist das Kommando etwas komplizierter, aber nicht wirklich. Wir haben eine hat
Homepause Boolean, was im Grunde nur sagt, hey ist die Länge dieses
GetInt-Arrays hier, nicht 0. Denn wenn es
0 ist, dann wissen wir, okay, wir haben
noch keine Position. Es ist nicht 0, dann wissen wir, okay, wir haben eine Heimatposition, die
im Grunde genommen festgelegt wird. Und dann
teleportieren wir den Spieler
einfach hier in diese Position. Und im Grunde gesagt:
Hey Spieler, kehre nach Hause zurück. Und hier senden wir einen Fehler ohne dass keine Home-Position festgelegt
wurde. Und das ist so ziemlich alles
, was wir hier wirklich für die beiden Befehle
tun müssen . Sie können sehen, dass ich
diesen Befehl
im Grunde genau hier
mit der Git-Quelle aufrufe . Es nimmt einen
Befehlsquellenstapel auf. Und was sehr wichtig
ist, ist, dass es eine Befehlssyntaxausnahme auslöst, da Sie
Spieler oder Exception bekommen sehen können. Das ist hier also irgendwie
wichtig, oder? Das ist also im Grunde alles,
was wir in Bezug auf die Befehle benötigen. Was wir jetzt
brauchen, ist eine Event-Klasse. Wir klicken also mit der rechten Maustaste
auf das Ereignispaket , das wir Mod-Ereignisse erstellt haben. Und wir werden in
einem späteren Vortrag etwas
detaillierter über Ereignisse
sprechen . Aber Ereignisse sind im Grunde
etwas, um das man wirklich einen
ganzen Kurs erstellen
könnte. Das ist auch zehn
Stunden lang. Aber wir werden nicht zu sehr
ins Detail gehen. Wir werden nur
oben sagen, dass der Mod der Klasse hinzugefügt wird, um
sicherzustellen, dass
dieser ausgewählt ist. Und dann
löschen wir die Klammern,
diesen Eventbus-Abonnenten . Und dann wollen wir
Klammern mit einer MOD-ID einsetzen, was natürlich
MC-Kurse MOD ist. Und dann wollten wir Methoden anstreben. Ich werde beide kopieren, aber ich werde auch
erklären, dass es sehr wichtig
war, dass
über sie öffentlich,
statisch, nichtig sein müssen , der Name
ist eigentlich nicht das, was zählt. Worauf es ankommt, ist der
Parameter hier. Dies ist also das
Registerbefehl-Ereignis und dies ist das Spielerereignis, Klon
öffentlich statisch ungültig sein muss, und sie müssen die
Anmerkung beim Abonnierereignis haben. Das ist sehr wichtig. Vergiss das nicht,
sonst wird es nicht funktionieren. Es ist sehr wichtig. Die eigenen
Befehle registrieren Methode, es wird ziemlich
selbsterklärend sein. Ihre Vorführung eines
neuen zu Hause kommt heraus und ein neues
Rückkehr-Home-Kommando, und registrieren
es dann einfach bei diesem Ereignis. Dieses Ereignis wird übrigens auch im
internen Handler der Schmiede
verwendet. Dies sollte also
genau hier sein, wo die Futterbefehle
im Grunde gesetzt werden. Sie können sehen, dass dies
der Futterbefehl mit all dem Haufen von Sachen ist. Wir können also sehen, dass es
im Grunde genommen das TPS, die Track-Entität generiert. Dimensionen und der Befehl
Modusliste. Dies sind einige Befehle, die
in diesem Fall
besonders zu fälschen sind . Und Sie können auch sehen, dass
das Register Commands Event hier
sehr interessant ist. Zuallererst
heißt es, dass die Veranstaltung
auf dem
Minecraft-Schmiede-Event-Bus abgefeuert wird . Also werde ich nur ganz kurz erklären, was
zur Hölle los ist. Nun, wir haben verschiedene Ereignisse. Wenn ich tatsächlich auf dieses
Ereignis klicke und dann Strg H drücke, können
Sie sehen,
dass dies
alle Ereignisse sind, die uns in Forge
zur Verfügung stehen. Und wir können dies sogar erweitern und dann
werden wir noch
mehr haben , weil es Ereignisse gibt,
die aus Ereignissen stammen,
die von Ereignissen abgeleitet sind
und so weiter und so weiter. Sie können also sehen,
dass dies eine Menge Ereignisse sind. Das, was ich sage, könnten
Sie wahrscheinlich
einen zehnstündigen Kurs mit allen
Ereignissen selbst machen . werden wir nicht machen. Wie ich schon sagte, das war nur, weißt
du, zu beachten. Und die Idee ist, dass einige Ereignisse von Minecraft-Schmiede ausgelöst
werden, einige Ereignisse werden vom Eventbus
abgefeuert. Lassen Sie es uns
vorerst einfach dabei behalten. Da ist nichts zu
Verrücktes los. Ein Beispiel dafür werden wir auch
in einem späteren Vortrag sehen . Vorerst werden wir
nur sagen, okay,
Ereignisse ziemlich verrückt, aber auch ziemlich cool können sehr interessant
sein. Was ist jetzt die
zweite Veranstaltung hier? Nun, im Grunde, wenn
ein Charakter stirbt, wollen wir
die hartnäckigen Daten
des gerade verstorbenen Spielers übermitteln und im Grunde an den
neuen Spieler
kopieren. Dies soll also nur sicherstellen,
dass die Daten nach dem Tod dort bleiben
und dauerhaft bleiben. Das ist die allgemeine Idee hier. Aber ansonsten ist das so
ziemlich alles, was
wir in diesem
Modus machen Event-Klasse. Jetzt müssen wir es nirgends
anrufen hier mehr
Eventbus-Abonnenten hinzufügen. Dies wird im Grunde schon als jede Methode bezeichnet, die
bei einem Abonnierereignis
darüber liegt, im Grunde genommen eindringt
und dann auch kalt wird. Also komischerweise
ist das alles, was wir wirklich brauchen, um den
Befehl hinzuzufügen, wie gesagt, der
gesamte Code
steht Ihnen in einem GitHub-Repository und einer
Einzelperson genauso gut zur Verfügung. Empfehlen
Sie dringend, einen Blick darauf zu werfen. Ich empfehle dringend, einfach damit
herumzuspielen offen für Experimente zu
sein. Und um der Fertigstellung willen, lasst uns erhalten, dass es funktioniert. Ordnung, er findet
uns wieder in Minecraft, also fangen wir einfach an, Slash Home zu
tippen. Und da gehst du. Wir lassen
es uns schon vorschlagen. Versuchen wir
zuerst nach Hause zurückzukehren , was nicht funktionieren
sollte, oder? wurde keine Home-Position
festgelegt. Das ist vollkommen in Ordnung. Jetzt lass uns zu Hause sitzen. Stellen Sie die Position
an dieser Stelle ein. Mal sehen, nur um sicherzugehen, ja, das klingt ungefähr
richtig, das ist ziemlich gut. Jetzt gehen wir
woanders hin. Und wenn wir nicht sagen: Ohm, kehren Sie zurück, sind wir
nach Hause zurückgekehrt. Das ist echt gut. Lasst uns jetzt einfach aus einer Höhe
fallen. Mal sehen. Das wird
mich umbringen und dann werde ich antworten und dann werde
ich sagen, Rückkehr funktioniert auch völlig gut. Und dann lass uns auch einfach von dieser
Welt verschwinden, retten und kündigen. Und dann lasst uns
wieder in die Welt eintreten. Und dann mal sehen,
ob das noch funktioniert. Und das sollte
natürlich, denn was wir in
den persistenten Daten
und der Verbindung und BTEs für
die Entitäten gespeichert und der Verbindung und BTEs für
die Entitäten haben, werden
im Grunde darauf gespeichert. Lasst uns einfach
noch einmal davonfliegen und dann nach Hause zurückkehren. Und natürlich funktioniert es immer noch. Alle Fälle sind also grundsätzlich erledigt und hier funktioniert
alles. Das ist ziemlich cool. So einfach kann
es sein, einen Befehl hinzuzufügen. Wenn Sie noch einmal etwas ganz
Besonderes im Sinn haben, müssen
Sie nur damit
herumspielen. Ich helfe nur unter
bestimmten Umständen. Wenn du zum Beispiel Hey sagst, möchte
ich befehlen, dass das
XYZ und einfach verrücktes Zeug macht. Mach wahrscheinlich nicht nur den
gesamten Befehl für dich. Du musst nur
ein paar Sachen ausprobieren und damit
herumspielen. Und ich bin mir sicher, dass Sie es
schaffen können, den Befehl zum
Laufen zu bringen , wenn Sie wirklich daran
arbeiten, oder? Aber das war's für diesen
Vortrag genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung. Also ja.
81. (Fortgeschrittene): Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem Vortrag
werden wir uns ansehen, wie Sie benutzerdefinierte Partikel
auf der Welt
spawnen können . Insbesondere
werden wir uns das für den schnellen Block
ansehen das für den schnellen Block
ansehen oder im Grunde eine bestimmte Methode
hinzufügen. Und das nennt man hier die
Animate-Tick-Methode. Und dann kopiere
ich tatsächlich den Inhalt davon. Dies wird jedoch in
nur einem Moment ziemlich
selbsterklärend sein , wir haben im Grunde eine Chance. Und dann werden wir
sagen: Hey, wir wollen einfach jedes Mal
den Zufallsfloat. Und es gibt allgemeine
Ideen, die wir haben. Wir haben mal die Chance,
Partikel zu spawnen , und jedes
Mal sollten es hier
tatsächlich 65 Prozent betragen. Weil wir im Grunde
prüfen, ob der niedrigere als der nächste Float und ein Float zwischen 01 liegen wird
oder nicht. Das ist also die allgemeine Idee. Und so kann
man im Grunde ein Teilchen spawnen, oder? Sie brauchen also ein Level
und das muss diesmal
auf dem Kunden sein , das ist sehr wichtig. Und diese feindliche Methode zum Ankreuzen wird nur auf den Kunden aufgerufen. Das ist also perfekt für uns. Und wir sagen einfach Add Partikel, den Partikeltyp, den wir hinzufügen
möchten, die Position ,
rechts, x, y
und z und dann die Geschwindigkeit
in x-Richtung, die Geschwindigkeit in y-Richtung und die Geschwindigkeit im
Z Richtung. Und wenn die Partikeltypen sind, können
Sie sehen, dass hier
eine Menge Sachen drin sind, die Sie
im Grunde spawnen können. In diesem Fall nehmen
wir einfach den Rauch. Sieht eigentlich irgendwie cool aus und es wird
völlig gut für uns funktionieren. Und Sie können sehen, dass ich auch die Windgeschwindigkeit
habe im Grunde genommen, wissen Sie, ein bisschen
Zufall drin , damit es irgendwie
ungleichmäßig aussieht und es wirklich cool ist, wird
tatsächlich aussehen
echt verdammt genial. Und ja, so einfach ist es eigentlich
ziemlich so einfach. Sie brauchen also nur ein Level und Sie müssen beim Kunden
sein. Dies ist wieder einmal nicht für benutzerdefinierte Partikel an
und für sich selbst gedacht. So können Sie
gerade bestimmte
Partikel
tatsächlich irgendwo spawnen, wo Sie Zugriff auf eine
Levelvariable
haben und im Grunde überprüfen
, ob
Sie auf dem Client sind . um die Partikel auch zu
spawnen. So einfach ist es also
ziemlich so einfach. Um der Vollendung willen,
schauen wir mal, ob es funktioniert. Alles klar, wir fantasieren
in Minecraft, also lass uns den SPD-Block
runter setzen und los geht's. Der Rauch
steigt bereits davon auf. Es funktioniert also alles
vollkommen gut. Du siehst es. Und natürlich können
Sie das anpassen. Sie können die Geschwindigkeit einstellen
, die entsteht, wenn Sie sogar einstellen , wo sie in
Bezug auf den Block spawnt. In all dem kann das im Grunde
nur geändert werden. Und Sie können
natürlich auch
den Typ der Partikel ändern . Aber das ist trotzdem ziemlich
cool. Ordnung, und das
ist schon für diesen kurzen Vortrag genau hier. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt, und wir sehen uns in der
nächsten Vorlesung. Also ja.
82. (Fortgeschrittene) Benutzerdefinierte Fortschritte: Oder ich komme zurück zum
Futterkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
benutzerdefinierte Fortschritte
hinzufügen . Das Hinzufügen von Fortschritten
erfolgt also ausschließlich in JSON-Dateien. Also das im Datenordner, im MC-Kursordner. Und ich werde nur
meine 20 Fortschritte kopieren , die sich hier bereits vorbereitet
haben. Und ich zeige Ihnen eine großartige
Ressource, mit der Sie Ihre eigenen
Fortschritte
grundsätzlich gut lesen können. Und du siehst, also haben
wir zwei von ihnen, MC-Kurs Jason und
eine Dowsing Rute JSON. Das erste, was Sie
bemerken werden, ist, dass es ein Display gibt. Dies ist nur der Gegenstand oder While-Block
in diesem ,
der im Grunde genommen als
Symbol dieses Fortschritts angezeigt wird. Jetzt hast du einen Titel, Beschreibung sollte
alles sinnvoll sein. Sie können den Rahmen wählen , ob er bei einem Toast
angezeigt wird oder nicht. Dies ist also,
ob oben rechts auf
dem Bildschirm angezeigt oben rechts auf
dem wird, ob eine
Analyse chatten soll oder nicht. Und dann
hat dieser insbesondere einen Hintergrund, der
sehr eigenartig ist, weil er tatsächlich auf MC-Kerne Texturen
verweist, loc, 0,
Ballunterstrich Block PNG, aber auf die gesamte ähnliche
Ordnerstruktur hier. Und der Grund dafür dass
dieser kein Elternteil hat. Und wenn Sie Fortschritte machen, hat
es keinen Elternteil, dann wird im Wesentlichen
eine neue Registerkarte im
Fortschrittsfenster erstellt . Dies ist sehr wichtig, wenn Sie zuerst in den
Dowsing-Modus
wechseln, können
Sie sehen, dass Eltern
hier MC-Kerne, MC-Kerne sind und keinen Hintergrund
haben. Das ist also sehr eigenartig, war
in diesem Fall sehr interessant. Die Idee ist also, dass Sie,
wenn Sie einen Hintergrund wählen,
wenn Sie keinen Elternteil haben,
einen Hintergrund benötigen,
da dies wenn Sie einen Hintergrund wählen,
wenn Sie keinen Elternteil haben, im Grunde
der Hintergrund
Ihrer Registerkarte sein wird, dann sind die Kriterien
wirklich interessantes Ding. Jetzt werden wir
keine benutzerdefinierten Kriterien erstellen , da dies viel komplizierter ist. Wir werden nur
die Bestandsänderung verwenden. Sobald ich also
mindestens ein
Kobalt-England in meinem Inventar habe , wird mir
dieser Fortschritt gegeben. Und dann brauche
ich für die
Dowsing Rute im Grunde nur eine Dowsing Rute und dann werde ich auch
diesen Fortschritt haben. Das ist so ziemlich alles, was es wirklich
gibt. Um der Vollendung willen, schauen wir einfach, ob es funktioniert. Oder er findet uns zurück
und Minecraft. Also lasst uns einfach sehen, ob ich mir einen Cobol-Barren
besorge. Sie gehen MC Course Mod. Und ich kann auch sehen, dass die
Macht in den Kobalten liegt. Das ist ziemlich cool. Und jetzt sollte ich das auch hier finden können
. Wir können den
MC-Kurs-Mod als Fortschritt sehen. Der Name Ihres Aufstiegs
hier wird also immer
der erste Fortschritt sein , den Sie im Grunde genommen ohne in C
erkennbar sind, wir haben auch den Hintergrund, da Kobalt Ihr und dann siehst du die
zweite, die Rute der Rute. Wenn es nicht funktioniert, mag die
Rute dich nicht. Nun, das ist wenigstens
das, was mir gesagt wurde. Und wenn ich das nur kriege
und du siehst,
bekomme ich auch die
Rutenvorwärtsbewegung genau dort. Das ist also ziemlich cool. Alles in Betracht gezogen. Und so einfach ist
es eigentlich, sie im Grunde hinzuzufügen. Nun,
wie ich bereits erwähnt habe, ist
Miss old GitHub IO noch einmal
eine großartige Ressource für die Weiterentwicklung des Generators,
sehr empfehlenswert. Sie können
sich grundsätzlich alle
Anforderungen ansehen , die es gibt. Wir können Sie noch einmal sehen,
hier sind Bedingungen. Dann können wir
dies grundsätzlich in verschiedene Dinge ändern. Sagen wir zum Beispiel, wir haben uns beim
Inventar noch einmal geändert. Und dann können Sie grundsätzlich verschiedene Bedingungen
hinzufügen. Sie können Spieler-Slots und Gegenstände sehen. Es gibt eine Menge
Sachen, die du hinzufügen kannst. Ich empfehle dringend, damit
herumzuspielen oder einen
Blick auf die
Weiterentwicklung von Vanille zu werfen. Auch Möglichkeit auf
GitHub zu gehen und nach Weiterentwicklung aus
verschiedenen Modi zu suchen. Das funktioniert auch völlig gut. Aber es gibt viele Möglichkeiten
, die Sie im Grunde kaufen können, aber das ist es schon für
diese Vorlesung genau hier. Ich hoffe, Sie fanden dies
nützlich und die Versicherung der neuen JSON-Dateien ist
natürlich im GitHub-Repository
oder einer Einzelperson verfügbar ,
naja, und wir sehen uns in
der nächsten Vorlesung. Also ja.
83. (Fortgeschrittene): Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem Vortrag werden
wir Minecraft benutzerdefinierte Gemälde
hinzufügen. Das Hinzufügen benutzerdefinierter
Malmotive ist eigentlich ein ziemlich
unkomplizierter Prozess. zunächst im
MC-Kurspaket mit der rechten Maustaste auf ein neues Paket
namens Painting. Und drinnen werden
wir
eine neue Klasse schaffen, die als
moderne Malereiklasse bezeichnet wird. Jetzt
wird die Klasse für mehr Gemälde in erster Linie
ein öffentliches statisches, endgültig
verzögertes Register von Typ-,
Motiv- oder
Malunterstrich-Motiven haben ein öffentliches statisches, endgültig
verzögertes Register von Typ-, , das dem verzögerten Register
entspricht , das erstellt oder fügen Sie Register hinzu, diese Maltypen sind mein MC-Kursmodell,
diese Modell-ID. Und noch einmal, ob
es sich um 80 drittes Register handelt, gibt es auch eine öffentliche
statische Leerstellen
mit einem Auge Ereignisbus, Ereignisbus-Säureperimeter
und dann Malmotiven, die sich registrieren
im Eventbus vorbeifahren. Die Register-Methode
ist, wenn es kalt ist, Sie befinden sich unter dem
Modell, sodass sich mehr Gemälde registrieren und dann direkt
dort
im Event-Bus vorbeifahren . Das ist großartig. Und jetzt müssen wir nur noch die Bilder
registrieren. Und das wird durch ein
öffentliches statisches endgültiges
Registry-Objekt vom Typ Motiv geschehen . Dies wird Pflanze genannt, und dies entspricht
Malmotiven, dunklem Register. Der Name wird geplant sein. Und der zweite Parameter ist
ein Lieferant für neues Motiv. Und die Parameter
werden 16 sein. 16, und ich werde
erklären, was das sind. Also die Motivparameter, ich kann mit der mittleren
Maustaste klicken und du siehst, dass dies die Breite ist
und das ist die Höhe. Der erste Parameter
ist also die Breite, der zweite ist die Höhe. Dies ist im Grunde in
Pixeln angegeben, aber so groß
ist Ihre Malerei. Und nur um der Vollendung willen werden
wir hier tatsächlich drei Bilder
machen. Wir werden auch den Wanderer
haben, das Wunder sein
wird. Und dieser
wird Sonnenuntergang sein. Das ist übrigens wahrscheinlich mein
Favorit, aber
das werden wir in einem Moment sehen. Bei jedem Sonnenuntergang haben sie vor. Und das ist auch Sonnenuntergang. Und dies ist die eine Reihe ist 32 hoch und die
Empfindlichkeit ist 32 breit. Nun ist die Frage, nun,
wo sind die Bilder in unser MC-Kurspaket eingeschrieben werden sollen, Einfügen des Texturen-Ordners. Wir werden nur eine
neue Mappe namens Gemälde haben. Und ich werde das tatsächlich kopieren
,
weil der Inhalt
bereits da drin ist. Das ist die Pflanze,
der Sonnenuntergang und das Wunder Sind diese alle verfügbar
sind. Ich möchte jedoch, dass
Sie die
Aufmerksamkeit auf die Credits lenken, da die Bilder auch von Platin G7
gemacht werden. Stellen Sie einfach sicher, dass wenn Sie diese in
einem öffentlichen Repository oder
was auch immer im
Curtis verwenden ,
auch hier und befolgen Sie die Lizenz
, das im Grunde
alles ist, was es gibt. Ansonsten steht es Ihnen
grundsätzlich frei, sie zu benutzen. Und das ist eigentlich
alles, was wir tun müssen, solange die Namen hier mit den Namen des eigentlichen
Gemäldes
übereinstimmen. Bilder genau hier, die Bilder. Das ist alles, was
es dazu gibt. Also schätze ich mal
sehen, ob es funktioniert. Oder ein Apotheker in Minecraft. Setzen wir uns einfach
beim Gemälde hin und mal sehen,
oh, da sind wir. Das ist Sonnenuntergang. Ich
mag das wirklich und das ist, ich glaube das Wunder. Und lasst uns einfach sehen, ob wir uns
auch planen lassen. Alles klar, los geht's. Wir haben alle drei Bilder
, die wir hinzugefügt haben. Und ja, das ist es im Grunde. Im Grunde genommen fügen Sie die Bilder der
Gemäldedrehung genau hier hinzu. Das ist also die
allgemeine Idee, oder? So
einfach ist es eigentlich, Minecraft
benutzerdefinierte Gemälde hinzuzufügen . Und das ist es schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
84. (Fortgeschrittene): Alles klar, Willkommen beim
Schmiedekurs für 118. Und in diesem Vortrag werden
wir einen
Blick auf globale Luder-Modifikatoren werfen. Die erste Frage
, die sich stellen könnte, ist was unsere globalen Beuten-Modifikatoren? Nun, sie sind eine Möglichkeit
für uns zu ändern, Tabellen von beispielsweise
Vanille-Lu-Tabellen zu
verlieren , Dinge
hinzuzufügen oder sogar theoretisch Dinge davon zu
subtrahieren. Also könntest du etwas
wegnehmen und Sachen hinzufügen. Ich empfehle dringend, nicht zu tief mit dem
Subtrahieren von Sachen
hineinzugehen. Unterbricht dies den
Modus möglicherweise in Kompatibilität. Ihr Model spielt möglicherweise nicht
gut mit anderen Mods, und das ist normalerweise nicht
etwas, was Sie wollen. Was wir jetzt tun werden,
ist in unserem Event-Paket, wir klicken mit der rechten Maustaste auf ein
neues Paket namens Glute. Und statt dort werden alle
unsere Brunnenmodifikatoren gehen. Das sind im Grunde Klassen. Jetzt werde ich diese
kopieren und ich werde es erklären, während wir den Unterricht
durchlaufen. Dies ist also die Nummer eins
der Rutenstange im Iglu-Additionsmodifikator und der Modifikator Rübensamen aus
Gras Addition. Zum Glück sollten die
Klassen
fast selbsterklärend sein , was sie tun. Aber im Grunde werden
wir eine Dowsing Rute in
Iglustruktur Truhe und
einen Rübensamen im
Gras hinzufügen Iglustruktur Truhe und . Wenn wir Blechbläser brechen,
haben wir in diesem Fall eine Chance, wir tatsächlich eine
100-prozentige Chance haben,
die Rübensitze zur
Laute hinzuzufügen , die fallen gelassen wird. Aber was ist diese ganze
Tortur, wird zuallererst, beide sehen sehr ähnlich aus. Der einzige Unterschied liegt derzeit in der Methode
do apply. Für unsere Zwecke wir uns nur
einen Blick auf die Wende der
Sitze vom Modifikator der Gras-Edition. Und nun, ich
erkläre einfach schnell die allgemeine Idee. Wir sehen, dass die Klasse
von der Luteal-Modifikatorklasse ausgeht . Gehen wir einfach mit der
mittleren Maustaste darauf ein. Oder Sie können auch die Strg-Taste drücken und mit der
linken Maustaste darauf klicken, um
im Grunde dorthin zu gehen. Und Sie
können im Grunde sehen,
dass wir hier
eine bestimmte Sache haben , die die Do-Apply Methode ist, die im Grunde
die wichtige ist. Glücklicherweise haben wir hier auch
ein paar nette Kommentare. Wir können sehen, dass der Modifikator
auf die erzeugte Beute anwendet. Und dann
kannst du im Grunde Sachen hinzufügen. Das ist also echt cool. Die generierte Laute ist also
nur eine Liste der Artikelsteuer.
Dies würde fallen, wenn Sie nichts tun würden, und dann geben Sie die
geänderten Beutetropfen zurück. Das ist also das
wirklich coole Ding, aber deshalb können
Sie, wenn
wir hierher zurückkehren, in der Methode
do apply sehen, aber ich füge einen neuen
Item-Stack meiner Edition hinzu. Dies ist also der Artikel
, den ich zu
dieser Liste hinzufügen möchte und dann
die Liste mit meinem hinzugefügten Artikel zurückgeben möchte, und dann
wird mein Artikel gerade zu
der Beuteliste hinzugefügt , die
buchstäblich fallen wird. Das ist also echt verdammt
cooles Ding, oder? Wenn wir das einfach tun würden
, würden wir nichts ändern und es würde keine zusätzliche
Belastung hinzugefügt. Wenn wir das machen würden. Richtig, dann würde mein
Zusatz hinzugefügt werden. Was wir jetzt auch tun könnten, und ich empfehle dringend,
dies
nicht zu tun bedeutet das wirklich. Dann lies es, Lautenspieler. Und dann können wir einfach
die gesamte Liste der Dinge löschen , die wir hinzufügen werden, und einfach unsere eigene Beute
fallen lassen. Ich empfehle dringend, dies nicht zu tun, besonders nicht zu übertreiben. Denn noch einmal könnten
Sie Ihre Kompatibilität mit
Ihrem MOD und anderen Modi beeinträchtigen. Wenn sie sich auf bestimmte Blöcke verlassen bestimmte Dinge
fallen lassen, dann könnten Sie
Ihre Chance ruinieren , dass Ihre
Mutter jemals in einen bestimmten mehr Peck gerät, wird sich dessen bewusst sein.
Behalten Sie das im Hinterkopf. Lassen Sie mich hier eine
Serializer-Klasse haben, was im Grunde
eine verrückte Sache ist. Serializer für globale Beute Modifikator. Nun, wir haben nur eine
Lese- und Schreibmethode, was im Grunde genommen die
allgemeine Idee ist, dass sie Dinge aus einer JSON-Datei liest. Und Sie können sehen, was
es im Grunde tut, ist dass es den Wert aus
der Artikelregistrierung erhält. Also gehen wir im Grunde
unsere Testamente durch und wir werden sagen,
okay, wir haben ein, etwas in der JSON-Datei ist unter dem Zusatz
definiert. Das werden
wir in einem Moment sehen. Wir werden
sagen, okay, gib mir das und gib mir dann
den Wert davon. Holen Sie sich also im Grunde einfach das
Element, das
mit dem Zusatz verknüpft ist , den wir in der JSON-Datei
definiert haben. Und dann werden wir hier einfach
eine neue
zusätzliche Änderung vornehmen . Und wir geben es
für die Lese-Methode zurück. Und die Schreibmethode ist
genau das Gegenteil, im Grunde genommen nur
die eigentliche JSON-Datei erstellt. Jetzt ist das nicht wirklich erledigt, aber wir müssen das immer noch tun. Also behalte das einfach im Hinterkopf. Und das ist im Grunde alles, was
die zusätzlichen Modifikatoren, das sollte fast immer
ziemlich Boilerplate
an und für sich sein . Ich meine, wenn du
20 Ergänzungen hast, nun, und du wirst hier
20 verschiedene Artikel haben. Und du
wirst wahrscheinlich
20 verschiedene Gegenstände an den
Konstruktor weitergeben , solche Sachen. Aber das ist nur
normales Java-Wissen , das nicht zu verrückt sein sollte. Alles in Betracht gezogen. Wenn Sie dies jetzt haben,
benötigen Sie auch eine andere Klasse
im Event-Paket. Klicken Sie also mit der rechten Maustaste auf neue
Java-Klasse, die Mod-Ereignisbus-Ereignisse Und da drinnen werde
ich dies
zunächst in weitere Eventbus-Events umbenennen. Da gehst du. Und dann da drin werden
wir
zuerst an der Spitze stehen müssen, wir werden genau
diese Sache brauchen. Wir brauchen wieder einmal
den Event
Bus-Abonnenten von ad model.py mit
Armada DMC Kursmelodie. Und dann müssen wir jetzt angeben der Bus der Multi-Bus ist, letzten
Mal mit den Befehlen
sehr wichtig Wir haben gesehen,
dass dies
im Grunde genommen der Futterbus ist. Jetzt ist dies der
Modusbus wird in
einer späteren Vorlesung
etwas detaillierter
in die Ereignisse eingehen in
einer späteren Vorlesung
etwas detaillierter
in die Ereignisse . Aber vorerst werde
ich nur die grundlegende
Methode kopieren , die wir brauchen. Und das ist die Serialisierer-Methode des
Register-Modifikators. Der Name der Methode spielt
wirklich keine Rolle. Es ist nur wichtig
, dass es statisch und
öffentlich ist und hier oben eine Anmerkung zum Abonnieren von
Ereignissen hat. Und dann
ist
das Ereignis hier im Grunde das Register-Ereignis, bei dem ADD globale Beute
Modifikatoren, Serialisierer,
registriert. Und hier sagen wir einfach: Hey, registriere
einfach alle
unsere Serialisierer. Und Sie können sehen, dass wir
den Serializer registrieren , indem wir
den Registrierungsnamen festlegen. Und dieser Name
hier wird dann
der Name der angrenzenden Datei sein , aus der sie im Grunde liest. Wo gehen unsere JSON-Dateien hin? Wir brauchen einen für jeden der verschiedenen Modifikatoren
, die wir haben. Und dann
brauchen wir auch eins für Futter, im Grunde weiß diese Schmiede, okay, welche Modifikatoren haben wir eigentlich in
unserem Datenordner? Forge, klicke auf neues Verzeichnis namens „
Glute-Unterstrich-Modifikatoren“. Und dann kopiere ich
tatsächlich die JSON-Datei. Dies wird als
globaler Unterstrich, Unterstrich-Modifikatoren und
nebeneinander sehr wichtig bezeichnet. Dies muss richtig
geschrieben werden. Und dann müssen wir hier alle unsere Einträge
definieren. Aber Sie können sehen, dass
MC-Kerne Samen aus Gras und dann MC-Kurs
Dowsing Rute und Iglu heißen, die auch die gleichen Namen haben wie hier mit unserer Mod-ID. Das sind also im Grunde
die Einträge dort. Und dann in unserem Datenordner, MC-Kursordner, neues Verzeichnis namens Beute
Unterstrich-Modifikatoren. Und ich kopiere
die beiden JSON-Dateien noch einmal. Diese stehen
Ihnen natürlich auch im GitHub Repository
einer Einzelperson zur Verfügung. Sie können sehen, dass sie den Namen
genau so haben , wie wir es hier definiert haben. Dies wäre ein angrenzendes,
das angrenzende Ende im Grunde genommen. Und Sie können sehen, dass es einige Bedingungen
gibt. Insgesamt sind die
Lautenmodifikatordateien beide, sie sind an
sich interessant, oder? Sie müssen also hier eine
bestimmte Bedingung definieren. Aber in diesem Fall haben wir einen
Beutentischausweis und wir sagen, dass die Lu-Tabellen-ID
Minecraft-Truhen, Adlertruhe ist. Im Grunde
wird also sozusagen die Iglu-Truhe gerade
geladen. Dann nennen wir den
Iglu-Thorst-Modifikator. Und wir machen dann
die Do-Apple-Methode, zum Beispiel die
gleiche Breite, von dem der Brenner genau hier
aus Gras geht. Wenn also Gräser kaputt sind, können
Sie sehen,
dass dies
eine andere Bedingung ist , sagen wir Eigentum, und
dann prüfen wir nur, hey, ob
es sich um einen Griff handelt oder nicht. Ok. Und wenn jetzt ein
Grasblock im Grasblock kaputt ist, rufen wir die Methode
do apply auf. Kurz bevor wir
das generierte Unzüchtige fallen lassen, fügen
wir unsere benutzerdefinierte Anspielung hinzu, unsere Ergänzung, die von hier aus
eingelesen wird. Und dann geben wir
das im Grunde zurück, während diese eine Sache, die
wirklich cool ist, dass Sie sehen
können, dass ich auch den
Kontextpunkt getrandom verwenden kann,
um
im Grunde sicherzustellen, dass etwas
nicht fallen Sie immer ab. Dies. In diesem Fall wird dies
grundsätzlich nur
95% der Zeit hinzugefügt , 5% der Zeit. Es wird tatsächlich nicht hinzugefügt. Das ist also auch
etwas ziemlich cooles, aber auch sehr einfaches
Java-Zeug, einfach, oder? Und das ist eigentlich alles
, was man wirklich braucht. Manchmal habe ich das
Gefühl, dass
die globalen Modifikatoren im Allgemeinen etwas klobig
sind, ich würde sagen, als wären sie nicht , dass es viel Verrücktheit gibt. Weißt du, du
musst sie
hier definieren und du
musst sie hier definieren. Und du hast hier ein definiertes und du musst sie hier
teilen. Als gäbe es eine Menge
Dinge, die du tun musst. Ich weiß es nicht. Es
ist manchmal ein bisschen komisch, aber insgesamt bin ich mir sicher,
dass er es schaffen wird. Ich werde auch in den
Ressourcen verlinken werden
die globalen Schleifenmodifikatoren oder
die Forge Docs genau hier sein. Im Grunde genommen ist hier auch eine
kleine Zusammenfassung, in der Sie
sich im Grunde
noch einmal ansehen können ,
wie diese funktionieren könnten. Es kann
manchmal nützlich sein, weißt du, ich werde es einfach
im Grunde auch verknüpfen, oder Fantasien in Minecraft. Also mal sehen, ob ich hier das Gras
zerbreche, es sollte immer einen Rübensamen
fallen lassen. Und da sind wir. Grundsätzlich haben wir eine
100-prozentige Chance, dem
eigentlichen Beutentisch
einen Rübensamen hinzuzufügen . Und nur um der Vollendung willen, schauen wir uns auch den Adler an. Alles klar, hier drin können
wir sehen, dass es auch
eine Rute im
legalen Schach gibt. Das ist ziemlich cool, oder? Eine weitere Sache, die sehr wichtig
ist. Wir müssen auch hier einen Typ in
die JSON-Dateien hinzufügen, wo es uns
zusätzlich zu 118 gibt. Sonst wird es nicht funktionieren. Dies ist einfach
der Namespace, also Ihre MOD-ID und dann auch der Name der
eigentlichen Datei. Es sollte also hier
nichts Verrücktes geben, richtig, das wird es für diesen Vortrag genau hier sein. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen. Wir sehen uns in der
nächsten Vorlesung. Also ja.
85. (Intermediate) Flüssigkeiten: Alles klar, Willkommen zum
vierten Kurs für 118. Und in diesem Vortrag werden
wir uns kundenspezifische Flüssigkeiten ansehen. Für kundenspezifische Flüssigkeiten haben wir eine große Einschränkung oder sagen
wir
, dass es eine Einschränkung gibt. Und das wird
im Grunde sein, dass die Physik
der Flüssigkeit, die
Sie herstellen werden,
dieselbe Physik sein wird wie Wasser. Und dann auch nicht nur das, sondern auch du wirst im Grunde nur dieselben Artikel wie
Wasser haben, wenn du
hineintauchst und so was. Aber das ist eine Einschränkung
, die derzeit gut ist nicht einfach zu umgehen ist. Also hüte dich davor. Und ich werde auch
den größten Teil des Codes kopieren. Wieder einmal
steht Ihnen im
GitHub Repository oder einer
Einzelperson genauso gut alles zur Verfügung. Wir gehen jedoch durch und erklären dann das
MC-Kurspaket, klicken Sie mit der rechten Maustaste auf ein neues Paket
namens Fluid als sie sind. Ich werde die
Modusflüssigkeitsklasse in ihrer Gesamtheit kopieren. Wir sollten einen Pfeil
genau hier in den weiteren Gegenständen bekommen, wir müssen noch
einen Honigeimer herstellen . Aber mach das ganz einfach. Also in der More Items Klasse jetzt, kopiere
einfach den Honig-Unterstrich Eimer
über
die Schüssel . Und das ist natürlich
ein Under,
auf dem Unterstrich-Bucket. Und dann ist das ein Bucket Item. Und der erste Parameter
wird Fluide modelliert , dass eine IV-Flüssigkeit. Da gehst du. Und das ist im Grunde
das, was wir brauchen. Lassen Sie uns tatsächlich sofort
die Übersetzung und
solche Sachen hinzufügen , nur damit wir sie haben,
damit wir sie nicht vergessen. Also ein Honig-Unterstrich-Eimer und der Eimer sie vor und
dann ein Artikelmodell, denn das ist natürlich
noch in normalem Artikel. Das ändert nichts. Also Honigeimer, sie zeigen
nur auf eine normale Textur. Und dann fügen wir
einfach auch die Textur
hinzu, das Ego. Das ist also ziemlich nett. Werfen wir jetzt noch einmal einen
Blick auf die Flüssigkeiten. Das erste, was wir haben
, drei Ressourcenstandorte. Das ist also der Standort der
Wasserressourcen, der fließende und das Overlay. Warum benutzen wir die? Stimmt's? Warum nutzen wir die
Wasser- oder Ressourcenstandorte in Manila? Nun, weil sie grau sind und wir sie im Grunde färben können. Also haben wir diese Punktfarbe
genau hier in den Eigenschaften, und dies ermöglicht
uns grundsätzlich, unsere Flüssigkeit zu färben. Deshalb benutzen wir
diese, weil sie
bereits grau sind und total gut
aussehen. Habe ein anderes Register
sowie eine Registermethode. Wie Sie sehen können, muss
diese Register-Methode
natürlich aufgerufen werden. Nennen wir das auch. Es wird also genau hier das
Punktregister der Modusflüssigkeiten mit dem
Event-Bus geben. Dies ist etwas
, das wir jetzt schon
mehrfach gesehen haben . Und dann haben wir zwei
verschiedene Flüssigkeiten. Eine von ihnen ist eine fließende
Flüssigkeit, die Quelle hat, und die andere ist eine
geschmiedete fließende Flüssigkeit. Diese Flüssigkeit fließt. Das ist unglaublich wichtig. Ich habe das
mehrmals gesehen, dass die Leute es gerade kopiert
haben
und vergessen haben, dies zu ändern. Seien Sie sich bewusst, dass einer
von ihnen
Quelle sein muss und einer von ihnen fließen muss. Sehr wichtig. Dann brauchen wir eine vierte fließende
Fluideigenschaften. Dies sind jedoch im Grunde die
Eigenschaften, wie wird dies angezeigt
und solche Sachen. Sie werden
hier viele
der gelben Overlays sehen und es heißt, hey, wir können das hier durch diese
ersetzen. Und dann heißt es sogar, dass wir das sogar einfacher machen können indem wir es einfach so nennen. Tu das nicht. Wir müssen die
Lieferanten hier richtig einsetzen. Andernfalls wird es nicht in der richtigen Reihenfolge
geladen. Also müssen wir die Lieferanten
verwenden. Das ist sehr wichtig. Das meiste Zeug,
Dichte, Leuchtkraft, Viskosität, Das sind gut, schmieden Sie
einfach Werte, die
nicht wirklich etwas tun. Steigung, definieren Sie Entfernung
und Levelabnahme. Diese tun jedoch etwas. Aber ich empfehle
dringend, noch einmal mit den
Zahlen
herumzuspielen , wenn es um die Farbe geht. Es ist sehr seltsam, denn
anstatt so zu gehen,
würde man erwarten, dass ein
Hexadezimalwert in RGBA fließt. Es ist eigentlich ein RGB, also ist das im Grunde die Farbe. Aber das sollte
ziemlich einfach sein. Finden Sie einfach online einen Farbwähler und dann können Sie die Farbe grundsätzlich genau hier
definieren. Wir brauchen auch einen Liquid
Block genau hier. Also blockiere ich Honig, das ist ein bestimmter Block. In diesem Fall können wir sehen, dass dies
ein neuer flüssiger Block ist und wir die Flüssigkeit genau dort hineingeben
. Aber das ist die
allgemeine Idee hier. Nichts zu verrückt. Ich denke manchmal, dass die
Flüssigkeiten und die Schmiede Will sind. Es könnte
etwas einfacher sein, weil es noch eine Sache gibt
, die wir hinzufügen müssen. Eigentlich das ein paar
Dinge, die wir hinzufügen müssen. In unserer MC-Kurse-Mod-Klasse in der Client-Setup-Methode wollten
wir
in der Client-Setup-Methode tatsächlich
die Renderer-Ebene hier einstellen, und das wird
für die Modellflüssigkeiten Dad und dann im Grunde den Block sein. Und das wird
durchscheinend sein. Eigentlich. Wir wollen das
Gleiche für das
Klare und für den fließenden Honig tun , dann werden wir dies
im Grunde
transparent machen , damit wir es durchschauen
können. Und das ermöglicht es
uns im Grunde , den
Alpha-Wert genau hier zu verwenden. Denk also so darüber nach. Und dann
müssen wir auch ein Tag hinzufügen. Und dieses Tag ist
glaubwürdig wichtig
zu verschlüsseln , um zu wissen, dass es sich tatsächlich wie eine Flüssigkeit
verhält. also im
Minecraft-Datenordner, Tags, mit der rechten Maustaste
auf neues Verzeichnis namens Fluids. Und da drin eine neue
Datei namens Water dot JSON. Und jetzt
wird der Inhalt so aussehen. Wir werden
den Honig-Unterstrich
fließend haben und da hineinfließen. Das sind die Namen
der Welt, entweder die Quelle oder der
fließende. Das ist sehr wichtig. Und dann sollten wir
im Grunde fertig sein. Und dann lässt du dein
benutzerdefiniertes Fluid
zu Minecraft hinzugefügt und es wird
ordnungsgemäß registriert. Also ja, das ist so
ziemlich alles was wir brauchen. Also lasst uns nach Arbeiten schauen oder ob ich zurückgefragt wurde
und Micro Tennessee, der Honigeimer wurde dem Spiel
hinzugefügt und
lasst uns ihn aufstellen. Da sind wir, der Honig
ist auch da drin. Und jetzt sieht man, dass
die Partikel
normale Wasserpartikel sind. Und wenn ich darauf eingehe, sieht
man, dass die Art
von Overlay auch blau ist denn dies sind nur zwei
dieser Einschränkungen
, die ich erwähnt habe. Es ist einfach so, wie es sein wird. Manchmal zerbröckelt der Keks einfach
so. Dennoch wurde Mikroben mit
benutzerdefinierter Flüssigkeit
zugesetzt. Das ist also ziemlich
cool und das wäre es
schon für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
86. (Intermediate): Alles klar, willkommen zurück
zum Futterkurs für 118. In diesem Vortrag werden
wir uns vorläufig mit
Ereignissen befassen , die wir bereits in früheren Vorträgen gesehen haben. Wir haben die
Mode-Ereignisbus-Ereignisse, und wir haben auch die
Motor-Event-Klasse. Wenn also zwei Klassen, haben wir das
Registerbefehl-Ereignis,
das Player-Klonereignis
sowie das
Registrierungsereignis für
die Serializer des globalen
Anspielers
gesehen das Player-Klonereignis sowie das
Registrierungsereignis für . Und ich wollte nur kurz zeigen, wie das
tatsächlich ist Ereignisse. Also zuallererst, wenn wir kein Ereignis
haben oder Sie
auch zweimal wechseln können und
einfach hier eine Veranstaltung einsetzen. Und fügen Sie dann
Nicht-Produktartikel ein. Und dann können wir
das hier von Net Microforms Event war EPI. Und ich kann folgendes machen. Ich kann darauf klicken
und Strg H. drücken Und ich habe dir diese bereits
gezeigt, aber wir zeigen es erneut. Aber wir können alles erweitern, und das sind all die Ereignisse, die
Anzeigen schmieden, in die wir uns
im Grunde gut einbinden und
dann Sachen machen können im Grunde gut einbinden und , wenn
dieses Ereignis ausgelöst wird. Es gibt wirklich verdammte
coole Dinge hier drin. Das erste, was ich erwähnen
möchte
, ist , dass Sie nicht sagen sollten, ich dieses
Ereignis verwenden möchte, um dies zu tun. So funktioniert es nicht. Was du tun solltest
ist, dass du sagen solltest, ich möchte, dass x passiert. Ich möchte in der Lage sein,
eine weitere Pause einzulegen und eine versteckte Entität damit zu führen,
und es sollte Feuer fangen. Okay, dann denkst du darüber nach. Nun, es kann ich
Sachen in der Item-Klasse
für den Nether-Block ändern . Das ist wirklich
hart codiert, oder? Man muss
den Quellcode
von Minecraft ändern ,
funktioniert nicht wirklich. Gibt es eine Veranstaltung
dafür? Ich weiß es nicht. Wie es wie
ein Schadensereignis gibt, alles lebende
Schadensereignis. Sieh dir das an. Das könnte nützlich sein. Sie können, Sie können
darauf doppelklicken und dann hat es normalerweise eine sehr gute
Beschreibung für die Ereignisse. Wir können sehen, dass das Ereignis lebender
Schaden
ausgelöst wird , kurz bevor Schäden
auf das Unternehmen angewandt wurden. Dieses Ereignis wird also jedes Mal
ausgelöst. Kurz vor einer Entität wird
eine lebende Hand-Entität verletzt. Das ist die Sache, oder? Dieses Ereignis wird ausgelöst,
wenn eine Entität in Lebewesen beschädigt
wird tatsächlich verletzt oder in
einer Schicht tatsächlich verletzt wird. Obwohl ich dringend
vorschlage, einen
Blick auf die Ereignisse zu werfen , die sich
in der Klassenhierarchie
befinden ist es
wirklich unglaublich nützlich, nur
mit einigen dieser Ereignisse vertraut zu sein, besonders wenn es
kommt zu den Entitäten. Es gibt so viele
von ihnen, dass Sie Entität-Ereignisse
sehen können , und sie können ihnen
einfach lebende Events öffnen
und sich das dann ansehen. Es gibt Spielerereignisse. Es gibt so viele verschiedene
Spielerereignisse, an die
man sich anschließen und
damit Sachen machen kann. Es ist ziemlich verrückt. Nun, es gibt eine
interessante Sache und das
ist die Brunnenbus-Klassifizierung. Wenn ich also hier mit der mittleren Maustaste auf diesen Bus
klicke, sieht
man, dass es einen
Schmiedebus gibt und es einen MOD-Bus gibt. Nun, der allgemeine Kern ist das. Es gibt einige Ereignisse
, die für Forge gefeuert werden, in einigen Ereignissen, die für einen Mod gefeuert
werden. Dies ist die allgemeine Idee, über die
Sie nachdenken müssen. Verkompliziere das nicht zu sehr. Ja, es ist natürlich noch
viel mehr dran. Sie können sehen, dass wir das schon einmal
gesehen haben, wo wir es haben, wir haben das schon einmal
gesehen. Nun, das ist
genau hier, oder? Sie können sehen, dass dies
der MOD-Eventbus ist, aber genau das ist
die Idee, oder? Sie haben den Modus-Ereignisbus
und den Forge-Ereignisbus. Und je mehr Ereignisbus in
diesem Fall zum Beispiel immer für die
verschiedenen Register hier verwendet wird. Und Sie können hier sehen, wenn wir Microforms Dot Eventbus
machen, dies ist dann der
andere Ereignisbus. Dieser ist also der
für die Schmiedeereignisse. Ich würde mir
darüber keine Sorgen machen. Insgesamt können Sie normalerweise sehen,
woher die Ereignisse stammen. Wenn Sie zum Beispiel das Register, das
Ereignisregister
sagen , wenn ich die
mittlere Maustaste drücke, klicken Sie darauf und gehen Sie
dann in die Registrierung,
wenn
Sie beispielsweise sehen können, dass dies jetzt das Busereignis
im IE-Modus implementiert. Also kann ich
Control H drücken und ich kann tatsächlich alle
Ereignisse sehen, die von dort aus kommen. Das sollten also
im Grunde alle von ihnen sein. Theoretisch gibt es vielleicht noch ein paar mehr, aber das glaube
ich nicht. Ich denke, sie
müssen das immer umsetzen. Das ist also so ziemlich
alles, was es dazu gibt. Normalerweise sollten Sie also in der Lage sein zu sagen und was wir nur aus
Gründen des Arguments
tun, was ich tatsächlich kopieren werde ist eine Methode, die Ihnen natürlich alles zur Verfügung steht und das ist das Set Entität in Brand, wenn getroffen wird. Und das wird
innerhalb einer weiteren Pause sein. Aber ich wollte
dir hier nur in einem Beispiel zeigen, kannst
du sehen, dass wir uns für
das lebende Schadensereignis entscheiden. Und diese Veranstaltung hat ein
paar Soft, oder? haben wir schon gesehen. Nun, wir haben die beschädigte
Quelle und wir haben
zum Beispiel auch den Betrag und auch das Lebewesen. Im Grunde genommen alle, die
wir hier bekommen, und das ist ziemlich cool, weil wir im Grunde
die Schadensquelle bekommen können. Wir können sagen, Hey, gib mir
einfach die direkte
Quelle, also den Spieler. Und dann können wir auch sagen, hol dir das Lebewesen, das getroffen wurde. Und dann
setzen wir das einfach in Brand. Aber das ist echt cool. Dies bedeutet also, dass wir
beispielsweise Vanilleartikeln
zusätzliche Funktionen hinzufügen können zusätzliche Funktionen . Übertreibe es jetzt noch einmal nicht. Sei nicht, mach
Cu2 nicht verrückt, oder? Wie ein Okay zu sein. Wenn ich also etwas
mit einem anderen Stern treffe, wird
die ganze Welt explodieren. Ich meine, wäre ehrlich gesagt
ziemlich cool, aber versuche einfach nicht, Ereignisse zu
beschuhlen , bei denen sie nicht passen. Zum Beispiel, wenn
Sie sagen, oh, also könnte ich dies
durch meinen benutzerdefinierten Artikel ersetzen. Und ich sagte: Ja, natürlich,
als könntest du es immer noch sagen. Du kannst Mod-Elemente sehen. Zum Beispiel, Dowsing, Rod Dot bekommen. Und das wird auch funktionieren. Wenn ich jetzt etwas
mit einer Dowsing Rute treffe , würde ich
etwas in Brand setzen. Aber dann würde ich auch sagen
: Warum würdest
du das tun wollen? Sie müssen dies nicht
in Ihren benutzerdefinierten Artikeln tun. Sie haben Zugriff auf
den Quellcode. Ich könnte einfach in
die Dowsing Rute gehen, oder? Eine Überschreibung einer Methode hier. Es gibt zum Beispiel die
Methode des verletzten Feindes. Und ich könnte es einfach hier
machen, genau wie wir es bei
der Levitation gesehen haben, oder? Wenn wir also mit dem
Schwebeschwert fertig
sind, haben wir die dritte
feindliche Methode außer Kraft gesetzt und einen Effekt
hinzugefügt. Oder du könntest das theoretisch auch genau hier
machen, oder? Ich könnte einfach sagen: Hey,
lass uns das nehmen, weißt du,
wenn das ein
Schwebe-Sortierungsobjekt ist, dann bumm, lass uns gehen, lass es uns in Brand setzen
oder lass es uns dazu bringen das
Lebewesen zu schweben, das getroffen wurde. Natürlich kann ich das tun, aber wenn Sie Zugriff auf
den Quellcode haben, gibt es keinen Grund, warum Sie es in einem Ereignis tun
würden. Ich hoffe, dass ich eine Art allgemeine Einführung in Ereignisse war. Ereignisse können fast unmöglich zu meistern sein,
da es so viele von ihnen gibt. Und Sie müssen nur sehen, ob es für Ihre spezielle
Sache, die Sie tun möchten, eine Veranstaltung
gibt
und ob es
großartig ist, probieren Sie es aus. Offen für Experimente. Ich kann einfach so ziemlich genau das, was ich für den
Rest des Kurses sagen
werde, denn es ist sehr wichtig, einfach ein paar Sachen
auszuprobieren. Du hast immer die Kontrolle Z. Das ist das Tolle
an der Programmierung. Du kannst immer einfach zurückgehen
und sagen: Weißt du was? Nein, das war keine gute Idee oder, oh mein Gott, diese
Funktionalität ist erstaunlich. Ich habe nicht erwartet, dass das passieren würde. Das ist also echt cool. Aber nur um der Vollendung willen sehen
wir tatsächlich, naja, funktioniert das wirklich?
Mal sehen, ob es so ist. Oder wenn ich sagt ein Minecraft, also mache ich noch eine
Pause und lass uns einfach sehen, ob ich damit
eine Entität getroffen habe. Da gehst du. Sie
werden in Brand gesetzt und ein anderer Ziegelstein
wird hier abgezogen. Das ist also wahnsinnig
cool. Wie du siehst. Es funktioniert einfach. Und
es ist, weißt du, so cool und interessant können
die benutzerdefinierten Ereignisse an
der Wand oder benutzerdefinierten Ereignisse an
der Wand oder das
Anschließen an Events
im Grunde stimmen, und das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen, und wir sehen uns in
der nächsten Vorlesung. Also ja.
87. (Fortgeschrittene): Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem kurzen Vortrag werden
wir Forge
aktualisieren und
die Mappings aktualisieren. Im Laufe
einiger Zeit, wissen Sie, werden
neue gefälschte Versionen herauskommen. Sie können also direkt hier
auf der Download-Seite sehen, wir haben
an dieser Stelle 39 und 0,8 und wir verwenden, glaube
ich, 39.05. Aber wir werden
das in einem Moment überprüfen, aber wir können es hier auf die
neueste Version aktualisieren. Und dann gilt das Gleiche
für Pergament. Wir haben an dieser Stelle tatsächlich eine fertige
Version, die 20, 21, 12 und 19 ist. Das ist also echt cool. Was wir tun können, ist, dass wir hier grundsätzlich
zur
build.gradle-Datei navigieren
können . Und du siehst, dass wir 0.5 benutzen. Jetzt können wir also einfach einen 0,8 einsetzen. Wir müssen nichts
herunterladen. Auch hier
wird es im Grunde automatisch für uns
erledigt. Und dann können wir
dies in die 2021,
12 und 19 ändern , und dann
die C-Version hier und dann 180 natürlich. Und dann für unsere
Version meine ich, an diesem Punkt sind wir
ziemlich weit Enol, also ist das alles wie
0.1.5, das ist in Ordnung. Und dann lasst uns das aufheben. Und dann können wir einfach
die Load Gradle
Änderungen hier treffen , und dann lassen wir
das einfach für mich durchlaufen. Es hat nur drei Sekunden gedauert, aber das liegt
natürlich daran, dass ich es schon gemacht habe und alle Sachen schon zuvor
heruntergeladen haben. Für Sie wird es wahrscheinlich etwa ein oder
zwei Minuten
dauern, um das zu fummeln, und dann
sollte alles gut aktualisiert, aktualisiert und in Ordnung sein. Es sollte hier keine Fehler geben. Was passieren könnte ist,
wenn Sie das Spiel starten, werden
Sie wieder viele Pfeile
oder vielmehr viele
Warnungen
bekommen , die sagen: Hey,
das funktioniert nicht, das funktioniert nicht, aber keine Sorgen. Lassen Sie uns das einfach
durchgehen, damit Sie sehen können, dass alles funktioniert,
solange es Ihnen nicht gut geht,
ich meine, Build ist fehlgeschlagen oder
solange Sie keine Mikrowelle
bekommen,
überhaupt nicht funktioniert, sollte es in Ordnung sein. Und Sie können genau
hier sehen,
dass die Mikrobe
bereits anfängt. Und dann sollte es uns gut gehen. Hier sind wir. Da gehen wir mit
Mikrofon 3908, alles funktioniert
in Großbritannien. Das ist eigentlich alles, was
ich Ihnen
für diese Vorlesung hier zeigen wollte . Ich kann es wärmstens empfehlen, wenn Sie eine neue Version zur Verfügung
haben. Ich meine, wenn Sie
das in Zukunft
sehen , sind Sie es natürlich, dann wird
diese Version
hier wahrscheinlich nicht die aktuellste
sein. Und dann
wird diese Version für Forge definitiv nicht die aktuellste
sein. Deshalb habe ich
die Seiten für Pergament
und die Seiten zum
Download noch einmal verlinkt die Seiten für Pergament , nur damit Sie
im Grunde diejenigen mitnehmen können, wo die tatsächlichen Versionen, die
Sie benötigen, wo auch immer das für
diese Vorlesung hier sein würde, ich hoffe, Sie haben das nützlich gefunden und etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung. Also ja.
88. (Fortgeschrittene) Benutzerdefinierte Block-Einheit: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem Vortrag werden
wir
uns einen
Block ansehen. Entitäten Für Blockentitäten sind im
Allgemeinen Blöcke , denen eine bestimmte
Funktionalität zugeordnet ist. Also sozusagen zusätzliche Daten. Und das könnte zum Beispiel eine GUI und
ähnliches
beinhalten. Bevor wir jetzt etwas
programmieren, wollte
ich eigentlich, naja, im Grunde ein
bisschen Theorie durchgehen. Dafür
werden wir das Brunnen-Tool
ausbrechen , das am häufigsten
verwendet wird , und das ist natürlich unser Punkt genau hier. Fangen wir einfach an. Die allgemeine Idee ist also, dass
wir ein paar Dinge haben. Nummer 1 ist, dass wir
eine Blockklasse haben. Jetzt haben wir das schon gemacht. Wir haben einen
Cobol-Blaster für uns. Jetzt wird es für uns ein blauer Knopf sein. Unter blauem Hintergrund. Es sieht nicht so gut aus, also haben
wir es, lies es genau hier. Aber die allgemeinen Ideen haben
wir eine
Blockklasse und das hat Verweis auf
eine
blockierte Entitätsklasse. Es gibt eine
Block-Entitätsklasse, die
wir natürlich in nur einem Moment erstellen werden. Und dies enthält Daten und Funktionen für
einen bestimmten Block. Das ist die allgemeine Idee. In diesem Block wird
Entitätsklasse erstellt. Wir können ein Inventar darin haben, und dass man
dann ein Menü erstellen kann. Jetzt ist die Menüklasse sehr interessant, weil
die Menüklasse, oder? Du siehst, dass es
irgendwie getrennt ist, oder? Wir haben einen Bildschirm
und einen Menükurs. Was nun sehr wichtig
ist, ist, dass die Menüklasse beispielsweise Werte
für die Entität
mit einem Server und Client
synchronisieren
kann Werte
für die Entität
mit einem Server und Client
synchronisieren . Das wird
besonders in der nächsten Vorlesung sehr wichtig
sein . Daher empfehle ich dringend,
einen
Blick auf diese Vorlesung und
die nächste Vorlesung zu werfen, da wir
am Ende dieser
Vorlesung
eine funktionierende Blockeinheit haben eine funktionierende Blockeinheit werden gut, Wir werden es
in der nächsten Vorlesung etwa
eine Milliarde Mal besser machen und einfach robuster. Das ist also nur etwas
, das man beachten sollte. In der Menüklasse gibt es auch
Slots für das Inventar. Sie können also sehen, dass dies dies im Grunde so visualisiert
, dass wir diese violetten
Rechtecke hier haben, irgendwie mit
den Slots hier korrelieren. Und was sehr
wichtig ist, ist, dass das Menü, in dem sich diese Slots befinden, völlig unabhängig
von diesem Bild ist. Denn was Sie beachten
müssen
, ist , dass wenn wir uns die
Bildschirmklasse ansehen, oder? Nur dieser Kunde, das ist
buchstäblich nur dieses Bild. Ich kann das nicht mehr betonen. Im Grunde
ist dies die Bildschirmklasse so ziemlich nur dieses Bild. Unabhängig davon,
was dieses Bild ist, könnten
die Slots überall
dort sein, wo wir sie haben möchten. Also definieren wir tatsächlich ihre Position innerhalb
der Menüklasse. Obwohl ich statt diesem, wissen
Sie, im GUI-Jahr ein
Bild von meinem Gesicht haben könnte, könnte
ich ein
Bild von meinem Hund haben. Du könntest alles
hineinlegen, was du willst. Die Funktionalität
würde immer noch funktionieren. Das ist also sehr, sehr wichtig. Jetzt zeigt es auch
Dinge wie den Fortschritt an. Also dieser
Fortschrittspfeil genau hier oder wie viel Kraftstoff
noch im Kraftstoffschlitz übrig ist. Grundsätzlich kann
das mit
den
Synchronizer-Werten gemacht werden , die die Menüklasse grundsätzlich für uns synchronisiert. Das ist der allgemeine
Überblick darüber. Und manchmal
kann das etwas verwirrend sein. Ich werde auch sagen, dass Blockentitäten definitiv
ein fortgeschrittenes Thema sind. So haben wir an dieser Stelle die
fortgeschrittenen Themen erreicht. Und an dieser Stelle
ist es auch
so etwas wie wenn man nicht so viel Java
weiß, genau zu diesem Zeitpunkt ist
es sehr gut. Es wird sehr schwer sein, Ihnen bei
irgendetwas
zu helfen , gehe
ich im Grunde genommen davon aus, dass Sie es wissen, zumindest
Zwischenwissen über Java im Grunde genommen. Also werde ich nicht sagen, Hey, das ist eine statische Methode. Du weißt, was eine statische
Methode ist, solche Sachen. Ich gehe einfach davon aus
, dass du das alles weißt. Seien Sie sich dessen bewusst. Nummer eins. Nummer zwei, ich
werde auch einen Großteil des Codes behandeln ,
der Ihnen
zur Verfügung steht, einschließlich dieses Spickzettel
steht
Ihnen auch im GitHub Repository Individualist
und zum Download zur Verfügung. also keine Sorgen. Aber lass uns
wieder
zu intelligentem Dich wechseln und mal sehen ,
was wir sehen können. Also Nummer 1, was wir brauchen
ist, dass wir eine neue Klasse brauchen. Wir benötigen ein neues Paket
in R, Blockpaket, klicken Sie mit der rechten Maustaste auf neues
Paket namens Entity. Dies ist jetzt das
Block-Entitätspaket. Und da brauchen wir zwei Klassen. Einer von ihnen wird die Kobalt-Blaster-Volokh-Entität sein. Und dann wird die
zweite mit der
rechten Maustaste auf die Neue JAR-Klasse namens Mud Rock Entities klicken. Da gehst du. Diese beiden Klassen werden also benötigt. Und für die
Blockentitäten können
wir
dies sofort mit
mindestens ein wenig füllen , und das wird
ein öffentliches statisches Finale sein, das dritte Register. Wir haben diesen natürlich
bereits gesehen, Blockentitätstyp und dann
wieder Winkelklammern mit
einem Fragezeichen darin. Und dann blockieren Sie
Unterstrich-Entitäten, die einem
anderen Register entsprechen, das Register erstellt,
Punktblock-Entitäten. Mc Kursmodell, diese Modell-ID. Und dann natürlich, während es
ein Register gibt, gibt es eine öffentliche statische
Void-Register-Methode mit einem Ereignisbus oder Ereignisbus, die Blockentitäten kühlt,
die sich registrieren und
im Event-Bus weitergeben. Und wir können
schon sofort in
unsere MC-Kurse-Mod-Klasse gehen und sie
einfach hier einlegen, damit
wir sagen können, Block-Modus,
Block-Entitäten sich bei
dem Ereignisbus registrieren, den sie vor ihnen haben. Und wir müssen
das noch einmal machen bevor die Vorlesung vorbei ist,
aber keine Sorgen. Wir werden das tatsächliche noch nicht definieren. Entität, weil wir zuerst diese Klasse erstellen müssen. Ich glaube, dass wir
diese Klasse fast in
ihrer Gesamtheit machen können , bis eine Sache, aber das
wird gut werden. Das hat also
mit folgendem zu tun. Dies erweitert
die Block-Entität und
implementiert den Menüanbieter. Lasst uns den Mauszeiger darüber bewegen, die Methoden
implementieren. Dies implementiert also die Methode zum
Abrufen des Anzeigenamens und die Create menü-Methode. Also eine Sache, die ich tun werde,
ist,
dass ich absichtlich einen Pfeil hier habe, weil ich nicht vergessen
möchte , das Create-Menü hier hinzuzufügen. Das ist manchmal irgendwie
wichtig. Ich meine, ich bin nicht
so, dass ich das vergesse, aber es ist einfach sehr wichtig
, dass wir das tatsächlich tun weil es viele
bewegliche Teile dazu gibt, weißt
du, nicht eines
dieser Teile zu tun , wird
im Grunde genommen mach es so, dass die
Block-Entität nicht funktioniert. Und hier können wir einfach
eine neue Text-Komponente
von vier Volt im letzten Semester zurückgeben . Das wird also im Grunde nur
der Anzeigename sein. Sie dann den Mauszeiger über diesen
Creed-Konstruktor, der super passt. Und das
wird auch gut werden. Was wir hier jedoch tun
werden, ist, dass wir
den ersten Parameter löschen und dann erhalten
Sie hier natürlich einen Fehler,
aber überhaupt keine Sorgen. Denn was wir
tun können, ist, dass wir dies in unserem
Modus Blockentitäten
definieren können . Und so wie wir
dies definieren ,
tippe ich das tatsächlich ein, möglicherweise kein öffentliches statisches
endgültiges Registry-Objekt. Es wird ziemlich selbsterklärend
für den Blockentitätstyp sein, diese Art von
Kobalt-Blaster-Buch-Entität. Nun, der Kobalt-Blaster, und das wird gleich
sein wie Blockentitäten, die sich mit
dem Namen
Kobalt-Unterstrich-Blaster registrieren , das wird in Ordnung sein. Und dann ein Lieferant des
folgenden Blockentitätstyps Punkt-Dot-Dot-Builder des
Kobaltblaster-Block-Entitäts-Doppelpunkts , Doppelpunkt neu. Sie können sehen, dass dann ein Komma, dann müssen wir Blöcke, Punkt, Blaster, Punkt bekommen. Dann nach dem dritten, nach der ersten Klammer
Ente abgerechnet, und dann eine Null passieren. So
sieht es also ungefähr hier aus. Die Blöcke, die wir hier übergeben
, sind also im Grunde die Blöcke, die
mit dieser Bucheinheit verbunden sind. Das ist die allgemeine Idee. Anstatt
den Parameter hier drin zu haben, können
wir dann Block-Entitäten sagen, die den
Blockpunkt-Kobalt-Blaster-Punkt bekommen. Jetzt denken Sie vielleicht, ist
das nicht eine zirkuläre Referenz? es eigentlich nicht. Das tue ich. Ich bin mir nicht ganz sicher wie es ist. Es ist sehr verrückt. Als gäbe es sozusagen viele
kreisförmige Dinge in den
Block-Entitäten. Also keine Sorgen. Jetzt werden wir anfangen, Sachen
zu kopieren. Das erste, was
wir kopieren werden, sind im Grunde die beiden
Felder, die wir haben. Und diese Felder sind im Item-Stack-Handler, der
Item-Handler der Größe vier genannt wird. Und dies ist auch
eine anonyme Klasse Sie sehen können, weil wir den geänderten Inhalt hier
platzieren müssen ,
wo wir uns im Grunde geändert haben. Denn sonst werden
wir einige Probleme beim
Laden und Speichern des
Inventars haben . Und dann haben wir eine
faule Optionale davon, und wir brauchen diese
wegen der Fähigkeit. Wir werden
das auch kopieren. Dies wird also die
Git-Fähigkeitsmethode sein. Und ich werde das einfach hier unten
legen. Sie erhalten also eine Capability-Methode. Sie können sehen, dass es
im Grunde heißt: Hey, wenn Sie wissen, dass jemand oder etwas nach
dieser Block-Entität fragt, es hat nicht die
Item-Handler-Fähigkeit, dann werden wir einfach den faulen Item-Handler
zurückgeben . Also richtig, das hier. Und wir werden einfach
sagen: Klar, nimm das. Wie
Sie deutlich sehen können, wurde
der faule Item-Handler
im Moment natürlich der faule Item-Handler
im Moment nicht eingestellt.
Wie stellen wir es ein? Was wir in
der onload-Methode festgelegt haben. Was wir also tun werden, ist, dass
ich die Onload- und die
Invalidate Caps-Methode über den Stand
kopieren werde. Sie könnten sehen, dass Onload ziemlich
selbsterklärend sein
sollte, oder? Wenn diese Block-Entität geladen wird, setzen
wir
den Lazy-Item-Handler einfach hier auf eine faule Optionale unseres tatsächlichen
Artikelhandlers. Das ist also die allgemeine Idee. Und wenn wir die Obergrenzen ungültig machen, passiert
dies, wenn der Server solche Sachen
herunterfährt. Dann machen wir nur
die faulen Item-Handler ungültig ,
damit wir keine
Ressourcenlecks haben , solche Sachen. Nun dann stellt sich die Frage, wie speichern wir die Daten? Nun, wir speichern die Daten,
indem wir zwei Methoden überschreiben. Das ist die zusätzliche Speichermethode
und die Lademethode. Sie können also sehen,
dass ich im Grunde
genommen den Item-Handler NMC das zur NVT
merke. Das macht also im Grunde das ganze
schwere Heben für uns. Es speichert alle Slots. Was in diesen Slots ist, sind
viele Gegenstände in diesen Slots. Das ist also alles wunderbar
für uns gemacht und wir brauchen nur diese
beiden Methoden genau hier. Was sehr wichtig
ist, ist, dass wir dies
in der anonymen Klasse
erneut außer Kraft setzen müssen . Andernfalls haben wir
einige Probleme beim Speichern der Daten, da
die
zusätzliche Methode zum Speichern aus irgendeinem Grund nicht aufgerufen wird. Jedes Mal, wenn wir
die Welt einfach aus irgendeinem Grund verlassen die Welt einfach aus irgendeinem Grund es nur ein Update aufgerufen. Ich bin mir dabei nicht sicher, aber vergewissern Sie
sich
, dass dies erledigt ist. Und nicht zuletzt für die nicht statischen Methoden werde
ich
für die nicht statischen Methoden auch
die Drops-Methode haben. Und dieser macht hier im Grunde nur einen einfachen
Container, hol dir alle
Artikel vom
Item-Handler und sagt dann einfach: Hey, lass
einfach alle
deine Inhalte an
dieser Position fallen dieses Niveau. Und dann wird es uns gut gehen. Dies wird aufgerufen, wenn wir den eigentlichen Block zerstören. Also
fließen alle Inhalte aus diesem eigentlichen Block heraus, oder? Also, wenn Sie zum Beispiel
Zerstörer Brust, und natürlich der gesamte
Inhalt der Brust wird auf den Boden fallen. Und das ist natürlich das,
was wir auch in
unserer Rakete wollen , bevor wir hier
weiter Sachen machen, wir werden tatsächlich
auf das Kobaltglas oder den Block
umsteigen , denn jetzt
wird der Block hat sich auch geändert. Und das wird sehr interessant
sein,
denn anstatt sich
von der Blockklasse zu erweitern, wird sich dies von der
Basis-Entitäts-Block aus erstrecken ,
die wichtig sind. Und dann können Sie sehen, dass Sie
sofort die neue
Blockentitätsmethode implementieren müssen . Das ist natürlich überhaupt
keine Sorgen, denn wir können dies einfach
umsetzen. Und das wird für uns
sehr einfach sein, denn was wir tun können, ist,
null zurückzugeben, wir werden eine neue
Kobalt-Blaster-Blockentität und die EPA hat
und den p-Zustand genau hier übergeben. Und das ist so ziemlich alles
, was wir dafür tun müssen. Nun, es gibt
noch ein paar Dinge, die wir tun
müssen, oder? Sie können natürlich sehen, dass das
meiste Zeug für die tatsächliche
Form des Blocks bestimmt
ist. Aber was Sie dann
haben, ist, dass wir es tun müssen, und das ist unglaublich
wichtig, oder? Wir müssen die
Getter-Render-Shape-Methode genau hier überschreiben . Und wir müssen das
Render-Shape ein Modell zurückgeben. Denn wenn wir dies nicht tun, wird unser Modell unsichtbar
sein, da dies
nur der Standardwert
des Basis-Entitätsblocks ist. Ich bin mir nicht sicher
, warum das der Fall ist. Wahrscheinlich wird es
ein Grund dafür sein. Stellen Sie also bitte sicher
, dass Sie dies außer Kraft setzen. Andernfalls
wird dein Block unsichtbar sein. Und das ist natürlich
nicht ganz das, was wir wollen, da
ich andere Methoden überschreiben werde
und diese tatsächlich kopieren werde. Dies wird
die onRemove-Methode sein. das habe ich gesagt,
genau wenn wir die
Drops-Methode genau hier aufrufen. Nun, das stellt nur sicher, hey, wenn wir diesen Block entfernen, der
gesamte Inhalt
der fällt der
gesamte Inhalt
der Block-Entität auf den Boden. Aber das ist großartig und das ist einfach eine wirklich nette Methode
und auch nicht zu verrückt. Und die US-Methode ist in dem Sinne
ähnlich, dass wir, wenn
wir mit der rechten Maustaste auf diese Sperre klicken, einfach möchten, dass die
tatsächliche Entität ihr Inventar öffnet oder
ihre GUI im Grunde genommen öffnet, oder? Sie können hier
Netzwerk-Hooks sehen, die Gui öffnen. Wir möchten also im Grunde
nur
die GUI öffnen und
sicherstellen, dass sie
irgendwie
über den Server und den Client synchronisiert wird . Deshalb erledigen die
Netzwerk-Hooks im Grunde das ganze schwere
Heben für uns. Es gibt noch eine
Sache, die wir wollen, und das ist, dass wir
die Ticker-Methode wollen oder wir möchten, dass
auf eine Tick-Methode in
der Kobalt-Blaster-Block-Entität zugegriffen werden kann . Und eine Tick-Methode
ist im Grunde nur eine Methode, die in diesem Fall jedes Häkchen für
eine bestimmte
Blockentität
genannt wird jedes Häkchen für
eine bestimmte
Blockentität
genannt . Und das ermöglicht es uns,
coole Funktionen hinzuzufügen. Und im Grunde genommen werden wir sozusagen kundenspezifisch
basteln. Und dafür müssen wir die
Getterticker-Methode
überschreiben. Ich werde das noch einmal kopieren und wir werden hier einen
einfachen Fehler bekommen, aber das können wir sehr einfach beheben. Wir können sehen, dass dies
im Grunde die, nun, ich bekomme eine Ticker-Methode
und wir rufen dann den Create Ticker-Helfer auf und kehren mit
dem Rock-Entity-Typ darauf zurück, wir den
globalen Blaster übergeben werden Blockmodus, Entitätsjahr
blockieren. Und dann können wir hier sehen,
dass wir die Cobol
Blaster Block
Entity Tick Methode übergeben möchten , die noch nicht erstellt wurde. Aber wir werden das jetzt
schaffen. Das werden also all
diese statischen Methoden sein. Das sind vier Methoden. Ich kopiere
sie einfach, damit wir
sehen können , was hier
los ist, oder? Das ist Verrücktheit, keine Sorge. Wir werden das durchmachen. Die Tick-Methode ist also die einzige
Methode, die nicht benutzerdefiniert ist. Diese drei Methoden
sind also völlig benutzerdefiniert. Ich habe sie selbst gemacht. Die Tick-Methode, die es
an sich ist,
wird für
jede Block-Entität gleich sein. Sie haben immer Zugriff
auf die Ebene der Position, den Bundesstaat und
die
Block-Entität selbst. Und Sie können sehen, dass ich gerade ein paar Hilfsmethoden
erstellt habe, im Grunde wird das Erstellen des
Gegenstandes einfach abstürzen. Die Elemente werden ein Element aus 0
extrahieren. Wir werden
es aus Slot 1 extrahieren. Und dann setzen
wir einfach
einen Gegenstand im Slot drei ein. Sie können also sehen, dass
wir auch hier Kobaltbarren einsetzen werden. Wir werden das einfach
ununterbrochen tun. Natürlich wird die
Craft-Item-Methode nur aufgerufen, wenn wir beide ein Rezept haben
und
das Stapellimit nicht erreicht haben. Werfen wir einen
Blick auf das Stack-Limit ,
denn das ist ein
bisschen einfacher. Wir werden im Grunde
nur sagen: hey, wenn die Anzahl der
tatsächlichen Stapel hier
kleiner ist als die
GetMax-Stack-Größe, wird es
uns gut gehen. Solange wir nicht
64 Artikel im Ausgabe-Slot erreicht
haben , können
wir kontinuierlich
Gegenstände herstellen , die
ziemlich selbsterklärend sein sollten. Die hat Rezeptmethode. Nun, das überprüft nur, ob
wir im 0-Slot namens Splitter haben und dass wir im ersten Slot oder in der
Steigung mit Index eins haben, wir haben rohes Kobalt. Wenn wir beide da
drin haben, dann stimmt das. Das wird hoffentlich wahr sein und dann werden
wir den Gegenstand herstellen. Ich werde das sagen, dies ist eine
sehr grobe Art, dies zu tun. Das soll dir wirklich nur
einmal zeigen , wie wird das eigentliche Handwerk und
solche Sachen funktionieren? Ich empfehle dringend, dass Sie dies
umsetzen können und
Sie können sich das ansehen
und Sie können sagen, nun, das ist wirklich
verdammt cool und es ist aber sehr zu empfehlen. nächsten Vorlesung werden wir ein individuelles Rezept
erstellen, Jason. Und dann können wir im Grunde genommen die
Bastelrezepte in JSON-Dateien definieren, was viel besser ist, als sie so
fest zu codieren. Definitiv keine gute
Idee, dies zu tun, oder? Das ist nur eine sehr schlechte Idee. Es ist sehr klobig, es ist nicht gut, es ist hart codiert. Vieles kann schief gehen. Daher kann ich es nur wärmstens empfehlen,
obwohl dies
nur einmal hier gezeigt wird , es ist eine sehr grobe Art,
Dinge
zu tun und wollte das nur klarstellen. Nun ist die Sache, dass dies so
ziemlich getan wird , außer natürlich die Create
Menu Methode genau hier. Und das Gleiche gilt für den Block. Der Block ist auch fertig, damit
wir den Block schließen können, wir können diesen noch näher bringen. Wir werden die
Block-Entitätsklasse für
ein wenig geöffnet lassen , da wir
jetzt natürlich auf dem Bildschirm hinzufügen müssen. Also in unserem MC-Kurspaket. Klicken Sie mit der rechten Maustaste auf neues
Paket namens Und drinnen
werden wir zwei neue,
eigentlich drei neue Klassen machen ,
Kobalt, Pilaster Menü. Und dann machen wir
den Wandpilaster-Bildschirm. Und wir werden auch die
Modusmenü-Typen zum Unterricht
machen . Und dann jedes Bildschirmpaket, wir brauchen auch ein anderes
Paket namens Slot. Und statt dort werde ich
tatsächlich auf den letzten Stern kopieren, letzten Stern wird der Modus sein, den Sie einsetzen
werden,
und der Modus-Ergebnis-Slot. Ich erkläre das in einem
Moment , in dem wir sie tatsächlich
benutzen werden. Aber ich empfehle dringend, sie
auch zu kopieren. All dies steht Ihnen natürlich wieder
zur Verfügung, GitHub Repository und eine
Einzelperson genauso gut. Keine Sorge da, richtig, wir
beginnen mit dem Menü - oder Kobaltblaster-Menü. Und ich werde es tun, das
wird
das abstrakte Container-Menü erweitern . Sehr wichtig. Da gehst du. Ich werde die hier
noch gültigen Methoden
implementieren . Und dann erstellen wir auch einen
Konstruktor, der super passt. Was ich jetzt tun werde, ist, dass
ich den gesamten Inhalt dieser Klasse einfach kopieren werde. Empfehlen
Sie dringend, das Gleiche zu tun. Und wir werden es erklären
, während wir weitermachen. Also haben wir einen
Pfeil genau hier. Wir werden das in einem
Moment beheben können , keine
Sorgen. Sie können also sehen, dass wir hier
zwei verschiedene Konstruktoren haben , was eigentlich sehr
wichtig ist, weil einer der Konstruktoren in
den Mod-Menüs und
der andere Konstruktor aufgerufen
wird den Mod-Menüs und wird in der Block-Entität
aufgerufen. Jetzt können wir das
sofort machen. Wechseln wir also
zur Blog-Entität. Und dann erstellen
wir hier in der Methode „Menü
erstellen“ ein
neues oder Bolzenputz-Menü, wenn ein Bestand des
Container-ID-Inventars übergeben wird. Und dann ist der Letzte das. Da gehst du. Und das ist so ziemlich alles
, was wir weitergeben müssen. Aber jetzt ist die
Block-Entity-Klasse vollständig fertig und
wir sind damit fertig. Werfen wir einen weiteren
Blick auf die Speisekarte hier. Also das Menü, wie
ich bereits im
Spickzettel in der Theorie
erwähnt habe , im Grunde genommen, Dies ist verantwortlich für die Slots,
wo sie sind, wo sie
angelegt sind, solche Sachen. Und das siehst du genau hier. So können wir haben, wir
fügen im Grunde das Inventar hinzu, wir fügen die Spieler-Hotbar hinzu. Das sind also nur
zwei Methoden, die ich schnell erstellt habe
, weil dies genau hier ist. Die for-Schleifen sind also normalerweise wie innerhalb
des eigentlichen Konstruktors. Das ist nur, ich meine,
es scheint mir einfach sehr schlecht zu sein, ist im Grunde nicht so
gut codiert. Dann gibt es noch etwas , das sehr
interessant ist und das ist der Quick Move Stack genau hier. Diese Methode wird von DZ 07 durchgeführt, 08 Kredit geht an
sie dafür. Ich möchte das im Grunde sagen,
dies ist für das Verschieben von Sachen in diesem Inventar. Mach dir keine Sorgen
um diese Methode. Sieh es dir nicht an. Sag einfach
so vielen Dank
für die 07, dass sie vielleicht
wahnsinnig sind. Ich habe nur die Methode, die wir
durchmachen konnten , eine halbe
Stunde damit verbracht, dies zu erklären. Es ist einfach nicht nötig. Ich mag diese Methode wirklich nicht, aber natürlich
muss sie irgendwie gemacht werden. Und so wird
es sein. Die statischen Felder
müssen auch vorhanden sein. Das ist sehr wichtig.
Und hier in der TE, Inventar-Slot-Anzahl,
müssen
wir im Grunde die tatsächliche Anzahl der
Spielautomaten aufstellen. Nun, t0 Inventar ein Archiv
jetzt ist es ein B-Inventar. Bevor es also Kachelentität
genannt wurde, heißt es
jetzt Blockentität. Aber alles hier
sollte immer noch ganz gut funktionieren. Und Sie können sehen, dass wir
vier Slots hinzufügen, wie Sie sehen können. Also fragen wir im Grunde: Hey, haben
wir
Item-Handler-Fähigkeit? Und wenn das der
Fall ist,
fügen wir hier ein paar coole Slots hinzu. Sie können sehen, dass ich einen
Kraftstoffschlitz in einem Ergebnis-Slot habe. Ich habe diese
Kurse gemacht, weil gut, ich meine, das
ergibt einfach viel Sinn. Grundsätzlich haben Sie einen Steckplatz, in den
Sie nur Kraftstoff einsetzen können und dann
ABR-Ergebnissteckplatz, in dem Sie
eigentlich nichts
einfügen können . Grundsätzlich kann nur die Maschine selbst Sachen hineinlegen. Und ich habe
diese im Grunde genommen aus den eigentlichen Slots genommen. Sie können also eintippen, sie können zweimal in die Verschiebung setzen
und dann in den Steckplatz legen. Und wenn ich das mache, können
Sie
das Slop Net
Minecraft-Weltinventar sehen . Und wenn ich Control H drücke, können
Sie alle verschiedenen Brunnen sehen, zum Beispiel
Slots, die
hier verfügbar sind. Und dann haben wir im Grunde den
Ofenergebnis-Slot, wie Sie sehen können. Werfen wir einen
Blick auf das hier. Und nun, ich meine, ich habe im Grunde genommen
die meisten Sachen hier genommen, sind die
Ergebnisse, oder? Was ist sehr wichtig? Es ist nur dieser
Ort am 1. Mai muss falsch sein. Und dann dasselbe für den Kraftstoffschlitz. Wir
fragen im Grunde nur den abstrakten Ofen, Hey, ist dieser Stapel ein Brennstoff? Und wenn ja, dann werden wir
einfach sagen, dass Sie es gerade dort
hineinlegen werden. So ziemlich alles, was
es dazu gab. Ich meine, das ist etwas, das es
gibt. Diese beiden Slots
empfehlen dringend, sie zu verwenden da sie im Grunde nur ein
bisschen schöner zu verwenden sind. Aber abgesehen davon glaube
ich, dass der größte Teil des Restes nicht zu verrückt ist . Wir haben nur einen Verweis
auf die Block-Entität, einen Verweis auf die Ebene. Die immer noch gültige Methode prüft
im Grunde nur , ob der Spieler auf dieses Menü zugreifen
kann oder nicht. Das wäre also, wenn Sie
sich in einem Minenwagen befinden, rechten Maustaste auf einen Ofen oder ähnliches klicken
und Sie sind zu weit weg und plötzlich schließt
die tatsächliche GUI. Ich glaube, dass dies dies
im Grunde erleichtert. Und lasst uns jetzt in den Kurs „
Mehr Menüs“ gehen und lasst uns auch unsere
Sachen dort hinzufügen. Ich werde das jetzt tatsächlich kopieren , weil wir
das oft gesehen haben. Dies ist ein verzögertes
Register des Menütyps, erneut des Fragezeichens. Und wenn wir dann den Menütyp
definieren, benötigen
wir hier eine
Registrierungsmenü-Typmethode , die
hier nur eine
Container-Fabrik vom Typ T hat. Und wir
registrieren das im Grunde nur. Normalerweise
wäre das nicht zu verrückt. Alles was als
sehr empfehlenswert angesehen wird. Wieder einmal, alles
natürlich verfügbar, müssen
Sie
das nicht selbst eingeben. Github Repository und
Individuum genauso gut. Jetzt werden
wir im
MC-Kurs-Mod-Konstruktor die modernen Menütypen
Punktregister mit dem Ereignisbus aufrufen . Und dann
ist hier auch alles registriert. Das ist großartig. Und dann müssen wir uns das im Grunde
nicht noch einmal
anschauen, zumindest vorerst. Jetzt ist dieser auch keine Fehler mehr
gemacht. Also ist alles großartig. Nun, eine Sache, die die Leute fragen
könnten, ist, nun, was bedeutet diese Ausstellung, was ist diese y-Position hier? Nun, dafür werde ich
tatsächlich
die Textur kopieren , die wir
in nur einem Moment verwenden werden. Dies wird in Vermögenswerte,
MC grobe Texturen
und dann unter Gui gehen . Also kopiere ich das vorbei. Wir enden. Dies ist die cobol
gesprengte GUI und ich werde das öffnen. Das haben wir
natürlich schon gesehen. Eine allgemeine Idee ist das,
naja, 850, oder? Also wir 18 und 50. Warum ist dieses Pixel
hier 0000. Wenn wir 18 nach rechts gehen, rechts, x 18, also 18 nach
rechts und 50 runter, landen
wir genau hier. Das ist also die allgemeine Idee. Sie müssen dies in Pixel
zählen. Wenn Sie jedoch Photoshop
oder paint.net oder GIMP verwenden, haben
Sie normalerweise ein Auswahlwerkzeug, das Sie verwenden können. Und dann kannst du
das
im Grunde wählen und sehen, wie groß das ist. Sie müssen es in
Pixel zählen, ist einfach keine andere Möglichkeit. Es ist manchmal ein
bisschen klobig, aber so wird
es sein. Und der Rest
sollte ziemlich selbsterklärend sein. Aber der Rest ist deine 66
und dann 16 runter als der
andere ist 50 runter und 66
x und so weiter und so weiter. So ist das im Grunde genommen angelegt, oder? Und dann lasst uns den
Bildschirm nicht zuletzt machen. Und noch einmal, ja, wir werden das tatsächlich kopieren. Jetzt. Das ist eigentlich das, ich denke, das ist, naja am wenigsten kompliziert. Dies ist der abstrakte
Container-Stream vom Typ, altes Glassdoor-Menü. Das ist also sehr
wichtig, dass Sie hier
die richtige Klasse,
das Kobalt-Master-Menü, einsetzen hier
die richtige Klasse, , denn dann
haben wir auch in
dieser Klasse Zugriff darauf . Das ist also sehr wichtig. Sie können sehen, dass ich den
Ressourcenstandort
der Textur unter
Texturen GUI Kobalt habe, Blaster
unterstrichen, GUI PNG unterstrichen, was wir
gerade gesehen haben. Und dieses Jahr
wird, wie Sie sehen können, im Grunde genau hier
gerendert. Und dann verwenden wir
diese Doublet-Methode unter dieser Methode kann sehr kompliziert
sein. Und wir werden in
der nächsten Vorlesung tatsächlich mehr über diese Methode
eingehen in
der nächsten Vorlesung tatsächlich mehr über diese Methode ,
wenn wir
die Fortschrittsbalken und so hinzufügen , dann
müssen wir tatsächlich darüber nachdenken, okay, wie würden wir
das einrichten, oder? Was ist das X? Was ist das Warum? Was
ist der Offset hier? Wie groß ist die Breite davon? Wir werden
diese nächste Vorlesung herausfinden. Wie ich schon sagte, das hier stellt vorerst sicher, dass das gesamte Bild, also all dies, ohne das Zeug
rechts hier, grundsätzlich
im Player angezeigt wird. Was wir nun noch
in der MC-Kurse-Mod-Klasse tun müssen, auch sehr wichtige und
abgelehnte Einrichtungsmethode, Menübildschirme, Punktregistermodus, Menütypen, die
Cobol-Blaster, Menüpunkt bekommen. Dann ein
Kobalt-Blaster-Bildschirm Doppelpunkt, Doppelpunkt neu. Jetzt sollte dies
keine Fehler verursachen, da der Kalt-Plasma-Bildschirm vom Typ
Kobalt-Blaster-Menü
ist, oder? Also der Container-Bildschirm des
Typs cobol Blaster Menu. Also alles, was uns
hier gut gehen sollte und ob wir es glauben oder nicht, das sollte es sein. Nun, wie ich schon sagte, das ist ein bisschen richtig? Und das ist sozusagen nicht einmal die
endgültige Form. Dies ist noch nicht einmal das
Ganze, aber vorerst ist
dies alles, was wir hinzufügen müssen. Mal sehen, ob es funktioniert oder ob es
zurückspringt und Minecraft. Also mal sehen,
lass uns den
Cobol-Blaster nach unten setzen und klicken wir
mit der rechten Maustaste darauf und sehen. Okay, das ist also richtig gut. Man sieht natürlich, dass die GUI jetzt eröffnet wurde. Alle diese Slots hier funktionieren. Jetzt sehen wir einfach, ob ich
Rock demütig machen und ihn hier platzieren kann . Ich kann nicht ein Jahr platzieren
und ich kann es hier platzieren. Genau das will ich. Ich kann hier drüben platzieren, ich kann meine Kursleber nehmen und sie hier
platzieren,
weil es ein Treibstoff ist. Und sobald ich hier den
Felsgriff an die Spitze lege, sollten
wir sehen können , dass Kobaltbarren hergestellt
werden. Und los geht's,
im Grunde jedes Häkchen. Also werden wir im Grunde jede Sekunde
20 Kobaltbarren herstellen . Und wenn ich
hier mehr reinlege, wird es nicht funktionieren. Das Stack-Limit
wurde erreicht. Deshalb
basteln wir nicht mehr, aber ich nehme die Hälfte davon raus. Man sieht, dass die andere Hälfte grundsätzlich erstellt wird. Eine Sache, die wir im Grunde
überprüfen können, wenn ich die Welt rette
und wieder darauf zurückgehe, dann hätten wir die Daten
speichern sollen. Aber das ist natürlich sehr
wichtig, ist eines der Dinge,
bei denen wir
zusätzliche Daten speichern und
die Lese-Methode benötigten . Also lasst uns einfach sehen, ob das funktioniert
oder nicht, aber ich bin ziemlich
zuversichtlich, dass es das tut. Jetzt werden wir sehen
, dass alle unsere Artikel noch hier sind. Und dann gilt das
Gleiche, wenn ich das zerstöre, du kannst sehen, wie alle
Inhalte hier fallen. Also funktioniert alles
genau so, wie wir es wollen. Aber das ist definitiv eine Vorlesung für Fortgeschrittene, wie Sie deutlich erkennen können. Es ist. Zuallererst braucht
es viel Zeit und
es gibt viele Dinge , die Sie hier finden müssen. Aber insgesamt ist das
eine wirklich coole Sache, und Kacheleinheiten sind einfach erstaunliche Dinge, die ich empfehlen kann. Dies ist eines der
einzigen Male, in dem der
Blick auf den
Vanilla-Code nicht ganz so
nützlich ist , denn im Futter müssen
wir es auf
einen kleinen
Kreisverkehr tun , um unsere Sachen
grundsätzlich zu registrieren. Aber ich kann dringend
empfehlen einen Blick auf GitHub-Repositories
beliebter Mods zu werfen oder sie machen ihre Blockentitäten,
solche Sachen. Es ist sehr empfehlenswert,
da es immer, Sie können, Nummer 1, sich davon
inspirieren lassen. Und Nummer zwei, wenn du
wirklich feststeckst, hast du das
normalerweise auch. Sie haben natürlich auch dieses
GitHub-Repository. Der gesamte Code hier, wenn
Sie alles kopieren, sollte
das funktionieren, obwohl es natürlich viele
Teile gibt, oder? Wir haben den gesamten
Bildschirm, das Menü, der Block muss sich so
etwas weich ändern. Es gibt also definitiv
viel, aber insgesamt ist es wirklich cool. Daher empfehle ich dringend, nachdem Sie dies
beendet haben ,
sofort zur nächsten
Vorlesung zu gehen und sie sozusagen als
Doppelvortrag
anzusehen, indem Sie dies sehr
empfehlenswert sind. Ansonsten sind wir für
diese Vorlesung genau hier fertig. Ich hoffe wirklich, dass Sie das nützlich
fanden. Wenn irgendetwas unklar ist, können Sie
gerne Fragen
in den bereitgestellten Fragen stellen. Ich werde versuchen, sie
bestmöglich zu beantworten. Ansonsten würde ich mich sehr
über eine Rezension für mu freuen und wir sehen uns in der
nächsten Vorlesung. Also ja.
89. (Fortgeschritten) Erstellen benutzerdefinierte Rezepturen: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir
uns
ansehen, wie Sie Ihrer Block-Entität eine
benutzerdefinierte Rezeptserialisierung
hinzufügen können . Die allgemeine Idee ist also
, dass wir
die Möglichkeit hinzufügen werden, JSON-Dateien zu erstellen, benutzerdefinierte JSON-Dateien, die Sie
einlesen können und die im Grunde genommen die Rezepte für
Ihre Blockentitäten haben . Also werde ich noch einmal eine Menge Sachen in dieser
Vorlesung
kopieren , aber keine Sorge, alles steht dir
im GitHub Repository
zur Verfügung und
eine Person genauso gut, empfehle
dringend, eine
sieh dir die an. Und das erste
, was wir tun werden ist, dass wir das Rezept
machen werden. also in unserem MC-Kurspaket mit der rechten Maustaste auf ein neues
Paket namens Rezept. Und dann drin oder kopiere die Kobaltblasten oder Rezeptklasse sowie
die Modellrezeptklasse. Und wir schauen uns die an. Also sollte keiner von ihnen einen Fehler in ihnen
haben? Ich glaube. Also. Beide
sollten sofort funktionieren. Und wir gehen einfach
durch, wir fangen mit dem Cold Blast Rezept an. Sie können sehen, dass wir hier
drei Felder haben, eine Ressourcenstandortnummer
und Artikel werden ausgegeben und ein Nicht-Analyst
von Rezepturartikeln. Und Sie können auch sehen
, dass es hier
die Rezeptschnittstelle mit
dem Symbolcontainer implementiert . Jetzt sollte es ziemlich selbsterklärend sein
, dass die Ausgabe
nur das Ergebnis ist , das
Sie aus dem eigentlichen Rezept
erhalten werden . Die ID wird nun der Ressourcenspeicherort sein, unter dem sich diese eigentliche Jason-Datei befindet. Die Rezeptartikel werden eine Liste von Zutaten oder
Gegenständen sein, die für die
Herstellung des jeweiligen Gegenstandes verwendet werden. Jetzt überspringen wir die
Match-Methode für eine Sekunde, da dies die
wichtigste Methode
in dieser gesamten Klasse sein
wird . Also werden wir die anderen
durchgehen, um
ähnlich wie das Get Resultat Item zusammenzustellen ,
um Ihnen
nur die Ausgabe zu geben. Kann Dimensionen herstellen. Wir werden einfach wahr zurückgeben , weil wir keine Dimensionen
haben. Wir befinden uns nicht in einem Drei-mal-Drei-Gitter
oder so ähnlich. Die Idee ist wieder einmal
nur die Ressourcenstandortnummer. Und wir haben einen
Serializer und einen Typ. Das sind eigentlich statische Klassen innerhalb des
Kobaltplus- oder Rezeptglases. Und Sie können sehen, dass der Typ
nur eine Instanz hat und es ist nur eine Idee, die
Jacobo springt, und dann ähnlich
im Serializer haben
wir auch eine Instanz
und die ID genau hier. Es ist sehr wichtig, dass
dies und dieses, aber im Grunde genommen bestimmt ein
Typ hier wie der Name Ihres Typs
in Ihrer JSON-Datei sein muss. Aber wir werden das
in einem Moment sehen. Nun, die Nullen, es hat noch
ein paar Methoden. Wir werden hier zuerst ganz unten
gehen. Und das sieht man auch, besonders diese
beiden Methoden, die
im Grunde die Klasse
des Rezeptserialisierers zurückgeben. Und das ist eine verrückte
Unterrichtssache. Ähm, ich bin mir nicht
hundertprozentig sicher, was das Verrückte hier vor
sich geht. Wir werden das einfach brauchen. Sonst können wir die Klasse nicht
richtig
zurückgeben , wenn wir
dieses verrückte Wrapper-Zeug nicht haben. Wie gesagt, ich bin mir
nicht hundertprozentig sicher, worum es bei ihnen geht. Wir werden
es einfach so lassen, wie es ist, und es wird uns einfach
gut gehen, wenn wir hier sind. Jetzt
ist die Idee natürlich nur noch einmal,
die tatsächliche ID genau hier, der Ressourcenanlass,
der Registrierungsname ist nur
die Instanz selbst, wo wir die Instanz im Grunde nur selbst
zurückgeben. Und dann haben wir die
drei Methoden von Jason, vom Netzwerk bis zum Netzwerk. Jetzt sind die
unglaublich wichtig. Die from JSON-Methode
bestimmt grundsätzlich , wie der Jason grundsätzlich bestellt
wird. Wir können also sehen, dass wir ganz
am Anfang
ein Itemset namens output erstellen. Und das
lesen wir im Grunde aus einem Mitglied, das in der JSON-Datei
ausgegeben wird. Wieder einmal werden wir die
JSON-Datei in einem Moment sehen, aber das ist nur etwas, das
wir einlesen werden. Und dann
lesen wir in den Zutaten, was eine Liste sein wird. Hier erstellen wir eine Liste ohne Null. Und dann setzen Sie im Grunde alle Zutaten
in diese Liste. Und dann erstellen Sie ein neues
Cobol-Blast-Rezept aus dem Netzwerk. Und die beiden Netzwerkmethoden
sind ebenfalls interessant. Anstatt
das JSON-Objekt zu verwenden, haben
wir tatsächlich einen freundlichen Bytepuffer oder nach Puffer. Und das ist im Grunde
nur so, dass das Netzwerk den
Client und den Server kommunizieren
kann. Wichtig ist hier
, dass wenn wir
Dinge in das Netzwerk schreiben und Dinge aus dem Netzwerk
lesen, es genau übereinstimmen muss. Was heißt das? Nun, Sie können sehen,
dass wir beim Schreiben von Sachen zuerst die Größe
der Zutatenliste schreiben. Dann schreiben wir
jede Zutat. Und am Ende lesen
wir den Artikelstapel
des Rezeptergebnisses, okay? Und genau
so lesen wir es vor. Zuerst lesen wir die Größe genau hier mit read int vor. Dann lesen wir
die Zutaten vor. Und am
Ende lesen
wir die Ausgabe hier vor. Dies ist sehr wichtig
, dass dies übereinstimmen muss. Andernfalls erhalten Sie einen Fehler, nicht in der
Entwicklungsumgebung, sondern wenn Sie auf dem Server sind, z. B. wenn Sie versuchen,
sich im Grunde mit
einer normalen Welt außerhalb
der Entwicklung zu verbinden -Umgebung erhalten
Sie einen
Fehler und es
wird nicht funktionieren, um
sicherzustellen, dass dies übereinstimmt, wenn Sie sich für ein anderes Zeug
entscheiden möchten. Weil
wir natürlich wieder angefangen haben herumzuspielen. Jetzt ist es eine Art ernsthafte
Java-Wissenszeit. Wenn du das
ändern willst, richtig, wenn du zum Beispiel
sagen würdest, Hey, ich habe tatsächlich, nicht nur zwei Eingänge
haben wie vier Eingänge werden hier
die Größe ändern, oder? Um ein paar Sachen zu machen, habe ich tatsächlich
verschiedene Arten von Ausgaben, die ich
je nach bestimmten Dingen wollte. Nun, entweder machst du
ein neues Rezept dafür. Oder wenn Sie
das alles in einem Rezept haben möchten, können
Sie auch eine Liste
von Ausgaben in der Theorie erstellen, aus ihnen nach dem Zufallsprinzip
auswählen,
solche Sachen. Es geht darum, jetzt wirklich ein sehr
solides Verständnis zu haben ,
denn es
wird einfach sehr
schwierig sein , sonst
wirklich individuelle Sachen herzustellen. Im Moment kommen wir zur
Matchs-Methode, die wie gesagt,
die
wichtigste ist , weil dies im Grunde
die Funktionalität oder
das die Implementierung Ihres
Rezepts bestimmt ausgewertet. Was ist also im Container mit
einem bestimmten Rezept übereinstimmen? Wie funktioniert das? Nun, zuerst
fragen wir, ob die 0ten Rezeptartikel, also der erste Artikel in unserer
Rezeptliste, den wir aus
der angrenzenden Datei
einlesen, das mit
dem Artikel im Container übereinstimmt mit
Index 1, y Index 1? Denken Sie daran, denn Index 0 ist tatsächlich eine Stunde, werden Sie setzen. Deshalb müssen wir hier den Index eins
nehmen. Und wenn das passt,
dann kehren wir einfach zurück ob der andere auch
übereinstimmt oder nicht. Und dann
würde das natürlich wieder wahr werden. Sonst würde es
falsch zurückgeben. Das ist sehr wichtig. Dies ist im Grunde das
harte Stück
Ihres Rezeptjahres. Und noch einmal, wenn Sie
kompliziertere Sachen haben, wenn Sie mehr haben, wenn Sie mehr Zutaten
haben, wenn Sie mehr Slots haben, müssen
Sie nur Sachen
hinzufügen, Dinge darin
ändern, im Grunde genommen
ändere es ständig nach oben. Wieder einmal Java-Wissen,
Wissen, Terminologie. Ich sage das dauernd. Recherchen, insbesondere
im Bereich „
Fortgeschritten“, sind
wir im Grunde genommen fertig. Das ist also, das
muss getan werden und ja, das ist die allgemeine Idee. Also die gesamte Handwerkslogik, die Matching-Logik, geht hier rein, und das ist eigentlich die
Kälte- oder Rezeptklasse. Und dann
schauen wir uns die Modus-Rezepte an. Wir können sehen, dass wir hier
ein anderes Register von Rezeptserialisierern haben. Und dann nur ein
Rezept-Serialisierer für den
Cobol-Pflaster genau dort. Und dann stellen wir auch
sicher, dass wir
einen Typ registrieren , wenn wir
diese Registermethode aufrufen. Diese
Register-Methode
muss also natürlich noch einmal in unserer
MC-Kurs-Mod-Klasse hier aufgerufen werden, um MC-Kurs-Mod-Klasse hier die Modus-Rezepte
punktregister mit dem Event-Bus zu erhalten. Und sobald das erledigt ist, sind
diese Klassen tatsächlich in
Ordnung und wir konnten bereits die JSON-Dateien
einlesen. Aber natürlich haben
wir jetzt keine, wir machen nichts, oder? Also müssen wir jetzt tatsächlich das Kobalt plus die
Drei-Block-Entität
ändern , damit wir dies
schließen und in
die Entität direkt hier einsteigen können . Und wir werden hier tatsächlich einige wichtige Änderungen vornehmen. Was ich also tun werde, ist, dass
ich tatsächlich all die
verschiedenen Dinge kopieren all die werde, die
wir brauchen werden. Und wir
fangen ganz oben an. Denn was wir
brauchen, ist, dass
wir einige Containerdaten benötigen. Also werde ich das überschreiben. Ich mache so etwas und dann kopieren wir
das hier rein. Sie können also sehen, dass wir einige
geschützte endgültige
Containerdaten haben , die als Daten bezeichnet werden. Und dann haben wir auch für
Felder, die Fortschritt, den maximalen Fortschritt, die Kraftstoffzeit und die maximale Brennstoffzeit sind. Und zuerst, lassen Sie uns dies innerhalb
des Konstruktors
zuweisen, wird dies auch über
alles kopieren , was Ihnen
natürlich noch einmal im GitHub-Repository oder einem
zur Verfügung steht genauso gut individuell. Und Sie können sehen, dass
die Containerdaten auch in diesem Fall eine anonyme Methode sind, bei der die GET the set
und die getCount -Methode
überschrieben werden. Und wir
geben immer den Fortschritt,
die maximale Fortschritts-Treibstoffzeit
und die maximale Kraftstoffzeit genau hier zurück . Weil diese vier
verschiedenen Felder wir tatsächlich über das Menü
synchronisieren möchten. diesem Grund heißt es
Containerdaten. Das Container-Menü synchronisiert
diese vier Felder für uns
grundsätzlich über den Client und den
Server, sodass beide den gleichen Wert haben. Denn natürlich zum
Beispiel Southern, so
etwas wie der Fortschritt
und Ymax Fortschritt. Nun, wenn Sie beide haben, können
wir plötzlich einen Fortschrittspfeil
zeigen. Wenn wir die Kraftstoffzeit
und die maximale Feldzeit haben, können wir plötzlich zeigen,
wie viel Treibstoff in
Ihrem Inventar noch vorhanden ist ,
solche Sachen. Und deshalb ist es so unglaublich wichtig
, dies zu haben. Und das ist eigentlich ziemlich einfach zu verwenden, sobald
man weiß, wie man es benutzt. Was wir also
tun werden, ist, dass wir auf die
Einnahmen aus Kobaltglas einsteigen werden . Wir werden die Daten einfach hier
hinzufügen. Also diese Daten, jetzt wird das natürlich einen Fehler
auslösen, oder? Also müssen wir
ins
Blaster-Menü gehen und wir können einfach sagen:
Okay, wir werden hier ein paar Sachen
ändern. Und was wir ändern, ist nicht der erste Konstruktor,
sondern der zweite. Wir werden die
Containerdaten oder Daten hier hinzufügen. Und dann
wird dieser einen Fehler auslösen. Und wir werden uns überhaupt
keine Sorgen machen. Denn was wir
tun können, ist, dass
wir neue einfache
Containerdaten mit Länge 4 erstellen können . Denn das ist
natürlich noch einmal die vierte Länge. Und dann werden wir es einfach
tun,
dass wir dafür auch ein privates
Feld schaffen. Wir werden das später
in zwei Methoden verwenden oder tatsächlich denke ich drei
Methodendaten, oder? Und dann werden wir
einfach unter dieser Ebene sagen, wenn Sie nur sagen
werden, dass diese
Punktdaten den Daten entsprechen. Nun, wenn wir dies und
jetzt die Art und Weise
zuweisen , wie
wir es schaffen werden, damit dies auch synchronisiert wird, werden
wir sagen, Datensteckplatz hinzufügen. Also Steckplätze tatsächlich Datenschlitze. Und dann geben
wir die Daten genau hier weiter. Aber das war's buchstäblich. Alles was wir tun müssen. Jetzt wird
das synchronisiert. Und dann werden wir vier
neue Methoden bekommen, bei denen unsere Er herstellt Methode, die eine
Brennstoffmethode hat , die
skalierte Fortschritte erzielt, und sie wird skaliert,
Sie werden Fortschritte machen. Nun, das ist nur ein
Haufen Mathematik im Hintergrund
, um sicherzustellen, dass gut,
okay, wie viel Fortschritt
wir haben, unseren maximalen,
maximalen Fortschritt wir haben, was ist die Breite des
Pfeils in diesem Fall, richtig, den wir anzeigen wollen. Und dann
stellen wir nur sicher, dass das alles richtig berechnet wird. Das ist im Grunde alles
, was das tut. Obwohl. Du solltest dir
darüber keine Sorgen machen. Ich bin mir sicher, dass Sie das
herausfinden können , wenn
Sie
es sich für eine Weile ansehen , ohne Worte dort
zu sagen. Das sind eigentlich all die
Dinge, die wir hier im Menü tun müssen . Jetzt müssen wir tatsächlich noch
viel mehr Dinge in
der Block-Entität 4 tun . Wir gehen weiter zum Bildschirm. Also werde ich noch einmal ein paar Sachen
überschreiben. Nummer eins: Wir
müssen
den Speichern- und Lademethoden Sachen hinzufügen . Denn was wir tun wollen, ist, dass
wir den Fortschritt
des Minimax-Filters
speichern wollen, indem wir ihn auslesen. Also lade es. Jetzt ist das eigentlich,
lasst uns nb t dann und VT machen. VT und
NVT, es gibt keine Sorgen. Also gehen sie. Das sind also
Dinge, die wir auf jeden Fall tun wollen. Denn natürlich, wenn
wir von der Welt laden, wie wenn wir
eine Welt retten, oder? Und wenn Sie dann wieder
mitmachen, wollen
wir, dass die
Treibstoffzeit gleich ist, der Fortschritt der
gleiche ist, so was. Deshalb speichern wir es und lesen es
dann noch einmal vor. Das ist also im Grunde
die allgemeine Idee hier. Was wir dann tun werden, ist, dass ich
im Grunde alles bin ,
einschließlich der Tick-Methode. Ich werde es tun, naja,
ich meine Kopie vorbei. Das wird also eine Menge Code
sein, aber wir werden Methode für Methode
durchlaufen. Ich glaube nicht, dass wir Pfeile bekommen sollten,
jetzt tun wir es nicht. Also Nummer eins, wir haben eine nicht statische Methode und das ist die Methode „
weniger verbrauchen“. Du siehst, dass ich
im Grunde überprüfe, hey, habe
ich etwas
in unserem Kraftstoffschlitz? Denn noch einmal,
erinnere dich an Slot 0, oder? Wie ist der Kraftstoffschlitz für uns? Wenn das also nicht leer ist, bekommen wir
die Brenndauer davon. Wir extrahieren es. Also werden wir
genau einen dieser Gegenstände extrahieren. Wir werden den
Rezepttyp Schmelzen verwenden. Denn zum Schmelzen grundsätzlich alle Verbrennungszeiten werden
grundsätzlich alle Verbrennungszeiten eingeliefert,
was sie hier spart. Und dann sparen wir auch
die maximale Brennstoffzeit. Und wenn das geschehen ist, können
wir eine Tick-Methode finden. Jetzt ist unsere ganze Logik. Was ist
diese ganze Verrücktheit? Nun, zuerst fragen wir, verbraucht diese Bucheinheit nur wenige? Dies ist eine benutzerdefinierte Methode
, die ich genau hier erstellt habe. Und das ist im Grunde nur
überprüft, ob
die Kraftstoffzeit
über 0 liegt oder nicht , wenn die Kraftstoffzeit über 0 liegt, dann wissen wir, dass wir
noch etwas Zeit
haben wo der Treibstoff
tickt. Okay, fair genug. Solange das der Fall ist, werden wir
dann die Treibstoffzeit verkürzen ,
die da drin
bleibt, oder? Im Grunde genommen
werden wir
die
angezeigte Flamme verringern die
angezeigte Flamme und wie viel
Zeit sie im Grunde noch übrig hat. Und wieder einmal haben wir die hat Rezeptmethode, die sich jetzt geändert
hat. Sie können sehen, dass dieser hier jetzt die Methode hat Rezept
ist. Und das funktioniert ein
bisschen anders. Also
bekommen wir jetzt im Grunde das Rezept oder die Art des
Hobo-Blaster-Rezepts mit einem Inventar. Also hier erstellen wir nur
Symbolinventar, das wir
im Grunde
einfach oder einfacher weitergeben können einfach oder einfacher , denn
dies ist natürlich vom Typ, einfacher Inventar oder einfacher
Container eher oben, wir passieren nur das alles in und wir stellen sicher, hey, tut das, das ist tatsächlich vorhanden ist, ist eine Übereinstimmung mit dem Inventar
, das wir übergeben haben. Unser GUI-Sachen,
das da drin ist, passt zu jedem
Rezept, das
vom Typ Kobaltblast-Rezept ist vom Typ Kobaltblast-Rezept im Grunde
das ist, was
das hier verfolgt. Wenn es anwesend ist,
werden wir hier ein wahres bekommen. Und dann suchen wir nach
zwei anderen Dingen. Kann
den Betrag in den Ausgabesteckplatz einfügen und kann Artikel
in den Ausgabesteckplatz einfügen. Das sind nur zwei sehr
leicht zu verstehen. Methoden sagen im Grunde
nur:
Hey, hol dir den dritten Gegenstand. Wenn es das gleiche ist wie das Ausgabeelement, sagen wir
, okay, oder wenn es leer ist, wird es uns auch gut
gehen, denn dann können wir einfach die Ausgabe
eingeben. Und dann auch diese, die wir
im Grunde schon gesehen haben, richtig, kann Betrag
in den Ausgabe-Slot einfügen, im Grunde nur überprüft, ist
die Max Stack-Größe immer noch? Ist das größer als
die tatsächliche Zählung? Ist? Wenn
die Zählung plötzlich
genau auf die Max Stack-Größe erreicht, können
wir nicht mehr einfügen. Dann wird dieser ganze, gesamte boolesche Ausdruck
falsch geworden. Aber wenn er Rezept hat, ist wahr, werden
wir in diese
Lochprobe und
dieses ganze Audio eingehen . Nun, da viele
Dinge, die Sie sehen können hat zuerst Treibstoff und Kraftstoffschlitz
gefragt, richtig, also wenn sich
Kraftstoff im Kraftstoffschlitz befindet, wird
es ziemlich
selbsterklärend sein. Und wenn wir dann keinen
Treibstoff verbrauchen , müssen wir zuerst
Treibstoff verbrauchen. Und wir setzen
die Änderung auch genau hier ein. Weil wir noch einmal geändert werden
müssen, sonst
werden die Daten Sie nicht speichern. Das ist sehr wichtig.
Aus diesem Grund haben wir das Set bei dieser Methode
dreimal geändert, sonst funktioniert es
nicht richtig. Und dann hier, wenn
wir Treibstoff verbrauchen, also das noch einmal, überprüft
es nur, hey,
verbrauchen wir tatsächlich Treibstoff? Wenn wir es sind, gehen wir, dann können wir
den Fortschritt des hergestellten
Artikels erhöhen . Wieder einmal ändert sich jedes
Häkchen, bei dem wir den Fortschritt
erhöhen, den
wir verkaufen. Denn wieder einmal
muss die
Kreditvergabe der Änderung der Fall sein,
denn jedes Mal wir den Fortschritt steigern, wollten
wir den Fortschritt
erneut speichern . Das ist also sehr wichtig. Dann. Sobald der Fortschritt genau hier über dem maximalen
Fortschritt
liegt
, werden
wir den Gegenstand herstellen. Das ist also sehr ähnlich. Noch einmal
prüfen wir gerade, ob der
Fortschritt endlich da ist. Und wenn ja, dann
werden wir den Gegenstand herstellen. Und Sie können sehen, dass das Basteln
des Gegenstandes sehr ähnlich ist. Wir kriegen immer noch das Spiel hier. Wir sehen, ist dieses Geschenk? Wenn ja, desto mehr hat das Folgende zu
tun. Wir extrahieren
den Artikel von Spot One. Wir werden den Adam aus
dem zweiten Slot extrahieren und
den Stapel in Slot 3 auf
die tatsächlichen Ergebnisse einstellen , die wir aus dem Rezept
gelesen haben. Und dann erhöhen Sie es in diesem Fall
grundsätzlich um eins. In diesem Fall ist auch
derjenige fest codiert. Sie könnten natürlich auch
Ihre benutzerdefinierte
Rezeptzahlvariable hinzufügen . Und dann könntest du
das entweder dorthin bringen oder
so ähnlich. Das würde also auch funktionieren. Und dann beachte auch hier, dass kürzlich der
Fortschritt genau hier waren, die kürzlich auf 0 gestiegen sind. Denn sonst werden wir
natürlich immer wieder immer wieder
ununterbrochen werden, was
wir natürlich nicht wollen. Und wir sind in letzter Zeit auch der
Fortschritt, wenn wir
kein Rezept anwesend haben , nur
weil ,
nun, wenn wir das Rezept
herausnehmen und dann der
ganze Fortschritt dort bleiben
würde. Das ist nicht ganz das, was wir wollen. Und auch die Änderung
dort einstellen, oder? Es ist also ziemlich viel. Ich empfehle dringend, dies auch in Ihrer
eigenen Zeit
durchzugehen . Wenn man sich das anschaut, ist
die Tick-Methode
hier definitiv, ich habe das Gefühl, dass es in diesem Fall
eine sehr gut gemachte Methode ist, oder? Es ist sehr, sehr sauberer Code. Ich meine, mindestens so hoch so
sauber wie ich es bekommen habe, um
fast gelesen zu werden , als ob man
eine Textrate lesen kann, ist wie Okay. Als Rezept in diesem
Unternehmen hat Brennstoff und Brennstoff Salz und verbraucht
keinen Brennstoff. In diesem Fall könnten Sie
sogar
die Notiz hier ändern und dann haben eine solche
Felder nicht konsumieren. Es ist also etwas einfacher zu lesen, aber das ist eine gute Idee und ein gutes Beispiel dafür
, wie
man im Grunde etwas
einrichten kann und das
lesen kann, war natürlich all diese Dinge, oder? Ich könnte das alles hier
rein anstelle der
has-Rezept-Methode, ich könnte diese setzen, ich könnte das hier setzen,
diesen booleschen Ausdruck. Das kann ich genau hier reinlegen. Anstatt den Betrag
in den Ausgabesteckplatz einfügen zu
lassen ,
könnte ich das dort hineinlegen. Aber das Problem ist, dass wenn
du dir das ansiehst, es mindestens gut fünf Sekunden dauern wird, bis
du so bist,
wie macht das? Okay, wir holen
den Artikel aus Steckplatz 3 und stellen sicher
, dass es genau das
gleiche ist wie der äußere und oder
stellen sicher, dass der Artikel
leer ist Kanalisation im Grunde prüfen ob wir jetzt einlegen können oder nicht in den Ausgabeschlitz, okay? Aber Sie können sehen, dass es viel
sinnvoller ist, es
in einer sehr gut benannten Methode
zu beschreiben in einer sehr gut benannten Methode anstatt es einfach dort
hineinzulegen. Das ist also nur eine kurze Seite für ein bisschen sauberes Programmierzeug,
sauberes Code-Zeug ,
aber das ist
so ziemlich die gesamte
Block-Entität. Also das würde jetzt funktionieren. Das Letzte
, was wir tun müssen, ist, dass wir dem Bildschirm Sachen
hinzufügen müssen. Nun, das werde ich auch
überschreiben und ich werde erklären, dass
das hier mit mir ertragen wird. Sie können also sehen, dass ich
im Grunde das Menü frage, Hey, unser Recrafting, das ist die Methode, die wir hier
hatten, oder? Und dann hat wenig Methode sollte ziemlich
selbsterklärend sein. Dies sind die Methoden, die
im Grunde genommen aus den Daten stammen und dann nur
sicherstellen, dass hey, der Herstellungsfortschritt
zunimmt oder ist es mehr als 0? Und dann ist der Treibstoff auch
nicht mehr als 0. Aber das ist die
allgemeine Idee hier. Und dann einmal der
Qualitätsblitz genau hier, und dann geraten wir auf ein
paar verrückte Sachen, denn jetzt haben wir plötzlich ein paar verrückte
Well-Werte hier haben wir x plus 8422, den Offset. Was ist, was ist all diese
Verrücktheit? Okay, wir werden das Stück für Stück
durchstehen. Wir haben also einen X- und einen Y-Wert. Jetzt
bestimmen der X- und der Y-Wert , wo Sie
anfangen, etwas zu zeichnen. Was
heißt das? Was meinst du mit wo wir anfangen etwas zu
zeichnen? Nun, x und y sind in diesem Fall im Grunde immer
die obere linke Ecke der GUI. Geh genau hier hin. Und wenn wir dann darüber nachdenken, aber 84 nach rechts und 22 nach unten, gehen
wir
84 nach rechts und 22 runter und dann landen
wir genau hier. Jetzt weiß ich
das gerade gerade. Wieder einmal
müssen Sie Photoshop,
Paint.NET nehmen und
sicherstellen, dass Sie sich ausrichten. Dies wird im Grunde die Pixel
zählen. Es gibt keinen anderen Weg, aber wir fangen genau hier an zu zeichnen. Okay, was
sollen wir zeichnen? Nun, wir sollten
diesen Pfeil zeichnen. Okay, das ist interessant.
Wie zeichnen wir das? Nun, zuallererst
ist
der Offset jetzt das, was wir zeichnen wollen? Also wollen wir
hier kaum zeichnen, okay? haben wir gemacht.
Was ist der Offset? Der Offset, den Sie sehen können, ist 17614 für eine 176
tatsächlich genau hier, und 14 ist jedoch genau hier. Jetzt kommt es irgendwie
zusammen, oder? Wir wollen diesen
Pfeil beginnend hier zeichnen. Okay, das ergibt Sinn. Was sind die letzten beiden Werte für die
letzten beiden Werte, ist die Höhe und die Breite des Bildes, das
wir zeichnen möchten. Eine andere wirklich coole
Sache kommt rein, weil wir den
Skalenfortschritt genau hier machen. Was passiert ist, dass
wir, wenn dies die erhöht, die Breite dieses gezeichneten
Pfeils erhöhen. Das ist also das
wirklich coole Ding. Wenn ich also einfach nur 2006 setzen könnte
und dann
wäre das gesamte Gebiet immer präsent. Da wir
es jedoch mit dem Skalierungsfortschritt synchronisieren , nimmt die angezeigte Breite
zu. Das ist die allgemeine Idee. Ich kann es wärmstens empfehlen,
hier mit den Zahlen
herumzuspielen, denn sonst sind
die Blutalten irgendwann sehr kompliziert zu
verstehen, ich muss immer noch
mit ihnen herumspielen a ein bisschen. Es ist einfach das, was es ist. Und dann für den Brennstoff gebe
ich zu, dass ich
im Grunde genommen gerade das Brennstoffmaterial aus
dem eigentlichen Ofen habe,
weil du hier
den maximalen Feldfortschritt hinzufügen und dann deine Waage subtrahieren musst
dreimal voranschreiten, einmal für die Höhe, was sinnvoll
sein sollte, oder? Denn jetzt
subtrahieren wir hier im Grunde die Höhe, sagen wir im Grunde, wir fangen hier an
und subtrahieren dann dort
unten, solche Sachen. Es ist nur Verrücktheit. Ich kann es nur wärmstens empfehlen. hier noch einmal einen Blick darauf werfen, können
Sie sich dafür unbedingt Vanille-Beispiele
ansehen . Ansonsten geht es nur
ums Experimentieren. Also brauchen wir immer noch ein Rezept. In unserem Datenordner,
MC-Kursrezepten, kopiere
ich
die Cobol-Pickaxe vom Kobaltblaster. Und Sie können sehen,
was das bedeutet ist dass wir
im Grunde
zwei Zutaten haben, sind Typ MC
Cobol Kunststoff, und wir haben die Goldspitze
und das Kobalt in gutem Zustand. Und wir müssen
in dieser Reihenfolge einsetzen, und dann
wird der Output ein Kobaltschweine sein. Das
klingt also ziemlich cool. Und wie gesagt,
du kannst jetzt
so viele verschiedene Rezepte machen ,
wie du willst. Eine der Einschränkungen, sagen
wir
damit, ist, dass es immer die gleiche Zeit
dauern wird. Nun, Sie könnten
natürlich auch
den maximalen Fortschritt
zur JSON-Datei hinzufügen . Sie müssen den
Serializer nur ein wenig ändern und diesen
dann
auch im Grunde hinzufügen. Das funktioniert alles. Dies ist im Grunde nur eine
Frage, die Dinge ein wenig zu optimieren und ein paar
Dinge zu ändern. Aber jetzt schauen wir mal, ob es uns in Minecraft funktioniert
oder findet. Also lasst uns zuerst
das eigentliche Kobaltglas einstellen oder runter und alles
scheint noch zu funktionieren. Wir können immer noch welche reinlegen. Sehen wir nun Gold Pick X oben und dann unten ein Kobalt
England. Und da sind wir los. Der Fortschritt hat begonnen. Wir haben jetzt eine
Pick-Axt geschaffen, die wirklich cool ist. Und was Sie sehen
können
, ist , dass wenn ich noch eine einsetze, nichts passieren wird,
weil
wir natürlich Achsen wählen werden, die nicht stapeln. Deshalb muss ich das
herausnehmen und dann werden wir
erst dann
wieder basteln. Du kannst sehen, dass der Treibstoff ist, wir werden ständig sinken. Es
nimmt also ständig den Treibstoff an. Und was Sie
auch
sehen können , ist, dass wenn ich zum Beispiel jetzt wieder aus der Welt gehe und
wieder reingehe, Sie sehen werden, dass der
Treibstoff tatsächlich auf dem gleichen Niveau
geblieben ist
wie bei zum Beispiel ein Block oder ein
Ofen oder so ähnlich. Das ist also ziemlich cool. Also kann ich es mir ansehen
und los geht's. Ein Brennstoff wird fortschreiten,
ist der gleiche. Und noch einmal
kann ich das jetzt einfach einsetzen
, weil wir
noch Treibstoff übrig haben und diese
immer noch so lange
herstellen können , wie wir wollen. Und die Kurslebern
würden übrigens auch noch funktionieren, alles hier funktioniert genau so,
wie wir es wollen. Und jetzt musst du
zugeben, dass es ziemlich verdammt
cool ist, oder? Dies beginnt also wieder sehr weit fortgeschritten
zu werden. Daher empfehle ich dringend, noch
einmal Zeit damit zu nehmen
, die beiden Methoden, richtig, mit der Block-Entität und der Serialisierung des Kundenrezepts
sind hier ziemlich viel. Aber auch abgesehen von
ein paar anderen Dingen ist
dies wahrscheinlich eines der komplexesten Dinge
, die wir wirklich tun können. Ich meine, die Weltgeneration, würde
ich eigentlich sagen, ist wahrscheinlich etwas
komplizierter, nur weil es manchmal so sein
kann. Aber insgesamt denke ich, dass
das wirklich cool ist. Du hast hier ein wirklich gutes
Beispiel. Lesen Sie den gesamten Code, der Ihnen im
GitHub-Repository
noch einmal zur Verfügung steht , und auch in
einer Einzelperson. Also sieh es dir einfach an, kopiert sich selbst, spiele ein bisschen mit den
Zahlen herum. Und hoffentlich wirst
du dann einfach ein Gefühl dafür bekommen, wie
das alles funktioniert, oder? Aber das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das
nützlich gefunden und du lernst etwas Neues und wir sehen uns
in der nächsten Vorlesung. Also ja.
90. (Fortgeschrittene) Benutzerdefinierte Holz: Alles klar, willkommen zurück
zum Futterkurs für 118. In diesem Vortrag werden
wir Minecraft
individuelles Holz hinzufügen . Obwohl dies ein fortgeschrittenes Thema
ist, wird
es definitiv
ein bisschen einfacher sein als die Blockentitäten und die Serialisierung des
Kundenrezepts. Also dachte ich, dass
wir
hier im Grunde ein oder zwei
etwas einfachere Vorträge
hinzufügen ein oder zwei
etwas einfachere Vorträge
hinzufügen werden, bevor wir in
die Weltgeneration springen ,
weil das ein ganzes, ein
anderes Biest sein
wird. Für unsere Gewohnheit benötigen
wir tatsächlich eine benutzerdefinierte
Blockklasse, also klicken Sie in unserem benutzerdefinierten
Paket mit der rechten Maustaste auf die
neue Java-Klasse namens Mod Lambda wird Hitler-Block gedreht, ein langer Name, aber das das, was es sein wird,
und dies wird die gedrehte
Säulenblockklasse
erweitern. Und wir werden einfach den Mauszeiger über diesen konkreten Konstruktor , der uns super nervt. Wir können einfach
darauf klicken, Umschalttaste F6 drücken und dann deren Eigenschaften
hier für den Namen. Und ich kopiere
die drei Methoden, die
wir überschreiben müssen. Das heißt, die
Methode ist entflammbar wird wahr zurückgegeben. Sie bekommen Entflammbarkeit, müssen fünf
zurückgeben und sie
werden Feuer ausbreiten. Es muss auch fünf zurückgeben. Warum machen wir das jetzt? Nun, weil alle
gedrehten Säulenblöcke, die wir haben, werden
wir im Grunde das Holz sein, der Streifen wäre
der
Baumstamm und der Streifenstamm. All das geht es gut, sie sollten brennbar sein. Standardmäßig sind
sie dies jedoch nicht. Ich bin mir nicht hundertprozentig
sicher, warum das der Fall ist. Und wir könnten auch
anonyme Klassen
für jeden von ihnen erstellen , aber das
wird nur
die Gesamtheit unserer
Block-Klasse überladen . Für diese
entscheide ich mich also im Grunde, nun, was das in eine
Blockklasse oder beide Bretter geht. Und später in einem späteren
Vortrag, den Blättern, werden
wir
das tatsächlich in anonymen Klassen machen. Aber wir werden
das in einem Moment sehen wenn unser Motor die Klasse blockiert, lasst uns gehen, um
den Cobol-Blaster zu kopieren. Und wir werden dies zum
Unterstrich der
Kirschunterstriche machen . Und dann das Gleiche, lies dein
Kirschblüten-Unterstreichungsprotokoll. Und dann ist dies ein MOD gedrehter oder brennbarer
gedrehter Säulenblock. Vor ihnen
wird dieser tatsächlich kein
Material, sondern einen Block kopieren. Also das wird Blöcke Punkt OK
sein,
unterstrichen Protokolle, also
protokollieren Sie, dass Sie gehen. Und dann werden wir
hier
tatsächlich Okklusion haben und der Rest
wird gut. Das ist also so
ziemlich genau das, was wir brauchen. Und dann müssen wir
das viermal kopieren , damit wir hier fünf verschiedene
Instanzen
haben. Die zweite wird sein
, dass die Kirschblüte gehen
würde und dann auch
hier im Namen, Es ist sehr wichtig, dass
Sie die Namen ändern. Und dann kopieren wir hier
einfach nur aus
dem Eichenholz statt
aus dem Glog. Das sollte nicht wirklich einen großen Unterschied machen
, aber
ich mache das immer noch gerne. Dann haben wir den Streifen Kirschblütenstamm
unterstrichen. Das wird also der Streifen
unter der Switcher-Tastensperre sein . Und dann wird das natürlich auch
aus dem Drehbuch kopieren. Ok, sollte das Ego applaudieren. Und dann wird dies
der strenge Unterstrich
Kirschblüte sein , Holz
unterstreichen. Und das ist natürlich auch die, entzogene Cherry Blossom,
würden sie es vor sich bringen. Und dann kopiert es nicht
zuletzt hier aus dem abgestreiften Eichenholz. Jetzt ist dieser hier nur
Kirschblütenbretter. Jetzt ist es wichtig, dass es
sich um liberale Planken handelt. Und das ist welcher
Block kann das sein? Nun, wenn es eigentlich keinen
normalen Block gibt. Und was wir dann tun
werden, ist, dass wir das einfach ein
bisschen anders formatieren werden. Und das wird natürlich
die Flugzeugblöcke von Planken nehmen . Und dann, nach dem zweiten
Parameter,
was Frauen tun, ist, dass
wir
eine geschweifte Klammer einsetzen und
dann einfach Enter drücken. Ich
kopiere es einfach noch einmal. sind also nur
die drei Methoden
, mit denen wir scanbar sind,
Entflammbarkeit
und Feuerausbreitung
benötigen . Und sehen Sie, dass die Zahlen hier ein
bisschen anders sind. Dies ist also auch einer
der Gründe, warum wir diesen Block nicht verwenden
können. Dies war eine andere, die
wir in einem Moment sehen werden. Das ist die allgemeine Idee. Und dann
sind alle unsere Blöcke tatsächlich registriert. Das ist also ziemlich cool. Alles in allem, richtig, wir werden dem brennbaren, gedrehten
Säulenblock der
MOD eine
weitere Methode hinzufügen . Und das wird genau hier sein
. Also übertrage ich das einfach. Dies
steht Ihnen natürlich alles im GitHub Repository und
einer Einzelperson genauso gut zur Verfügung. Und das ist das gute Werkzeug,
modifizierte Zustandsmethode. Im Grunde genommen
ist die Idee, dass wir prüfen ob dies mit einer Axt mit der
rechten Maustaste geklickt wurde oder nicht. Wenn ja, dann werden
wir im Grunde
nur sagen: Hey, wenn das ein Kirschblütenprotokoll ist, werden
wir
das in einen Strip-Blog verwandeln. Andernfalls, wenn es ein Verlust wäre, dann werden wir es
in Kirschblütenholz verwandeln. Das ist die allgemeine Idee hier. Und dann
stellen wir nur sicher, dass die Achse in diesem
Moment gleich
bleibt, wir können nicht, wir werden nicht nur
den Standardblockstatus
machen dann auch den
tatsächlichen Zugriff sendet. Das ist der allgemeine Kern hier. Wenn Sie viele
verschiedene Protokolle haben, müssen Sie
diese if-Anweisungen theoretisch auch immer hinzufügen. Sie können es auch
wie im ACS-Artikel machen. Wenn Sie also tatsächlich Millimol
pro Klick auf diesen Unfall anklicken, können
Sie sehen, dass es hier einen Block gibt,
um die Map zu blockieren. Ich empfehle Ihnen dringend, auch
so etwas zu tun. Wenn Sie eine wahnsinnige
Menge an verschiedenen Blöcken,
Logs haben und im Grunde genommen möchten
Sie
das entfernt haben , ist das sehr sinnvoll. Ansonsten wird dies
momentan für jedermanns
Lieblingsteil der JSON-Dateien völlig praktikabel
sein . Diese stehen Ihnen natürlich wieder alle im
Labor-Repository oder einer
Einzelperson genauso gut zur Verfügung. Ich
kopiere sie einfach rüber. Insgesamt sind sie
nicht so interessant. Natürlich haben
wir für alle
gedrehten Filterblöcke hier eine Achse, wie Sie sehen können. Und dann zeigt es im Grunde
nur auf verschiedene Modelle und
dreht den Block um den Block. Das ist alles, was es dazu gibt. Es ist eigentlich all das
interessante Zeug genau dort. Und lasst uns auch die
Übersetzung hinzufügen, denn sonst werde ich sie
möglicherweise vergessen, was wir hier natürlich
nicht wollen. Wenn du nur diese Protokolle hinzufügst, würden
Planks auch die
Skriptvarianten. Die Modelle für die
Blöcke sind, naja, ein wenig, während es noch ein paar mehr
gibt, sie sind nicht so viele. Wir haben das Holz, das normale Wort, die
abgestreiften auch. Lassen Sie uns diese
also auch in
den Blockordner kopieren . Insgesamt sieben von ihnen. Sie
haben im Grunde nur verschiedene Eltern, aber sie haben immer
die gleichen Texturen. Das Ende ist also nur der obere Teil des
eigentlichen Blocks für das Protokoll. Und dann sind die Seiten
im Grunde nur die Rinde um sie herum. Für die Artikelmodelle haben
wir natürlich nur fünf
Artikelmodelle. Sie sind und sind genau wie
das grundlegendste Zeug aller Zeiten. Sie sehen also alle so
aus wie dieser Zustand alle
zeigen nur auf die normale
Blockmodelldatei. Und dann natürlich nicht
zuletzt auch
die Texturen. Da gehst du. Das sind auch fünf Texturen. Und nachdem wir all das
hinzugefügt haben, gibt es noch eine weitere interessante
Sache, die wir hinzufügen möchten. Und das wird sein, wenn Sie im Minecraft-Ordner,
Tags, Blöcke markieren, und dann kopiere ich
das einfach. Dies sind die Protokolle und
die Protokolle, die brennen. Wir werden tatsächlich sehen
, dass wir hier noch einen
hinzufügen müssen . Wie Sie sehen können, deutet
dies tatsächlich auf den Kurs
Kirschblüten-Logs-Tag hin. Und wir möchten auch hier ein benutzerdefiniertes
Tag hinzufügen. Das werden
also die
Kirschblütenblogs sein , die dies auch
überschreiben. An dieser Stelle haben wir
das oft gesehen. Und ich möchte nur im Grunde
alle unsere Logs hinzufügen . Dies ist auch das Wort und die
beschreibenden Varianten. Wenn Sie es zu den
Protokollen dieser Verbrennung hinzufügen, können Sie diese im Grunde
auch in den Brennstoffschlitz
des Ofens platzieren Brennstoffschlitz
des Ofens , damit sie grundsätzlich brennen
können. Und das ist die
allgemeine Idee hier. Und in den Protokollen, wenn
wir es brauchen, wenn wir später die Blätter hinzufügen, wird der Mietvertrag nicht verfallen wenn sie sich in der Nähe
eines dieser Blöcke befinden, und das ist so ziemlich
alles, was wir tun müssen. Also mal sehen, ob es funktioniert. Oder in Frankreich als Mikrowelle kann sehen, dass das ganze Holz
erfolgreich
zum Spiel hinzugefügt wurde und es sieht absolut fantastisch aus. Sie können also sehen, dass ich es
aufstellen kann und
lass uns diese Varianten
auch sehen. Da gehst du. Und, und auch die Stämme, eher die Bretter, schätze ich. Wenn ich dann mit der rechten Maustaste auf
diese klicke, dann kannst du sehen, dass ich auch
die Streifen-Varianz bekommen kann. Also
funktioniert alles genau so, wie du denkst, dass es
so enden würde, wie es beabsichtigt ist, oder? Das war's schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung. Also ja.
91. (Fortgeschrittene) Benutzerdefinierte Zeichen: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem Vortrag werden
wir Minecraft
benutzerdefinierte Zeichen hinzufügen . Denn das benutzerdefinierte Zeichen ist, naja, es hat einige Besonderheiten
darin, aber wir werden
im Grunde genommen
genommen einen Blick darauf werfen. Also für benutzerdefinierte Zeichen, aber wir werden brauchen,
dass wir vor allem eine
Zeichenblock-Entität benötigen. Sie in unserem Entitätspaket mit der rechten Maustaste auf die neue
Java-Klasse, die als Modus-Sign Und das wird sich erstrecken. Die Zeichenblock-Entität den Mauszeiger über diesen
Create-Konstruktor, der super übereinstimmt, und dann überschreiben wir
die Getter-Methode. Hier können wir also noch
etwas reinlegen. Also mache ich
hier einfach einen Fehler , damit wir das haben. Dann werden wir dafür
die Blöcke brauchen. Wir brauchen
zwei Blocks hier drüben. Außerdem müssen Sie
benutzerdefinierte Blockklassen erstellen. Das kann manchmal
sehr nervig für das Schild sein. Ich bin mir nicht sicher, warum
es so gut ist, komplex zu machen, aber es ist
genau so, wie es sein wird. Dies wird ein
stehender Zeichenblock sein. stehende
Seitenlappen von Mott verlängert diesen. Wir
lassen das einfach so wie es ist. Und hier wollen wir eigentlich
nur eine Sache
außer Kraft setzen,
und das wird die neue Block-Entitäts-Methode
sein. Was wir also
tun werden, ist, dass wir
eine neue Modus-Zeichenblock-Entität
mit der Position, dem Staat und dem
Staat erstellen eine neue Modus-Zeichenblock-Entität , den sie vor ihnen haben. Das wird gut werden.
Und dann werden wir eine andere Klasse
erstellen, die
den MOD ALL IN-Block ist , der den
Wandzeichenblock erweitert. Sie haben vor auch
Konstruktoren erstellt, die super übereinstimmen. Wir werden diese Methode auch kopieren
. Natürlich
steht Ihnen der gesamte Code
im GitHub-Repository und
einer Einzelperson genauso gut zur Verfügung. Denn jetzt werde ich tatsächlich eine Kardinalsünde
machen und das Ding
kopieren, was wir in der Schlammblock-Klasse
brauchen. Und Sie werden sehen, dass wir
auch
eine Mod-Holztypen-Klasse brauchen werden , denn wie gesagt, ich weiß nicht warum, aber es
ist einfach absolut verrückt, aber keine Sorge, dass wir das
durchstehen werden. Also würde Mod Typen geben, und das wird ein statisches Feld
haben. Also öffentlicher statischer Typ
oder Kirschblüte. Und das ist gleich würde Typ. Diese Rate. Sherry unterstrichen blühen. Das Ego. Das ist alles, was wir hier und dann hier
einsetzen müssen. Und dann sollte
das in den Schlammblöcken auch funktionieren. Jetzt funktionieren die Blöcke. Was wir jetzt in
den Modusblock-Entitäten tun können, kann
ich das tatsächlich kopieren. Das ist ziemlich
genau das Gleiche wie das. Wie Sie sehen können, haben wir nur das Mod-Zeichen Block-Entitätsjahr das der Sunblock-Entität
folgt. Wenn Sie mehrere
verschiedene Zeichen
haben, müssen Sie diese Blöcke nicht ändern. Sie müssen nur hinzufügen,
um zwei Blöcke hier
in Betracht zu ziehen , und Sie können so
viele hinzufügen, wie Sie möchten. Fügen Sie also im Grunde einfach mehr Blöcke und dann sollte es theoretisch gleich
mit diesem arbeiten. Also jetzt hier werden wir
nur
Mod-Block-Entitäten sagen ,
Entity Dot get. Und dann sollte das
auch für einen anderen
Kunden in Ordnung sein , der hier
im Grunde genommen eine neue
Holzart für neue Blöcke signiert . Und was Sie sehen werden
, ist, dass diese Blöcke, anstelle der
Registrierungsblock-Methode registrieren, weil wir dafür
ein separates Element haben müssen , um die Zeichenelemente zu sein. Ich werde das auch noch einmal kopieren
, all dies
steht Ihnen
im GitHub-Repository und einem
Interatrial genauso gut zur Verfügung. Das wird genau
hier sein. Nehmen wir uns also einfach die
Haltbarkeit weg und
stapeln
wir uns einfach auf 16, wie es jede
andere Linie wäre. Sie können auch sehen, dass das
Schild hier tatsächlich erfordert, dass Sie auch
den Sinus und das
Wandschild einsetzen müssen. Das ist also eine andere
wichtige Sache genau hier. Und abgesehen
davon haben wir auch noch
eine Sache, die noch ein paar
Dinge innerhalb
des MC-Kurses war , Masse. Also ganz unten hier müssen
wir aufrufen würde
wichtige Klassenpunktregister eingeben,
Modus würde
Dot Cherry Blossom eingeben. Wir müssen diese
geneigte Einrichtungsmethode registrieren. Und dann müssen
wir bei der
normalen Einrichtungsmethode zwei Dinge tun. Die Nummer eins ist also der
Block-Entitäts-Renderer. Rendert sehr
wichtige Renderer. Registrierungsmodus, Entitäten sperren. Jetzt signieren Sie Blockentitätspunkt, und dann der Zeichen-Renderer
hier, Doppelpunkt, Doppelpunkt neu. Dann unten wollen wir
Blätter aufrufen dot add würde type, mod, mod würde star eingeben, kirschblüte, sie gehen. Und das sollte endlich
alles sein , was wir in
Bezug auf den Code brauchen. Wir
brauchen natürlich immer noch die JSON-Akten. Und wenn es um
die Tage und für uns geht, brauchten
wir tatsächlich auch
die JSON-Dateien für die Blockzustände, um
sicherzustellen, dass Sie das haben. Und dann
gilt das Gleiche für die Übersetzung. Also lasst uns das einfach hinzufügen. Wir haben die Übersetzung
für das Zeichen. Und dann fügen wir einfach auch
die Blockmodelle hinzu. Abutments sind eigentlich
eine Art interessant. Es gibt also tatsächlich nur
ein Blockmodell, da beide auf
dasselbe zeigen, weil dieses Blockmodell nur Partikel definiert
hat, dies
sind die Partikel, die wann gesehen werden du zerstörst das eigentliche Zeichen. Während das
Kirschblüten-Zeichen-Artikelmodell so aussieht. So zeigt es einfach auf eine
Artikeltextur ist natürlich, wieder
einmal bei der
Artikeltextur, naja gleich und wir haben das gleiche Element für zwei
verschiedene Blöcke. In diesem Fall haben
wir hier
ein normales
Kirschblütenzeichen. Das ist die Item-Textur. Da gehst du. Und das sind all die Dinge
, die wir brauchen werden. All das steht Ihnen
natürlich wieder zur Verfügung, denn
es ist wieder eine sehr kreisförmige Übung
und kann irgendwie nervig sein. Also stellte ich fest, dass Zeichen in
ihrer Komplexität
irgendwie rätselhaft waren . Oder was man am Ende
im Grunde damit machen kann. Sie werden tatsächlich eine weitere Textur
benötigen. Und das wird die eigentliche Kirsch-Textur
im Hintergrund sein. Und das muss wieder unter dem
Minecraft-Namespace stehen, also Assets, Minecraft-Texturen. Anstelle
des Entitätsordners
benötigen
wir dann den Ordner „Schilder“. Und dann drinnen drin
die Kirschblüte PNG. Und nachdem wir all das
hinzugefügt haben, Mal sehen, ob es funktioniert. Oder in Frankreich als Mikrolinse sehen
wir, dass der Block hinzugefügt wurde. Jetzt haben wir nicht die
richtige Übersetzung, aber das ist natürlich
sehr leicht zu beheben. Lasst es uns aufstellen und
wir können etwas schreiben. Also zum Beispiel
richtig gutes Wort, Pferd und fertig und
es bleibt dort. Und wir können
es auch hier an eine Wand stellen. Wie Sie sehen können, funktioniert alles gut, genau wie Sie es erwarten würden. Und ich habe auch einfach
die Übersetzung hier repariert. Jetzt
sollte also alles für
die Akte funktionieren , die es bereits
für diese Vorlesung hat. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung. Also ja.
92. (World Gen) Erstellen eines benutzerdefinierten Tree: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir
einem
mikrogewohnten Baum einen benutzerdefinierten Baum hinzufügen einem
mikrogewohnten Baum einen benutzerdefinierten .
Nun, warte eine Sekunde. Wir haben bereits benutzerdefinierte
Write in unsere
Modellblock-Klasse hinzugefügt , wir können sehen, dass einige
Planken die Protokolle haben würden, aber fast alles, was
wir bereits haben. Nun, was haben wir nicht? Wir haben keinen Bäumchen
und wir haben keine Blätter. Alles klar, also was wir tun
werden, ist, dass wir einmal eine Planke über die
Kirschblüte
kopieren. Und dann kopiere
ich auch das Skript genau hier. Wir brauchen einen
für die
Kirschblütenunterstriche Blätter und gehen dann auch hier im Namen. Natürlich
wird das vor ihnen ein Blattblock sein. Sie gehen und dann
wird das die Eichenblätter kopieren. Und die Entflammbarkeit
davon wird tatsächlich 60
betragen und die Ausbreitung des Feuers
wird 30 betragen. Weil die Blätter
unglaublich brennbar sind. Und jetzt schauen wir uns den Kirschblüten-Schössling unten
an. Das ist also Probenahme. Und dann natürlich auch mit dem
Namen, der das in
Kirschblütenunterstrich Setzling
umwandelt. Dies wird ein
Bäumchenblock sein, einen Fehler
auslöst, weil wir ihm,
wie Sie sehen können,
einen abstrakten Baumzüchter
und die Klasse geben müssen einen abstrakten Baumzüchter , die wir gerade
erstellen werden. Und das geht in
unser MC-Kurspaket ein, klicken Sie mit der rechten Maustaste auf ein neues
Paket namens world. Und wir haben begonnen
, uns innerhalb
ihres neuen Pakets namens eater in
die Weltgeneration zu wagen innerhalb
ihres neuen Pakets namens eater in
die Weltgeneration . Und dann werden
wir da drinnen
ein weiteres Paket namens tree erstellen . Und dort werde ich
den Baum in
diese neue Java-Klasse namens
Kirschblütenbaumzüchter wachsen lassen diese neue Java-Klasse namens , die
den abstrakten Baum erweitern wird. Grow wird den Mauszeiger über
diese Implementierungsmethoden ,
da wir die Methode „
Get-konfigurierte Feature“ Und ich meine, das ist
so ziemlich alles, was wir tun müssen. Jetzt werde ich
hier
noch einmal gezielt einen Fehler
machen, damit ich nicht vergesse, ihn bei dieser Methode zu übergeben da wir
die konfigurierte
Funktion, die wir benötigen, noch nicht erstellt haben . Aber was wir tun können,
ist, dass wir bereits eine neue
Kirschblütenbaumreihe
erstellen können eine neue
Kirschblütenbaumreihe
erstellen , damit hier alles Ordnung
ist und die
Klasse mehr Blöcke so ziemlich fertig ist. Jetzt sowohl für den Bäumchen
als auch für die Blätter, die wir
innerhalb der
MC-Kursklasse in der Client-Methode benötigen , werde
ich über
die Explosion kopieren oder
hier ausschneiden und wir werden
Blätter sagen und wir werden auch sagen den
Schössling vor ihnen, dass wir
beide die Blätter
und den Bäumchen auf
Renderschicht-Ausschnitt haben, natürlich. Und dann werden wir zuerst
mit
der Fertigstellung der
Blöcke gleich hier fortfahren . Also werden wir einfach über
das Blatt und die
Bäumchenblockstufe Jason kopieren . Jetzt stehen Ihnen diese natürlich
alle
im GitHub Repository und
einer Einzelperson genauso gut zur Verfügung. Aber man kann tatsächlich
die Blockzustände sehen, sehr langweilig, im Grunde nur normale
Block-Staaten. Und wenn es
um die Alkylierung geht, so
ziemlich dasselbe. Blätter und kleine
Blätter auch hier. Dann natürlich ansprechend
und verwirrend. Da gehst du. Es gibt auch Modell-JSON-Dateien
zu blockieren. Natürlich sind die Blätter
wieder ziemlich langweilig, während der Bäumchen
etwas interessanter ist, einen Kreuz-Elternteil und eine
Kreuzstruktur
hat, auf die er hinweist. So ziemlich alles was es gibt. Das Artikelmodell ist auch
etwas interessanter, zumindest für den Bäumchen. Wieder einmal
sucht der Bäumchen, wie Sie sehen können, jetzt nach einem Extra
im Blockordner anstelle
des Elementordners, aber die Blätter sind nur normale
modale JSON-Dateien, wie Sie sie
oft gesehen haben jetzt im Grunde für verschiedene
Blöcke. Und dann lassen Sie uns
die Texturen
auch hier kopieren , nehmen Sie sie einfach. Und dann wären dies so
ziemlich alle JSON-Dateien, die wir machen
müssen, und wir können jetzt unser Weltpaket
fortsetzen. Obwohl der Grund, warum wir
ein Weltpaket haben , weil
Bäume, wenn man sie spawnt, sind
sie wie eine
sehr seltsame Kreuzung ein bisschen
bereits in
der Weltgeneration zu sein. Wenn der Baum also
aus dem Bäumchen spawnt, ist er ein bisschen
Weltgeneration. So wird
es sein. Sie diesmal im
Feature-Paket rechten Maustaste auf die neue
Java-Klasse namens Mod,
der sich gegenseitig konfiguriert hat. Und das wird unser
Wohl sein, sind sozusagen beste Freunde. Als Inhibitor
wird
der eigentliche Baum definiert werden. Jetzt werde ich die
eigentliche Definition
des Baumes kopieren und ich werde
es erklären, während wir weitermachen. Du kannst also sehen, dass das
eine Menge Sachen ist, oder? Die Nummer eins möchte ich sagen, wenn
es um
die Weltgeneration geht, kann
es sehr kompliziert sein. Okay, es gibt also viele
bewegliche Teile in der ganzen Sache
der Weltgeneration. Ich versuche alles
Beste aus meinen Fähigkeiten zu erklären. Wenn du jedoch
etwas willst, das
sehr, sehr, sehr Spezielles ist , wie du es willst, weiß ich nicht,
wie deine, um genau
bei 35 zu spawnen und du willst
genau so viele. Es wird eine Menge Sachen , die du
anpassen musst, aber keine Sorgen. Ich bin sicher, dass wir das
durchstehen werden. Oder jetzt der
Kirschblütenbaum genau hier. Sie können sehen, dass wir
Feature-Utils Punktregister aufrufen, Register lesen, im Grunde
diese konfigurierte Funktion. Und dann übergeben wir
einen konfigurierten Feature-Baum. Also ein konfiguriertes Feature vom
Typ Tree-Konfiguration. Wir geben hier die
Baumkonfiguration mit einem Builder weiter. Und dann
stellt sich die Frage, was sind all diese verschiedenen Dinge? Denk darüber nach. Nun, ein Block sagt
Anbieter einfach. Der erste ist
der Protokollanbieter,
was bedeutet, dass wir im Grunde
ein bestimmtes Protokoll bereitstellen
müssen , das der
eigentliche Stamm dieses Baums ist. Wie wird dieser Trumpf platziert? Nun, wir drucken einen neuen
Straight Trunk Placer. Wenn ich die mittlere
Maustaste klicke, klicke darauf, du kannst sehen, dass dies
den Kofferraum erweitert, um ihre Klasse zu platzieren. Und wenn ich
Control H drücke, sollten Sie verschiedene
Trunk-Placer-Klassen in Betracht ziehen, was bedeutet, dass
Sie theoretisch auch Ihre eigenen erstellen können. Dies ist natürlich
wieder einmal etwas, das hier
definitiv komplizierter und
komplexer ist. Also arbeiten natürlich alle. Du könntest es natürlich machen. Allerdings gibt es. Jetzt geht es nur, an diesem Punkt geht es
nicht einmal darum, oh, du musst an dieser Stelle
Java-Wissen haben. Wir gehen ein bisschen von
fortgeschrittenem zu fortgeschrittenem Java. Die Herstellung von
Cousin-Trunk-Platzern und kundenspezifischen
Laubplatzierungen beinhaltet im Grunde auch
viel Mathematik. Behalte das also im Hinterkopf. Dann der zweite
Blockzustand, der hier angegeben
ist, der dritte Parameter sind die Blätter, und diese werden platziert, aber abhängig von den
Laubplatzierungen, klicken Sie erneut mit der
mittleren Maustaste auf
das Laub Placer und Sie können sehen, dass es verschiedene
Arten von Laubplatzierungen gibt. So werden
die eigentlichen Brunnen, Blätter abgelegt. Und das ist so ziemlich
alles, was es dazu gibt. Und nun, dann ist der letzte hier die Feature-Größe
der beiden Layer. Was ist das? Nun, ich bin mir nicht
hundertprozentig sicher. Dies schränkt also grundsätzlich ein
, wo dies platziert werden kann. Das ist die allgemeine Idee. Aber das Jahr, einige Dinge
in der Gesamtheit der, sagen
wir mal, Generationen entziehen sich mir
immer noch. also keine Sorgen. Was auch immer der Fall sein
mag, dies ist jetzt die Funktion, die genau hier
im Cherry Blossom Tree
zurückgegeben
werden muss, die Mod konfigurieren Feature
jede Blüte drei, und das sollte
so ziemlich sei es. Jetzt so verrückt es klingt, das sollte es sein, das ist erledigt. Und jetzt wurde der Baum schon von einem
Bäumchen hervorgebracht. Sie sind wichtig, es wird noch
nicht auf der
Welt spawnen . Wir werden es in
diesem Vortrag nur schaffen , dass es aus
dem Schössling spawnt , damit wir Knochenmehlausweis
oder ein aus einem
Bäumchen wachsen
können . Also würde ich sagen, mal sehen Für Arbeiten, oder wir befinden uns
in Mikrovesikeln. Sehen Sie, dass die
Kirschblüten-Setzlinge gut zum Spiel hinzugefügt
wurden . Mal sehen, ob ich sie mit einem Bäumchen
spawnen kann. Und da ist es, wenn ich Knochenmehl daran funktioniert. Jetzt die wirklichen Fragen,
denke ich, dass dies ein
wenig eng platziert ist. Und auch wenn Sie genau hören, müssen
Sie
das Material tatsächlich für eine Sekunde ändern. Dies benutzt immer noch
das Plankenmaterial. Das stimmt also natürlich nicht
ganz . Lasst uns folgendes machen. Lassen Sie uns eine Spielregel durchführen, zufällige Tick-Geschwindigkeit, und erhöhen
wir sie einfach. Und mal sehen, ob das von selbst
wächst. Aber es scheint, als würde der Bäumchen
nicht von alleine wachsen. Dies hat wahrscheinlich mit
dem eigentlichen Material zu tun , von dem es kopiert
wird. Also lasst uns das einfach schnell beheben. Jede Aufsicht genau hier, wie Sie sehen können, blockieren
Verhaltenseigenschaften, Kopieren von Blöcken entfernt, OK. Nein, das muss Eichenbäumchen sein. Dann nimmt es alle
Eigenschaften vom Eichenbäumchen. Und das einzige, was es braucht ist das
hier, zufällige Tics. Sonst
wird es nicht zufällig dauern. Also gehen sie und
wenn wir das hinzugefügt haben, als
nur der Vollendung willen, mal sehen, ob es wächst oder ob
es wieder in Minecraft landet. Und mal sehen, ob wir die Tick-Geschwindigkeit
loslassen können. Mal sehen, der
wächst, lass uns gehen. Also funktioniert alles genau so,
wie man es erwarten würde die Setzlinge, die
natürlich wachsen, auch laufen. Und was sehr wichtig
ist, ist, dass die letzte Vorlesung vor
oder zwei Vorträgen,
als wir die Protokolle hinzugefügt haben ,
genau hier, die Kirschblütenstämme, es war sehr wichtig,
dass wir hinzugefügt haben auch zu den Block-Tags. Also die Tags für die
Protokolle genau hier, und wir verweisen im Grunde auf
die Kirschblütenprotokolle, was ein Tag ist, das wir
in unserem MC-Kurs Oda haben. Und genau hier die
Kirschblütenblöcke, sehr wichtig, dass
dies hier drin ist, denn wenn Sie das nicht haben, werden die Blätter
automatisch zerfallen. Auch wenn sie sich
neben dem Protokoll befinden. Das Protokoll muss sich in diesem Tag befinden. Andernfalls
funktioniert es im Logs-Tag nicht. Sehr wichtig. Aber sonst wäre
das schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Und wir sehen uns in
der nächsten Vorlesung. Oh ja.
93. (World Gen) Benutzerdefinierte Baumgeneration: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem Vortrag werden
wir Minecraft
benutzerdefinierte Baumgenerierung
hinzufügen . Also haben wir den
Baum vom Bäumchen hinzugefügt. Jetzt
ist die Frage, wie der FREC, werden wir
es in die Welt bringen? Nun, eigentlich nicht so verrückt. Lassen Sie uns zunächst in unsere
Mod-konfigurierte
Feature-Klasse
gehen , die genau hier ist. Wir benötigen eine
neue konfigurierte Funktion. Was jetzt sehr wichtig
ist, ist folgendes. Wir können uns tatsächlich
einige Beispiele für die
Regeneration von Vanille ansehen . Ich empfehle dringend, einen
Blick darauf zu werfen. Aber was wir zum
Beispiel in der Feature-Class tun können, können
wir in die Feature-Class einsteigen und uns alle Features
ansehen. Und die Funktionen, die du
nicht so interessant bist. Interessant
ist zum Beispiel, wo das Baum-Feature
verwendet wird , das unsere mittlere
Maustaste darauf klickt,
dann können Sie sehen, dass es
in der Tree-Feature-Klasse verwendet wird. Sehr interessant. Und Sie können dort sehen, dass
es im Grunde genommen eine Reihe von
Orten gibt , an denen
dies verwendet wurde. Gehen wir zum Beispiel einfach hier zum OK,
und Sie können sehen, dass es sich bei diesem um
ein Feature-Utils Register handelt . Es sieht sehr ähnlich aus
wie wir hier gemacht haben. Und das ist so ziemlich
genau das, was wir getan haben. Diese hat also in diesem Fall eine spezielle
Methode
oder alle Funktionen, die er verwendet. Aber was, genau das
haben wir hier. Können wir das jetzt benutzen? Wo nützt das jetzt? Nun, ich bin, wenn ich noch einmal mit der mittleren
Maustaste klicke, kann
man sehen, dass dies
zum Beispiel in den
Baumplatzierungen verwendet wird . Und das ist die AUC überprüft. Genau das müssen wir jetzt
grundsätzlich umsetzen. Nun, wenn ich genau hier darauf
eingehe, können Sie sehen, dass
dies plötzlich ein Feature
ist, das
faszinierend ist, oder? Was getan wurde,
ist, dass die
Weltgeneration
ein wenig getrennt wurde, Weltgeneration
ein wenig getrennt wurde dass Sie jetzt Funktionen platziert und Funktionen
konfiguriert
haben. Und Sie können sehen, dass
dieses Ort-Feature in diesem Fall tatsächlich
die Baummerkmale OK verwendet, nach Glück
filtern, Überleben und dann den Eichenbäumchen. Aber was heißt das genau? Die allgemeine Idee hier ist, dass die Überprüfung dieses
Ortsmerkmals
im Grunde nur auf bestimmten Blöcken platziert
werden kann auf bestimmten Blöcken platziert
werden in denen der Eichenbäumchen auch überleben
könnte. Das ist
wirklich häufig, cool zu tun. Und wo wird das dann verwendet? Nun, das wird hier wieder in
den pflanzlichen Merkmalen verwendet . Das ist also in diesem Fall sehr lang
. Aber das ist nur theoretisch. Sie können sehen, dass dies plötzlich ein weiteres
konfiguriertes Feature ist. Nehmen wir zum Beispiel einen, der hier nicht
zu lang ist . Sie sind
alle ziemlich lang. Nehmen wir die Wiesenbäume
und dann kann ich mit der mittleren
Maustaste darauf klicken und dann
haben Sie eine weitere Polizeifunktion. Im Grunde genommen, woher
wir gehen ,
ist, dass wir von
den Bäumen in bestimmten Bereichen Wir werden von der
konfigurierten Funktion zu
einem Place-Feature übergehen , um
Feature zu einem platzierten Feature zu konfigurieren. Weil ich
Feature platziert habe,
muss es auf der Welt sein, oder? Es kann nicht sein, du kannst
es nicht haben, nicht auf der Welt zu sein. Im Grunde habe ich das
ein bisschen anders gemacht. Ich habe diese Ort-Funktion ausgeschnitten und es im Grunde genommen so gemacht , dass wir von dieser
konfigurierten Funktion
für ein anderes konfiguriertes Feature wechseln für ein anderes konfiguriertes Feature dann zum Place-Feature gehen, das ist kein 100 Prozent richtig, aber es ist fast richtig. In den MOD
konfigurierten Funktionen werde
ich das noch einmal kopieren und erklären, was
ich im Grunde getan habe. Sie können also sehen, dass
dies der überprüfte
Kirschblütenbaum ist . Und Sie können
sehen, dass es auch nach einem
Blocküberleben filtert. Sie können sehen, dass die allgemeine Idee nur
ist, dass diese
konfigurierte Funktion jetzt, nun, es wird, wissen Sie, es hat eine
Chance von 10 Prozent,
diesen Ort einzunehmen Feature
und Versuch und 90 Die prozentuale Chance, diesen Ort
einzunehmen wird
offensichtlich immer das gleiche Merkmal sein. Also das nur ein
bisschen ein Hack. Es ist wahrscheinlich nicht der
sauberste Weg, dies zu tun, aber auf diese Weise habe ich es
gefunden, ohne eine
weitere Platzfunktion als
eine Konfigurationsfunktion und ein
anderes Platz-Feature hinzufügen zu müssen weitere Platzfunktion als eine Konfigurationsfunktion und ein
anderes Platz-Feature und so weiter und so weiter, weil es tendenziell sehr
kompliziert wird. Sie können jedoch immer
der Vanille-Vorlage folgen , die
auch sehr zu empfehlen ist. Man muss einen Blick
in die Weltgeneration werfen. Du musst dir die Kurse
ansehen, oder? Sie können auch in die mittlere Maus des
Pakets gehen, klicken
Sie darauf und Sie können alle Funktionen hier sehen . Wir können zur Platzierung gehen, wir können in das
Platzierungspaket gehen. Sie können alle
Platzierungen genau hier sehen. Wir können in die Generation
zu den pflanzlichen Merkmalen gehen. In den Funktionen können
wir wieder zu den Platzierungen gehen. Es gibt das sollte auch
in der Platzierung richtig sein. All dies haben wir Ihnen
zur Verfügung. Sie müssen
einen Blick darauf werfen, dass die Generation der Welt
an bestimmten Stellen
wirklich kompliziert wird . Und man muss sich nur die
Vanille-Beispiele ansehen. Dies ist wahrscheinlich eine
der besten Ressourcen, die Sie haben, und es ist in Ordnung, was auch immer der Fall sein mag, wir haben jetzt die
konfigurierte Funktion. Wir brauchen jedoch immer noch ein
Place-Feature, das das Feature-Paket
überlappt rechten Maustaste auf eine neue
Java-Klasse, die als modale kleinste Eater bezeichnet wird der
rechten Maustaste auf eine neue
Java-Klasse, die als modale kleinste Eater bezeichnet wird,
und fügen Wir werden ein neues erstellen, uns für eine
Weile genau das
platzieren, was wir haben und das wird noch einmal folgen, wir kopieren den gesamten
Code, der Ihnen im
GitHub-Repository zur Verfügung steht und
eine Einzelperson genauso gut. Oder das ist nicht so kompliziert. Sie können sehen, dass wir ein
Placement Utils
Punktregister nennen und dann die
Kirschblüte platziert werden, und dann nehmen wir
den Baum überprüft. Dies ist also die konfigurierte
Funktion, die
entweder dieses Ort-Feature oder
dieses Ort-Feature zurückgibt , oder? Also der Filter nach Blocküberleben. Das stimmt genau. Genau das
wollen wir. Wir werden also nur Bäume haben,
die laichen, wo der
Kirschblütenbäumchen platziert werden könnte. Das ist die allgemeine Idee hier. Und dann machen wir
dies zu einem Ort,
indem wir die pflanzliche
Dekoration Baum Platzierung hinzufügen. Und dann fügen wir nur Count extra
hinzu. So
viele Bäume werden also spawnen. Aber wenn ich mich nicht irre,
bedeutet das,
dass dies bedeutet, dass
im Durchschnitt ein Baum pro
Stück
mit einer 10-prozentigen Chance
spawnen sollte , zwei weitere Sport zu haben. Ich glaube, so funktioniert es. Ich bin mir nicht hundertprozentig sicher, aber Sie können sich auch die Baumplatzierungsmethode
genau hier ansehen und sehen , dass dies im Platzierungsmodifikator eine Stelle
ändert oder diesen Fall. Wir können dann in den
Platzierungsmodifikator gehen und wir können sehen, naja, okay, das
verrät nichts. Nun, drücken wir Control H.
Und plötzlich können wir eine Reihe verschiedener
Platzierungsmodifikatoren
sehen. Es gibt sogar Platzierungsfilter, die ich wirklich cool finde. Sie können also Dinge
wie Seltenheitsfilter haben, die im Grunde genommen
alle so viele Brocken, ich glaube, dass es so funktioniert. Und dann kannst du
die wiederholte Platzierung haben. Einige geräuschbasierte Zählungen. Unglaublich cool, einfach
absolut häufig, erstaunlich. Es gibt eine Menge Sachen hier. Wieder einmal
versucht das
Experimentierfreudige , ohne einen
Blick auf den Vanilla-Code zu werfen, wie Klassen verwendet werden, das
nur wärmstens
zu empfehlen. Jetzt
wurde das platzierte Feature erstellt, aber irgendwie müssen wir es genau
generieren. also in unserem Weltpaket rechten Maustaste auf ein neues
Paket namens Jen. Dies bildet dann
das Weltpaket. Ich weiß wirklich klug gesprochen. Und dann werden
wir da drin
eine neue Java-Klasse erstellen ,
die als moderne Baumgeneration bezeichnet wird . Und dann wird das wie folgt
aussehen. 1 Sekunde, ich werde die
ganze Methode hier kopieren, aber ich werde alles erklären. Dies ist also das
Biom-Ladeereignis. Nun, wir werden
das in einem Moment nennen. Aber was Sie
sehen können ist, dass es eigentlich nicht so
kompliziert ist, oder? Das spawnt also den eigentlichen Baum. Okay? Was wir tun werden,
ist, dass wir einfach den Ressourcenschlüssel aus diesem speziellen Biom beziehen, das wir gerade laden, oder? Und dann
werden wir nur sichergehen, hey, ist dieses Biom das
tut, enthalten die Typen dieses
Bioms Platten, aber im Grunde genommen in allen verschiedenen
Arten von Ebenen Biom, ich denke, Ja, lass uns das Kirschblüte platziert
Feature genau dort. Diese beiden Anrufe also, oder? Daher ist es der erste Schritt, die Basis der Listen zu erhalten Merkmale des
Lieferanten für ,
die Merkmale des
Lieferanten für die pflanzliche Dekoration
hier, und dann besteht der zweite Schritt darin unsere platzierte
Funktion
hinzuzufügen. Dieses Recht, das,
diese beiden Löcher hier, diese fügen
dem jeweiligen Biom tatsächlich
das Platzmerkmal hinzu. Dieses Jahr filtert natürlich
nur. An diesem Punkt sollte das nicht zu verrückt für dich
sein. Wenn ja, meinst du, nun, ich möchte eigentlich, dass mein Baum in einem anderen Biom
spawnt. Man muss einfach
anders filtern, oder? Sie können
diese if-Aussage also einfach wegnehmen. Du könntest
es einfach ein bisschen ändern. Sollte nicht zu verrückt sein. Alles in Betracht gezogen. Und was wir tun werden,
ist, dass
es in unserem Beispiel nur im Flachbiom
oder
in verschiedenen Ebenen
Biomen im Grunde genommen hervorgebracht wird . Aber wo nennen wir das jetzt? Nun, im
Weltpaket klicken Sie mit der rechten Maustaste auf neue Java-Klasse,
die als moderne Weltereignisse bezeichnet wird Und da drinnen werden
wir zuerst den
Add-Modus hinzufügen. Und dann sagen wir, dass die ID des
Punkt-Ereignisbus-Abonnenten entspricht der MC
Core Smart Touch ID. Dann werden wir
eine öffentliche statische Lücke haben. Würde Biom-Lade-Ereignis mit einem letzten
Biom-Ladeereignis, cooles Ereignis. Und das wird hier für
diese Anmerkung ein Abonnement-Event
ganz oben haben . Und dann werden wir
Modellbaum-Generation an
unseren Januar-Bäumen sagen und wir
werden bei der Veranstaltung vorbeigehen. Und jetzt könnte man sagen,
das kann es nicht sein. Es ist jedoch alles
, was wir tun müssen. Nun, natürlich, die ganz besonderen Dinge ziemlich
kompliziert, oder? Sie haben also verschiedene
Platzierungs-Utils, verschiedene Baumplatzierungssachen mit einer anderen konfigurierten Funktion. Obwohl es viel zu tun hat. Wenn man jedoch
wirklich darüber nachdenkt, ist
es eigentlich nicht so verrückt.
Alles in Betracht gezogen. Wie gesagt, wenn Sie
grundsätzlich
eine
andere Filterung wünschen oder möchten, dass Ihre Bäume andere Biome spawnen, müssen
Sie hier einfach
anders filtern. Ich meine, im Grunde haben Sie
das Biom-Load-Ereignis. Sie sollten also, wissen Sie, Sie den
Ressourcenstandort
des Iamb grundsätzlich
zur Verfügung haben . Theoretisch sollten Sie also in der Lage sein die Filterung hier einfach
zu ändern. Wenn wir also in nur einer Sekunde nach
Minecraft gehen, denken Sie
daran, eine neue
Welt zu erschaffen, denn wir haben uns
mit der Weltgeneration durcheinander gesetzt ,
nur für den Fall, dass es in
der alten Welt immer noch funktionieren sollte , wenn wir
teleportiere weit genug weg, aber trotzdem nur für den Fall, lass uns eine neue
Welt erschaffen und mal sehen, ob der Baum erzeugt wird. Oder ein Apotheker, ein
Minecraft, und da ist er los, wir laichen bereits in
einem Sonnenblumenflugzeug-Biom. Also los gehst du. Die Bäume laichen und gut, dass es ihnen so ziemlich zeigt. Ja, es funktioniert ziemlich genau so, wie man es erwarten
würde. Sie laichen also nur
in Flugzeugtypen, Biome
fliegen tatsächlich dorthin weil die Platzierung ein bisschen komisch
aussah, aber eigentlich sollte es nicht sein. Sie können also sehen, oder sie wachsen
einfach glücklich an den Orten, an denen sie
können, sie können wachsen. sind vielleicht ein bisschen zu nahe
beieinander, aber wer weiß? Ich meine, an diesem Punkt ist
es ziemlich cool. Und noch einmal eine
sehr wichtige Sache. Sie müssen
immer mit
den Zahlen herumspielen , wenn es
um die Weltgeneration geht. Weil du vielleicht nein bist
, nein, das viel zu viele Bäume. Weißt du, du musst nur mit der Zählung
herumspielen , aber insgesamt laichen die Bäume. Also eine besondere Sache, mit der
ich sagen kann, wenn es um
die Generation hier
geht, was du tun könntest, wenn
du zum Beispiel
willst, dass dein Baum unglaublich selten ist, du könntest es 0 machen und
dann
haben so etwas wie eine Wahrscheinlichkeit von
0,1%, dass ein anderer Baum so etwas
spawnt. Aber natürlich, weißt du, du kannst einfach herumspielen,
ist auch sehr zu empfehlen. noch einmal
einen Blick auf die verschiedenen drei Generationen
von Vanille, oder? Das ist immer etwas , das Sie
sich einfach ansehen können. Ich kann das nicht genug betonen. Du hast dir das
ganze Vanillezeug zur Verfügung. Schau dir das an und
du wirst hoffentlich in der Lage sein die
Baumgeneration deiner Träume
zu erschaffen. Aber das wird es für
diese Vorlesung genau hier sein. Ich hoffe, du hast diese
nützlichen Neuronen des Neuen gefunden. Wenn du das tätest, würde ich mich sehr über eine Bewertung von dir freuen. Ansonsten sehe ich
dich in der nächsten Vorlesung. Also ja.
94. (World Gen) Benutzerdefinierte Flower: Alles klar, willkommen zurück
zum Futterkurs für 118. In diesem Vortrag werden wir
einen Blick auf die Blütengeneration der
Mehlgeneration werfen, nun, ein anderer Teil der Weltgeneration wird
sehr interessant sein. Gehen wir also in unsere
konfigurierte Feature-Class ein. Und hier werde
ich noch einmal kopieren, aber alles wie immer
steht Ihnen im
Repository zur Verfügung und auch eine
Einzelperson passt sich an. also keine Sorgen. Aber was wir tun werden, ist, dass
wir einfach die Tintenzeilen kopieren . Jede Reihe genau hier. Man sieht, dass es tatsächlich ziemlich lang
ist. Mal sehen, ob ich
so etwas machen könnte. Jetzt. Nun, da gehst du. Also so etwas. Sehen Sie, wir verwenden
die Feature-Flower noch
einmal, um eine
Konfigurieren-Funktion zu erstellen, diesmal der zufälligen
Patch-Konfiguration mit ein paar Versuchen, einige verbreiten sich genau hier. Was Sie also
sehen können, ist im Grunde, wenn ich einfach
in die Blume gehe, also Millimol pro
Klick darauf und dann noch einmal mit der
mittleren Maustaste
klicken. Wir können zum Beispiel sehen, dass wir hier einen gewissen Mehlwert haben. Wir können sehen, was ist
das? Dies wäre also eine zufällige gewichtete
Liste für Gras-Patch. Nun, lasst uns, wir können nicht wirklich
sehen, was hier los ist, aber wir können sehen, was hier
los ist. Eine zufällige Patch-Konfiguration, 96 Spread 6, 2. Und dann haben wir diesen
wahnsinnig verrückten einfachen Block hier
konfiguriert und
sehen, dass wir
eine einfache Blockkonfiguration erstellen . Und dann drinnen hier,
ein Lärmanbieter und sieh dir diese Verrücktheit an,
oder? Sieh dir das Verrückte an. Also haben wir im Grunde nur verschiedene Blöcke
, die wir dort spawnen. Die Idee der zufälligen
Patch-Konfiguration besteht in der Regel darin, dass Sie mehrere
verschiedene Blumen hinzufügen. Nun, in unserem Fall füge ich tatsächlich nur eine Blume hinzu. Also weißt du was, ich
werde
die Versuche hier tatsächlich reduzieren , um 32 zu
sagen, nur für den Fall. Und nicht so viele von ihnen
werden im Grunde besitzen. Lass uns so etwas machen. Das wird
gut werden. Jetzt ist dies immer noch eine konfigurierte Funktion, und natürlich müssen wir daraus eine Polizeifunktion erstellen. Wir gehen also wieder in
die Feature-Class zurück und schauen
uns die Blume an. Gehen wir einfach
zur Standardeinstellung. Wo heißt das jetzt
natürlich in der
pflanzlichen Platzierung. Nehmen wir also einfach das, unser Warm hier und dann können wir im Grunde
sehen,
dass dies eine Zeile wie 71. Eigentlich sind es eigentlich 70. Da gehst du. Und dann können wir im Grunde sehen, dass wir hier
einmal alle x
in quadratische Platzierung,
Ausbreitung, Höhenkarte
und dann Biomfilter in die Schwerkraft hier
einmal alle x
in quadratische Platzierung,
Ausbreitung, setzen. Was ich normalerweise mache, um das
im Grunde vorzubereiten, kopiere
ich einfach alles und sehe
dann einfach, was ich da hineinlegen
muss. Nun, was ich habe, ist, dass ich die folgenden Funktionen in unserem
Modus habe, wir können
das hier grundsätzlich hinzufügen. Also wird
die rosa Rose platziert. Sie können also sehen, dass ich
das auch habe und das einzige, was ich von der Platzierung
nicht habe,
ist der Seltenheitsfilter. Nun, lasst uns nur
aus Gründen der Argumentation auch dies tun. Fügen wir also einfach den
Ableitungsfilter hinzu. Ich kopiere das noch mal. Ich lege das hier rein. Weil das Coole
an den Platzierten ist,
dass man diesen Punktpunkt an der Stelle sieht. Das bedeutet, dass wir hier
so viele Platzierungsmodifikatoren einsetzen können so viele Platzierungsmodifikatoren ,
wie wir es gerne hätten, das ist das wirklich Coole
an dem Ort. Aber wenn Sie eine
konfigurierte Funktion haben und einen Punkt platzieren, können
Sie so viele verschiedene
Platzierungsmodifikatoren eingeben ,
wie Sie möchten, was wirklich verdammt cool ist. Und jetzt haben wir diese platzierte
Funktion für die Blume, aber wie werden
wir es
in unserem Jenna-Paket spawnen , klicken Sie mit der rechten Maustaste auf eine
neue Klasse namens
Modusblume, Blumengeneration. Dann werde ich das
noch einmal kopieren, ich werde die
Methode genau hier kopieren. Aber das ist ziemlich genau das Gleiche wie die Baumgeneration. Denn natürlich sind
Blumen auch pflanzliche Dekoration und wir fügen nur noch einmal an der rosa Rosenstelle genau dort hinzu. Das sollte ziemlich
selbsterklärend sein. Alle Dinge, die in Betracht gezogen
wurden, waren wieder einmal, nur in Flugzeugen. Und lass uns zu den
MOD-Welt-Events gehen. Und nennen wir das einfach,
es spielt in diesem Fall keine Rolle, in welcher Reihenfolge wir sie
nennen, denn sie sind beide der gleiche
Generationsschritt genau hier. Sobald wir
im Grunde bei den Rudern sind, werden
Sie sehen, dass,
weil dies ein anderer
Generationsschritt ist ,
die
Reihenfolge genau hier aufrechterhalten müssen . Aber das ist es tatsächlich. Das ist alles,
was wir für die rosa Rose brauchen. Empfehlen Sie erneut dringend, einen
Blick auf alle Vanille-Beispiele zu werfen. Es gibt so viele von ihnen. Schau sie dir einfach an. Glückliches Zeug vorbei,
probiere ein paar Sachen aus. Probieren Sie vor allem eine Reihe von
Werten aus. Und dann sieh einfach, was dort
im Grunde passiert. Aber um der Vollendung willen, schauen wir mal, ob es funktioniert, oder? Und vergessen Sie auch nicht, dafür
eine neue Welt zu schaffen ,
denn natürlich haben wir uns wieder
einmal
mit der Weltgeneration durcheinander gesetzt. Mal sehen, ob wir
unsere Blumen oder Straftaten
in einem Flugzeug finden können , das ist mein Zuhause und
das sind sie schon. Wir haben rosafarbene Rosen gefunden,
die im Biom der Ebenen laichen. Es gibt noch ein paar mehr hier. Und mal sehen, es gibt
noch mehr da. Lass uns noch etwas mehr finden. Sie sind etwas seltener
als ich mit 32 erwartet hatte, aber das ist natürlich
völlig in Ordnung. Wieder einmal können Sie die Zahlen einfach
anpassen. Ich glaube, dass hier auch drei drin
sind. Ja, da sind sie auch. Das ist ziemlich cool. Das ist also
wirklich großartig und es ist so ziemlich wie die
Blumengeneration funktioniert. Noch einmal empfehlen wir es, einen
Blick auf das Vanillezeug zu werfen. Und du musst nur mit
den Zahlen
herumspielen, bis du es gut zu einer Generation bringst
, die du gerne hättest. Aber sonst
wäre das für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen. Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
95. (World Gen) Benutzerdefinierte Ore: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in diesem Vortrag werden
wir Minecraft Custom oder
Generation hinzufügen , für das, auf das Sie
alle gewartet haben. Ich denke ja,
zumindest ist die Ordination einer von ihnen im Grunde immer die meisten Anfragen ein Thema aus vielen
von ihnen, im Grunde genommen diejenigen, die ich definitiv
im Grunde tun werde. Und während, wie
machen wir das oder die Generation,
wohin gehen wir hin? Nun, zuerst einmal die Funktion wieder
konfiguriert, und hier drin werde ich
zwei Dinge kopieren und dann werde ich
es natürlich auch erklären. Aber Nummer 1, wir
benötigen eine Liste oder Konfiguration eines
Zielblockstatus. Was der FREC ist das, nun, wir brauchen das, denn wenn wir
eine bestimmte Reihenfolge
oder Konfiguration haben , brauchen wir diese Erze
tatsächlich,
weil wir wissen müssen, okay, in
welchem Rockzustand
sollte platziert werden, Stein, in welchen Blöcken es in einen Tiefschlaf gelegt werden
sollte. Deshalb
brauchen wir diese Liste im Grunde genau hier, so einfach wie das. Und dann haben wir die konfigurierte
Funktion, deinen Roboter. Oder jetzt müssen wir dies natürlich
noch zu einem
platzierten Feature machen. Aber das ist schon eine interessante Sache
und das ist die Größe. Das sollte also die durchschnittlichen Venenseiten sein, wenn ich mich nicht irre. Behalte das also genau hier im Hinterkopf. Und wir können uns auch
den Brunnen oder das Feature hier ansehen . Also mittlere Maustaste
darauf klicken und dann mittlere Maus, mittlere Maustaste darauf
klicken und dann können Sie sehen, dass dies alles
in den Bestellfunktionen verwendet wird. Aber schauen wir uns zum Beispiel etwas
an, das
interessanter ist, zum Beispiel
den oder Redstone. Also ist alles Redstone mit einer neuen Liste
von Redstone-Erz
konfiguriert von Redstone-Erz und Redstone springt spät
oder okay, fair genug. Und jetzt
ist die Frage, wo nützt das? Nun, das wurde bei
der Auftragserteilung verwendet. So kannst du das Redstone-Erz sehen. Und was Sie auch
feststellen werden, ist, dass es zwei verschiedene Platzierungen
für dasselbe gibt zwei verschiedene Platzierungen oder Sie sogar haben, oder Diamant- oder Diamant
- oder Diamantvogel. Daher ist es sehr wichtig , dass Sie einfach
mehrere für dasselbe
oder ähnliche Ortsmerkmale hinzufügen oder ähnliche Ortsmerkmale mit
denen unterschiedliche Funktionen
verbunden sind. Also schauen wir uns 41 und 42. Also lasst uns einfach hier rein gehen. Wir können sehen, dass dies eine gemeinsame
oder gemeinsame Platzierung
oder Platzierung ist. Und dann gibt es sogar eine
seltene oder Platzierungsmethode , die sie im Grunde nennen. Wir werden
so etwas in nur einem Moment sehen. Aber Sie können das als
eine Bereichsplatzierung mit
dieser Uniform und einem
Dreieck sehen eine Bereichsplatzierung mit , wie Sie sehen können. Es gibt also verschiedene Arten der Platzierung im Grunde
für den Höhenbereich. Und dann sagt man im Grunde
einfach, okay, von welchem Bereich bis zu welchem
Bereich sollte der Umfang sein. Und das ist
so ziemlich die Idee dort. Es ist also ziemlich cool und du kannst noch
einmal Sachen kopieren, ein paar Sachen
ausprobieren und dann die gemeinsame oder
Platzierung der mittleren
Maustaste sehen . Klicken Sie darauf. Sie können sehen, dass es nur
eine private Methode ist. Was wir tatsächlich tun müssen,
ist, dass wir alle
drei dieser Methoden kopieren müssen alle
drei dieser Methoden bei
denen ich zumindest das tun werde. Ich kopiere all
diese Methoden und klicke mit der rechten Maustaste auf Kopieren. Und dann gehen
wir in die Feature-Class und
ich erstelle einen benutzerdefinierten Modus oder eine
Platzierungsklasse. Und dann
werden wir einfach
die Methoden hier drin kopieren und
wir werden alle öffentlich machen, damit wir sie im Grunde für
unsere eigenen Erze verwenden können ,
weil sie unser
Leben einfach zu einem machen winzig bisschen einfacher, nicht 100 Prozent, aber
es ist nur ein bisschen. Und nachdem wir das
kopiert haben, können
wir nun die Funktion
Konfigurieren verwenden, können
wir nun die Funktion
Konfigurieren verwenden um ein Platz-Feature zu erstellen. In unseren modellplatzierten Features werden
wir also das einfach kopieren und ich
werde es natürlich
noch einmal erklären. Also los gehst du. Wir haben ein Kobalt oder platziert, das
wir wieder
beim Kobalt registrieren oder hier platzieren werden. Und dann
nehmen wir einfach das Kobalt oder das wir genau hier gefunden
haben,
die Funktion „Konfigurieren“. Und wir werden es mit dem Common oder Placement platzieren. Dieses Jahr sollten die durchschnittlichen Adern pro Stamm sein,
wie ich es jetzt verstehe. Und was du
vielleicht sagen würdest, Warte, wie bringst du es
zu den negativen 80? Nun, mit einem Dreieck,
aber wie funktioniert das? Nun, was Sie
vielleicht gesehen haben, wie Sie dieses Bild gesehen haben, das zeigt, in welchen Höhen die
Orange jetzt spawnt. Und die Idee ist, dass wenn
man hier ein Dreieck macht, der untere Punkt bei negativ 80
liegt und der Punkt oben bei 80 liegen wird. Und dann wird das
Dreieck auf einen Punkt bei grundsätzlich 0
kommen. Theoretisch
sollte also passieren,
dass das meiste Kobalt
bei 0 spawnen sollte und dann immer
immer weniger werden sollte. Das, weißt du, es wird
hier
im Grunde genommen ausgeglichen werden. Dies ist also im Grunde nur ein Punkt, um
die Hortensien-Platzierung
und die mittlere Maustaste zu machen . Klicken Sie darauf und Sie können
tatsächlich sehen, dass es hier
auch Add gibt.gov und dann einen
anderen Höhenanbieter. Werfen Sie einen Blick auf
den Hypervisor. Also drücke ich Control H. Und es gibt die Neigung nach unten, sehr voreingenommen zur unteren
Trapezhöhe, gleichmäßige gewichtete
Listenhöhe und konstante Höhe. Absolut erstaunliche
Funktionalität, die Sie haben. Sie können Ihren Spawn auf
ganz besondere Weise machen ,
wenn Sie möchten, dass sie wärmstens
empfehlen,
sich dies anzusehen. Empfehlen Sie
dringend,
mit diesem Amin herumzuspielen,
wie bis Sie es getan haben deine Ruder genau so, wie
du es willst. Jetzt werde ich es tun, dass
ich tatsächlich die
Baumgeneration hier
kopieren werde . Also ziehe ich es in dasselbe Paket, während ich
die Kontrolle
halte. Und wir werden
das morgen oder in der Generation umbenennen. Wir werden
das
auch einfach umbenennen , generieren oder hier. Und statt der
pflanzlichen Dekoration ist
dies jetzt unterirdisch oder. Und wir
werden das auch aus
der if-Aussage herausnehmen , denn r ors, sagen
wir einfach aus Gründen
der Argumentation, wir wollen tatsächlich überall, aber wir werden Kobalt
oder platziert sagen, und das ist es. Jetzt ist die Ursprungsration
hier ziemlich vollendet. Jetzt wird es in jede Biografie
eingefügt. Jetzt sollte
es nicht im Nether oder am Ende platziert da das Kobalt- oder
Konfiguration-Feature
eine Liste von Stein
austauschbar und tiefem Zustand
austauschbar hat eine Liste von Stein
austauschbar und tiefem Zustand und nicht von Nether-Rack oder
in Stein austauschbar. Und ich glaube nicht einmal, dass
sie notwendigerweise existieren. Ein anderes Wrack existiert
als Regeltest, ein anderer oder austauschbarer auch,
was der Rest, von dem ich
glaube, dass es dort nicht existiert. Das ist also etwas
, das man beachten sollte. Das Endsteinzeug
existiert also nicht, oder? Und jetzt muss
diese Methode einfach hier aufgerufen werden. Was nun sehr wichtig
ist, ist, dass es über die anderen beiden
bezeichnet werden muss . Denn wenn wir uns
den Generationsschritt genau hier ansehen , können
Sie sehen, dass Untergrund vor der
pflanzlichen Dekoration
passiert. Beginnt also im Grunde von
oben nach unten. Diese Reihenfolge muss
gut sein, grundsätzlich eingehalten. Und hier
brauchen wir nicht einmal die Typen und wir brauchen
eigentlich nicht einmal den Schlüssel, weil wir
einfach so sein werden:
Ja, ich wollte nur in jedem
Biom das gut gehen wird. Also meine ich, das ist so
ziemlich alles , was wir
für unseren Kunden tun müssen. Oder spiele noch einmal mit den Zahlen
herum. Werfen Sie einen Blick auf den
Vanilla-Code und schauen Sie sich die
Vanille-Werte an. Ich kann es sehr empfehlen. Ich kann das nicht genug betonen. Man muss nur
damit
herumspielen und ein bisschen mit
den Zahlen herumspielen. Und jetzt lasst uns sehen, nachdem wir übrigens eine neue Welt geschaffen haben , ob unser Cobol
oder sein Platz in der Welt ist. Oder wenn Antworten in Minecraft
und wie Sie sehen können, einige oder hier bereits vollkommen gut
generiert haben. Das war nur ein Eco. Es gibt ein bisschen
eine größere Vene. ich war eigentlich acht
von ihnen. Alles hier
funktioniert einwandfrei. Und dies wird
diese Vorlesung bereits hier beenden. Ich hoffe, du hast das
nützlich gefunden und du hast
etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung. Also ja.
96. Exportieren deines Mods: In Ordnung, willkommen zurück
zum Futterkurs
für das Siegerteam und
dieser sehr kurzen Vortrag, ich werde Ihnen schnell
zeigen, wie Sie Ihr Modell als JAR-Datei
exportieren können . Lasst uns also das
Terminal öffnen und lasst uns einen
Punktschrägstrich einsetzen , Gradle w build. Und das ist so ziemlich alles
, was du tun musst. Es tritt ein. Und dann
erstellt es im Grunde die JAR-Datei. Was Sie dann tun
müssen, ist, dass Sie zu Ihrem Build-Ordner gehen
müssen rechten Maustaste auf In Explorer öffnen klicken. Dann öffnet sich in einem
Explorer-Fenster und ich
zeige das einfach schnell. Also baue. Und dann im
libs-Ordner genau hier, MC course, ist dies die Version, die in Ihrer
build.gradle-Datei
definiert ist. Dies ist im Grunde der
Name, den es annehmen wird, und Sie können es dann nehmen, es in den Ordner Ihres Modells legen, Sie können es in ein
hochgeladenes Fluchfuttermittel legen,
solche Sachen. Und dann sollte alles
hier funktionieren. Großartig. Ja, das
ist es so ziemlich schon für diese Vorlesung genau
hier und danach. Wenn Sie sich
das in Zukunft ansehen, sollten
Sie hier
einen weiteren Abschnitt
mit zusätzlichen Themen haben ,
die ich in den kommenden
Wochen und Monaten hinzufügen
werde den kommenden
Wochen und Monaten hinzufügen
werde im Grunde genommen mit verschiedenen
Dingen wie Booten, Ich werde auf jeden Fall
noch solche Sachen hinzufügen wollen. Halten Sie also Ausschau
danach, wenn Sie das ziemlich früh
ansehen bis der Kurs tatsächlich
herauskam und wahrscheinlich noch nichts da sein
wird. Nun, keine Sorgen. Neue Vorträge
werden auf jeden Fall hinzugefügt. Ich hoffe, dass Sie das
nützlich fanden und
etwas Neues gelernt haben. Und hoffentlich sehen wir uns auch in den nächsten
Vorträgen. Also ja.
97. (zusätzliche Themen) Schmiede (1.18.1): Ordnung, willkommen zu dieser
Vorlesung, in der wir Forge auf die
neueste Version
aktualisieren werden. Wir haben bereits
in einer früheren Vorlesung gefälscht aktualisiert. Aber es macht Sinn, wenn
Sie eine Menge
Dinge hinzufügen , die wir in
den kommenden Vorträgen tun werden , um die Schmiede
im Grunde wieder zu aktualisieren. Und normalerweise ist es
auch gut, Ihren MOD
grundsätzlich auf dem neuesten Stand zu
halten. Es gibt nicht oft
so viele Änderungen, aber es ist immer noch gut
zu beachten. Dafür. Natürlich müssen wir
die tatsächliche Abhängigkeit
hier in unserer DOD
Gradle-Datei für Rechnungen ändern , in was? Um dieses Wohlergehen ändern zu müssen
,
öffnen wir einfach das Micro ford.net. Und eine sehr wichtige Anmerkung
aus der Zukunft hier, ich empfehle dringend,
eine 1181-Version für die
zusätzlichen Themen zu verwenden . Während das meiste davon immer noch
funktioniert , wenn Sie auf ein 1800er
auf die Weltgeneration aktualisieren auf die Weltgeneration und einige der
Steuersachen nicht funktionieren. Ich empfehle
hier wärmstens,
immer noch auf eine
181-Version zu aktualisieren , ein 1800er Jahre. Und das Update und alle Änderungen werden
in einer späteren Vorlesung behandelt. Das wird
eine Weile dauern da es tatsächlich
einige wesentliche Änderungen gibt. Es ist also was es ist, aber das meiste Zeug wird funktionieren. Es ist nur Weltgeneration
und Steuer, wie gesagt, bitte aktualisieren Sie auf ein 1800er Jahre und dann wird
1182 kommen, hoffen
wir ein paar Wochen, wenn
alles
geklärt ist , dann hoffentlich ich wird in der Lage sein, einen zusätzlichen Abschnitt zu erstellen,
in dem ich
den Aktualisierungsprozess sowie
jede der einzelnen
Änderungen durchführe den Aktualisierungsprozess sowie . Behalten Sie das bitte im Hinterkopf. Vielen Dank. Und
dann stellen Sie sicher, dass wir auf der neuesten Version sind und
Sie den neuesten Download sehen können, Dies wird 39079 sein. Und wir können uns
zum Beispiel das
Änderungsprotokoll hier sogar ansehen . Wir können einige der Änderungen sehen , die
zwischen den Versionen stattgefunden haben. Eigentlich einige, weil wir bei der eigentlichen
Kursversion immer noch ziemlich weit im
Rückstand liegen. Vielleicht hast du auch
auf dem Weg aktualisiert. Das könnte auch eine
Sache sein, die getan werden könnte. Aber vorerst werden wir jetzt im Grunde genommen auf 3979
aktualisieren. Und wenn du
das in Zukunft siehst, ist
das sehr
wahrscheinlich deine Version dort oben
etwas höher sein wird. Völlig in Ordnung. Dann aktualisierst du
einfach darauf. Normalerweise sollte es nicht zu viele Diskrepanzen
zwischen ihnen geben. Also noch einmal, dies ist die Version, die wir zwei aktualisieren
werden, und dann lädt es einfach
die Mädchenänderung, Gradle ändert sich hier in
der oberen rechten Ecke, Grunde klickt auf den
kleinen Elefanten das erscheint nicht
und öffnet sich immer
zur Registerkarte Gradle und klicken Sie dann direkt hier auf diese Schaltfläche,
macht das Gleiche. Und wie immer sollte es maximal ein oder zwei Minuten dauern . Normalerweise, wenn es nicht zu viele Dinge
geben sollte, wird
es wahrscheinlich
sehr schnell für mich sein , weil
ich das schon getan habe. Natürlich. Wenn Sie dies zuvor
mit derselben Version
gemacht haben derselben Version hat
es all
diese Dinge bereits heruntergeladen. Aber dann geht es vielleicht
etwas schneller, aber es sollte nicht
allzu lange dauern. Warten wir also einfach eine Sekunde. Noch einmal, wenn du hier rot
wirst, solange es
nur Info und Warnung ist, keine Sorge. Es ist nur ein Fehler, der eine Art Problem
ist. Und dann, am Ende
des Tages, wenn ein Build fehlgeschlagen ist, wird
das auch nicht gut sein. Aber wenn es einen
Build erfolgreich gibt, kann
alles fast außer Acht gelassen
werden. Das steht hier geschrieben,
das ist rot. Hier sind wir erfolgreich
in zwei Minuten, 31 Sekunden gebaut. Wie gesagt, manchmal
dauert es etwas länger, manchmal dauert es nicht zu lange. Jetzt haben wir viele Versionen
übersprungen, also gab es dort wahrscheinlich viel
zu aktualisieren. Aber abgesehen davon ist
das
so ziemlich alles, was wir tun müssen
, um es zu aktualisieren. Wenn
Sie es aktualisiert haben, sollte normalerweise
alles funktionieren, wenn es nicht zu viele Änderungen wenn es nicht zu viele Änderungen gibt. Ich glaube, dass hier
alles einfach funktionieren sollte. Also lassen wir es
einfach laufen und sehen, ob wir irgendwelche Fehler
bekommen. Es könnte einen vorbei sein,
ich bin mir nicht 100% sicher. Ich glaube nicht, dass
es im Moment irgendetwas gibt , worüber man sich Sorgen machen müsste. Aber natürlich
wäre hier der Fall einfach laufen lassen,
sehen, ob es vielleicht
einen Pfeil gibt, vielleicht weiß
ich nichts in den
Lebensmitteln, zum Beispiel ändern. Natürlich würdest du es
dann sehen und dann
könntest du es auch dort ändern. Aber in diesem Fall glaube ich nicht, dass sich irgendetwas
drastisch geändert hat. Sobald alles hier heruntergeladen
wurde, können
Sie sehen, dass es die Assets erneut
herunterlädt im Grunde genommen
einige der Ressourcen
einmal, noch einmal herunterlädt einmal, noch einmal , damit
alles auf dem neuesten Stand ist
datum. Da wir natürlich den ersten Lauf nach der
Aktualisierung aktualisiert
haben, kann es auch
ein wenig Zeit in Anspruch nehmen ,
aber keine Sorge. Sie können sehen, dass der
Run-Client tatsächlich durchläuft, dass die Aufgabe
jetzt im Grunde ausgeführt wird. Du siehst, dass wir ein paar Sachen
durchmachen. Genau hier. Es heißt „normal“. Und dann fängt das Mikrobe-Fenster auf
dem anderen Bildschirm schon hier an. Wir werden das einfach
umdrehen und alles
sollte gut funktionieren. Es sollte also in nur einem Moment den
Menübildschirm sehen. Und da sind wir. Ja, da sind wir. Da gehst du. Also funktioniert alles
immer noch gut. Mods, MC-Kurs
ist immer noch hier drin. Also funktioniert alles
gut und es gibt keine Sorge , dass wir
die neue Futterversion aktualisiert haben. Und jetzt können wir
im Grunde
die zusätzlichen Vorträge durchgehen , die sehr,
sehr interessant sein werden. Es gibt also einige
interessante Themen, die wir in den kommenden Vorträgen grundsätzlich
diskutieren werden. Einige davon sind definitiv wie persönlich meine Favoriten. Es gibt ein paar wirklich, wirklich verdammte coole Sachen hier, aber das wäre so ziemlich genau das für diese Vorlesung genau hier. Sehr kurz, nur
um im Grunde zu aktualisieren. Und dann können wir
den Rest der Vorträge durchgehen. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
der nächsten Vorlesung.
98. (zusätzliche Themen) Adding von XP Drops in Blöcken: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und dann werden
wir in dieser Vorlesung einen
Blick darauf werfen, wie Sie Ihren oder Blöcken erfahrene Drops
hinzufügen können . Jetzt erinnern Sie sich vielleicht daran
, dass es bestimmte oder
Blöcke wie Emerald gibt, die
beim Minen tatsächlich
nach dem Abbau
abfallen. Soll zum Beispiel das rohe
Kobalt in unserem Fall
fallen lassen und dann, nachdem
du es gerochen
hast, würdest du die Erfahrung bekommen. Jetzt ist dies tatsächlich ein
ziemlich einfacher Prozess. Was wir also tun können, ist, dass
wir
die Umschalttaste zweimal drücken und
nach dem Block suchen können , um
sicherzustellen, dass wir
dieses Kästchen genau hier ankreuzen. Und dann werden wir
das überprüfen. Und Sie können sehen, dass
wir einfach für
den Block in einer
einheitlichen Int hier haben können . Und das wird der
Erfahrungsbereich sein , den
er sinken wird. Obwohl. Es ist eigentlich so einfach wie Sie zu
gehen, zum Beispiel werden
wir das Kobalt wählen oder obwohl es nicht
sollte, ist
dies nur ein Beispiel. Wir werden diesen
Block ändern oder blockieren
und sicherstellen, dass ich das richtig
schreibe. Da gehst du. Ich drücke die Tabulatortaste, um es automatisch zu vervollständigen. Und jetzt sollte sich nichts ändern. Dies sollte immer noch funktionieren, aber wir müssen hier einen
zweiten Parameter hinzufügen. Und das wird ein
einheitlicher Job sein, den du sehen könntest. Und dann werden wir zum Beispiel
etwas wie zwei oder oder
sagen , und dann wird es
eine einheitliche Verteilung
zwischen 24 sein . Wir können auch den Mauszeiger
über das Angebot bewegen. Ich glaube, das sollte, es gibt uns
eigentlich keine Einblicke in die Funktionsweise, Mist, aber das ist okay. Ich glaube, dass beide von
ihnen inklusiv sind. Und wir können natürlich auch prüfen ob eine mittlere Maustaste erneut darauf
klickt, und dann die mittlere
Maustaste darauf klicken. Ich kann zum Beispiel
im Smaragd sehen oder wir sollten
sehen können , dass das, was sie dort
geben, zum Beispiel hier
zwischen 37 und dasselbe für den Tiefschlaf-Smaragd
gilt. Und dann glaube ich, dass
es noch etwas anderes gibt. So wäre
das zum Beispiel beim Diamanten oder ja natürlich
auch der Fall. Dieser liegt auch zwischen 37. Dort können Sie also grundsätzlich
wählen, was Sie tun möchten. Also lasst uns auch einfach 37 machen. Warum nicht? Und das ist so ziemlich
alles, was du tun musst. Und jetzt
wird die Erfahrung danach sinken, im Grunde wird dieser Block abgebaut. Seien Sie natürlich vorsichtig
, wenn Sie dies
auf Nicht-oder Blöcken tun. Also wenn ich das zum Beispiel auf
der Treppe machen würde
und natürlich den eigentlichen Block zurückbekommen würde. Ich meine, die Treppe
wäre eigentlich ziemlich schwer, aber lasst uns vielleicht eine andere
wählen. Das ist ein schlechtes Beispiel. Eigentlich, weißt du, jeder andere Block, der nur
ein Block ist, der
sagen wir die Planken, zum Beispiel, wenn ich das in unserem
Block machen würde und eine bestimmte Anzahl
von Erfahrungen dort
zurückgeben würde , kann
ich setze es einfach wieder hin, werde erfahrener, setze es wieder
auf, werde
erfahrener. Dies
sollte also definitiv nur für Blöcke
oder vier Blöcke verwendet werden ,
die sich nicht selbst fallen lassen. Das ist die allgemeine Idee. Aber weil das
alles ist, was wir zur Vollendung
tun müssen , schauen
wir mal, ob es funktioniert. Oder wir befinden uns wieder in Minecraft und lassen uns einfach einige der Befehle
ernten. Und wie du
siehst, los geht's. Ich bekomme tatsächlich
Erfahrung beim Abbau. Wie ich schon sagte, dieses
Beispiel ist natürlich ein bisschen nicht zu gut, natürlich in diesem Fall,
denn wenn wir tatsächlich das Kobalt
gerochen haben oder wir wieder erfahren
würden. Aber vielleicht ist das tatsächlich
etwas, das Sie hinzufügen möchten. Wer weiß es. Aber wie Sie sehen können, kann es so
einfach sein die benutzerdefinierten erfahrenen
Drops
hinzuzufügen Ihrem Kunden die benutzerdefinierten erfahrenen
Drops
hinzuzufügen ,
oder das ist es bereits für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast
etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung.
99. (zusätzliche Themen) Hinzufügen eines benutzerdefinierten Menübildschirms: Oder ich begrüße wieder zum
Futterkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten Menübildschirm
hinzufügen . Nun ist es sehr wichtig,
dass diese Vorlesung und die nächste Vorlesung
irgendwie Teil eins und Teil zwei sind. Weil
wir in der nächsten Vorlesung tatsächlich Konflikte zu Minecraft
hinzufügen werden. Und wenn Sie einen
benutzerdefinierten Menübildschirm hinzufügen, müssen
Sie ihn definitiv 1, 1000% konfigurierbar haben. Ansonsten wird
Ihr MOD grundsätzlich sofort von jedem
Map Pack auf die
schwarze Liste gesetzt. Denn offensichtlich hat ein
Markierpaket normalerweise eigenen Menübildschirm und
Sie möchten, dass dies konfigurierbar ist. Lassen Sie uns
das jedoch einfach durchgehen. Und
beginnen wir zuerst mit dem Menübildschirm. In dieser Vorlesung ersetzen wir
sozusagen die sich drehenden Bergseiten die sich drehenden Bergseiten im Menübildschirm unseren
eigenen
Menübildschirm, nur ein Bild. Und dafür
gehen wir in unser util-Paket rechten Maustaste auf neue Java-Klasse. Und das wird der Titelbildschirm des
Unternehmens sein. Da gehst du. Und ich werde hier den
gesamten Code kopieren, aber alles hier
steht Ihnen natürlich wieder im
GitHub-Repository zur Verfügung und
individuell genauso gut. Und wir schauen uns einfach
an, was das alles ist. Nummer eins, wir haben diesen
Begrüßungsbildschirm Ressourcenstandort ist genau unser benutzerdefinierter
Baumwollmenübildschirm, den wir dort
grundsätzlich gut aufzwingen
oder auf dem Menübildschirm zeichnen werden. Und dann haben wir auch einen
Ressourcenstandort für das Microsoft-Logo, da dieser gut gezeichnet werden
muss, irgendwie über dem Bildschirm. Es ist ein bisschen komisch, aber ich werde im Grunde in
der Render-Methode hier erklären. Also die Render-Methode, wir werden ein paar Dinge durchgehen. Zuallererst rufen
wir den Super
auf dem normalen Tidal-Bildschirm auf. Was dann passiert,
ist, dass sie
völlig normal sind Tidal Screen gezeichnet wird. Dann brauchen wir diese ganzzahlige
Breite und Höhe. Wir brauchen dies nur für
unseren benutzerdefinierten Titelbildschirm. Lassen Sie mich unseren
benutzerdefinierten Titelbildschirm zeichnen, grundsätzlich über dem
normalen Tidal-Bildschirm. Und dann
zeichnen wir auch das Microsoft-Logo. Das ist sehr wichtig. Dann
rendern wir hier einfach das Hauptmenü. Das ist nur von Forge, damit hier
alles funktioniert. Lass mich die Schnur zeichnen. Dies
ist die Urheberrechtszeichenfolge ganz unten rechts. Das ist sehr wichtig. Lösche das nicht. Das ist ziemlich
wichtig , dass dies
tatsächlich da sein muss. Ansonsten bin ich mir nicht 100% sicher,
aber Sie begehen möglicherweise eine Art Urheberrechtsbetrug,
wenn Sie dies nicht haben. Also sollten wir
das auf jeden Fall haben. Die Widgets hier sind
nur die Hintergründe für jede der Schaltflächen
im Hauptmenü. Wir können uns auch die Methode zum
Zeichnen des benutzerdefinierten Titels ansehen . Man sieht also, dass es wirklich
nicht so verrückt ist. Wir
aktivieren im Grunde nur eine Textureinstellung, die genau wie ein
bisschen Aktivierung von Sachen ist. Und wir setzen hier die
tatsächliche Textur auf den Begrüßungsbildschirm und zeichnen sie
dann. Das Blut zeichnet also im Grunde diese Textur, die wir
in das Render-System gesetzt haben. Und danach zeichnen
wir dann das Minecraft-Logo. Indem wir also die Textur
auf das Microsoft-Logo setzen, wir im nächsten Bleichmittel zeichnen
wir im nächsten Bleichmittel
grundsätzlich
die Mikroflora. Das ist die allgemeine Idee. Und das ist nur Code aus
der normalen
Tidal-Screen-Klasse selbst. Deswegen ist das nichts
allzu verrückt. Das ist so ziemlich
alles, was es dazu gibt. Ehrlich gesagt sollte es wirklich nicht so verrückt nach Dingen
geben. Wenn du einen völlig
wahnsinnig benutzerdefinierten Titelbildschirm mit völlig
verrückten Sachen willst, dann musst du nur einige
dieser Dinge
durcharbeiten. Normalerweise wollen die meisten
Leute nur das Hintergrundbild
ersetzen ,
und genau das werden
wir hier zeigen. Jetzt geht dies in
die Textur-GUI, Hintergrundmenü oder
im Hintergrundordner. Und dann wird es Copan Menu Dot Re Pack
genannt. Und
genau das werden wir das
tatsächlich in
der GUI bekommen und dann mit der rechten Maustaste neues Verzeichnis namens background klicken. Dann
kopiere ich einfach das Bild, das dir natürlich
auch zur Verfügung steht wenn
du das ausprobieren willst. Und wir werden nicht
verderben, wie es aussieht, nur nicht jetzt, aber es wird
wirklich verdammt cool aussehen. Das könnte ich dir sagen. Was machen wir danach? Nun, wir müssen
diesen Titelbildschirm jetzt irgendwie einstellen und wir werden das in der Event-Klasse
machen. In der Mode-Ereignis-Klasse werden
wir also eine Methode kopieren , die sehr,
sehr einfach ist. Das ist auch nicht zu verrückt, aber es steht Ihnen natürlich
auch zur Verfügung. Wir werden das Ereignis zum
Öffnen des Bildschirms verwenden, wie Sie sehen können. Und wir werden prüfen, ob der Bildschirm, den wir
gerade öffnen möchten,
der Titelbildschirm ist und es noch nicht unser
Kontotitelbildschirm ist. Dann ersetzen wir
es einfach oder wir erstellen einen neuen Titelbildschirm aus Baumwolle
und senden ihn an ihn. Das ist so ziemlich
alles, was es dazu gibt. Dies ist der gesamte
Code, den wir brauchen. Das ist vielleicht
etwas komplizierter, aber insgesamt hoffentlich
irgendwie verständlich, was hier in einer
Art allgemeiner Übersicht
passiert. Und dann sollte diese Methode und dieses eigentliche Ereignis sehr einfach
sein. Das ist nichts Verrücktes. Und ja, das ist so
ziemlich genau das, was wir für diese
Vorlesung hier
brauchen. Also schätze ich mal
sehen, ob es funktioniert. Aber die Sonne ist
natürlich wichtig, um zu
sehen, wie Minecraft anfängt. Mal sehen, ob unser Bildschirm für benutzerdefinierte
Kacheln funktioniert. Ich bin sehr zuversichtlich
, dass dies der Fall sein wird. Und da sind wir, der benutzerdefinierte
Titelbildschirm funktioniert genau so, wie Sie es erwarten
würden. Wir haben immer noch den
Copyright-Hinweis. Wir haben sogar das Schmiedekram
in der unteren linken Ecke. Wir haben das Minecraft, im Grunde alles hier, was genau das ist, was du willst. Alle Knöpfe
funktionieren immer noch völlig gut. Also funktioniert alles fantastisch. Und ich werde
nichts über irgendetwas sagen, aber das könnte
nur ein bisschen ein Sneak Peek Spoiler sein, was früher kommen könnte. Aber wie auch immer, das ist wirklich
cool und ich mag das Hintergrundbild, das von deiner Reihe gemacht
wurde. Die, es wird natürlich auch in der
Credits Datei verknüpft
sein. Das ist also echt
verdammt genial. Aber so einfach ist es,
den benutzerdefinierten
Titelschrei hinzuzufügen , wie gesagt,
dringend empfehlen, die nächste Vorlesung unmittelbar
danach anzusehen , um zu sehen, wie wir einige benutzerdefinierte unfixierte
hinzufügen können. Weil es unglaublich wichtig
ist, den Konflikt hinzuzufügen,
um dies gut zu machen, im Grunde konfigurierbar. Ich kann das einfach nicht
übertreiben. Bitte füge den Konflikt hier hinzu. Ansonsten ist es
im Grunde genommen, dass dein Marr niemals
von irgendeiner Marke benutzt wird. Aber was auch immer der
Fall sein mag, das ist es für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Wenn Sie dies getan haben,
schätzen Sie eine Bewertung von Ihnen sehr. Ansonsten sehe ich
dich in der nächsten Vorlesung.
100. (zusätzliche Themen) Grundlegende benutzerdefinierte: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in diesem Vortrag werden
wir Minecraft
benutzerdefinierte Konflikte hinzufügen . Dies ist nicht nur ein
sehr wichtiges Thema für den Bildschirm oder den
benutzerdefinierten Titelbildschirm
, den wir
in der letzten Vorlesung implementiert haben. Es ist aber auch ein
sehr wichtiges und auch sehr nachgefragtes Thema. Zunächst müssen
wir also über zwei Dinge
nachdenken, müssen
wir also über zwei Dinge
nachdenken üblichen Konflikte
und die Klientenkonflikte. Es gibt auch Serverkonflikte, aber vorerst werden wir uns jedoch
Sorgen um den häufigen und den Clientkonflikt machen, wenn wir über unseren
benutzerdefinierten Titelbildschirm nachdenken, wo existiert das da dies sowohl auf dem
Server als auch auf dem Client
oder nur auf dem Client
existiert . Die offensichtliche
Antwort lautet natürlich, dass dies
nur für den Kunden existiert. Für diejenigen, die es gesagt haben, ist es
natürlich nur
auf den Kunden. Das ist sehr gut für
diejenigen , die gesagt haben,
naja, es ist bei beiden. Nun, lasst uns darüber nachdenken. Ist der Server, wenn
wir einen Server betreiben, kümmert sich
der Server um den Menübildschirm für
Mehrspieler-Optionen für Einzelspieler. Jetzt tut es das natürlich nicht. Wir können
dies sogar sehen, wenn wir hier mit der mittleren Maustaste auf
den Titelbildschirm klicken, wir können sehen, dass dies
nur in diesem Client ist. Dies bedeutet, dass
diese Klasse grundsätzlich nur im
Client-Thread ausgeführt wird, nirgendwo sonst. Um also unseren benutzerdefinierten
Titelbildschirm im Grunde ein- oder auszuschalten , müssen
wir Clientkonflikte
implementieren. Und dann zeige ich auch ein oder zwei Beispiele für
einige häufige Konflikte. Das wären
Konflikte, die sowohl für den Client als auch für den Server gelten. In diesem Fall ist es eine interessante
Sache, da manchmal die häufigen Konflikte
im Grunde sowohl
für den Client
als auch für den Server gelten . Und dann gibt es auch
nur Serverkonflikte. Aber wir
lassen diese vorerst aus , nachdem wir
gesehen haben , wie Sie
den Kunden und die
häufigen Konflikte addieren können . Es kann im Grunde auch die
Serverkonflikte hinzufügen. Bitte beachten Sie auch, dass Sie es nicht konfigurieren können oder nicht jeden einzelnen
bestimmten Code
konfigurierbar machen . Zum Beispiel sind einige
der Dinge, die nicht wirklich so einfach
konfigurierbar sind, zum Beispiel die Haltbarkeit der Dowsing Rute
hier. Als Beispiel können Sie
sich vorstellen, warum wir dies
einfach durch eine konfigurierbare Nummer ersetzen können
, die nicht ganz funktioniert. Es kann also
einige Problemumgehungen geben, aber normalerweise, wenn Sie
Sachen registrieren, zeichnen wir gerade
die Registrierungsmethode auf. Überall wo du etwas
registrierst. Normalerweise möchten
Sie diese Zahlen nicht ändern. Es ist sehr schwer zu
sagen , wo man es kann
und was nicht. Ich kann es nur wärmstens empfehlen, wenn Sie dort
wirklich ein paar Sachen
ausprobieren möchten, probieren Sie es aus und sehen Sie, ob es funktioniert
oder nicht. Weil sie
manchmal nicht übereinstimmen vom Server und
dem Client, wenn
der Client einen anderen,
anderen Konflikt
als der Server hat . Und deshalb könnte
das ein bisschen komisch werden. Also behalte das einfach im Hinterkopf. Sie können nicht unbedingt
alles in unserem
MC-Kurspaket konfigurieren . Wir klicken mit der rechten Maustaste auf ein
neues Paket namens Konfliktpaket. Und dann kopiere
ich tatsächlich zwei der Klassen
, die wir brauchen werden. Und ich werde
tatsächlich den gesamten
Code durchgehen , der
Ihnen
natürlich im GitHub-Repository
in einer Einzelperson zur Verfügung steht Ihnen
natürlich im GitHub-Repository . Also überhaupt keine Sorgen. Und das ist auch nicht so verrückt. Beginnen wir mit den
Klientenkonflikten gleich hier. Wir können sehen, dass
Sie
einen Konfliktspezifikationsgenerator benötigen , der nur
dem neuen Builder
entspricht. Und dann diese
Konfliktspezifikation genau hier. Und dann können Sie sehen
, dass Sie im Grunde genommen alle unsere
statischen Konfigurationswerte
sind . Sie können sehen, dass
es sich um ein Generikum handelt,
also werden
wir im
Grunde nur eine
andere, andere Datentypen eingeben, die in
diesen Fällen konfiguriert oder
konfiguriert werden möchten. Und dann können Sie in diesem
statischen Block genau hier sehen, nur einen Builder zum Push zu haben, Es ist genau das, was oben auf
der Konfliktdatei geschrieben ist. Und dann wird dies vor allem ein Gemeinsames sehen. Dies ist also, ob der
Standardtitelbildschirm ersetzt wird
oder nicht . Und dann werden wir
das definieren. Dies ist sozusagen nur
der Name der Variablen, und dies ist in diesem Fall der
Standardwert. Und wenn man sich die
häufigen Konflikte hier ansieht, kann
man sehen,
dass wir hier die
Adern pro Stück und
die Venengröße des Kobalts
konfigurierbar machen die
Adern pro Stück und
die Venengröße des Kobalts
konfigurierbar werden. Oder das ist sehr interessant
, denn dies ist auch etwas, das manchmal konfigurierbar sein
könnte. Oder Sie möchten
, dass dies konfigurierbar ist, was sehr interessant
ist. Was wir also
tun werden, ist zunächst, dass
wir
die Kundenkonflikte nutzen werden, aber wir müssen diese natürlich
auch registrieren. Wie registrieren wir diese
in unserer MC-Kurse-Mod-Klasse, wir müssen
sie eigentlich nur zu Dingen hinzufügen. Und das wird danach sein. Was wir tun werden,
ist, dass wir sagen werden,
dass der Mod auf Text Dot
geladen wird, holen diese Register-Konfiguration. Wir werden
Motorkonfigurationsdaten sagen. Man kann Typen schon dort sehen. Wir wählen den
Clienttyp für den ersten aus. Wir sagen „MC“. Der Kunde kollidiert diese Spezifikation. Und dann wird der Dateiname
hier einfach sein, es sollte deine
MOD-ID sein, Dash-Client. Und dann sehr
wichtig, dass Tamil, das muss eine Dot-HTML-Datei sein. Sonst
wird es nicht funktionieren. Dann können wir dies duplizieren,
indem wir Control D drücken und ich werde das hier
in das gemeinsame ändern. Und dann
ändern wir das in
den MC-Kurs, gemeinsame Konflikte. Und dann sehr wichtig, dass
wir diesen Namen auch ändern. Sie können jetzt sehen, dass wir beide, naja,
fest registriert
haben , und
das ist eigentlich alles, was wir tun
müssen, um
diese Konflikte zu registrieren. Das ist also alles, was es dazu gibt. Wie benutzen wir sie jetzt? Nun, es ist
ziemlich einfach. Wir haben dieses Feld genau hier. Lasst uns also auf unseren Code eingehen. Eigentlich ist es nicht der
Spaltentitelbildschirm. Wir wollten
dies in der MOD-Ereignisklasse
genau hier in dieser if-Anweisung tun ,
wir wollten im Grunde genommen
MC-Kurs-Clientkonflikte sagen, diesen benutzerdefinierten
Titelbild-Punkt bekommen. Und dann wird es das beenden. Das muss also stimmen, und all dies
muss auch wahr sein. Und dann wird unser
Titelbildschirm nur zur Fertigstellung
ausgetauscht, lass uns auch sofort die Ader für Kofferraumzeug
benutzen. Das wird also auf der Welt
sein. Der erste wird an dem Ort sein, an dem sie vor ihnen stehen. Das werden die
Adern pro Stamm sein. Das wird also MC-Kurs sein, gemeinsame Konflikte Punkt
Paines pro Chunk-Punkt bekommen. Lasst uns einfach lesen. Ja, das ist in Ordnung. Und dann sollte
der andere in
den konfigurierten Funktionen enthalten sein . Das wird also der sein,
dieser hier. Dies ist die Adergröße
dafür wäre der MC-Kurs gemeinsame Konflikte
Venengröße, die bekommt Was wir tatsächlich tun werden ist, dass wir dies
einmal laufen lassen , damit die
Dateien hier generieren, dann werden die eigentlichen festen Dateien regeneriert und dann werden
wir die
darin enthaltenen Werte
ändern. Aber lasst uns das einfach einmal ausführen
und sehen wir uns dann an, wie die
Konfliktdateien generiert werden. Zuallererst können Sie
sehen, dass Minecraft
geladen wurde und der Titelbildschirm immer noch da
ist, da
der Standardwert hier natürlich wahr war. Und am wichtigsten ist, dass
wir jetzt die Konfigurationsdateien
generiert haben . Sie befinden sich unter der
R1-Ordnerkonfig und los geht's. Mc Kurs Kunde und
MC-Kurs üblich. Wenn wir sie öffnen, können Sie sehen, dass wir im Grunde
genau das verstehen. Sie sehen Konflikte
für MC Core Smart
und dann, ob der
Standardtitelbildschirm ersetzt wird. Wir ändern dies
jetzt in „false“ und speichern es. Und dann hier, lass uns einfach, lass uns einfach absolut
verrückt werden, nur
damit wir das haben. Also lass uns gehen. Im Moment werden wir also nur viele Adern pro Stück
machen, viele Adern groß, nur damit wir tatsächlich
sehen können, dass dies
funktionieren wird und das die Weltgeneration
beeinflussen wird. Und ja, das ist
so ziemlich alles, was wir tun
müssen, um
die Konflikte zu ändern. Diese stehen dann natürlich
auch den Benutzern und den Spielern zur Verfügung ,
und dann können sie sie ändern, wie sie wollen. Sie also auf jeden Fall sicher, dass Sie hier richtige Kommentare
haben. Es wird
diesen hier geben. Wie Sie sehen können,
wurde dies dort als Kommentar geschrieben. Das ist also so ziemlich
alles, was du tun musst. Nachdem wir
die Konflikte geändert haben, schauen wir uns
zum Beispiel an, ob sich zuerst
der Titelbildschirm geändert hat und dann auch die
Weltgeneration. Okay, wie Sie die Nummer eins sehen
können, der eigentliche Titelbildschirm hat sich
der eigentliche Titelbildschirm wieder auf den
normalen Tidal-Bildschirm geändert. Aber das ist sehr interessant. Lasst uns jetzt tatsächlich
eine neue Welt generieren und
sehen , ob dann in
der Stunde der Welterzeugung Kobalt oder alles in einer Weise mehr
Formen als zuvor
dargestellt wird. Oder wenn Antworten in Minecraft sind. Und wie Sie sehen können, musste
ich nicht sehr weit hinuntergehen, um eine Fülle
von oder, richtig zu finden. Sie können sehen, dass nicht nur
die eigentlichen Adern massiv sind, es gibt viele von ihnen. Wie Sie sehen können,
sind dies zwei verschiedene Adern, drei verschiedene Venen wie
nebeneinander. Und dann sieht man, dass es
einfach weiter geht. Ich kann tatsächlich wieder in den
Zuschauermodus wechseln. Und du wirst sehen, dass es
viele dieser Adern gibt. Sie können also klar erkennen
, dass dies zwar
definitiv nicht etwas ist , das Sie unbedingt haben möchten, aber definitiv
konfigurierbar ist. Und das ist so ziemlich
genau das, was wir von diesen oder
Konflikten
erwarten würden . Das ist also echt cool. Aber es gibt eine andere Methode, die wir möglicherweise
aufrufen können, und die in einer
definierten
Liste definiert ist , aber den definierenden Bereich definiert ist
, der auch ziemlich
interessant ist. Dieser hier macht
also im Grunde folgendes. Sie können auch einen
Mindest- und einen Maximalwert definieren. Dies könnte also auch
sehr interessant und
wichtig für Sie sein , um
im Grunde zu sagen, wissen Sie, vielleicht sollte die Anzahl der
Venen pro Stamm und die Venengröße in bestimmten Werten
beibehalten werden. Oder vielleicht könnten
einige Werte, die Sie
konfigurierbar machen wollten tatsächlich gebrochen sein, wenn sie
nicht zwischen bestimmten Zahlen liegen . Denken Sie also auch daran, dass Sie das auch tun können. Aber vorerst werden
wir das undefiniert halten. Ich wollte dir das nur zeigen. Ich kann auch immer jedes Mal
mögen, rate dir
einfach, damit ein bisschen herumzuspielen. Sehen Sie, was Sie
im Grunde ändern können, welche Arten von Dingen
funktionieren könnten und welche nicht. Es gibt also viele
Dinge, die funktionieren
könnten und vielleicht nicht. Behalte das also im Hinterkopf. Ansonsten
können Sie Minecraft auf diese Weise so
ziemlich benutzerdefinierte
Konflikte hinzufügen. Und am wichtigsten ist,
wie Sie es
konfigurieren oder in Konflikt geraten können , einen Konflikt für Ihren
benutzerdefinierten Titelbildschirm auslösen, da dies
äußerst wichtig ist. Wenn Sie einen
benutzerdefinierten Titelbildschirm haben , erstellen Sie es, damit
Sie ihn ausschalten können da Sie
sonst nie für
NMR-Pegs verwendet werden , die jemals
unglaublich wichtig sind. Also behalte das bitte im Hinterkopf. Ansonsten wird
dies für diese Vorlesung genau hier sein . Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Wenn Sie es sehr getan haben,
schätzen Sie die Rezension von Ihnen sehr. Ansonsten sehe ich dich
in der nächsten Vorlesung.
101. (zusätzliche Themen) Transparente Blöcke hinzufügen: Oder ich begrüße wieder zum
Schmiedekurs für 180. Und in diesem Vortrag werden
wir Minecraft
einen transparenten Block
hinzufügen , diesem Handel nach populärer
Nachfrage, da einige Leute Probleme hatten , Minecraft
einen transparenten Block
hinzuzufügen . Es ist jedoch
nicht so verrückt, wenn Sie
die zwei oder drei
sehr wichtigen Optimierungen kennen die zwei oder drei , die Sie tun müssen. In unserer Modusblock-Klasse werden
wir hier einfach ganz
unten gehen. Ich kopiere
nur die Probenahme. Jetzt gibt es ein paar Dinge, die
wir hier ändern müssen. Das wird
das Winterfenster genannt. Und das ist natürlich auch das Winterfenster. Also zuerst in eine
ganz normale Masse hier, und dann wird
dies ein Glasblock sein. Dies ist sehr wichtig, dass
es sich um einen Glasblock handelt. Dies erfordert nur die tatsächlichen
Eigenschaften des Blockverhaltens genau hier. Und was wir dann
tun werden, ist, dass wir
auch
aus dem Glasblock von den Grundstücken kopieren . Man geht in den Glasblock, mittlere Maustaste
und klickt dann erneut mit der mittleren Maustaste auf den
abstrakten Glasblock. Wir können sehen, dass
die Nummer eins, was wir brauchen, ist
das breitete Oberlicht nach unten und auch die Formhelligkeit.
Wir bekommen eine visuelle Gestalt. Ich bin mir nicht wirklich 100% sicher,
was das notwendigerweise Abenddämmerung ist. Ich weiß nur, dass alle von ihnen im Grunde wichtig
sind , um eine
transparente Blockarbeit zu haben. Deshalb werden wir
einfach den Glasblock benutzen. Dies ist im Grunde
auch ein Glasblock, also keine Sorgen. Was wir nun auch in unserem MC
für Smart Class
im Setup des Kunden benötigen , kopieren
wir hier nur die Renderebene. Und das wird die Renderschicht des
Winterfensters und dieses Mal durchscheinend. Es wird also dieselbe Renderschicht
wie die Honigblockflüssigkeit haben , die
natürlich auch durchscheinend ist. Das ist sehr wichtig, sonst wird es
eigentlich nicht funktionieren. Und dann natürlich
alle Aktien
wie nur der Block
States Jason hier. Nur eine normale Walk-Bühne Jason, genauso wie die Übersetzung. All das ist
so ziemlich nur Standard. Der einzige Unterschied
hier ist
natürlich, sobald
wir dies hinzugefügt haben, das Winterfenster hier, die Modelldateien,
das gleiche Zeug, also sind es nur normale Modelldateien. Wir könnten auch einfach
die anderen normalen Modelldateien kopieren die anderen normalen Modelldateien und sehen, dass dies auf eine Textur
hinweist. Und dann so ziemlich
mit der Artikelmodelldatei. Und diese sind natürlich auch verfügbar, wenn Sie sie kopieren
möchten. Aber wie Sie sehen können,
gibt es normale Dateien, nichts Verrücktes daran. So ziemlich die einfachste
Varianz dieser Dateien. Und was ist dann
natürlich wichtig für die Textur, die ich auch kopieren
werde. Und du wirst
das sehen, genau hier. Also alle inneren Blöcke, das sind
diejenigen, die
einen Alphawert haben , der
ein wenig transparent ist. Dies ist natürlich sehr
wichtig, dass wenn Sie
ein PNG haben , das Sie verwenden möchten und einige Ihrer tatsächlichen Pixel Alpha-Werte
haben müssen
, die Sie durchschauen können. Ansonsten funktioniert
es natürlich nicht ganz. Andernfalls wird die Durchsichtigkeit
nicht richtig funktionieren. Behalte das also im Hinterkopf. Aber sonst ist das
eigentlich alles, was wir
tun müssen , wenn wir alles durchmachen müssen. Das
Wichtigste ist das Durchscheinende. So haben wir Alpha-Werte
in unserer eigentlichen PNG-Datei. Und dann auch, dass wir
den Glasblock benutzen , was sehr wichtig
ist. Ich schätze, um der Vollendung
willen zu sehen, mal sehen, ob es funktioniert. Ordnung, Wir sind finanziell in Minecraft und wie Sie sehen können, wurde
das Winterfenster erfolgreich dem Spiel hinzugefügt. Und wie Sie auch sehen können, kann
ich es mir ansehen. Keine Sorge, obwohl
alles nur gut funktioniert. Ich meine, so
einfach ist es,
einen benutzerdefinierten transparenten
Block Minecraft-Marke hinzuzufügen einen benutzerdefinierten transparenten
Block Minecraft-Marke , der bereits für
diese Vorlesung genau hier ist. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
der nächsten Vorlesung.
102. (zusätzliche Themen) Animierte Elemente hinzufügen: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
einen animierten Gegenstand hinzufügen . Das könnte also so sein, Wow, das ist eine wirklich coole Sache. Und es könnte sein, könnte man sagen, nun, das wird
wahrscheinlich sehr kompliziert sein. Es ist eigentlich
ziemlich einfach. Aber wir werden in dieser Vorlesung ein
benutzerdefiniertes animiertes Element sehen . Und dann zeige ich dir ein Vanille-Beispiel für
einen animierten Block. Und wenn Sie im Grunde einen
animierten Block wünschen, kann ich dringend
empfehlen, einen
Blick auf dieses Vanille-Beispiel zu werfen. In der Mod-Items Klasse fügen
wir ein neues Element hinzu. Also lasst uns einfach den
Kobaltball hier kopieren. Und das wird
der magische Unterstrich Staub sein. Und dann gleich hier
in den Namen. Dies wird der
magische Unterstrich Staub sein. Und das wird
interessanterweise ein
normaler Gegenstand sein . Und wir werden es einfach so
machen, dass es hier
grundsätzlich keine anderen
Artikeleigenschaften hat . Wir werden nur
den normalen Artikel haben ,
komplett Vanille. Daran ist nichts Verrücktes. Und lasst uns
die Übersetzung tatsächlich hinzufügen , bevor
wir
in die eigentliche andere Dinge eingehen . Also das andere
Elementmodell benachbarte Dateien. Es wird
also die Magie des
Staubs geben und das wird auch der magische Staub
sein. Nun, vielleicht sagen Sie: Nun, das wird wahrscheinlich
eine verrückte komplizierte Abfrage sein ,
ist eine komplizierte Item-Modell-Jason-Datei hier. Kopieren wir es einfach rüber. Natürlich
steht Ihnen alles im GitHub Repository genauso gut im
Einzelnen zur Verfügung. Und Sie können sehen, dass es sich eine völlig normale
JSON-Datei für das Artikelmodell handelt. Oder du wirst so sein,
warte, wo ist es? Wo ist die Animation? Animation ist alles in der Textur sowie in der
MC-Metadatei. Aha. Wir werden diese kopieren, die natürlich
auch verfügbar sind. Und dann sieht man
, dass wir die Nummer eins haben, die tatsächliche Textur
sowie eine MSE-Metadatei. Und wenn wir uns die Textur
ansehen, handelt es sich tatsächlich um mehrere
verschiedene Texturen. Sie können also sehen, dass es sich tatsächlich um
sechs verschiedene Texturen
handelt , nun, es ist das gleiche Element. Am Ende kommen Sie
im Grunde 16 Mal heraus, aber viele Texturen Sie haben mal 16. Das ist also die Idee. Es ist also 16 von, in diesem Fall ist
96 eine Größe,
und die MC-Metadatei bestimmt, wie Sie das
tatsächlich durchmachen. Sie können sehen, dass dies eine Animation
ist. Kann die Rahmenzeit ändern, um
im Grunde zu ändern, wie
schnell die Animation ist. Und dann
kann man hier grundsätzlich sagen , welche Rahmen in welcher Reihenfolge verlegt
werden. Interpolation
bedeutet einfach, dass, wenn ein Frame zu einem anderen
wechselt , die Änderung diskret sein wird. Also wird es sich von
einem Bild ändern und
dann im nächsten, sagen
wir zweitens,
siehe anderes Bild. Wo wird es durch sie
übergehen? Das ist in diesem Fall die allgemeine Idee der
Interpolation. Aber so einfach
ist es , ein animiertes Element hinzuzufügen. Und dann wird das sofort
animiert,
solange Sie die
MC Mehta-Datei hier haben. Was sehr wichtig
ist, ist, dass diese MC-Metapher genau so geschrieben werden
muss, einschließlich des Punktes PNG hier. Bitte vergewissern Sie sich, dass dies
korrekt geschrieben ist. Und wie die doppelte und
dreifache Checkliste ist
es unglaublich
wichtig, dass dies der gleiche Name wie
die Texturdatei ist, einschließlich des
Endpunkts MC Mehta. Bitte überprüfe das. Wenn es um das Buch geht, können
wir natürlich noch
einmal zu den externen
Bibliotheken gehen, um den Kunden extra 1801 oder was auch immer Ihre
Version sein mag, Assets, Minecraft,
Texturen, Bullock. Und dann ist eine Sache, die man
sich ansehen sollte, der Magma-Block. Dieser hat also auch eine MC Mehta-Datei und Sie
können sehen,
dass es
tatsächlich drei
verschiedene Texturen gibt tatsächlich drei
verschiedene Texturen , die ID durchläuft. Das
durchläuft, wie Sie hier sehen können, mit der Framezeit von acht mit der Framezeit von acht alle drei
dieser Frames und ändert
dann auch hier die
Textur,
genau wie das andere Portal. Sie können also sehen, dass das
untere Portal tatsächlich viele verschiedene
Texturen
hat, wie Sie sehen können, es geht durch, Nun, ich meine, es
geht anscheinend alles durch. Ich bin mir nicht 100% sicher, wie die
Animation hier leer ist. Ich bin mir nicht ganz sicher,
wie das funktioniert, aber das ist auch
ein anderes Beispiel. Ich persönlich empfehle
das Magma-Beispiel. Und ich glaube, dass es so
ziemlich alles wie
wirklich verrückte Beispiele , die den Befehlsblock wiederholen. Aber es gibt noch ein paar Dinge
hier. Aber der Makroblock
ist wahrscheinlich
am einfachsten zu folgen und sollte es sein. Ich meine,
es ist ziemlich vernünftig, ziemlich einfach,
alles in Betracht gezogen. Es ist ziemlich
genau das Gleiche wie das für den magischen Staub. Aber ja, das ist so ziemlich alles, was wir uns ansehen wollen
. Und jetzt schätze ich, um Vollendung willen, mal
sehen, ob es funktioniert. Oder wir befinden uns
in Minecraft. Wir werden also sehen, dass
der magische Staub erfolgreich zum Spiel
hinzugefügt
wurde. Und wie Sie sehen können, während
ich es in der Hand halte, wählen
wir es einfach aus
Southern haben nur einen. Man sieht, dass
es langsam aber
sicher animiert ist und ich kann es
sogar auf den Boden werfen. Und Sie können sehen
, dass selbst sie es sind, die tatsächliche Textur auch animiert
ist. So einfach ist es also. Und wie gesagt, können Sie die
Geschwindigkeit der Animation
grundsätzlich ändern indem Sie die Framezeit
innerhalb der MC Mehta-Datei ändern. So einfach kann es sein. Das ist schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
der nächsten Vorlesung.
103. (zusätzliche Themen) Benutzerdefinierte Effekte hinzufügen: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung
werden wir uns
ansehen, wie Sie Minecraft einen benutzerdefinierten
Effekt hinzufügen
können. Jetzt kommt das Hinzufügen
des Kundeneffekts
tatsächlich gut, mehr oder weniger, dank eines Schülers, der seinen eigenen Effekt
hinzugefügt hat. Und ich habe
ihre Wirkung irgendwie kooptiert und
einen Vortrag daraus gehalten. Sie wissen also natürlich sehr, an wen
Sie denken. Und es ist ein Freeze-Effekt. Es ist eigentlich
wirklich interessant. Es wird also
eine Entität einfrieren. Und wir werden nur sehen
, wie das funktioniert. Es ist tatsächlich
einfacher, als Sie vielleicht in unserem
MC-Kurspaket denken. Rechtsklick auf ein neues
Paket namens Effect Anstatt
dort
brauchen wir dann zwei neue Klassen. Einer von ihnen ist die
Modelleffektklasse. Und dann
wird der andere der Freeze-Effekt sein. In der Freeze-Effekt-Klasse befindet sich die
gesamte Funktionalität. Ich kopiere einfach
über die Klasse
wie immer natürlich
alles, was dir
im GitHub Repository zur Verfügung steht und
individuell genauso gut bereit? Hier sehen Sie also den
Freeze-Effekt in Aktion. Es ist ziemlich einfach. In allem haben wir die Methode „Apply
Effects“
überschrieben, die im Grunde jedes Häkchen genannt
wird wenn eine bestimmte Entität diese Wirkung darauf
hat. Und dann haben wir auch den
Dauer-Effekt-Tick. Stimmt, denn wenn wir diese Weile
nicht haben, wäre das im Grunde nie kalt. Das brauchen wir also. Hier. Sie können im Grunde sehen
, dass alle prüfen
, ob wir auf dem Server
sind oder nicht . Wenn dies der Fall ist, nehmen wir
die XYZ-Koordinaten
dieser bestimmten Entität, die
sich auf die Sterblichkeit auswirkt, melden die Entität an sie und setzen auch die
Delta-Bewegung auf 0. Dies wird also grundsätzlich für
den Spieler benötigt, und dies wird grundsätzlich für Tiere oder jeden NPC benötigt. Also jede Nicht-Spieler-Entität, einfach weil
die Delta-Bewegung das eigentliche Tier im Grunde bewegt und sich teleportiert, tut
es nicht nur die oberste
Reihe zwei
funktioniert nicht. Das sind also die beiden
Dinge, die wir brauchen. Und wenn wir diese beiden hinzufügen, wird der eigentliche Mob oder in diesem Fall die Entität oder der Spieler
an Ort und Stelle einfrieren. Wirklich verdammt cool,
wie eine wirklich coole Idee. Und es gefällt mir sehr. Wie können wir dann im Grunde genommen die Frage, wie registrieren
wir es? Nun, das hast du schon mal gesehen. Öffentliches statisches Finale,
was brauchen wir? Natürlich ein verzögertes Register, diesmal ein Mob-Effekt. Dies wird als
MLB-Unterstricheneffekte bezeichnet. Und das ist natürlich gleich einem
anderen Register, das
Register-Punkt-MLB-Effekte erzeugt. Und dann natürlich unser MC Core, smart aber nicht ID. Und wie jedes Mal, wie wir ein drittes
Register gesehen haben, was brauchen wir? Wir brauchen eine öffentliche statische
Void- oder
Register-Methode mit einem
Eye-Ereignisbus, einem ganzen Ereignisbus. Und dann rufen wir
die MLB-Effekte auf oder registrieren uns und fahren
im Event-Bus vorbei. Nichts zu Neues hier. Dies ist so ziemlich wie jedes Mal, wenn wir
die Auswirkungen hier gesehen haben. Und dann wird das natürlich noch einmal
heißen, genau hier. Also blasen Sie einfach unsere Mod-Rezepte aus. Wir werden Mob-Effekte sagen, die sich registrieren und dann
im Event-Bus vorbeifahren. Und los geht's,
Alles ist registriert. Brauche hier nur ein
Registrierungsobjekt. Wir werden also öffentliches
statisches, endgültiges Registrierungsobjekt sagen. Natürlich der Art des Mob-Effekts. In diesem Fall wird es
gekühlt Freeze und ist gleich dem
Mob-Effekt beginnt
den Namen Freeze hier zu registrieren. Und dann brauchen wir einen Lieferanten für einen
neuen Freeze-Effekt. Wie Sie sehen können, mob
Effects Kategorie schädlich. Und dann einfach
im Grunde eine beliebige Zahl. Dies ist, glaube ich,
eine eindeutige Kennung. Sieh dir das mal an. Das ist eigentlich
das ist die Farbe. Da gehst du. Das ist die Farbe. Das ist es. Aber das ist die
Farbe von, glaube ich, der Teil, der damit verbunden
wäre. Jetzt werden wir den
Teil dieser Vorlesung nicht hinzufügen. Wir werden den Teil
tatsächlich
in der nächsten Vorlesung hinzufügen . Aber nachdem Sie dies hinzugefügt haben, ist
der Freeze-Effekt
tatsächlich im Spiel. Das ist alles, was wir tun
müssen, um dies hinzuzufügen. Ich weiß, dass es ziemlich verrückt ist, aber das ist alles, was wir tun müssen. Also schätze ich mal, ob es funktioniert oder wir uns
wieder in Minecraft befinden. Also mal sehen, lass uns mir den Effekt
geben. Lass uns dev gehen. Und dann können Sie sehen, dass dieser Freeze-Effekt
da ist, wenn Sie ihn nicht hinzufügen. Und jetzt kann ich mich nicht wirklich bewegen. Man sieht, dass es
irgendwie wackelnd ist. Und das habe ich in diesem Fall für
dreißig Sekunden hinzugefügt. Ich kann also nicht wirklich ein bisschen
hochfliegen, aber wenn ich versuche mich zu bewegen, sieht
man, dass es
sehr, sehr langsam ist. In diesem Fall. Ich weiß, wenn ich am
Boden bin und versuche mich zu bewegen, drücke
ich die W-Taste. Es funktioniert wie sehr, sehr langsam. Und selbst, weißt du, hier
herumzulaufen ist, kannst
du sehen, dass es definitiv
eiskalt ist , sich irgendwie an Ort und Stelle zu treffen. Jetzt kann ich immer noch Blöcke
brechen, die eine Augenbank haben, aber das funktioniert. Und Sie haben auch gesehen, dass die eigentliche Textur nicht da
war. Wir werden
diese Textur ebenfalls hinzufügen. Es ist eigentlich
ziemlich einfach, aber das ist ziemlich cool. Alles in Betracht gezogen. Die Textur geht in
den Texturordner. Und hier brauchen wir ein neues Verzeichnis namens Mob Underscore-Effekte. Und dann muss die tatsächliche
Textur den gleichen Namen haben wie der
Name hier. In den MLB-Effekten muss
dieser Name also dieser Name sein. Und jetzt wird
diese Textur anstelle einer nicht,
unscheinbaren Textur
angezeigt und nun, ich meine, es
wird im Grunde funktionieren. Nun, wie ich in
der nächsten Vorlesung sagte, werden
wir
sofort eine Portion
dafür hinzufügen , weil es in meinem Kopf
sinnvoll ist , eine Portion
zu haben. Das ist es, was man dann im Grunde auch benutzen
kann. Vorerst ist das
so ziemlich genau das Richtige für diese
Vorlesung hier. Ich hoffe, Sie fanden das nützlich
und gelb und das fällig. Und wir sehen uns in
der nächsten Vorlesung.
104. (zusätzliche Themen): Oder ich begrüße wieder zum
Futterkurs für 118. Und in diesem Vortrag werden
wir einen Kundentrank
hinzufügen, Minecraft einen Kundentrank
hinzufügen,
einschließlich eines benutzerdefinierten
Besenrezepts. Jetzt
ist die tatsächliche Portion sehr einfach hinzuzufügen. Das Braurezept ist
jedoch, naja, sagen
wir, es ist ein wenig rätselhaft warum es so funktioniert, aber keine Sorge, wir
werden das durchstehen. Nun, zuerst klicken Sie im MC-Kurspaket mit
der rechten Maustaste auf ein neues Paket
namens Portion. Und dann werden
wir drinnen eine neue
Java-Klasse Mod-Ozeane machen. Und das wird unheimlich
ähnlich
aussehen wie im Grunde viele andere Klassen, die
wir zuvor gesehen haben. ein öffentliches statisches endgültiges
verzögertes Register Dieses Mal ein öffentliches statisches endgültiges
verzögertes Register
des Typs Ozean. Und es wird natürlich
Teile sein, dem verzögerten Register entsprechen werden, das Register erstellt,
dunkle Ozeane gehen. Und natürlich MC, natürlich
mäßige oder milde ID. Und dann benötigen Sie wie immer
die öffentliche statische
Void-Register-Methode mit dem Auge
Ereignisbus, Ereignisbus. Und dann
machen wir Tränke ,
die sich beim Event-Bus
anmelden. Und dann nennen wir
das im MC-Kurskonstruktor genau hier, Mod Tränke, sie
registrieren sich vor und fahren dann
im Event-Bus vorbei. Und dann müssen
wir nur den Trank erschaffen. Es wird also natürlich ein öffentliches
statisches Registry-Objekt geben, vom Typ Ocean. Geh. Und das wird der
Friere-Unterstrich-Trank sein gleich Tränken
ist
, die sich registrieren. Dies ist der
Friese-Unterstrich-Zaubertrank, wieder der Name hier. Und dann erfordert dies einen
Lieferanten einer neuen Portion. Dies wird eine
neue Mob-Effekt-Instanz benötigen. Los geht's, von unseren Auswirkungen. Also mod Effects Dark Freeze, die wir
letzten Vortrag hinzugefügt haben. Ich mache nur zehn
Sekunden mit Lobbyismus. Grundsätzlich ist der Verstärker hier 0. Das wird also die
Anzahl der späteren Zeit in Tics sein, und das wird der Verstärker
sein. Also wenn wir hier eine 0 einsetzen, wird das eine Stufe eins
sein. Das wird auf Stufe eins
einfrieren. Und das ist eigentlich
alles, was wir
tun müssen, um den tatsächlichen Teil hinzuzufügen. Für das Braurezept werden
wir
tatsächlich eine neue Klasse machen. Das ist sehr interessant,
weil es tatsächlich
eine Klasse gibt , die als Braurezept bezeichnet
wird, glaube
ich ja, aus Mikroschmiede. Sie können also sehen, dass dies ein Braurezept
ist , das diese
Ich-ruinierte Rezept-Schnittstelle implementiert. Und das funktioniert und
wir können es benutzen. Was wirklich interessant
ist, ist,
dass für die Eingabe nicht wirklich
darauf
geachtet wird, was der eigentliche
Teil ist, den Sie ausdrücken
müssen,
aber Sie wissen, wie Sie einen bestimmten Teil
einsetzen können Zutat oben auf dem eigentlichen
Brauständer, und dann unten haben Sie drei Schlitze für
verschiedene Portionen. Und normalerweise
funktioniert es, da Sie dazu
einen peinlichen Trank benötigen dazu
einen peinlichen Trank und bestimmte andere
Beiträge dazu. Und bei der Verwendung dieses
Braurezepts spielt
es einfach keine Rolle, wie die Eingabe ist. Das tut es nicht, es wird nicht überprüft ob es sich um den tatsächlichen Teil
handelt oder nicht. Daher
ist diese Brauklasse ziemlich völlig nutzlos und
muss nicht verwendet werden. Jetzt habe ich eine Wand gefunden, eine Alternative, die ich als besseres
Braurezept
bezeichnet habe . Jetzt werden wir das
überschreiben. Dies ist eigentlich
im Util-Paket. Und das nicht genau das Gleiche, aber der Name ist anders. Die Klasse ist genau
die gleiche wie aus diesem
GitHub-Repository hier aus zusätzlichen Portionen dann durch Unfall. Dies steht also unter der
GPL Drei-Lizenz. Seien Sie sich dessen bewusst, wenn
Sie diese Klasse verwenden. sage nur, aber
insgesamt meine ich, es ist ziemlich viel, es gibt keine andere Möglichkeit, dies
wirklich zu tun , wenn ich darüber
nachdenke. Also habe ich das durchgemacht
und wir sagen, Okay, es wird immer
genauso aussehen. Und das ist einfach der beste
Weg, um diesen Kurs wirklich zu machen. Und dann können wir das besser nutzen,
um Rezeptkosten zu brauen. Um das Rezept tatsächlich hinzuzufügen, müssen
wir nur ein Rezept hinzufügen. Das
funktioniert also sofort für den Slash-Trank, den normalen Teil und
den anhaltenden Teil. Das ist also echt cool. Jetzt, wenn wir diese
Portionsrezepte in
der Setup-Methode in unserem
gemeinsamen FML-Setup hinzufügen . Wenn wir
das tun wollen, möchten Sie sagen Braurezeptregister, diese hier, fügen Sie Rezept hinzu. Und dann machen
wir einfach ein neues, besseres Braurezept. Da gehst du. Und dann haben
wir die Leidenschaft, welchen Teil wir wollen. Das wird also in diesem Fall peinlich
anfangen. Dann die eigentliche Zutat. Das wird also ein Gegenstand sein. Also werden wir noch mehr
Gegenstände sagen, als Kobaltbarren, sagen
wir, das wird
der Kobalt-Zorn sein , oder? Es gibt. Sie gehen, dot get und
dann Mod Portionen. Denn natürlich sollte
das tatsächliche Ergebnis oder die Ausgabe der Gefriertrank
sein. Und sie setzen jetzt peinliche Positionen
am Boden und einen
Kobaltbarren ein, da der
Gradient uns einen Gefriertrank bringen wird. Das ist alles, was wir tun müssen. So einfach ist es eigentlich. Für die Tränke müssen
wir auch
etwas Übersetzung hinzufügen. Das ist eigentlich sehr wichtig. Es gibt wenige Dinge
, die wir hinzufügen müssen. Zuallererst müssen wir diese drei hier
hinzufügen. So wird das sein,
Sie können sehen, dass dies
Portionseffekt-Gefriertrank,
Trank für den Spritzer und
die anhaltende Portion ist . Unglaublich wichtig. Dies ist tatsächlich unter
dem Minecraft-Namespace. Ich bin mir nicht 100% sicher,
warum das der Fall ist. Ich meine, ich bin mir zu 80% sicher,
warum das der Fall ist. Die Idee ist, dass wenn man tatsächlich eine Portion registriert, sozusagen einen neuen
Trank herstellt. Was dann passiert ist, dass
dies einfach zum hinzugefügt wird. Die tatsächliche
Portionsliste in Minecraft und dann ist diese unter dem Minecraft-Namespace
registriert. Ich bin mir nicht 100% sicher, ob das schlecht oder gut
ist. Ich meine, es könnte vorerst
eine schlechte Sache sein. Wir werden es so behalten. Wenn es in Zukunft
Konflikte gibt, werden
wir diese
auch lösen. Keine Sorge da. Aber das ist im Grunde
die Idee der Ozeane. Und jetzt brauchen wir auch den Effekt. Der Effekt sieht so aus. Wir werden das ganz unten hinzufügen. Dieser Effekt Punkt M
C Corps friert ein, und das ist nur Code Freeze. Dies sind die Übersetzung, die
unglaublich wichtig ist. Was ist nun auch für den Gegenstand
interessant, für die Trank Gegenstände, die Sie automatisch generiert haben. Und wir müssen
überhaupt nichts für sie tun. Das ist also so ziemlich
alles, was wir tun müssen. Die Farbe der eigentlichen Portion wird den
Mod-Effekten genau hier entnommen. Diese Farbe hier ist im Grunde genommen das
, was verwendet wird. Ich bin mir nicht hundertprozentig
sicher, was das ist. Es könnte nur eine Hexadezimalfarbe sein. Ich bin mir nicht sicher. Es könnte
auch etwas anderes sein, aber das wird gut. Das ist auch einfach nur
damit herumspielen. Wenn du willst. Einige andere Farben sind
vorerst, das ist
so ziemlich alles, was
wir für die Gewohnheit benötigen, sowohl den benutzerdefinierten Teil
als auch das Rezept hier, um hinzugefügt zu werden. Also schätze ich mal
sehen, ob es funktioniert. Oder wir befinden uns
in Minecraft. Also mal sehen, lass uns einfach die Aqua-Portionen und
dann einen Kobaltbarren
hinzufügen und
es sollte anfangen zu brauen. Und in der Tat tut es das,
es fängt an zu brauen. Und
sobald dies geschehen ist, sollten
die peinlichen Tränke
zu Gefrierportionen werden. Also lasst uns ein
paar Schafe besorgen , um zu sehen, ob sie am Ende
tatsächlich
gefroren werden
oder nicht . Mal sehen. Hier sind wir fast fertig und dann
haben wir ein paar Tränke. Lass uns gehen. Also haben wir
einen Gefriertrank und eine weitere Gefrierbewegung und einen anhaltenden
Gefrierteil. Also funktioniert alles
genau so, wie man es
für ein Schaf erwarten oder sich selbst umbringt. Das ist erstaunlich. Wow, das ist echt witzig. Mal sehen. Und da gehst du. Und dann sieht man,
dass sie sich nicht mehr bewegen können. Ich kann sie sogar treffen und
sie können sich nicht bewegen, weil der Freeze-Teil sie buchstäblich
einfriert. Wir können das
Gleiche auch für einige Zombies versuchen, was wirklich Spaß macht weil sie im Grunde versucht haben, dich
zu jagen und dann, oh, nun, ich meine, ich glaube, ich bin friedlich, also los geht's. Kopieren wir das und dann wechseln
wir
zum Überleben und dann
werde ich versuchen, sie zu holen. Und da gehst du. So hat
der kleine Baby-Zombie, wie Sie sehen können,
aufgehört, sich zu bewegen. Lassen Sie uns hier tatsächlich noch ein paar gefrierende Teile
spritzen. Nur damit du das noch einmal
zeigen kannst. Wieder einmal
werden wir einfach umschalten und ich werde sie
einfrieren. Einfrieren. Und friere auch ein. Oh
nein, ich bin selbst eingefroren. Das ist nicht gut. Wir können sehen, dass das natürlich
manchmal auch passieren kann, aber es ist wirklich verdammt cool. Und ja,
so einfach ist es eigentlich nicht nur benutzerdefinierte Portionen,
sondern auch benutzerdefinierte
Portionsrezepte
hinzuzufügen meinem Handwerk nicht nur benutzerdefinierte Portionen,
sondern auch benutzerdefinierte
Portionsrezepte
hinzuzufügen. Steht Ihnen natürlich immer die gesamten
Quartale im GitHub Repository
zur Verfügung oder auch eine Einzelperson
passt sich an. Aber das wird es für
diesen Vortrag genau hier sein. Ich hoffe, du hast das
nützlich gefunden und du wirst etwas Neues
lernen, wenn du es tätest, ich würde mich sehr über
eine Rezension von dir freuen. Ansonsten sehe ich
dich in der nächsten Vorlesung.
105. (zusätzliche Themen) Benutzerdefinierte Personen mit Geckolib: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung werden
wir dem Spiel
eine benutzerdefinierte Entität oder einen
benutzerdefinierten Mob hinzufügen . Dies wird der
Beginn einer, sagen wir, ein
paar
Vorlesungsteilreihe sein, in der wir unserer Entität
im Grunde mehr
Funktionalität hinzufügen werden. Wir werden
zuallererst eine normale Entität zum
Spiel
hinzufügen, eine normale Entität zum
Spiel
hinzufügen als
einige Animationen hinzuzufügen. In der nächsten
Vorlesung danach machen
wir es zu einem Tisch. Wir werden eine
andere Varianz
dieser bestimmten Entität hinzufügen . Und am Ende werden
wir auch
eine Entität hinzufügen , die beschreibbar sein
wird. All diese Dinge werden uns also im Grunde in
den kommenden Vorträgen erwarten. Was ich sagen werde, ist dass jede Entität,
die wir hinzufügen werden, zwei Entitäten hinzufügen werden
und beide die Gecko-Lip-API-Bibliotheken
verwenden werden. Obwohl dies nicht unbedingt
notwendig ist,
deutet dies auf einen normalen Mob
ohne zusätzliche Animationen hin. Ich empfehle immer noch
, immer nur die Glycolipid-Bibliothek
zu
verwenden, um die Entitäten hinzuzufügen. Weil es es in vielerlei Hinsicht viel
einfacher
macht . Im Grunde
macht es es einfach einfacher. Und so werden wir zuerst Gecko-Lippe
einrichten. Dafür. Wir werden
diese hier grundsätzlich überschreiben. Dies ist also das, wie Sie es auf GitHub sehen können, das Gecko Lib Wiki
Installationshandbuch. Im Grunde bin ich das,
ich kopiere das. Und dann
wechseln wir zurück zu hier, gehen in unsere gebaute
DOD Gradle-Datei. Und das, das erste, das
wir kopiert haben, würde genau hier in die Repositories
gehen. Also
füge es einfach da hinzu. Und dann das andere,
das hier. In diesem Fall werde ich
das hier
schon die
neueste Version sein, 3011 auf dieser Seite. Ich bin mir nicht sicher, ob dies jedes Mal aktualisiert wird ,
wenn eine
neue Version herauskommt, aber hoffentlich
wird dies genau hier unter ein
Minecraft gehen. Das sollte also
alles sein, was wir brauchen. Und jetzt können wir
die Gradle-Änderungen laden. Und es
wird im Grunde
die Glycolipid-Version herunterladen und
es wird sie implementieren ,
damit wir die Gecko-Lippe
EPI im Grunde auch in unserem Mod
verwenden können . Und danach kann
es wieder einmal eine Minute dauern, es kann dreißig Sekunden dauern. Hängt von vielen Faktoren ab. Grundsätzlich
sieht man tatsächlich ziemlich schnell Jahr 21 Sekunden. Das ist ziemlich nett. Dann ist die Frage, nun, woher holen wir
unsere Entitäten? Nun, für unsere Entitäten werden
wir Block Bench benutzen. Block Bench ist ein Programm ,
mit dem Sie generische Modelle
herstellen können. Sie konnten bei beiden
Modellen keine Blockmodelle erstellen. Wir haben das schon gesehen, aber wir können
auch Entitäten herstellen. Wichtig
ist, dass Sie die Under File-Plugins haben
und die
Gecko Lip Animations, Animation Utils genau hier haben. Also brauchen wir
dieses spezielle Plugin. Sonst
wird es nicht funktionieren. Stellen Sie also sicher, dass
Sie dies installieren. Gehe im Grunde zu verfügbar
und suche danach. Jetzt bekomme ich es nicht, weil
es bereits installiert ist. Sie können sehen, wie Sie dies installieren
und dann sollten Sie
die Möglichkeit haben ,
das animierte
Gecko-Lippenmodell hier hinzuzufügen . Jetzt habe ich schon
ein paar vorbereitete Sachen, also haben wir einen Waschbären
und einen Tiger. Wir werden
zuerst die Waschbären benutzen. Ich öffne es einfach und
du siehst, da gehst du. Der Waschbär ist schon hier
fertig. Und nun, ich meine, im Grunde ist
dieser Waschbär auch
schon animiert, also haben wir tatsächlich drei
Animationen hier. Wir werden uns die Animationen
in der nächsten Vorlesung
vorerst etwas detaillierter
ansehen in der nächsten Vorlesung
vorerst , was wir tun werden, ist, dass wir das
einfach exportieren werden. Was wir
tun werden, ist, wenn wir eine benutzerdefinierte Entität
erstellt haben . Um also das eigentliche
Waschbärmodell
in unserem Projekt und unserem MOD verwenden zu
können, müssen Sie dies exportieren. Also gehen wir zum Dateiexport
und dann zum Exportieren des Gecko-Lippenmodells. Wenn dies nicht angezeigt wird, können
Sie auf
Projekt konvertieren klicken und
sicherstellen , dass Sie im Grunde das animierte Modell
Kekule Lip auswählen. Wenn dies noch nicht das aktuelle Format ist , sollte der eigentliche Export
hier erscheinen. Wir können dies dann verwenden und
dann unter
der Waschbär GO-Punkt-JSON-Datei speichern . Ich werde es einfach ersetzen. Das wird gut werden. Und jetzt habe ich
das Modell tatsächlich exportiert, und wir können es bereits
innerhalb unseres spielbasierten verwenden. Ich habe auch die Textur, ich habe das tatsächlich getrennt. Theoretisch können Sie dies auch aus
der eigentlichen
Blockbench-Datei speichern . Aber es wird uns gut gehen. Wie gesagt, die Animationen, die
wir
vorerst komplett
ignorieren werden. Diese werden wir
in der nächsten Vorlesung benutzen. Wechseln wir zurück zu IntelliJ. Und was wir tun werden, ist dass
wir sofort
einen neuen Ordner im
Assets-Ordner MC-Kurs erstellen. Und dann erstellen wir
hier den Geoordner. Und das wird
die Waschbär GeoJSON-Datei bekommen. Sie gehen.
So sieht es im Grunde aus. Es könnte irgendwo einen Tippfehler
geben, das wird gut. Ich glaube, dass
alles, was in dieser Akte genannt wird, eigentlich keine Rolle spielt. Und dann
werden wir auch brauchen, dass wir tatsächlich auch die Texturdatei abrufen
müssen. Natürlich. Die Texturdatei geht natürlich tatsächlich
zu den Texturen. Und dann statt der
Entität hier hochgezogen, Entität, dann der
Name der Entität. In unserem Fall wird das so sein und dann kopiere
ich die tatsächliche
Textur genau hier. Da gehst du. Das wird nur
die Waschbär-Textur sein. Ich werde im Grunde auf diese
hinweisen, in einem Moment, in dem
wir die Entität vorerst tatsächlich implementieren, das sind
die wichtigsten Dinge
, die wir definitiv brauchen. Die Geodatei genau hier, das GeoJSON und die Textur. Dann könnte es auch
einen Animationsordner geben, im Grunde genommen
die Animationen enthält, die
wir in der nächsten Vorlesung verwenden werden. Jetzt werden wir
genau hier ein neues Paket
erstellen , Entity. Drinnen da drin. Wir werden
eine neue Java-Klasse erstellen. Der Modus in t. Die Modus-Entitätstypen
haben ein öffentliches statisches Finale, das dritte Register des
Typs, den Entitätstyp und dann wieder die Winkelklammern mit einem
Fragezeichen in ihnen. Es wird geben, dass die
Entitätstypen gleich dem dritten
Registerpunkt sind, der Registerstelle Register, dieser Entität,
tatsächlich
vor ihnen und dann MSC-Kurs
smart this market. Und ob es sich um ein
anderes Register handelt, gibt es
natürlich eine öffentliche
statische Void-Register-Methode. Dann passe ich Event Pass den alten
Eventbus genau hier. Und dann
rufen wir die Entitätstypen , die die Übergabe
im Event-Bus registrieren. Dann werden
wir sofort
hier unter die weiteren Portionen gehen . Und wir werden
mehr Entitätstypen sagen, nicht die Übergabe
im Event-Bus registrieren. Und dann haben wir auch diese
Klasse registriert. Jetzt haben wir
immer einige Registrierungsobjekte
unserer verschiedenen Entitäten. Aber bevor wir damit
im Grunde fortfahren werden, werden
wir die
Entitätsklasse selbst erstellen. Sie erneut im
Entitätspaket rechten Maustaste auf neuen
Paketkunden. Ich nenne das noch einmal
das benutzerdefinierte Paket. Und anstatt dass
sie eine neue Java-Klasse erstellen, und das wird
die Waschbär-Entität sein. Wenn es um
die Waschbär-Entität
geht, wird das
sehr interessant sein weil es eine
Menge Dinge gibt. Ich werde auch
eine Menge von diesem Zeug kopieren. Dies steht Ihnen im GitHub Repository und
einer Einzelperson genauso gut zur Verfügung. Also überhaupt keine Sorgen. Was wir tun werden,
ist, dass wir
diese Ausdehnung durch Tiere machen werden . So erweitert Tier
und implementiert in diesem Fall auch die animierbare
Schnittstelle des Auges. Jetzt werden wir einfach den
Mauszeiger darüber bewegen, das Hinzufügen dieser verschiedenen
Methoden genau hier. Und ich werde den Mauszeiger
über diesen Grid-Konstruktor auch super
passt. Und wenn diese Namen Sie stören, können
Sie einfach darauf klicken, Shift F6, und dann sollte es hier
etwas Schöneres
vorschlagen. Dies wird null gehalten, in diesem Fall der rote Nachwuchs. Dies wird also nur
der berechtigte Mob sein , um Kinder zu bekommen. Wir brauchen das
im Moment nicht. Die Controller sind sowohl für das Animationsmaterial
als auch für die Animations-Fabrik gedacht. Und wir werden
die Animationsfabrik
sofort hinzufügen , da dies
buchstäblich nur eine Zeile ist. Wie du siehst. Es gibt nur eine private
Animationsfabrik. Animations-Fabrik. Und dann geben
wir das einfach weiter. Dann kann es das grundsätzlich genau hier
zurückgeben. Die Controller, wir werden
im Moment nichts zurückgeben. Zunächst einmal werden
wir
uns ansehen anderen Dinge ansehen, die
wir für
die Entität benötigen. Weil es
mindestens eine Reihe von
Methoden gibt , die
wir benötigen, und das sind die gesetzten Attribute. Dies ist etwas, das unglaublich wichtig
ist. Eigentlich. Wenn wir das nicht haben, wird es eigentlich nicht funktionieren. Wir werden einfach
folgendes machen, dass sie gehen. Im Grunde legen wir hier nur
einige grundlegende Attribute fest. Die maximale Gesundheit, der Schaden, die Angriffsgeschwindigkeit
der Bewegungsgeschwindigkeit. Weißt du, natürlich
kannst du damit herumspielen aber du möchtest
sie im
Grunde nicht ändern sie im
Grunde , wenn
du willst. Aber das ist sehr
wichtig, dass wir dies
haben, da sonst die tatsächliche Entität keine Attribute haben
wird. Und das ist natürlich nicht
ganz das, was wir hier wollen. Wir wollten natürlich einige Attribute
haben. Es gibt auch einige andere
Methoden, die wir überschreiben können. Nun, lasst uns
das ein bisschen trennen. Das wird also das ganze
Animationsmaterial sein. Das hier ist
alles für Animationen. Und es gibt noch ein paar andere Dinge , die ich hier kopieren werde, aber das sind nur ein paar
Geräusche, wie Sie sehen können. Es gibt, lasst uns einfach alles
öffnen. Da gehst du.
Es gibt also ein Schrittgeräusch. Ich habe gerade ein
paar Sounds ausgesucht. Es gibt eine Katze
gerade so wie Ambient. Delphin verletzt ist, wenn es
verletzt wird, oft taub Geräusche. Warum nicht? Im Moment habe ich keine
Waschbärgeräusche, aber natürlich sollten sie
auch keine Rolle spielen. Aber das sind im Grunde die
Sounds, die Sie definieren können. Und ja, natürlich könntest
du auch
Mod-Sounds sagen und dann auch einen
deiner Modus-Sounds verwenden. Sie können natürlich auch
benutzerdefinierte Sounds oder Ihre
Entitäten hinzufügen . Das ist ziemlich cool. Alles in Betracht gezogen. Ich meine, das
schließt den Teil davon ziemlich ab. Das Letzte, was
wir auch wollen, ist, dass wir die Methode „Register Goals“
wollen, und das ist eine Methode, die
wir auch überschreiben können. Jetzt denke ich, dass
wir zwei Dinge haben werden, genau zwei Dinge die im Moment kommentiert
werden. Weil die dafür sind , wann wir dieses T-Mobile
machen werden. Im Moment werden wir
den Waschbärtisch
nicht machen ,
weil ich diese Ziele
grundsätzlich
Schritt für Schritt durchgehen möchte . Dies ist im Grunde die
KI dieser Entität. Das ist sehr, dies
kann ein sehr komplexes Thema sein. Es gibt also viele verschiedene
Ziele, die wir hinzufügen können. Was wir zum Beispiel tun können,
ist, dass wir mit der mittleren
Maustaste auf ein Ziel klicken können
und Sie sehen, dass dies die Torklasse
erweitert. Wenn ich jetzt darauf klicke
und Strg H drücke,
sind dies alle Ziele
und jetzt kann ich sie erweitern. Und Sie können sehen, dass es viele verschiedene Ziele gibt
. Du kannst es sehen. Und theoretisch kannst
du sogar deine
eigenen Ziele schreiben. Es gibt also wirklich eine
Menge Sachen hier drin. Und wieder einmal
ist dies eines dieser Dinge, bei denen man nur ein bisschen
damit herumspielen muss. Schau dir die Vanilla-Entitäten und sieh dir an, wie sie Ziele nutzen Die allgemeine Idee ist, dass je niedriger
die Priorität, wie je niedriger die
Prioritätszahl, desto höher
ist sie tatsächlich in der Liste. Man wäre die
höchste Priorität und sechs hat die niedrigste Priorität. Wenn es jedoch
zwischen einem oder zwei Zielen wählen muss, wird im Grunde genommen die Prioritäten
betrachtet. Das ist also die allgemeine Idee hier. also sicher, dass dies im Grunde immer richtig
eingerichtet
ist. Und dann, wie gesagt, du kannst einfach zum
Tier gehen, zum Beispiel, in der Mitte der meisten Punk klicke
auf diese Presse Control H. Du kannst alle
Tiere sehen. Aber zum Beispiel könnten
wir uns den Fuchs hier ansehen. Und Sie können sehen, dass es
hier
viele verschiedene Dinge gibt, die
uns im Moment eigentlich nicht wirklich interessieren. Wir wollen nur
die tatsächlichen Ziele sehen. Sie können sehen, dass wir
nur ihre Ziele sind, aber Sie können bereits sehen dass es hier einige
verschiedene Ziele
gibt. Dieses Lampen-Zielziel, es gibt ein Ziel
für Schildkröten, Es gibt ein Ziel für Fische. Wir haben einige Zielselektoren bei denen wir hier bestimmte
Ziele hinzufügen, die Rispe, das Zuchtziel, die Ziele der Go-Entität
vermeiden. Dies ist also ein Ziel, das
eine bestimmte Entität in
einer bestimmten Entfernung vermeidet . Es gibt also so viele
Dinge, die du tun kannst. Jetzt. Sie können auch sehen, dass die
meisten von ihnen
spezifisch für den Fuchs sind ,
anstatt der
Fox-Klasse, sagen wir zum Beispiel das Schlafziel für die
mittlere Maustaste. Klicken Sie darauf. Sie werden sehen, dass das Schlafziel tatsächlich
im Fox Verhaltensziel liegt und es sich tatsächlich in der Box-Klasse befindet. Manchmal befinden sich einige
dieser Ziele tatsächlich innerhalb ihrer
tatsächlichen jeweiligen Entitäten. Und das ist auch der
Grund, warum der Fuchs beispielsweise 1600 Codezeilen hat. Es gibt eine Menge Sachen hier drin. Ich meine, ich würde sagen, wahrscheinlich die komplizierteste Sache in Bezug auf benutzerdefinierte Entitäten
für das Leben im Allgemeinen, es ist einfach das, was es ist. Sehr zu empfehlen. Sie müssen einige
der Vanilla-Entitäten durchgehen und einfach damit herumspielen und
dann sehen, was Sie sehen können, wie gesagt, die mittlere
Maustaste jedes
Jahr auf
dieses Steuerelement auf das Ziel klicken jedes
Jahr auf
dieses Steuerelement auf das Ziel und dann solltest du in der Lage
sein,
alle verfügbaren Ziele zu sehen. Und dann können
Sie im schlimmsten Fall auch einige davon
kopieren, können
Sie im schlimmsten Fall auch einige davon
kopieren wenn Sie sie
unbedingt benötigen. Dann ist die eigentliche
Rückruf-Entitätsklasse hier fertig. Registrieren wir es dann in
der Klasse „Mehr Entitäten“. Ich werde das auch
kopieren. Wie immer
steht Ihnen
im GitHub Repository
genauso gut alles zur Verfügung . Jetzt
tritt dieser Fehler auf, weil dieser geschützt werden sollte. Also werden wir das hier öffentlich machen
. Und dann
sollte der Pfeil verschwinden. Es gibt also überhaupt keine Sorgen. Und Sie können sehen, dass es ein
Registrierungsobjekt vom Entitätstyp gibt. Dann setzen wir die Klasse
, die wir gerade gemacht haben, hier rein, der Waschbär, der sich
unter dem Namen des Waschbären registriert. Und dann werden wir
sagen, dass der
Entitätstype-Builder der Datensatzeinheit wusste. Dies ist in diesem Fall eine Kreatur, diese Größe ist tatsächlich die Größe der
Heap-Box dieser Entität. Und der Magnetische baut es unter
dem Ressourcenstandort
oder mehr Id unter dem Raccoon Namespace. Und das ist so ziemlich die Registrierung genau hier
gemacht wird. Und jetzt
müssen wir es immer noch gut machen, ich meine, füge das im
Grunde an ein
paar verschiedenen Stellen hinzu. Der erste Ort, an dem wir dies
hinzufügen möchten, ist tatsächlich in unseren Events und dies
wird in den Mod-Event Bus-Events sein. Interessanterweise, denn
genau hier wollen wir
ein neues Ereignis als
öffentliche statische Lücke hinzufügen . Und das ist die Entität. Attribut-Ereignis, ich rufe das einfach auf
und dann werden wir Entitätsattribut
sagen. Dies ist das
Erstellungsereignis, Zitat-Ereignis. Wenn wir das tun, werden
wir einfach Event Tab put
aufrufen, Mod-Entitätstypen, die
Waschbär, das GET. Dann
setzt die Waschbär-Entität das Entitätsattribut. Und dann fügen
wir einfach das
Add-Abonnement-Event gleich hier hinzu . Sehr wichtig, dass wir dies hinzufügen. Und jetzt wird dies im Grunde genommen , der in unserer Welt existiert, die
wir
hier definiert haben, die Attribute
hinzufügen jedem Waschbären, der in unserer Welt existiert, die
wir
hier definiert haben, die Attribute
hinzufügen. Das ist die Idee. Es gibt. Es gibt jedoch
noch ein paar Dinge für den Waschbären, für das Unternehmen im Allgemeinen. Für die Entität
benötigen wir auch einen Renderer und ein Modell. Wenn das
Entitätspaket erneut ausgeführt wird, klicken Sie mit der rechten Maustaste auf neues Paket,
und wir nennen es tatsächlich den Client, weil der Renderer
und das Modell für beide Client sind, nur
wenn ich mich nicht irre, wir sagen Raccoon. Das wird der Renderer sein. Dann werden wir auch
den anderen machen. Das wird der Waschbär sein. Das wird das Modell sein. Da gehst du. Es gibt überhaupt keine Sorgen. Die, welche ist einfacher? Das Modell wird
ein bisschen einfacher. Dies wird jedoch
das animierte Geo-Modell des Typs
Record-Entität erweitern , zu dem Sie gehen. Und dann werden wir den Mauszeiger
darüber bewegen , Methoden implementieren. Also müssen wir
diese drei Methoden implementieren. Das ist eigentlich
ziemlich einfach. Ich kopiere
die eine Sache hier. Dies
folgt also nur einem neuen
Ressourcenstandort. Und das deutet genau
auf den GEO und dann Waschbär hin
, die AOTA Jasons, genau
diese
Tracer-Datei genau hier, die wir im Grunde haben. Und dann werden wir das
auch einfach kopiert. Ich bin mir eigentlich nicht 100%
sicher, was
passieren wird , wenn ich diese Datei nicht
habe, ich bin mir nicht ganz sicher. Und für die Textur haben
wir das genau hier. Also Texturen, Entity Waschbär
und dann der Waschbär, ein PNG. Jetzt bin ich mir nicht auf Prozent sicher, weil ich das eigentlich noch
nicht ohne
die Animationsdatei ausprobiert habe. Aber ich denke, dass es gut
gehen wird. Wir werden sehen, ob
wir einen Absturz bekommen, dann werden Sie das
in einem Moment beheben, in dem Sie sich Sorgen machen müssen. Aber das ist die eigentliche
Modelldatei und dann brauchen
wir auch den Render. Natürlich sollte der Renderer in diesem Fall tatsächlich etwas einfacher
sein. Dies wird also
den GU Entity Renderer, die
Waschbär-Entität, erweitern . Notieren Sie noch einmal keines
Rekordmodells, sondern Waschbär Entity, aber es bewegt sich einfach mit dem Mauszeiger darüber. Und wenn wir
unser Matching ein Super konstruieren, müssen wir
nun
diesen Modellanbieter loswerden und dann genau hier ein neues
Waschbärmodell erstellen. Ich werde das auch
starten oder Radius 0.3. Ich denke, das wird gut werden. Und dann wird es großartig
sein, wenn ich gehe. Wir wollten nur die
Rendertyp-Methode genau hier überschreiben . Das skaliert es also auch. Und dann wollen wir auch die
Texturposition erhalten. Dann wählen wir
den gleichen Texturort aus. Hier. Wir werden
einfach auch bereitstellen, und das sollte
so ziemlich alles sein, was wir tun müssen. Also das, sowohl das Modell der Renderer eigentlich
ziemlich einfach. Alles in Betracht gezogen. Es gibt nicht so
viele Dinge hier drin. Wie Sie in
den Vanille-Modellen sehen können. Da ist eigentlich viel mehr
drin, weil natürlich die Vanilla-Modelle tatsächlich das
gesamte Modell in
der Klasse gespeichert ist und nicht in
dieser Geometrie, Jason. Das ist also das wirklich coole Ding. Dann müssen wir den Renderer
im Grunde nur richtig hinzufügen
. Wie machen wir einen Mehrwertsteuer? Wir machen das, indem wir
zu unserem MC-Kurs Grabenkurs gehen. Und dann innerhalb des
Client-Setups sehr wichtig. Wir werden sagen,
Entität rendern uns, rendern Sie uns das hier. Registrierungsmodus, Entitätstypen. Wir sagen, der
Waschbär kommt nicht. Dies ist gleich
dem Waschbär, dem Doppelpunkt, dem Doppelpunkt, dem Doppelpunkt neu. Und das sollte das sein. Das ist so ziemlich genau
das, was wir auch an dieser Front
tun müssen . Jetzt
müssen wir auch einen neuen Artikel hinzufügen. Und das wird
natürlich das Laichei,
das
Sperma und das Ei sein . Ich werde diesen tatsächlich einmal
wie immer kopieren , natürlich steht Ihnen der eigentliche
Code zur Verfügung. Das ist nicht zu verrückt. Man sieht diesen kalten
Waschbärengpass. Dies ist eigentlich vom Typ Artikel für
hispanischen Gegenstand. Und das sind die Farben, die Großbritannien im
Grunde hat. Und das ist
so ziemlich alles,
was du dort tun musst. Dann. Da dies
eigentlich ein normales Element ist, möchten
wir natürlich auch
die Übersetzung hier hinzufügen, den lang-Ordner in
unterstrichen uns JSON-Datei. Also lasst uns
das auch hier hinzufügen. Es gibt die Waschbären spawnen zB. Und wir
brauchen eigentlich auch eine Artikelmodelldatei. Ich weiß, dass das ziemlich
verrückt ist, aber es stimmt. Oder das ist auch nicht zu verrückt. So können wir sehen, dass es als übergeordnetes Element
Vorlage Spawnen Ei ist. Das wird also genau hier mit diesen beiden
Farben eingefärbt
sein . Das ist also alles, was es dazu
gibt. Dann sollte der Artikel
auch völlig gut funktionieren. Und wenn ich mich nicht irre, glaube
ich, dass ich alles
hätte erreichen sollen , was ich brauchte. Ich musste hier hinzufügen. Wenn nicht, werden wir
definitiv sehen , dass es nicht funktioniert, aber
das wird gut werden. Und wir werden auch
sehen, was du mit einem Pfeil
machen kannst. Aber vorerst denke ich, dass dies alles ist, was wir brauchen. Schauen wir uns also nach Werken oder was wir
uns in Minecraft befinden. Und wie Sie sehen können,
wurde
die raccoon AG erfolgreich in das Spiel
aufgenommen. Und jetzt schauen wir mal, ob ich mit der rechten Maustaste klicke,
ob der Waschbär spawnt. Und da ist es. In seiner ganzen Pracht bewegt
es sich. Wie bereits gesagt, gibt
es derzeit natürlich keine besonderen interessanten Animationen
. Und ich glaube tatsächlich, dass
der eigentliche Begrenzungsrahmen, wenn ich F3 drücke, ein bisschen zu klein ist. So können wir vielleicht
ein bisschen mehr
Begrenzungsrahmen hinzufügen . Vorerst
ist das wirklich cool und ja, es ist notwendig, wie
einfach es jetzt ist. Oh, es wird
tatsächlich fließen wegen
der schwimmenden Kobaltwunde. Das ist irgendwie witzig, aber ja, so ziemlich am einfachsten ist es
, Microsoft einen Mob hinzuzufügen. Nur um der Argumentation willen wir das nur ein bisschen größer machen
. Sagen wir etwas wie 0,8
und vielleicht stieg die Höhe sechs. Das wird gut werden. Ich denke , dass es
uns gut geht. Und das sind eigentlich all
die Dinge, die Sie brauchen. Um also noch einmal zusammenzufassen, benötigen
wir die
benutzerdefinierte Waschbär-Entitätsklasse. Natürlich sehr wichtig. Die eigentliche Fabrik hier brauchst
du noch nicht, aber wir haben das
schon hinzugefügt, weil warum nicht? In diesem Fall ergibt es einfach Sinn. Und dann waren die Ziele und die Attribute hier
sehr wichtig. Und dann ist das andere
Zeug Ritchie viel. Nicht unbedingt,
es ist nicht notwendig. Es ist einfach schön zu haben
und auf Meer zu basieren. Dann mussten wir
dies hinzufügen und haben uns
richtig in der Klasse der
Modus-Entitätstypen registriert . Dafür brauchten wir
einen Renderer und eine Modelldatei, die Modelldatei zeigt
auf die Modelldatei. Dies deutet also auf das
GeoJSON sowie auf das eigentliche Extra
und die Animationen hin. Und dann
deutet der Mietabfall auch auf die Textur hin. Es bestimmt auch die
tatsächliche Schattengröße und erstellt ein neues Modell. Dies ist die allgemeine Vorstellung davon,
wie diese zusammenarbeiten. Wir mussten ihm auch die Attribute zuweisen
. Das ist unglaublich wichtig denn wenn du das nicht tust, dann glaube ich, dass das Spiel tatsächlich abstürzt, wenn
du das nicht tust und du versuchst,
die tatsächlichen Entitäten zu spawnen ,
das ist wirklich wichtig. Dann haben wir auch das
Spawn EKG hier hinzugefügt. Und dann haben wir in unserem MC-Kursmodus genau hier den Renderer
registriert. Und das sind all die
Dinge, die wir tun mussten. Die Geodatei
und die eigentliche Textur hier
sind natürlich ebenfalls sehr wichtig. Aber abgesehen davon ist
das
so ziemlich alles, was Sie für einen sehr einfachen benutzerdefinierten Mob benötigen . Immer noch fertig mit
Gecko-Lippe, wie ich schon sagte. Und dann nächsten Vortrag wir sofort
einsteigen und einen
Blick auf die sehr coolen
Animationen werfen,
die uns im Grunde
zur Verfügung stehen. Weil das etwas ist , das wirklich mächtig ist und tatsächlich
ziemlich einfach zu bedienen ist. Definitiv im Vergleich zu
den Vanille-Animationen, denn das sind diese, möchten
Sie diese nicht im Grunde
verwenden. Nun, was auch immer der Fall sein mag, ist es dann schon für
diese Vorlesung genau hier, ich hoffe, Sie fanden das nützlich und lernen etwas Neues. Wir sehen uns in
der nächsten Vorlesung.
106. (zusätzliche Themen) Einrichtungen, Animationen mit Geckolib und Blockbench hinzufügen: Alles klar, willkommen zurück
zum Futterkurs für 118. Und in dieser Vorlesung
werden wir unserer benutzerdefinierten Entität einige Animationen
hinzufügen , die
wir in der letzten Vorlesung hinzugefügt haben. Und dafür werden wir zuallererst wieder auf das
eingehen, was wir noch einmal öffnen werden . Jetzt
sollten Ihnen dieser Waschbär und die
eigentliche Block-Pinch-Modelldatei zur Verfügung gestellt werden, obwohl sie entweder von
der letzten Vorlesung oder
in dieser Vorlesung
heruntergeladen werden kann, wir sollten auf jeden Fall heruntergeladen
werden können. Und das, wir werden
es
im Grunde öffnen und dann direkt hier zum
animierten Tippen gehen. Jetzt sollten wir bereits alle drei
Animationen hier haben. Und ich werde
im Grunde schnell die allgemeine Idee
einer Animation
zeigen. Nur um der Argumentation willen werden
wir
einfach ein neues machen. Also klicken wir auf
den kleinen Plus-Button. Und dann kannst du hier eine neue
Animation machen , die du sehen kannst. Jetzt. Dies ist normalerweise, dass Sie diese Animation
dunkle Waschbären
nennen möchten. Dies ist also der Name des Artikels. Und was auch immer
die Animationen sind, wir werden
diesen Test einfach aus
Gründen der Argumentation nennen . Und dann kannst du wissen, was
du diese Schleife machen kannst. Wie Sie sehen können, hier viele andere Sachen
machen. Wir werden es einfach bestätigen, dass es
mir gut geht? Jetzt für diese Animation? Sobald Sie es dann
im Grunde genommen tun können,
haben Sie hier unten eine Zeitleiste. Und ich kann, es wählt
bestimmte Körperteile aus. Zum Beispiel kann ich
den Körper auswählen und
plötzlich kannst du hier unten sehen, ich bekomme die Möglichkeit
, Keyframes hinzuzufügen. Wenn Sie jemals ein Video bearbeitet haben, ist
dies diesem sehr ähnlich. Zum Beispiel könnte ich sagen, okay, ich möchte
die Position mit einem Schlüssel umrahmen, also
klicke ich hier auf das Plus. Dann können Sie sehen, dass
ich an dieser Position
beim Zeitcode 0 jetzt einen Keyframe für
diesen bestimmten Teil habe. Also dieser Körper wird
hier nicht Keyframe sein. Wenn ich dann die
Zeit verschiebe, sagen wir mal zu, sagen wir 0,52 Frames,
wo immer das sein mag. Klicken Sie erneut auf dieses Plus. Sie können jetzt
zum Zeitpunkt von 0,52 sehen, jetzt habe ich einen zweiten Keyframe. Und wenn ich es zum
Beispiel getan habe, um mich zu ändern, kann
ich es entweder
hier in dieser Position ändern. Also könnte ich zum Beispiel
sagen, vielleicht über den eigentlichen
Körper um zwei nach oben zu gehen, ich kann es entweder tun oder ich kann es auch innerhalb
der eigentlichen Sache
machen. Und man sieht
, dass sich auf der linken Seite auch
die tatsächliche Position
dort ändert. Und es war wirklich cool, dass
es einige Methoden zur Lockerung gibt. Sie können also sehen, dass diese im
Grunde zeigen, wie das läuft. Denn wenn ich
diese Folie jetzt zurücklege und diesen Play-Button
setze, kannst
du sehen, dass dies steigt. Das ist sehr schnell. Also vielleicht wirst du so
sein, weißt du was, lass uns das anhalten und lass uns das
tatsächlich
so bewegen , als würde das etwas langsamer
sein. Und dann siehst du das richtig? Sie können also sehen, wie es nach oben geht. Und dann wird es natürlich zurückgesetzt, weil dies in diesem Fall eine
Looping-Animation ist. Im Grunde setzt sich hier mit
den einfachen Sachen zurück, die Sie können. Es gibt bestimmte Dinge. Du kannst Schritte machen. Sie können eine Art
Lockerung wie diese machen, wo es langsam geht und
dann schneller geht. Sie können es sogar so machen
, wo es am
Anfang sehr schnell ist und sich dann
verlangsamt oder lockert. Sie können sehen, dass es
viele verschiedene Typen gibt. Das ist sogar wie ein bisschen wie ein
bisschen Zufall, irgendwie auf und
ab zu springen, was wirklich cool ist. Es gibt also eine Menge Sachen, die du hier tatsächlich machen könntest. Es gibt auch ein paar
wirklich coole Dinge, die Sie hier hinzufügen können. Jetzt bin ich mir nicht 100%
sicher, wie Sie
alle auf die eigentlichen Befehle zugreifen können . Aber wenn ich zum Beispiel hier
in den Leerlauf gehe, habe
ich auf diesen Idle geklickt. Jetzt bin ich in der eigentlichen
Leerlaufanimation und klicke auf den eigentlichen Schwanz und klicke auf die Rotation. Du siehst, dass ich Mathe-Dot-Sünde
habe. Das ist also nur die Sinuskurve. Grundsätzlich hier, wo u dot n m Zeit nur
der Timecode ist, den wir zeitlich verwenden, würde
dies mit 150 multiplizieren und dann
das Ergebnis mit 225 multiplizieren. Und
das führt im Grunde dazu, dass sich der
Schwanz grundsätzlich sehr, sagen
wir, absehbar drehen wird, weil die Sinuskurve
natürlich so verläuft, oder? Das ist also nur eine allgemeine
Mathe-Sache. Das ist echt cool. Ich glaube, dass
sie auf der Website tatsächlich
die Summe der Methoden haben , die hier
verfügbar sind ,
grundsätzlich zu sehen. Aber das ist eine wirklich coole Sache. Und was auch immer der Fall sein mag, Gehen wir zurück zu unserer
Testanimation mit unserem Körper hier. So können wir jetzt sehen,
dass sich unser Körper auf und ab bewegt. Und das ist ziemlich cool. Wenn
Sie nun Animationen hinzufügen,
sehen sie natürlich sehr gut und
richtig gut aus. All das. Viel Zeit, es wird offensichtlich
zeitaufwändig sein. Also musst
du einfach ein paar Sachen ausprobieren. Siehst du das? Hoffentlich wird es funktionieren
und dann wird es gut. Aber habe auch eine
Walking-Animation. So können Sie hier sehen, dass dies die Walking-Animation
ist. Dann haben wir auch eine
sitzende Animation, aber das
bewirkt eigentlich nichts. Es ist im Grunde nur die ganzen
Körper ein bisschen schräg. Und im Grunde
sitzt der Waschbär hier als
der Inselstaat, das haben
wir schon gesehen,
aber im Grunde gehen nur der Kopf und der Körper auf
und ab, sehr leicht. Du siehst das. Dies ist eine sehr leichte
Auf- und Abwärtsbewegung. Und dann wackelt der Schwanz
im Grunde ein
bisschen
hin und her, nur
damit er ein
bisschen Bewegung hat. Das kannst du also sehen. Sogar diese winzige Leerlaufbewegung reicht aus, um
eine sehr schöne Illusion zu vermitteln , dass
dies tatsächlich am Leben ist. Und wie Sie sehen können, beinhaltet
es nicht wirklich
so viele Optimierungen, die Sie benötigen. Dinge, die sehr, sehr hart sind oder so ähnlich wie die
Walking-Animation, Animationen
ausführen,
besonders für Vierbeiner. Für Tiere mit vier Beinen, das ist unglaublich schwer, gibt es einige Ressourcen,
die ich tatsächlich gefunden habe. Wenn Sie wirklich
daran interessiert sind, werde
ich sie
auch mit den Ressourcen verknüpfen. Sie sind unglaublich cool. Es gibt also im Grunde genommen
einen anatomischen Blick darauf, wie, wie, wie grundsätzlich
Vierbeiner Tiere laufen und wie das
im Grunde in der Animation gemacht wird. Vierbeinige Tiere sind also ein, gut etwas in Animation
, das sehr schwer ist. Es wird also
ganz etwas sein. Aber weil es Minecraft ist, arbeitest
du mit einem
kleinen Block des Tieres. Sie haben hier wahrscheinlich ein
bisschen mehr Spielraum, was auch immer der Fall sein mag, wenn
das Sie wirklich interessiert, empfehle
ich dringend,
diese auch zu überprüfen, wenn Sie
das interessieren könnte. Aber was auch immer der Fall sein mag, wir sind im Grunde mit
den allgemeinen Willensanimationen fertig. Ich werde den Test hier tatsächlich noch einmal
löschen. Und dann wird der Rest
gut gehen. Was ich tun werde ist,
sobald das erledigt ist, kann
ich im Grunde
entweder auf
Control S drücken , um dies zu speichern,
oder ich kann auch gehen, ich glaube an Animation hier. Und dann kann ich
Exportanimationen sagen. Und ich glaube, das
sollte es schon tun. Oder wir speichern
alle Animationen. Wir speichern das unter richtig geschriebenem
Waschbär, nicht in der Animation nebeneinander und
wir werden das einfach ersetzen. Das ist in Ordnung. Und dann
wechseln wir zurück zur Intelligenz. In unserem Assets-MC-Kurs erstellen
wir ein neues
Verzeichnis namens Animationen. Sind es Animationen? Ja, es sind Animationen. Und was ich dann
machen werde, ist, dass ich auch die eigentliche
Animation
kopiere. Die allgemeine Idee
ist also, dass
dies die richtig geschriebenen
Waschbär-Animationen sein werden . Da gehst du. Dies sind also im Grunde alle Daten, die dort benötigt werden. Wir müssen nicht darauf eingehen. Das ist in Ordnung. Wichtig ist, dass
wir diese Animationen jetzt natürlich im eigentlichen Datensatz in
einer Entität
angeben müssen diese Animationen jetzt natürlich im eigentlichen Datensatz in
einer Entität
angeben . Eröffnung der Waschbär-Entität. Was wir
tun werden, ist, dass
wir in erster Linie
den Controller sowie
die Prädikatmethoden hinzufügen . Also kopiere ich
die GET-Methode des Produkts. Das wird
in einem Moment erklärt. Wie Sie sehen können,
haben wir die Sitzung noch nicht, also werden wir
dies vorerst löschen. Und im Controller
wird wie folgt aussehen. Wir werden also nur
den Datenpunkt Animation Controller
hinzufügen mit
einem neuen Animations-Controller,
Code-Controller, haben Controller
hinzufügen mit
einem neuen Animations-Controller . Und dann geben wir
diese Prädikatmethode hier weiter. Das ist so ziemlich
alles, was es dazu gibt. Und dann stellen Sie sicher, dass dies alles richtig geschrieben
ist. Also diese Namen hier, die
Hälfte stimmen mit den Namen überein, die sich innerhalb der Animation befinden. Dieser hier
ist die Animation. Du siehst das tatsächlich
geschrieben, richtig? Falsch. Ich vertrete nicht, dass ich weiß
warum, aber los geht's. Wir werden das einfach schnell
ändern. Da gehst du. Und dann ist es 100%
richtig, denn dann wird
der Waschbär
so geschrieben und dann auch hier, also
sollte alles gut funktionieren. Es kann sehen, dass die
Walk-Animation
gekühlt wird , wenn sich der Ereignispunkt bewegt. Ich kann es sehr empfehlen.
Werfen Sie einen Blick auf das Animationsereignis für
bestimmte Dinge. Sie können zum Beispiel
sehen, dass es hier
einige Dinge gibt , die Sie sich ansehen
können, sogar
einige zusätzliche Daten. Das ist also auch
sehr interessant. Aber insgesamt ist die
Bewegung wahrscheinlich derjenige,
der hier am
wichtigsten ist. Und dann müssen
Sie auch einige
der anderen Sachen damit
herumspielen. Daher empfehle ich dringend,
einfach offen zu sein, damit zu experimentieren
und eine Menge Sachen auszuprobieren. Das ist das
Beste, was ich kann, im Grunde nur sicher, dass
dies eine sehr kluge Idee ist. Nun könnten Sie sagen, naja, ich meine, was brauchen wir sonst noch? Das ist eigentlich alles,
was wir brauchen, weil wir die Animation
bereits in der Mitte
eingerichtet haben. Also genau hier haben wir es
bereits eingerichtet. Animationen rekrutieren
Animationsdaten Jason, weil dieser Jason bereits hier
ist. Und jetzt haben wir im Grunde genommen
das Prädikat die Art von
Gehirn der Animationen. Dies bestimmt im Wesentlichen, welche Animation
gerade gespielt wird. Und nun, ich meine, das ist so ziemlich alles
, was wir dafür brauchen. Wie gesagt, wenn du
ein paar wirklich coole Ideen hast, wirklich verrückte Animationen,
kommt es darauf an, die Blockbank zu benutzen dort eine Menge Sachen
auszuprobieren. Wie gesagt, ich habe auch viele Ressourcen für Animationen da
draußen. Also hoffe ich, dass dir das hilft. Aber vorerst, schätze
ich, mal sehen, ob es funktioniert. Wir befinden uns
wieder in Minecraft. Also mal sehen, lasst uns
ein paar Waschbären spawnen und mal
sehen, los geht's. Es funktioniert schon völlig gut. Und sogar die Walking-Animation, Werfen wir einen Blick auf diese. Wenn es anfängt
zu laufen, Mal sehen. Nun, es ist
manchmal schwer zu erkennen , wenn das
weggeht. Aber ich glaube, dass es funktioniert, denn ihre Beine
bewegen sich während des Gehens, ja. Manchmal stimmen die Bewegungsgeschwindigkeit und die Animation nicht vollständig
überein. Dies ist natürlich
etwas, das Sie nur optimieren müssen
und sich ändern wird, bis
es im Grunde funktioniert. Aber Sie können sehen, dass die eigentliche Animation im Leerlauf völlig gut
funktioniert. Und dann funktioniert auch die
Walking-Animation. Hier funktioniert alles gut. Ein neuer Stickstoffanteil hier. Aus Gründen der Argumentation. Da gehst du. Ich meine, das ist
ehrlich gesagt wirklich cool. Und
so einfach kann es sein,
Ihren Minecraft-Entitäten alte, ich meine,
grundlegende Animationen
mit Gecko-Lippe hinzuzufügen grundlegende Animationen
mit Gecko-Lippe , oder? Aber das wird es schon
für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du wirst
etwas Neues lernen. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
107. (zusätzliche Themen) Entity: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in dieser
Vorlesung werden
wir unserer bereits bestehenden
Waschbäreneinheit eine Kundenvarianz hinzufügen. Was ist unsere Varianz? Nun, man könnte zum Beispiel
wissen, dass Pferde
verschiedenfarbige Netzleitungen oder
nur generell
verschiedenfarbige Extras haben können verschiedenfarbige Netzleitungen oder . Und das geschieht durch Varianz. Jetzt werden wir unserem Waschbär zwei
dieser Varianten hinzufügen . Und so wie das funktioniert ist, dass wir
im Grunde nur
eine andere Textur haben. Also kopiere ich
die einfach vorbei. Da gehst du. Wir haben einen Waschbär dunkel
und einen roten Waschbär. Das sind die drei verschiedenen
Varianten, die wir haben. Waschbär, Waschbär dunkel
und ein roter Rekord. Und wie werden wir das
jetzt umsetzen? Nun, es ist eigentlich
ziemlich einfach,
alles in Betracht gezogen. Das ist also etwas, das Sie im Grunde tun
müssen,
wenn Sie möchten, dass alle
Ihre Tiere
unterschiedliche Varianten für
alle Ihre Entitäten haben unterschiedliche Varianten , um unterschiedliche Varianz zu
haben, dann sind Sie es wir brauchen zunächst
eine Varianten-Enum,
und dann werden wir im Grunde genommen abhängig von und dann werden wir im Grunde genommen dieser Aufzählung
einen anderen Ressourcenstandort
auswählen . In unserem Entitätspaket klicken
wir mit der rechten Maustaste auf ein neues
Paket namens variant. Dann werde
ich da drinnen reinlegen, das wird
die Waschbärvariante sein. Dies wird in eine Aufzählung
geändert. Und dann werde ich das
tatsächlich kopieren , weil
der tatsächliche Inhalt davon immer gleich sein
sollte. Das einzige, was sich hier ändern
sollte, diese im Grunde
Ihre Aufzählungswerte. Das ist die allgemeine Idee. Wenn Sie eine
andere Variante haben, benennen
Sie diese einfach um
und benennen dann auch alle Dinge
hier um, oder? Wenn das also heißen würde, meine
ich, jetzt würde es tatsächlich auch den Namen
ändern, aber was auch immer der Fall
sein mag, also änderte einfach den Namen überall und dann
wäre es dir völlig gut. All diese statische
Methode, die wir brauchen werden, brauchen
wir diesen
endgültigen Fehlerstream. All dies
wird benötigt. Das einzige, was hier im Grunde genommen ein
Großteil
der Gewohnheit ist, ist der Name dieser und
dann auch
der Name Ihrer individuellen Varianz. Wo verwenden wir das oder wo fangen
wir an, das zu verwenden? Nun, wir werden das
im Waschbär-Renderer verwenden. Und so wie
wir das machen werden ist noch einmal, ich
werde das kopieren, aber der gesamte Code steht Ihnen
natürlich
im GitHub-Repository zur Verfügung und
individuell genauso gut. Und das ist eigentlich, es wird vielleicht
etwas kompliziert aussehen, aber es ist eigentlich
ziemlich einfach. Im Moment werden wir das einfach importieren. Da gehst du. Und dann haben wir eine Karte. Sie können sehen, dass dies ein
Standort nach Varianten-Map ist. Dies ist nur eine Zuordnung, die
eine bestimmte Datensatzvariante
einem Ressourcenstandort zuordnet . Das ist alles, was es tut. Obwohl wir sagen: hey, wenn wir die
Standard-Waschbärvariante
haben,
dann ist dies die Textur, auf die
Sie zeigen möchten. Wenn wir eine dunkle Variante haben, wollten wir auf diese Textur
hinweisen. Und wenn wir die rote Variante haben, fahren wir
zu dieser Textur. Es sieht etwas
komplizierter aus, aber wenn man darüber nachdenkt, ist
das
eigentlich alles, was es tut. Und wenn Sie
mehrere Einträge haben, wenn Sie hier mehr Einträge haben, fügen Sie hier einfach
weitere Einträge hinzu. Jetzt
werden wir hier natürlich eine Warnung sehen, weil wir diesen tatsächlichen Schlüssel bereits
hinzugefügt haben, in diesem Fall Schlüssel hier. Aber ja, das ist alles was
du wirklich tun musst. Wenn Sie also mehr haben, fügen Sie
einfach mehr hinzu. Gleiche hier. Wenn Sie
mehr haben, fügen Sie einfach mehr hinzu und stellen sicher, dass Sie die Ideen hier
erhöhen, das ist auch sehr wichtig. Nun, anstatt
das einfach zu
tun, werden wir einfach sagen: Okay, ähm,
nun, wir
wollen nur
den Ort zurückgeben, nun, wir
wollen nur
den Ort zurückgeben den bivarianten Punkt bekommen, und dann haben wir die
Waschbär-Entität zur Verfügung hier. Aber nun, die
Rekord-Entität
hat gerade noch keine
Variante, oder? Das ist überhaupt kein Problem. Denn im Moment werden wir diese Varianten
im Grunde hinzufügen. Also werden wir
diesen Pfeil vorerst einfach hier behalten . Nein, im Grunde keine Sorgen. Und dann werden wir all
das Zeug hinzufügen , das wir
für die Varianz benötigen. Es wird also wieder viel kopiert werden ,
denn wieder wird
ein Großteil dieses Codes
immer derselbe sein. Es wird fast immer das Gleiche
sein. Es wird
genauso aussehen. Es wird sich sehr ähnlich sein. Nur die Details
müssen geändert werden, aber ich werde mein Bestes geben, um
alles zu erklären, was ich brauche. Zuallererst benötigen
wir einen Entitätsdatenzugriff. Dies ist also der
Daten-ID-Typ der Variante. Dies ist im Grunde eine
Synchronisierung von Entitätsdaten. Es ist also vom Typ Integer. Das ist die allgemeine Idee. Normalerweise
stelle ich das gerne an die Spitze
der Klasse, weil es nur ein wenig lesbarer obwohl dies auch
zur Varianz gehört. Ich möchte
das an der Spitze
der Klasse halten und dann
wird der Rest hier unter diese
Varianzkommentare gehen. Okay, was sind
die Dinge, die wir brauchen werden? Nun, das erste, was
wir brauchen werden, ist, dass wir eine
festgelegte Variantenmethode benötigen. Da gehst du also mit
einer Rekordvariante. Und dann können wir
die Entitätsdaten
des Typs
Datumsdaten-ID-Typ-Variante festlegen , die genau diese
synchronisierten Daten sind
, die wir hier erstellt haben. Und dann
setzen wir es auf den Ausweis. Und wenn wir hier eine
Operation verwenden, müssen
wir uns nicht mit den Besonderheiten
befassen. Das ist so ziemlich genau
das, was das Pferd auch macht. meiste davon wird also auch dem Pferd genommen
. Wenn wir tatsächlich zweimal die
Umschalttaste verschieben
und zum gehen, glaube
ich, dass es das
abstrakte Pferd das das hat, aber
ich bin mir nicht 100% sicher. Ich glaube, dass es
das absolute Pferd ist. Das hat den Ausweis. Nun,
schauen wir uns das Pferd an, als es
vielleicht tatsächlich der Daten-ID-Typ des
Pferdes ist. Wir können sehen, dass dies sehr ähnlich
aussieht. Und wenn wir dann mit der mittleren
Maustaste darauf klicken. Sie können zum
Beispiel genau hier auf Variante
setzen, dass
wir einfach
die Variante setzen und dann hier Variante und Markierungen
setzen. Man sieht also, dass
es hier im Grunde auch
ein paar interessante Dinge
mit etwas Verschiebung macht . Machen wir uns also keine
Sorgen darüber. Sagen wir einfach, wir brauchen das
einfach. Und wenn wir das
im Leichenschauhaus haben, wird es völlig gut gehen. Wenn wir eine Reihe von Varianten haben, wollen
wir natürlich auch eine get-Variante, aber wir wollten zwei verschiedene,
die wir wollen. Eine, bei der wir die
Waschbär-Variante bekommen und eine, bei der wir tatsächlich die
ganze Zahl daraus herausholen. Und das ist so ziemlich
auch das, was wir brauchen werden oder das
, genau hier. Also können wir einfach sagen, dass
Instanz Dot Variante bekommen. Und dann hat dieser
keine Pfeile mehr. Und jetzt müssen wir
das Gleiche im Modell machen. Was ich tun kann ist, dass ich das
einfach hier kopieren kann. Und wir werden einfach hier
sagen, dies der
Waschbär-Renderer sein wird,
und dann werden wir das einfach
hinzufügen. Nun, ich sollte
den Punkt da drin haben. Da gehst du. Und dann
heißt das stattdessen Objekt. Das ist vollkommen in Ordnung. Und dann sind wir mit
der tatsächlichen Varianz sowohl
im Renderer als auch im Modell fertig . Dies sind die beiden einzigen Orte
, an denen Sie dies ändern müssen. Andernfalls
wird der Rest in der Entitätsklasse
passieren. Was brauchen wir sonst noch
für das Unternehmen? Nun, sobald die Welt
rettet, müssen
wir das natürlich immer noch
irgendwie retten. Deshalb werden
wir einige NVT-Daten benötigen. All dies
wird also genau hier gespeichert, lesen Sie zusätzliche gespeicherte Daten und fügen Sie dann auch weitere
gespeicherte Daten hinzu. Diese beiden sind also sehr wichtig. Und dann nicht zuletzt glaube ich
im Grunde genommen, dass sie die definierten Synchronisierungsdaten sind. Dies ist unglaublich wichtig,
da dies immer
erforderlich ist , wenn Sie irgendeine Art von Entität,
Datenzugriff, einen Bart,
den Daten-ID-Typ
haben Datenzugriff, einen Bart, den Daten-ID-Typ oder ob es ist,
vorausgesetzt, wir werden sehen
eine Sitzung auch. Also ein sitzender
Datenzugriff vom Typ Boolean. Dies ist auch das, was
wir in
dieser
Define-Sync-Datenmethode hinzufügen müssen , ist sehr wichtig. Das ist definitiv
das, was wir brauchen werden. Und dann nicht zuletzt
ist das
Letzte, was wir brauchen, die finalisierte Spawn-Methode. Und das ist sehr interessant. Der Grund, warum wir das brauchen
, ist, dass dies im Grunde genommen genannt
wird,
wenn wir das verwenden ,
naja, ich meine, wenn diese Entität
tatsächlich
hervorgebracht wird und dies den Sport
abschließt. Also werden wir buchstäblich
nur sagen: Hey, gib mir
einfach einen zufälligen Wert
dieser Waschbärvariante. Und dann setzen wir es
auf genau diese Varianz ein. Das ist alles, was
wir hier machen. Und damit ist die Variante
im Grunde vollständig. Und Sie können sehen, dass
es insgesamt so ziemlich genau das ist, diese Methoden,
sie
werden alle fast immer gleich sein. Wenn Sie einen
anderen Aufzählungsnamen haben, ändert sich
der Name hier. Abgesehen davon
wird es
wahrscheinlich so ziemlich immer dasselbe sein. Es sollte immer da sein. Es sollte immer das Gleiche sein. Insgesamt ist das so ziemlich
alles. Es gibt Twitter. So kompliziert ist es nicht. Sie müssen nur wissen, wo genau
Sie diese Änderungen vornehmen müssen, natürlich auch im
Renderer und
im eigentlichen Modell. Nur diese beiden Änderungen, fügen Sie
einfach die Map auch im
Renderer hinzu. Also diese Karte genau
hier, aber insgesamt glaube
ich, dass dies ziemlich selbsterklärend
sein sollte, alles in Betracht gezogen,
nichts hier sind zwei, ich würde aus den
Grenzen der meisten davon sagen. Das sollte also
ziemlich einfach sein. Und jetzt schätze ich, nun, ich meine, mal
sehen, ob es funktioniert. Oder wir befinden uns
wieder in Minecraft. Lasst uns also ein paar Waschbären spawnen und mal sehen, ob die
Abweichungen hinzugefügt werden. Und da gehst du. Oh nein, wir haben eine Variante die keine
Textur hat, aber keine Sorge, das sollte
nur ein Tippfehler beim
tatsächlichen Ziehen des tatsächlichen
Ressourcenstandorts sein. Man sieht, dass der Rote
vollkommen gut funktioniert. Mal sehen,
worum es geht und lasst uns das beheben. Wie ich vermutet habe, gibt es einen Tippfehler. Mach dir überhaupt keine Sorgen. Wir werden das einfach reparieren. Also fehlte das C
wieder, mit dem, im Grunde alles, würde
es jetzt völlig gut
funktionieren. Und
so einfach ist es, Ihrer benutzerdefinierten Entität eine benutzerdefinierte Varianz
hinzuzufügen Ihrer benutzerdefinierten Entität eine benutzerdefinierte Varianz . Aber das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Wenn er es täte, würde sich sehr
über eine Bewertung von Ihnen freuen. Ansonsten sehe ich dich
in der nächsten Vorlesung.
108. (zusätzliche Themen) Zeichnen: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in dieser Vorlesung werden
wir unserer benutzerdefinierten Entität
eine Teamfähigkeitsfunktion
hinzufügen , es
im Grunde ermöglicht, dass wir unseren Waschbären zähmen können. Und das ist wieder einmal
eines dieser Dinge, die tatsächlich ziemlich einfach sind, sobald
wir es implementiert haben. Und Sie können sehen, welche
Methoden wir
hier in der Custom
Raccoon Entity-Klasse überschreiben müssen. Das erste
, was wir tun müssen,
ist, dass Sie
hier hochgehen und
dies tatsächlich in ein liebenswürdiges Tier umwandeln müssen . Das wird also
erreichbares Tier sein. Da gehst du. Dann nehmen wir das einfach
an, ich wähle
es aus, drücke Strg C, Control V, um es hier und
genau hier einzufügen . Ich glaube, dass
dies alle
Orte sein sollten , an denen
dies getan werden muss. Dann werde ich natürlich noch
einmal
den Großteil davon kopieren. All dies steht Ihnen natürlich auch im
GitHub Repository in einer
Einzelperson
wieder zur Verfügung . Dies wird
die Teamfähigkeit sein. Das wird ganz unten
gehen, und wir können all das
Zeug sehen und wir werden jede der
Methoden nacheinander
durchgehen . Sie können zuerst sehen, dass
wir diesen sitzenden
Datenzugriff haben. Wieder einmal werde ich das auch
tatsächlich nach oben verschieben
, damit wir hier Daten oben sagen
. Was
dann sehr wichtig ist, ist,
dass wir einen anderen
dieser
Dateneinträge synchronisieren haben . Wir müssen dies zu
den definierten Synchronisierungsdaten hinzufügen. Dies ist sehr wichtig
, dass wir dies tun. Also müssen wir
diese Sternentitätsdaten sagen, definieren, das sitzt und dann wird
der Standardwert falsch sein. Das ist also unglaublich
wichtig und dass dies auch hier hinzugefügt wird, sonst wird das nicht funktionieren. Das ist also eines der
Dinge, die wir tun müssen. Der Grund, warum
wir
dieses spezielle Ding,
das Zubehör hier, wirklich brauchen , liegt darin, dass
sonst das Prädikat für
die Animation nicht funktioniert. Denn theoretisch, wenn
ich tatsächlich in
das Tischtier gehe und ich
glaube, dass es so ist, ist die boolesche Reihenfolge zum
Sitzen bereits da, also existiert dies bereits,
was bedeutet, warum sollten wir jemals brauchen ein anderes
Zubehör hier, eine andere Art von Daten hier, nun, es
synchronisiert diesen boolean hier nicht wirklich,
ich glaube, dass es nur auf dem Server
verfügbar ist. Ich bin mir nicht 100% sicher, aber ich glaube, dass dies nur auf dem Server
verfügbar ist. Aber im
Fall von Gecko-Lippe
funktioniert
das natürlich nur auf dem Client,
was bedeutet, dass es
eine Nichtübereinstimmung zwischen diesem booleschen Bereich hier oder
dem Server und dem Client gibt. Deshalb brauchen wir die tatsächliche
Synchronisierung der Daten hier. Deshalb haben wir das. Und dann können wir diese beiden Dinge jetzt auch
auskommentieren. Nun, das ist sehr wichtig, dass Ihr Sitzen, wenn Sie das Ziel bestellt haben, es hat eine niedrigere Priorität in
dieser oder einer höheren Priorität, ich denke, es muss eine niedrigere Zahl
sein. Dann
schauen Sie sich im Grunde alle
anderen Zufallsziele nach zufälligen
Gehzielen um, solche Sachen. Das ist sehr wichtig,
denn wenn dies
eine niedrigere Priorität hat als zum Beispiel das zufällige Spazierziel, dann wird der Waschbär in diesem Fall, auch wenn er zum Sitzen befohlen
wird, einfach aufstehen
und laufen und setzen Sie sich dann wieder hin
und gehen Sie dann weiter. Also nicht wirklich das, was
du willst. Dann können wir die Animation auch sofort hier
hinzufügen. Dies ist die sitzende Animation. Wenn das also sitzt, dann werden
wir
die Animation im Grunde genommen nennen , dass
Waschbär sitzt, nichts zu verrückt, ziemlich selbsterklärend
sein sollte. Und damit ist die
Animation fertig. Und jetzt können wir
uns all
die verschiedenen Dinge für die
Erreichbarkeit ansehen , die wir brauchen. Zum ersten ist
im Grunde die große Methode hier, das ist die Mob-Interact-Methode,
aber dies ist die Methode, die
aufgerufen wird , wenn ein
Spieler mit der rechten Maustaste klickt. Also diesen Mopp, ich habe hier einen Gegenstand
gemacht, also ist dies der Gegenstand zum Zähmen. Ich habe mich gerade für einen Apfel entschieden. Sie könnten dies zum
Beispiel ersetzen. Sie können auch mehrere
Artikel hinzufügen, wenn Sie möchten. Natürlich gilt normales Java. Das bist du, also keine Sorge. Es gibt. Wir
werden im Grunde prüfen, hey, ist der Artikel, mit dem wir mit der
rechten Maustaste klicken, eigentlich der Artikel zum Zähmen. Und wenn dieses Tier noch nicht erreicht
ist, gehen wir
hier rein, auf der Kundenseite, wir werden nur konsumieren,
also werden wir
es mit der rechten Maustaste klicken lassen , aber
nichts passiert. Auf dem Server, den sie sind, gehen
wir hinein und
tun einige Dinge. Zunächst einmal, wenn die Fähigkeit
hier Instabilität ist. Die Idee hier ist also, dass,
wenn dies nicht der Fall ist,
was bedeutet, dass wir, wenn wir nicht
im kreativen Motor sind,
den Gegenstand um eins schrumpfen oder dekrementieren. Und wenn wir im
kreativen Modus von ihnen sind, machen
wir es nicht. Das ist alles, was es dazu gibt. Hier im Animal Team
ist nur ein Ereignis, das im Grunde genommen
gefeuert wird, Ereignis, das im Grunde genommen
gefeuert wird wenn dieses
Tier gezähmt wird. Und dann stellen wir
noch einmal sicher, dass wir grundsätzlich
nicht beim Kunden sind . Ich denke, dass dies
im Grunde überflüssig ist, aber wir werden es einfach behalten, weil
es dort keine Sorgen macht. Und dann werden wir
sagen, zuerst wir die ETA-Methode aufrufen. Dieser bestimmte
Spieler innerhalb eines wird den Pfad
für die Navigation
neu berechnen. Wir setzen dann die
Ziele fest, um diese Zeile zu kennen. Dies wäre im Grunde das
angreifende Ziel. Dann
rufen wir das Ereignis der Broadcasts Entity mit sieben Bytes auf. Dies ist also ein
besonderes Ereignis hier. Sie können sehen, da
ein bestimmtes Paket alle Spieler dieses Events ist, ist es ziemlich verrückt. Dies ist im Grunde
das Ereignis, das wir senden müssen, wenn ein bestimmtes Tier erreicht
wurde. Ich glaube, dass dies
dafür verantwortlich ist, die
Herzen zu spawnen , wenn Sie das Team
tatsächlich bekommen, dann
setzen wir uns sofort auf wahr. Und wir können uns das Set
anschauen, das hier sitzt. Sie können also sehen, dass wir nicht
nur
die Entitätsdaten festlegen , die
zu dem führen , was wir hier
weitergeben? Wir nennen auch das Set
Orderto-Sit-Methode, die im Grunde genommen
diese Reihenfolge, hier im Tischtier zu sitzen, auch auf
das,
was wir vorbeigehen, festgelegt hat. Die Idee ist
also, dass beide richtig eingestellt werden müssen . Und dann hatten wir das, ja, das ist im Grunde die
allgemeine Idee hier. Und dann ist das hier, sobald wir dieses Tier schon gezähmt
haben. Und wieder einmal sind wir
auf dem Server und stellen
sicher, dass wir
nur die Haupthand benutzen , denn
wenn wir das nicht haben, können wir
das eigentliche Tier im Grunde
nie zum Sitzen bringen das eigentliche Tier im Grunde
nie zum Sitzen weil dies
für beide Hände gefordert wird. Das ist sehr wichtig.
Dies wird zweimal aufgerufen, einmal für jede Hand
des Spielers. Seien Sie also vorsichtig damit. Dies wird
dann natürlich auch zweimal aufgerufen, eins für den Client und
eine für die Serverseite. Insgesamt
heißt es also viermal. Behalte das also im Hinterkopf. Und das hier, deshalb brauchen wir hier die
Interaktionshand. Sonst würde dies zweimal
aufgerufen werden. Und dann, wenn Sie etwas zweimal
umschalten, kehrt es einfach in
seine ursprüngliche Position zurück. Deshalb würde das eigentliche
Tier niemals sitzen. Das ist hier also sehr wichtig. Hier. Wir machen
im Grunde nur einen Pass, wenn der Gegenstand zum
Zähmen wieder verwendet wird, obwohl er
im Grunde schon genannt wurde. Aber das ist alles, was es
für die Mob-Interact-Methode
gibt . Dies ist im Grunde genommen das
Herzstück davon,
wo wir es tatsächlich darauf
einstellen, gezähmt zu werden. Und wir haben das Set, die Einstellmethode,
nichts zu verrückt. Wir haben auch die gesetzte T-Methode. Wo ist diese Erkältung? Lassen Sie mich das
wirklich mal ansehen. Das ist kalt. Ich glaube
nicht wirklich
, dass das kalt ist. Es könnte auch
über einige dieser
Sachen hier aufgerufen werden , aber wir ändern im Grunde
nur einige
der Attribute hier, wenn
dieses Tier gezähmt wird. Das ist also eine normale Sache
, die im Grunde passieren kann. Und dann müssen wir auch einfach, ich glaube nicht, dass wir das unbedingt
außer Kraft setzen müssen, aber ich habe es
überschrieben, umso weniger ist das Team in dem im Grunde
das Team ist , zu dem dieses
Tier gehört. Dann haben wir das
letzte aber nicht zuletzt, die boolesche Methode
kann ausgelaugt werden. Ich habe das auf „false“ gesetzt. Jetzt. Etwas, das
derzeit ein Bug in Gecko-Lippe ist. Ich weiß nicht, ob das im Moment
noch eine Sache ist,
aber das ist seit einiger Zeit ein
Problem, wenn das stimmt und Sie diese Läsion,
eine Gecko-Lippenentität,
tatsächlich anleinen , dann ist der eigentliche Blei, es ist unsichtbar.
Es ist immer noch da. Es funktioniert, aber es ist unsichtbar. Ich weiß nicht, ob
es noch eine Lösung gibt. Ich werde mir das auch zu
einem späteren Zeitpunkt ansehen. Aber wenn es entweder
repariert ist oder wenn es nicht repariert ist
und wir
wahrscheinlich in
späteren Vorträgen oder
irgendwann in der Zukunft eine Lösung dafür
haben . Aber das ist
so ziemlich alles, was wir
für die Teamfähigkeit brauchen . Man sieht, dass es hier definitiv
etwas komplizierter wird . Es ist nicht nur so, Oh, lass uns eine Aufzählung
da drin bekommen, eine Art Variante. Schlage da ein paar Dinge rein
und dann sind wir fertig. Jetzt ist die Teamfähigkeit
etwas komplizierter,
aber alles, was
berücksichtigt wurde, waren es nicht. Nun, so verrückt ist es nicht. Die Sitzfähigkeit ist wirklich das, was Umständen am schwierigsten unter bestimmten
Umständen am schwierigsten ist, da alle Teile korrekt sein
müssen. Wir müssen
es in den richtigen Momenten auf die richtige Weise abkühlen . Und jetzt ist es
wieder sehr wichtig, ist das Ziel. Dies ist
die meiste Zeit das, was mir
passiert ist. Warum hören sie im Grunde auf zu sitzen oder wenn man ihnen
befahl zu sitzen. Und plötzlich geht
das Tier einfach
rauf und geht woanders hin
und setzt sich dann wieder hin. Aber das war eines der Dinge. Nachdem wir all dies hinzugefügt haben, werden
wir
jetzt
nicht nur die Sitzanimation sehen können , sondern natürlich auch, wie
wir das Tier zähmen können. Mal sehen, ob es funktioniert oder warum wir uns
wieder in Minecraft befinden. Mal sehen, ob ich den Waschbären
zähmen kann. Und los geht's,
beste Freunde für immer. Jetzt sitzt es. Was ich normalerweise mache, um es zu
machen, stellt im Grunde sicher, dass es am selben Ort bleibt
. Es ist nur, dass ich es nicht in die Glühbirne
einsperren werde ,
mach hier im Grunde genommen ein bisschen Höhle,
damit ich es weiß, ob ich es definitiv bewegt hat, ob es im Grunde aus der
Höhle ist. Und so sieht
das vorerst ganz gut aus, als ob es tatsächlich dort
zu sitzen scheint. Und Sie können übrigens auch
die Sitzanimation sehen , schauen wir uns den CEO an. Und wenn ich dann noch einmal mit der rechten Maustaste klicke, sollte der Waschbär wieder
laufen oder einfach andere Ziele
verwenden, um alles zu tun, was er will. Schlendern Sie im Grunde herum oder
wann immer es möchte. Da gehst du. Jetzt
läuft es wieder herum. Also gehen sie und ja,
das ist ich meine, man kann sehen, dass es
tatsächlich schneller ist,
weil der Geschwindigkeitsanstieg durch die Zähmung zugenommen hat. Das ist etwas, das bei der Zähmung
passiert ist. Wir werden uns das
in
einem Moment noch einmal ansehen . Aber ja, das ist ich meine,
das ist so ziemlich alles, was wir wirklich tun mussten. Und jetzt hast du einen
Team-Waschbär , der echt
verdammt cool ist. Wieder einmal ist die
Bewegungsgeschwindigkeit hier im Grunde der Grund, warum sie
so verdammt schnell ist. Wir setzen
es im Grunde auf 0,5 ein, glaube ich. Mal sehen, was die
Bewegung aussehen würde, 0.3. Wir verdoppeln also fast
die Bewegungsgeschwindigkeit. Dies ist natürlich so etwas wie jedem anderen Zeitpunkt,
wenn es um die Attribute, Werte bestimmter
Attribute in diesem Fall oder bestimmte Variablen geht, man nur mit ihnen
herumspielen muss. Sie müssen sie
wahrscheinlich oft ändern ,
einfach weil Sie die Zahlen
ändern müssen, wenn
Sie wirklich nach
unten graben und sicherstellen möchten ,
dass Ihr
Mod richtig ausbalanciert ist . Ich meine, oft ist
dies eines dieser
Dinge,
bei denen man noch einmal mit den Zahlen herumspielt. Probieren Sie ein paar Sachen aus, seien Sie offen für Experimente. Und während ich meine, steht dir im Grunde
nichts im Weg. Aber das ist es dann schon
für diesen Vortrag genau hier, ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
der nächsten Vorlesung.
109. (zusätzliche Themen) Rideable Einrichtungen: Oder ich begrüße wieder zum
Schmiedekurs für wann 18 Uhr. Und in diesem Vortrag werden
wir Minecraft
eine benutzerdefinierte reitable
Entität hinzufügen . Nachdem wir die Waschbär-Entität
durchgemacht haben, werden
wir jetzt
die Tiger-Entitäten hinzufügen. Also haben Sie dafür natürlich noch einmal ein
Blog-Bank-Modell. Da gehst du. Dies ist natürlich auch beides für Sie
heruntergeladen, aber wir haben im Grunde genommen
das alles bereits eingerichtet und alles wird im Grunde dem Waschbären sehr
ähnlich
funktionieren. Was wir haben werden, ist, dass
wir
zunächst eine neue Klasse haben werden, und das
wird die Tiger-Entität sein. Da gehst du. Jetzt gibt es eine Tiger-Entität, die sehr interessant sein
wird. Zuallererst werde ich noch
einmal
die Gesamtheit
dieser Klasse kopieren . Das wird
eine sehr lange Klasse sein, aber das meiste davon wird dem Waschbär,
Nummer eins und Nummer zwei
sehr ähnlich Nummer eins und Nummer zwei Ich werde
natürlich auch
alles erklären, was ich kann . Was wir
hier sehen werden, ist, dass wir zwei holen sollten. Okay, das ist in Ordnung. Das ist
eigentlich in Ordnung, weil dies
Mod-Entitätstypen genannt wird. Eigentlich gehst du los. Und dann
wird das auch gut. Eine Sache, die wir hier haben, ist , mehr Entitäten zu sehen
, die gut werden. Und dann gibt es noch ein paar
andere Dinge, die wir auch hier
loswerden können . Und da gehst du. Jetzt keine Fehler mehr, wenn
Sie dies
vom
GitHub-Pastor oder den Gists kopieren , sollten
keine Fehler mehr für Sie vorhanden
sein. Und alles hier sollte Ordnung
sein oder ja,
es sollte in Ordnung sein. Zuallererst haben
wir noch
einmal etwas von den Sitzungskram. Sie können also sehen, dass es
sitzt, sitzt. Und selbst hier haben wir
das Sitzen und wenn wir hier mit der rechten Maustaste auf die
Mob-Interaktion klicken, können
Sie dieses Mal sehen,
ob wir hocken, dann
wollen wir tatsächlich den Rauch
so einstellen , dass er sitzt, weil natürlich wollten
wir es auch lesbar machen. diesem Grund haben wir dieses
spielerische Interface genau hier. Und das wird
das Interessante sein. Wenn ich also tatsächlich
darauf klicke und Strg H drücke, dann sollten wir sehen können
, wo du los gehst. Ich habe zum Beispiel das abstrakte
Pferd. meiste davon stammt aus den Klassen des abstrakten
Pferdes und der Pferdeeinheit. Ich kann das nicht genug betonen. Werfen Sie einen Blick auf alle Vanille-Beispiele. Du hast hier so viele
Vanille-Beispiele. Sobald Sie
die grundlegende Struktur
dieser Klasse
einer Entitätsklasse verstanden haben, es ziemlich
einfach, einen Blick auf
die Entitätsklassen ist
es ziemlich
einfach, einen Blick auf
die Entitätsklassen
von Vanille zu werfen. Wie gesagt, meiste von diesem Zeug ist das
gleiche wie beim Waschbären. Wir haben die registrierten Steuerelemente, das Prädikat für
die Animationen. Wir haben die asynchronen
Daten, das Sitzen, und dann haben wir auch
diese Sprühselektoren. Das ist also sehr interessant. Der Sprühselektor hier
ist also für den Zielselektor gedacht, für das nicht zahme Zufallsziel ist
dies eine Sache, die
im Grunde hinzugefügt wird , wo ich das vom Wolf
hinzugefügt habe. Wenn wir uns also den Wolf genau hier
ansehen, können
Sie sehen, dass im Wolf
auch eine Beute entdeckt hat, Beute genau hier ausgewählt. Und das hat auch
diesen hier. Sie können also sehen,
dass es in diesem Fall im Grunde genommen einen
anderen Strahl
in dieser höchsten
Priorität jagen würde diesem Fall im Grunde genommen einen
anderen Strahl , da wir im Grunde wollten, dass er
alles andere tut ,
bevor es dies tut. Aber das ist nur eine zusätzliche Sache. Du musst das nicht unbedingt haben
, aber es ist irgendwie cool. Sie können sehen, dass wir hier auch
ein Versuchsziel haben. Dies ist eigentlich die Sache,
die der Tiger
tatsächlich folgen wird wenn Sie eine
Rübe in der Hand haben, da ist auch der
Tischgegenstand dabei. Wenn Sie also mit der Rübe mit der rechten Maustaste
darauf klicken, dann haben Sie eine, wie Sie hier sehen
können, wir haben tatsächlich eine Chance von fünfundzwanzig
Prozent, dass es
sein sollte ,
diese Entität tatsächlich zu zähmen n ja, das ist so ziemlich viel das. Und das meiste davon kann man sehen, dass es
nicht so verrückt ist. Hier fangen wir an zu schreiben. Dies ist eigentlich der Spieler
, der das tatsächlich geändert hat. Klicken Sie also darauf und rufen Sie
dann diesen Player an. Und dann wird dies
die Hand ein bisschen
lesbarer sein , als wir sehen können, dass
Spieler Dot Star dies schreiben. Wir werden im Grunde
anfangen, dies zu schreiben. Und wie
können wir das kontrollieren? Nun, die Art und Weise, wie
wir das kontrollieren werden, kann
mit dieser Methode genau hier von einem Autor gesteuert werden. Und dann sind wir hier
gerade zurückgekehrt und Kontrolle des Passagiers
ist von Lebewesen. Und dann glaube ich, dass
wir auch zurückkehren müssen. Dies ist auch ziemlich wichtig. Und dann wird die Reisemethode
auch vom Pferd genommen. Das meiste Zeug
wurde herausgenommen, weil das einzige, was wir
nicht haben werden,
die Fähigkeit ist , mit einem Tiger zu
springen. Das ist die einzige Sache, die
wir nicht haben werden. Das ist so ziemlich
alles, was es dazu gibt. Wieder einmal ist es auch sehr, ich meine, es ist
ziemlich einfach. Anibal, Sie können einfach einen
Blick auf die spielerische Sprungschnittstelle Nummer eins und Nummer zwei auch das
abstrakte Pferd werfen. Wie ich schon sagte, all das
steht Ihnen
in den externen Bibliotheken
hier zur Verfügung, oder? Der ganze Vanilla-Code. Ich kann das nicht
genug betonen,
wie einfach es ist, sich
das
einfach anzusehen und im Grunde genommen etwas von dort zu bekommen. Fügen wir dies zu den weiteren
Entitätstypen hinzu. Ich kopiere das einfach
noch einmal. Wie immer leisten Sie sich
alles, was
im GitHub Repository und
individuell verfügbar ist. Geh zur Entität genau hier. Und dann werden wir
auch
die beiden Modelle erstellen und unsere Klassen
rendern. Also sage ich Tiger Model. Da gehst du. Und dann
werden wir auch den Tiger sagen, Tiger Renderer geht auch. Und dann werden
wir das noch einmal kopieren. Das ist ziemlich einfach und es sieht so ziemlich aus, sollte
genau wie zuvor aussehen. Wir müssen nur
das Modell auch machen. Da gehst du. Das Modell auch. Zeigt noch einmal
auf den modalen Standort
im Geo-Tiger genau
hier die Textur und dann ist die Animation hier
nichts Neues. Und dann im Renderer so
ziemlich dasselbe, wo wir gerade die
Render-Kontexte hier haben, und dann erstellen wir genau hier ein
neues Modell. Nun muss dies natürlich
noch einmal in
der
Client-Setup-Methode hier gekühlt werden . Also werden wir sagen,
welche Entitätstypen Tiger, und dann hier der
Tiger-Renderer, los geht's. Vergessen wir dann natürlich nicht das Ereignis, das wir anrufen
müssen, und das sollte genau hier in den Attributen sein. Natürlich wollten wir die Attribute hier
auf die Tigerattribute
setzen , die
sie vergeben, sehr wichtig. Vergiss das nicht, und das
sollte auch das sein. Lassen Sie uns auch
den neuen Spawn genau hier hinzufügen . Lass uns das einfach duplizieren
und dann werden wir sagen ein Tiger-Unterstrich
Spawner Greg, in deinem Tiger und
das entspricht seinem Greg und ich musste
nur
die tatsächlichen Farbcodes bekommen die tatsächlichen Farbcodes weil ich diese tatsächlich im Voraus
vorbereitet habe. Natürlich. Sagen wir, dies
ist der Farbcode dafür. Und dann ist die
Highlight-Farbe dies, um
sicherzustellen, dass wir dies in Tiger
ändern. Und dann ist das auch in Ordnung. Das Modell, nun,
wir werden einfach die Waschbären
Baunach kopieren , denn das
wird am einfachsten sein, weil sich
der Inhalt von uns nicht wirklich ändern
wird. Also werden wir einfach sagen, dass dies
das Tiger-Spawn-Ei ist. Sie vor und fügten es dann
hier am Ende hinzu,
dass er auch eine angrenzende Akte war, denke ich morgen. Und dann auch hier unterstreicht
Tiger das Laichen. Das ist natürlich
so ziemlich alles, was wir
bereits mit dem Waschbären durchgemacht haben. Nichts zu Neues sollte also alles ziemlich
selbsterklärend sein. Fügen wir auch die
Tiger-Animation gleich hier hinzu. Da gehst du. Dann werden wir
auch den Geo haben. Das wird genau dort sein. Lasst uns das öffnen und auch
das Hydro-Tiger-Modell hinzufügen . Und dann werden
wir nicht
zuletzt in der Entität ein neues
Verzeichnis namens Tiger erstellen. Und statt dort werden
wir dann den eigentlichen Tiger-PNG haben. Dies ist auch das Extra. Und das sind so ziemlich alles
, was wir brauchen. Wie ich schon sagte, das meiste Zeug passiert in der
Tiger-Entitätsklasse. Und wie gesagt, das meiste davon stammt nur
aus den Vanille-Beispielen, aus einigen bekannten
Beispielen, in denen wir den Beuteselektor hier
gesehen haben , wie gesagt, es ist einfach
eine interessante Sache. Das brauchst du nicht unbedingt. Das ist einfach etwas, das
ich interessant fand und ich dachte, dass ich
das auch dem Tiger hinzufügen würde. Also meine ich, das ist, wie ich schon sagte,
so ziemlich alles, was wir brauchen. Mal sehen, ob es funktioniert oder
ob es in Minecraft antwortet. Und wie Sie sehen können, wurde die
Tiger AG hinzugefügt. Also lass uns sehen. Da sind wir los.
Einige der Tiger hier werden erfolgreich im Spiel
hinzugefügt. Und dann lass uns ein paar Rüben holen. Sierra jetzt sollten sie mir
folgen, sobald ich das tatsächlich reingesteckt habe und
sie folgen mir vor. Das ist also natürlich das
Versuchsziel, oder? Wo dies im Grunde bedeutet was das Richtige ist, dem
sie folgen werden. Und wenn ich dann einfach mit der rechten Maustaste klicke, kannst
du sehen, dass das nicht
war, nicht erfolgreich
war, nicht erfolgreich war. Wieder einmal
sollte es eine Chance von fünfundzwanzig Prozent sein und vor, jetzt habe ich es tatsächlich hier
drin und wenn ich noch einmal
mit der rechten Maustaste klicke, dann werde ich tatsächlich
durchgehen und es sieht aus, es sieht nicht sehr
seltsam aus, aber es ist ziemlich cool und ich kann nicht springen. Wie gesagt, dies ist etwas , das Sie
wahrscheinlich durch einige Beispiele
durch das Pferd hinzufügen können . Es sollte eigentlich zu verrückt sein. Und wenn ich dann
mit der rechten Maustaste klicke, dann kannst du sehen, dann können wir diesen
Tiger auch sitzen lassen. Und das sollte auch nur gut
funktionieren. Sie können sehen, dass dies
ein Beispiel für eine beschreibbare Entität und eine
Tabellenentität zur gleichen Zeit ist, im Grunde sowohl zur gleichen
Zeit als auch hin. So einfach kann
das auch sein. Nun, aber das
wird es für diesen Vortrag genau hier sein. Ich hoffe, du hast das nützlich gefunden
und du wirst etwas
Neues lernen und wir sehen uns
in der nächsten Vorlesung.
110. (zusätzliche Themen) Hinzufügen eines benutzerdefinierten Bootens: Oder ich begrüße wieder zum
Futterkurs für 118. Und in diesem Vortrag werden
wir Minecraft
ein benutzerdefiniertes Boot hinzufügen . Jetzt ist dies eines dieser
Dinge, die dem Zeichen ähneln. Das scheint, ich meine, es sollte viel einfacher sein, aber es ist wirklich unglaublich
frustrierend, tatsächlich hinzuzufügen. Also noch einmal, ein paar, ich meine, vieles davon
wird kopiert. Aber sobald Sie dies einmal
eingerichtet haben, sollten
Sie in der Lage sein, Ihrem MOD ganz
einfach neue
Bootstypen hinzuzufügen , und es sollte fast
keine Sorgen sein. Das erste
, was wir tun werden,
ist, dass wir
eine neue Entität aufbauen werden. Das erste, was du sagen
wirst, Warte, brauchen wir eine Entität? Genau. Deshalb
machen wir es im Grunde nach den Entitäten. Das wird
die Bootseinheit sein. Vor ihnen
werden sie jedoch nur einen brauchen. Und dann werde
ich den
Inhalt noch einmal hier kopieren. Aber wie gesagt, im
GitHub-Repository
steht Ihnen alles zur Verfügung, eine Einzelperson genauso gut. Lasst uns das einfach hinzufügen und
wir sollten keine kriegen, okay, wir werden ein paar Pfeile
bekommen, aber das wird gut. Diese werden nur ein bisschen verkauft
. Das werden
Mod-Entitätstypen tatsächlich auf die Bootseinheit gehen wir nur einen Moment hinzufügen werden. Jetzt haben wir noch einmal einen Interessanterweise acht
Datentyp-ID-Typ, oder? Sobald Sie eine
andere Varianz
einer bestimmten Entität haben können, werden wir also andere Varianz
einer bestimmten Entität haben können, so ziemlich
dasselbe sein, was wir
hier mit dem Daten-ID-Typ gemacht haben . Sie können sehen, dass dies die
TI-Variante ist und dies ist der Typ. Also werden wir hier ein sehr
ähnliches Setup haben. In diesem Fall werden wir
nur
die tatsächliche Typenumierung
innerhalb dieser tatsächlichen
Mehrfach-Entitätsklasse haben die tatsächliche Typenumierung
innerhalb dieser tatsächlichen . Und Sie können sehen,
dass wir die
Kirschblüte mit nur
dem Namen Cherry Blossom haben. Und dann ist der Rest grundsätzlich irgendwie im Hintergrund
erledigt. Die Idee hier wird im Grunde genommen genau hier für uns
gemacht. Und ehrlich gesagt, wirklich, müssen
wir uns nicht wirklich all die anderen Sachen
ansehen. Wenn Sie wie jede andere
Aufzählung mehrere hinzufügen möchten , trennen Sie sie durch
ein Komma und
nennen Sie sie dann einfach , wenn etwas anderes und dann wird es in Ordnung sein. Das
müssen Sie tun, wenn Sie
eine neue benutzerdefinierte Variante oder
einen neuen benutzerdefinierten Bootstyp hinzufügen möchten eine neue benutzerdefinierte Variante oder
einen neuen benutzerdefinierten Bootstyp Sie müssen auch die
Drop-Item-Methode des Kits genau hier ändern . Sie können sehen, dass dies
eine Switch-Anweisung ist. Und dann lassen wir hier
das Kirschblütenbrett fallen. Und wenn Sie einen anderen
haben, fügen
Sie hier einfach einen neuen Fall hinzu und fügen Sie
dann einfach diesen Artikel hinzu. So einfach ist das so einfach. Der Typ Get Mod Board, beide Typen sollten
ziemlich selbsterklärend sein. Lesen Sie zusätzliche Zusätze
aus der Save-Data-Methode. Wir sparen nur den
tatsächlichen Typ dieses Bootes. Und dann haben wir hier nur
zwei Konstrukteure. Wir brauchen diese
beiden Konstruktoren weil wir diesen in nur einem Moment
im Mod-Entitätstyp verwenden
werden. Also
kopiere ich das tatsächlich über eine Sekunde. Natürlich steht dir alles
zur Verfügung. Und du siehst,
nennen wir das eigentlich das
Mod-Underscore-Board. Wie wär's damit? Das
könnte ein bisschen besser sein. Und dann sieht man, dass
dies die Bootseinheit ist, und dann ist das auch in Ordnung. Das sollte funktionieren,
das sollte funktionieren. Und dann diese eine
Heizung, wenn wir vor einem Tag
tatsächlich löschen können . Jetzt wird die eigentliche
Bootseinheit nur
der Gegenstand sein , der ein Problem ist, und dann wird der Rest funktionieren. Sie können sehen, dass dies
ein Verschiedenes ist, natürlich ist es immun gegen Feuer. Die Größe hier stammt von
den anderen Bootseinheiten. Wenn man sich also die Bootsklasse
anschaut, ist
dies natürlich
die verfügbare Klasse. Sieh dir das noch einmal an. Wenn Sie denken, dass Sie
noch etwas tun möchten, wenn Sie etwas
Besonderes machen möchten, schauen Sie sich das an und dann sollten Sie es auch dort
gut gehen. Jetzt brauchen wir
auch einen Renderer. Dies wird der
Model-Vot-Renderer sein. Oben. Da gehst du. Das wird eigentlich
ziemlich einfach sein ,
alles in Betracht gezogen. Es gibt eine interessante
Sache hier. Noch einmal kopiere ich es. Aber all dies steht Ihnen
zur Verfügung und wir erhalten keine Fehler. Und Sie können sehen, dass hier eine
sehr interessante Sache ist. Was Sie hier haben, sind
seine eigenen Ressourcen. Dies wird eine Karte vom Mod-Board-Typ zu einem Paar eines Bootsmodells für den
Ressourcenstandort sein. Das ist ziemlich Verrücktheit. Die allgemeine Idee hier
ist nur, dass wir wollen, das ist fast
genau das Gleiche. Sie würden diese Texturposition sehen, so
ziemlich das, was wir in
den Renderern hatten, wo wir die
Texturposition und dann die Variante haben, das ist so ziemlich alles,
was wir hier haben nur in einem sehr viel
komplizierter eine Methode. Und es ist was es ist , denn das ist die Sache
, die dieser richtig hat. Das
Peer-Resource-Standortboot-Modell ist also das Modell mit
Standortmonaten. Und wenn wir das zu einer Map machen, verschiedene Typen und
dann verschiedene Paare, und das
wird im Grunde funktionieren. Jetzt ist das eigentlich
interessanterweise, es wird nur
folgendes tun, wo dieser
im Grunde
verrückt aussieht. Das sieht so aus, oh mein Gott, was das **** hier vor sich geht. Buchstäblich was wir tun, gehen
wir
alle Werte durch,
die alle Arten,
die wir
für unsere Boote oder kundenspezifischen Boote definiert haben für unsere Boote oder kundenspezifischen Boote und machen dann einfach
neue Paare, oder? Also werden wir sie alle
durchgehen, eine neue Karte dafür
erstellen
und sagen: Hey, okay, jetzt werden wir eine Karte
mit diesem bestimmten Typ erstellen. Also werden wir es
durchmachen, sagen wir, wir haben sieben verschiedene Typen. Der erste Typ, und dann werden
wir einfach
sagen, wie auch immer der Name ist. Dies ist, wo das
Modell sucht. Und dann die Position der
Modellschicht. Das ist also das
eigentliche Bootsmodell, das immer das
AUC-Bootmodell sein wird. Das sind also die
eigentlichen Bootsmodelle. Sie können sehen, dass wir deshalb kein benutzerdefiniertes Bootsmodell
herstellen. Also das wird alles das normale
sein. Wenn Sie wirklich
kundenspezifische Bootsmodelle haben wollen, müssen
Sie das einfach selbst
herausfinden. Ich empfehle dringend,
einen Blick auf das
Bootsmodell zu werfen. Das sollte, ich meine, definitiv etwas sein,
das im Grunde
ein guter Anfang sein wird , aber es
wird definitiv ein bisschen komplizierter. Und wenn wir das erstellt
haben, ist
die Idee, dass dies im Grunde genommen genau
hier im Modell
mit Standortmethode zurückgegeben
wird , die Sie sehen können,
wir prüfen ob dieses
Boot es ist oder nicht des Typs oder einer Instanz einer
Mod-Boat-Modell-Entität eher. Und dann
werden wir einfach
die eigentliche Ballressource
mit dem tatsächlichen Typ zurückgeben . Das ist alles, was
wir hier machen. Es sieht ein bisschen verrückt aus
und es ist wie, wow, das ist absoluter Wahnsinn, aber insgesamt ist es
eigentlich nicht so verrückt. Also wo brauchen wir das? Nun, das werden
wir natürlich noch einmal in der MC-Client-Methode brauchen , genau hier
ist
der gewöhnliche MC-Kurs-MOD und dann im
Client-Setup genau hier. Wir werden also sagen, dass dies die Bolt-Entität ist
und dies
wird der Mod-Vote-Renderer sein.
Und da gehst du. Das funktioniert schon. Und das ist auch dieses Setup. Und dann brauchen wir dafür nur
einen Gegenstand. Interessanterweise benötigen wir dafür auch
immer noch einen benutzerdefinierten
Artikel. Dies wird
ein MOD-Abstimmungselement sein. Und dann ist da tatsächlich
ein Tippfehler drin. Wir werden das einfach schnell
beheben. Gehe zum Gegenstand. Und noch einmal hier ein paar Sachen, die kopiert
werden. Dies ist eigentlich der
Cluster ist am wenigsten. Nun, ich meine, würde nicht unbedingt
interessant sagen, aber die geringste Verrücktheit, dass
wir diese Methode haben,
im Grunde nur das tun, was passiert, wenn
wir mit der rechten Maustaste klicken. Das ist so ziemlich ich meine, es ist fast eins zu eins
vom Bootsgegenstand. Wir können dies als
Bootsgegenstand genau hier sehen. Und das ist die US-Methode. Es sieht
fast genauso aus. Anstatt ein neues Board zu machen, machen
wir eine neue Mod-Abstimmung hier ziemlich
selbsterklärend sein
sollte, und der Rest ist fast
genau das Gleiche, so
ziemlich dasselbe. Also los gehst du. Und nun, nachdem
wir dies hinzugefügt haben, lassen Sie uns auch den Gegenstand daraus machen , damit wir den letzten Pfeil dort loswerden
können. Lass uns einfach über
die magische Dämmerung kopieren. Das wird das sein, jetzt ist dieses eigentlich
das spezifische Boot. Das wird also
der Punkt „Cherry Vote“ sein. Für jede Ihrer
verschiedenen Arten von Boards
benötigen Sie verschiedene Boote, im Grunde Kirschboot-Artikel uns leid, das
ist der Chevy Bolt-Artikel. Nennen wir es Sherry. Eigentlich
Kirschblütenbrett. Das ist besser. Da gehst du. Ja, das
macht sie sinnvoller. Kirschblütenboot. Und dann ist dies
ein MOD-Abstimmungselement. Jetzt nimmt dies tatsächlich als ersten Parameter
die normale Software auf. Der zweite Parameter,
wie Sie sehen können, nimmt den
Mod-Boat-Entitätstyp, Entitätstyp, Punkttrockenheit, großartig auf. Das war einer zu
weit vom Ego entfernt. Es gibt eigentlich, da gehst du. Jetzt funktioniert es offensichtlich hier. Sie können also sehen, dass wir
das MOD-Aufzählungselement hier erstellt haben . Und dann sollte dies
auch in der Entität
funktionieren , wo wir genau dort
zurückkehren werden. Jetzt
sollten alle Pfeile weg sein. Jetzt müssen wir nur noch die JSON-Dateien
hinzufügen. Das wäre also natürlich in
erster Linie die Übersetzung natürlich in
erster Linie für den Artikel, das
wird genau hier sein, also werden wir das einfach kopieren. Das wird das
Kirsch-Unterstrichen-Boot sein. Und dann natürlich das Gleiche hier. Kirschblütenboot. Jetzt gibt es natürlich noch eine andere
Sache, das Artikelmodell, nicht
das Artikelmodell. Es ist nur ein normales Artikelmodell. Nichts zu verrückt daran, aber trotzdem
werden wir es einfach
über n kopieren . Wir werden es
uns ansehen. Sie können nur Punkte auf
eine bestimmte Elementstruktur sehen. Nichts Verrücktes hier. Gleiche gilt für die Artikeltextur. Das ist nur die
normale Bootstextur. Wirklich strukturiert im Grunde ein
bisschen für unsere Custom. Wir können also sehen, dass sie
das Kirschblütenbrett ist. Eine andere Frage
ist Gewicht, aber während die Entity-Textur dort, nun, dies
wieder in Entität geht. Und ich erstelle ein neues
Verzeichnis namens Boot. Und dann drin war die
Kirsch-Unterton-Score-Blüte, dieser Name genau hier. Was ist sehr wichtig? Es muss der gleiche sein,
wie der Name, der
im Typ dieses
Namens angegeben wird , mit
diesem Namen übereinstimmen muss , da der Renderer in Bezug auf eine Textur danach
sucht .
Das ist also sehr wichtig. Und so sieht es aus. Im Grunde noch einmal,
einfach im Grunde genommen einrichten. Das ist also der gesamte Vorstand. Und dann kannst du, das ist die
Grundstruktur des Bootes. Das ist die allgemeine Idee. Theoretisch
glaube ich, dass dies all die Dinge
sein sollte , die wir für ein Boot
brauchten. Wie ich schon sagte, ist
nur mit dem Schild. Es ist ziemlich verrückt. Wie alle Dinge in Betracht gezogen. Es gibt einige ziemlich
große Schritte, wie ich sagte, meiste davon, wenn Sie es
einfach kopieren und dann
im Grunde ändern können. Sie
benötigen also einen neuen benutzerdefinierten Artikel für jeden der neuen Bootstypen. Neuer Bootstyp genau hier. Das ist also etwas, das
du brauchst und dann
sollte der Rest ziemlich gut sein. Ich glaube, dass Sie in der Lage sein
sollten, diesen Entitätstyp
für alle von ihnen zu
verwenden. Und das sollte
so ziemlich alles sein, was du tun musst. Aber um der Vollendung willen,
schauen wir mal, ob es funktioniert. Oder wenn wir wieder in
Minecraft sind und Sie sehen können das Kirschblütenboot erfolgreich zum Spiel
hinzugefügt
wurde. Jetzt lasst es uns ablegen. Und da ist es, das Kirschblütenbrett. Und wir können es im Wasser benutzen. Alles funktioniert völlig gut, so wie wir es
erwarten würden. Und wenn ich dann tatsächlich schnell in
den Überlebensmodus wechsle, gehen
wir in den Überlebensmodus
und mal sehen, ob das fällt und tatsächlich
ein Kirschblütenbrett fallen lässt, genau wie du es
erwarten würdest. Also los geht's und arbeiten
alles, erstaunlich. Und
so einfach ist es eigentlich. Wie ich schon sagte, es gibt einige Schritte, die
man durchlaufen muss. Aber wenn man sie einmal durchgemacht
hat, ist es eigentlich
ziemlich einfach. Aber das wird es für
diesen Vortrag genau hier sein. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
111. (zusätzliche Themen) Entity World Generation: Oder ich begrüße wieder zum
Schmiedekurs für 100 Teen. In diesem Vortrag werden
wir Minecraft die Generierung
benutzerdefinierter Entitäten hinzufügen , aber wir haben unsere Entitäten erstellt jetzt wollen wir auch, dass sie
in der Welt spawnen. Dafür werden wir hier
einfach
einen neuen Kurs machen . Im World-Agenda-Paket werden
wir also eine neue
Mod-Entitäts-Degenerationsklasse erstellen. Und noch einmal
werde ich diesen kopieren, weil ich hier
im Grunde genommen eine kleine
Klasse vorbereitet habe im Grunde genommen eine kleine
Klasse vorbereitet , die Sie verwenden können. Das ist also natürlich, dass wir dies auf
mehr als zwei Typen ändern
müssen , die sie verwenden,
und dann auch diese. Das sollte für dich keine
Sorgen sein. Sie sollten das
einfach kopieren können. Und Sie können die
gesamte Klasse hier sehen, wir haben eine
Entitäts-Spore-Methode, die
wir hier aufrufen werden, im Grunde
ganz unten hier. Also Mod-Entitäts-Iteration
bei leerem Spawn, und dann geben wir
das IM-Ladeereignis hier weiter. Und das sollte
so ziemlich genau das sein, was wir brauchen. Und dann können Sie sehen, dass es einige Methoden
gibt, unter denen wir verwenden können. Fügen Sie beispielsweise Entity
zu allen Overrule-Biomen hinzu. Wir haben eine Entität für alle
Biome. Netto nach Nether. Nein, nether, tut mir leid, richtig. Es gibt also überall
außer dem Nether, jedem Roboter, das Ende. Und dann auch hier, alle Biome
einschließlich und noch eins. Und normalerweise sollten Sie theoretisch,
wenn Sie diese Methoden haben,
sehr leicht in wenn Sie diese Methoden haben, der Lage sein,
andere
zu tun, die so ziemlich dasselbe tun
, was Sie tun möchten. Ich meine, ehrlich gesagt, an dieser Stelle ist natürlich
etwas Java-Wissen eine Sache, die Sie an dieser Stelle haben
sollten. Und wenn Sie es einmal haben, sollte das Hinzufügen von mehr hier nicht zu verrückt sein, auch wenn Sie nicht unbedingt alles
verstehen,
wenn Sie so sind, okay, das fügt es allen Biomen hinzu, aber das Ende ist es wie, okay, du kannst wahrscheinlich herausfinden, wie
man sie nur zum Ende hinzufügt, zum Beispiel nur buchstäblich
das, das war's jetzt. Plötzlich alles
nur bis zum Ende Biome, das ist so ziemlich
alles, was es dazu gibt. Also diesen Kurs, wie ich schon
sagte, habe ich schon mal benutzt. Und doch hatten wir hier gerade das
Beispiel, dass
wir sie im Grunde
allen überwältigten Biomen hinzufügen werden, in diesem Fall sowohl dem
Waschbär als auch dem Tiger. Nachdem wir es hier
hinzugefügt haben, ist
das buchstäblich
alles, was wir tun müssen. Ich schätze, um der Vollendung willen,
mal sehen, ob es funktioniert. Es übersetzt zurück in Minecraft. Theoretisch müssen wir dafür nicht
einmal
eine neue Welt schaffen ,
weil die
Entitäten irgendwie spawnen. Ich meine, ich würde nicht
unbedingt dynamisch sagen, aber sie erkennen
im Grunde nicht sofort die
Welt, die erzeugt wird. Mal sehen, ob wir
einen unserer benutzerdefinierten finden können. War das schon
Tiger da ist es. Hier im Wald gibt es schon einen Tiger. Es gibt noch
einen, einen anderen. Aber das ist ich meine,
so einfach kann es sein. Äh, du hast gesehen, dass das
ziemlich einfach ist. Alles, was in Betracht gezogen wird,
wie gesagt, sollte es auch ganz einfach
sein, es
nicht zu ändern. Sie können sehen, dass es noch
ein paar Tiger gibt. Ich will, dass wir vielleicht auch
ein paar Waschbären finden können. Vielleicht einfach schnell über
diesen Hügel, Kommando. Ein paar Waschbären. Das sind sie, Lasst uns verschwinden. Wir haben tatsächlich festgestellt, dass sie
Waschbären und zwei dunkle Rekorde lesen .
Das ist also ziemlich cool. Ja, so ist es am einfachsten, Minecraft
eine benutzerdefinierte
Entitätsgenerierung hinzuzufügen Minecraft
eine benutzerdefinierte
Entitätsgenerierung , die es bereits für
diese Vorlesung hier hat. Wie immer steht Ihnen natürlich
der gesamte Code
im GitHub-Repository zur Verfügung und auch
individuell. Aber sonst sehe ich
dich in der nächsten Vorlesung.
112. (zusätzliche Themen) Benutzerdefinierte Traden für Dorfbewohner hinzufügen: Oder ich begrüße zurück zum
Schmiedekurs für 118. Und in dieser Vorlesung werden
wir einem Dorfbewohner
individuelle Trades hinzufügen . Dies wird also benutzerdefinierte Eigenschaften für
bereits bestehende Dorfbewohner
sein , die hier
sehr wichtig sind. Wir werden im Moment keine
benutzerdefinierten Dorfbewohner hinzufügen. Dies könnte in Zukunft passieren, aber ich würde mich jetzt nicht unbedingt darauf
verlassen. Also müssen wir in
unseren Event-Kurs gehen. Es gibt nur eine Veranstaltung hier.
In der fortgeschritteneren Klasse. Ich
kopiere einfach die Methode und es ist sehr, sehr
einfach. Das ist alles, was wir brauchen. Sie können also sehen, dass wir hier
einfach
die Dorfbewohner
von n nutzen werden. Und dann
werden wir einfach sagen: hey, wenn der Typ spezifisch ist, ein Beruf, bei dem wir auch unsere Eigenschaften hinzufügen
möchten,
dann fügen wir einfach
unseren Trade hinzu. Das ist buchstäblich
alles, was wir tun. Man sieht, dass es sehr,
sehr einfach ist. Sie können sehen, dass Sie auf diese
Weise filtern. Wenn Sie also etwas
für einen anderen Beruf hinzufügen möchten, kopieren
Sie einfach die if-Anweisung und es hat den
Fachmann genau hier geändert. Sonst noch was
du hier willst? Sie können die
Dorfbewohnerebene genau
hier angeben , wenn Sie
das noch handeln. Und dann passieren Sie hier die
Dorf- oder Hebelebene und fügen dann einfach das gewünschte
Händlerangebot hinzu. Also der, dieser hier, also der eigentliche Smaragd hier ist das, was du bezahlst.
Das Händlerangebot. Sie können auch
zwei Gegenstände einlegen, drei Gegenstände, Stapel, und dann
wären dies die beiden Dinge, für die
Sie bezahlen müssen. In diesem Fall
haben wir einen Item-Stack, den Smaragd zu Smaragden. Das zahlen wir,
und dafür werden wir Vermögensrüben
bekommen. Dann kannst du sehen, dass Max benutzt, wir können das zehn Mal benutzen. Die Geschwindigkeit beträgt 50. Ich denke, das ist
eigentlich ziemlich viel zu hoch für das Zeug hier. Also denke ich, dass dies normalerweise
eher im Bereich einer
einstelligen
Erfahrung liegt , aber was auch immer der
Fall sein mag, ich meine, all diese Zahlen empfehlen
dringend, einfach mit
ihnen
herumzuspielen oder das andere. Ich meine, das ist wahrscheinlich sowieso
das Klügste, aber das ist buchstäblich
alles, was du brauchst. Sie können dies einfach bei
so vielen if-Anweisungen
hier kopieren , wie Sie möchten, so viele Eigenschaften, wie Sie
hinzufügen möchten. Aber das ist buchstäblich
alles, was Sie
tun müssen , ist
wirklich einfach, wirklich einfach. Ich meine, du kannst es nicht
einfacher machen, ehrlich gesagt, wirklich. Ich meine, ich denke, nur
um der Fertigstellung willen, mal sehen, ob es funktioniert oder
ob unsere Antworten wieder in Minecraft sind und sie
sehen können , dass wir die
Rüben bereits hier haben, also kann ich einfach Smaragde einsetzen und ich hole
meine 12. Rüben. Das funktioniert schon,
unser Brauch. Und Sie können sehen, wie
viel Erfahrung der tatsächliche Landwirt daraus
noch einmal hat. Und dann lass uns tatsächlich zum Tool Smith
gehen und lass uns hier einfach ein paar
Werkzeuge besorgen, damit wir ihn im Grunde auf Stufe drei
bringen können , weil wir sie auf Stufe zwei,
Stufe drei,
brauchen , Lass uns
etwas Eisen holen Barren Seher, wenn Sie auch handeln, eiserne Ingots das Ziel. Und dann hoffen wir, dass
das klappen wird. Lasst uns ein paar Eisenbarren holen. Und dann
sollte Level drei gleich um die Ecke sein. Sie haben vor Upgrade, Upgrade durchgeführt. Geh und jetzt lass uns sehen. Wir haben den
Paxil in diesem Fall nicht, also hat das nicht ganz funktioniert. Nun, fair genug. Ich schätze, sagen wir dann
das andere. Lassen Sie uns einfach schnell upgraden oder dieses Tool Smith war ein
bisschen kooperativer. Du kannst das Kobalt
Paxil sehen. Da gehst du. Also können wir das kriegen und
dann könnten wir es gebrauchen. Wie auch immer wir gerne hätten. Da gehst du.
Genau wie wir erwarten würden, dass das eigentliche Tool funktioniert, funktioniert
es und los geht's. Es konnte hier über
das eigentliche Tool Smith
gehandelt werden und hier noch einmal, die Rüben genau hier, können
wir nur ein paar
davon holen und sie gehen. So
funktioniert der Max auch völlig gut, aber wie wir erwarten, dass es
wirklich verdammt cool wird. Und
so einfach ist es, den Dorfbewohnern
einige benutzerdefinierte Eigenschaften hinzuzufügen . Wie gesagt, das sind
natürlich bestehende Dorfbewohner, aber das fügt
Ihrem Mod immer noch einige verschiedene Ideen einige verschiedene Ideen
hinzu, was wirklich cool
ist. Ich empfehle also dringend, das zu
überprüfen, aber sonst
wird es für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du hast
etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung.
113. (1.188.2) Schwelle auf 1.18.2: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in dieser Vorlesung
werden wir unser Projekt
auf 118 aktualisieren , bis jetzt mit
der Veröffentlichung der 1880er Jahre, es gibt ein paar Änderungen, aber zum Glück nichts, was wir tatsächlich ziemlich Krusten reparieren
können. Nichts ist zu verrückt. Das einzige, was lustig
genug ist, die tatsächlich völlig
kaputt oder nicht vollständig, aber in hohem Maße, ist der Titel komisch genug? Ich weiß nicht, warum sie den Titelbildschirm
geändert haben, aber was auch immer der Fall sein mag, wir werden nur aktualisieren und dann
werden Sie im Grunde die Änderungen in der
erstellten DOD Gradle-Datei
sehen. Es gibt natürlich ein
paar Änderungen, die vorgenommen werden müssen. Was wir also tun werden,
ist, zuerst einen Blick darauf zu werfen, was die
aktuelle Version ist. Die aktuelle Version, wie Sie sehen
können, 40012, natürlich für Sie wird dies in Zukunft
wahrscheinlich eine spätere Version sein. Also nimmst du
das einfach an diesem Punkt, und dann wird es uns gut gehen. Also werden wir das zuerst machen. Also werden wir genau hier
zu den Abhängigkeiten 40012 gehen. Und dann geht es darum, nur
zu
überprüfen, 40121, 1000th 2 zu überprüfen. Das ist richtig. Und
bevor wir das tatsächlich neu laden, wollen
wir auch
die neueste Version
von Gecko Lip bekommen, weil ich glaube , dass die
alte nicht funktioniert. Also wollten wir
auch in 312 genau hier sein, sind
einfach wieder zur
Installation gegangen, und dann
benutzen wir das auch. Also machen wir das
hier vor ihnen. Und das sollte so
ziemlich genau das sein. Abgesehen von
Pergamentzuordnungen ist
dies natürlich unglaublich wichtig für
die Pergamentzuordnungen. Wir wollen eigentlich sehr
spezifische Pergamentzuordnungen und sie werden
die folgenden sein. Ich werde sie kopieren und das wird Ihnen natürlich wieder
im GitHub-Repository zur Verfügung stehen, einer Person genauso gut. Sehen Sie, wir nehmen im Grunde die Pergamentzuordnungen aus dem 19. Jahrhundert und setzen
dann die normalen offiziellen Zuordnungen der 1880er Jahre durch. Wenn Sie
dieses Setup nicht so haben, werden
Sie
tatsächlich auf
einige Probleme stoßen und einige Methoden
sind nicht verfügbar. Denken Sie also
daran, wenn Sie persönliche
Magnete
verwenden, um dies zu verwenden, oder wenn sie auf 172 aktualisiert werden, können Sie sie natürlich zu diesem Zeitpunkt auch auf diese
Version
aktualisieren. Aber dann klicken wir auf
den kleinen Elefanten. Wenn dies nicht angezeigt wird,
können Sie die Registerkarte Gradle öffnen und dann die Neulad
- oder Gradle-Änderungen drücken. Das kann jetzt noch einmal bis zu ein oder zwei Minuten
dauern. Und weil ich das schon
gemacht habe, sollte
das für mich genommen werden. Normalerweise gibt es ein
paar Sekunden. Mal sehen, sei einfach geduldig
und lass es durchlaufen. Und dann werden wir sehen, nachdem
wir einen Build erfolgreich gemacht
haben, dass sie
erfolgreich gebaut wurden, haben hier tatsächlich gut zwei Minuten
gedauert. Aber seien Sie natürlich noch einmal geduldig und warten Sie, bis Sie einen Build erfolgreich haben und dann wird es
Ihnen gut gehen. Aber das erste, was
wir tun werden, ist, dass wir tatsächlich in
unseren MC-Kurs-Mod-Kurs gehen und
eine Sache machen werden und das wird den Gecko
Lib Dot initialisiert. Dies
hätte wahrscheinlich vorher hinzugefügt werden sollen, aber jetzt ist der beste Zeitpunkt
denn je, um es einfach hinzuzufügen. Und dann wird es
uns hier gut gehen. Ich denke, es ist das nächste
unbedingt notwendig, aber es wird
zumindest auf jeden Fall
empfohlen . Und was sind dann die
Änderungen, während die Änderungen hauptsächlich in den Tags
stattfanden, dann auch die Änderungen
in den Weltpaketen. Das werden wir uns
gleich mal ansehen. Und dann gibt es auch
eine winzige Änderung in der Block-Entität mit
dem benutzerdefinierten Rezept. Zunächst einmal werden
wir
die Tags genau hier angehen . Sie können sehen, dass ich optionale Namen
Steuer nicht mehr existiert. Aber was existiert,
ist der TAC-Schlüssel, und wir werden diesen einfach durch klebrig
ersetzen. Klicken Sie darauf, drücken Sie Alt und
geben Sie diese Klasse importieren. Und dann werden wir alle optionalen Tags ändern,
um Schlüssel zu tack. Da gehst du. Und anstatt hier ein optionales zu
erstellen, erstellen
wir einfach eine Punkterstellung. Sie können sehen, dass wir das gerade in Create
ändern. Und da gehst du. Das ist so ziemlich alles
, was wir jetzt tun müssen, eine Sache, die immer noch nicht
funktioniert, da die Rute
hier wertvoll ist,
können wir sehen, wir können nicht einfach
alle Contains hier. Nun, das würdest du sagen? Ich meine, ein bisschen
nervig um ehrlich zu sein. diese Weise sieht dieses Setup wirklich seltsam aus. Also das ist es, was du da hineinlegen
musst. Siehe Registry-Punktblock
, Halter oder Hals. Dann erhalten wir im Grunde
den Registrierungsressourcenschlüssel für diesen Block, den
wir hier übergeben. Dann sagen wir,
okay, ist dieser Halter in der Wertsachtel der Dowsing
Rute? Es ist verrückt, wie
dies jetzt eingerichtet ist, ich weiß nicht, warum die
Änderungen aufgetreten sind. Ich sage nur, dass
wir
das im Grunde genommen tun müssen. Und ich werde es einfach tun, wir
werden es einfach im Grunde finden
können. Aber das sind die
Änderungen genau hier. Die Tags sind also fertig. Lasst uns dann genau hier
ins Rezept gehen. Irgendwelche Mod-Rezepte, diese Zeile
hier kann nicht mehr in dieser Methode enthalten
sein. Was wir tatsächlich tun wollen,
ist im Ereignispaket, im Mode-Ereignis vergangene Ereignisse möchten
wir ein neues Ereignis hinzufügen. Also werden wir das
für den Moment einfach hier kopieren . Dies wird die Rezepttypen
registrieren. Was wir dann tun werden,
ist, dass wir dieses
Registry-Registerereignis genau hier machen werden, und wir werden
es auf folgende Weise ändern. Wir werden also sagen, dass dies
eigentlich nicht in Global Realisiert ist , aber das ist eigentlich der Serialisierer der
Rezepte vor. Das brauchen wir also. Natürlich
steht Ihnen
das im GitHub Repository auch im
Einzelnen wieder zur Verfügung. Und dann werden wir diese Zeile
kopieren wenn Sie mehrere
Rezepttypen haben, natürlich
alle hier hinzufügen wollten,
alle
Registry-Dot-Register-Methoden,
und das würde in alle
Registry-Dot-Register-Methoden, Ordnung sein. Jetzt wird das auch funktionieren. Und jetzt können wir auf
die Verrücktheit eingehen , die die Weltgeneration sein wird. Aber im abstrakten Baumzüchter können
Sie im Grunde sehen, dass wir das
konfigurierte Feature hier nicht mehr wollen. Was wir eigentlich wollen,
ist ein Holdout, oder? Also werden wir sagen „Hold on“ und dann wird das sehr interessant
sein. Es wird
Fragezeichen-Erweiterungen geben,
erweitert die konfigurierte
Funktion genau hier. Und dann machen wir das
und dann können wir in
die Moat konfigurierte
Feature-Class wechseln die Moat konfigurierte
Feature-Class und diese dann im Grunde ändern. Dementsprechend. Das wird also auch ein Inhaber sein. In diesem Fall des
Fragezeichens erstreckt sich, dann ist es konfiguriert Feature
und dann hier am Ende,
indem die Schließwinkelklammer hinzugefügt wird. Wieder einmal
steht Ihnen natürlich alles im GitHub Repository zur Verfügung, eine Einzelperson genauso gut. Was wir dann sehen
werden, ist diese Konfiguration, die wir nicht mehr
brauchen, einschließlich des Punktes. Wir werden das
durch ein Komma ersetzen und dann am Ende
sowohl die öffnenden als auch die schließenden
Klammern löschen . Dies sollte jetzt kein
Fehler mehr sein. Da gehst du. Und das sollte auch in Ordnung sein. Was wir jetzt tun müssen,
ist, dass wir jetzt von der Konfigurationsfunktion zur Konfiguration von Feature
zum
Platzieren von Feature
wechseln können Konfiguration von Feature
zum
Platzieren von Feature
wechseln . Wir müssen jetzt tatsächlich eine weitere
Platzfunktion hier
hinzufügen, und ich werde dies noch
einmal kopieren,
alles, was Ihnen
im GitHub-Repository zur Verfügung steht , genauso gut. Und Sie können hier sehen, dass
wir
diese Platzfunktion im Grunde noch einmal anstelle dieses
Halters hier haben. Und wir filtern im Grunde nach Blocküberleben der Probenahme, genau wie wir es hier tun. Anstatt dies inline
zu machen, machen
wir es im Grunde
mit einem Place-Feature hier. Und dann verwenden wir
das Place-Feature in dieser zufälligen
Feature-Konfigurationsliste, genau wie wir es hier tun. Es ist also sehr, sehr ähnlich, nur ein bisschen
anders, denke ich, wenn es um die Ruderer geht, sollte
das auch
ziemlich einfach sein. Wir müssen das einfach hier ändern
. Wir
wollten das eigentlich nicht mehr nennen. Das eigentliche Leeren
ist also kein Ding mehr. Wir wollen so
etwas machen, aber Sie
möchten nicht einmal
etwas zurückgeben , weil dies
tatsächlich nur aufnimmt. Wir werden
so etwas machen. Und dann werden dies die Platzierungs-Utils
sein, was wir brauchen, wenn
die Platzierung verwendet wird, das ist nur leer. Und dann geben wir das hier rein und ich werde das mit einem
beenden. Lassen Sie mich das einfach ein
bisschen
neu formatieren , damit ich tatsächlich
sehen kann, wo wir hier sind. Lassen Sie mich einen einfachen Block mit
einer neuen Blockkonfiguration. Sie blockieren sagen Anbieter von Zeilen. Lasst uns einfach den
Mauszeiger darüber bewegen. Was wollen wir? Dies wird
natürlich auch ein Inhaber sein. Wir müssen
dies nur in einen Inhaber ändern, den sie vor ihnen haben, und dann sollte das
auch funktionieren. Da gehst du. Wieder einmal können Sie es natürlich
immer einfach kopieren. Sie können sehen, dass die Änderungen
hier oder nicht so verrückt sind, sie sind nur wirklich Syntax,
genau hier mit der Reihenfolge. Die Reihenfolge ist
wahrscheinlich die einfachste. Wir müssen dies nur ändern und
dies dann auch in einen Inhaber ändern . Sie sind schon her. Und dann muss dies auch
von Kriegskonfiguration sein ,
sehr wichtig hier. Da gehst du. Dann, wie Sie sehen können, funktioniert auch
ziemlich gut. Dies sind also die Änderungen
natürlich die Änderungen an 0.5. Also muss ich genau
hier in den neuesten Funktionen stattfinden bei denen sie alle
auch Inhaber sind oder nicht oder Konfiguration
über Halter. Lassen Sie mich
den Inhaber hier überschreiben. Da gehst du. Warte mal los. Und ich werde das für
jeden von ihnen tun, nur damit wir es bereits haben
und es auch hier halten. Da gehst du. Dann klicken
wir darauf, Alt und Enter zum Importieren. Und anstatt
diese zu haben, ist dies platziert, was wir eigentlich wollen, einfach den Ort wieder zu
entfernen hier ein Komma
hinzuzufügen. Jetzt
wird das nicht überprüft, das wird tatsächlich wieder spawnen. Und jetzt haben sie vor, dasselbe hier statt Ort, wir werden einfach ein Komma machen und dann so
etwas tun. Und dann dasselbe hier,
das ich platziert habe, ersetze es durch ein Komma
und dann können wir das auch entfernen und das
sollte auch funktionieren. Wir müssen immer noch in
die Gen-Kurse gehen , weil sich
hier auch geändert hat. Dies ist jetzt ein Inhaber
statt eines Lieferanten. Anstatt
es als Lieferant zu machen, werden
wir es einfach so
machen. Also werden wir einfach
den Lieferanten hier entfernen und dann sollte
das auch funktionieren. Entfernen Sie also den Lieferanten,
importieren Sie den Halter. Und dann das Gleiche hier, Letzte. Lösche das
so und sie vor. Und das sollte es für
die Weltgeneration sein. Lass uns die
Regeneration von Morrow sehen. Da gehst du. Features wieder, keine Fehler mehr und jetzt
sollte alles funktionieren. Natürlich steht
Ihnen im GitHub Repository wieder alles zur Verfügung,
eine Person, die Sie genauso
gut kopieren können. Und das sollte alles sein
, was wir tun müssen. Ich werde
Ihnen tatsächlich zeigen, was mit
dem Titelbildschirm nicht stimmt , in einem
Moment, wenn wir tatsächlich in den Titelbildschirm
kommen. Aber jetzt können wir es einfach
anfangen, schauen ob es funktioniert. Lasst uns auch eine neue Welt erschaffen. Und dann werden wir sehen, ob alles in 1000. Zwei funktioniert. Oder der benutzerdefinierte Titelbildschirm
ist tatsächlich ausgeschaltet. Das werden wir uns in einem Moment ansehen. Aber lasst uns
vorerst einfach eine neue Welten erschaffen. Lass uns einen Test 1234 machen
und mal sehen, ob
alles noch funktioniert, ob alles noch spawnt, aber ich bin ziemlich
zuversichtlich, dass es so ist, oder Francis zurück in Minecraft. Also habe ich hier
im Grunde schon das Biom eines Flugzeugs lokalisiert. Und du kannst sehen, dass wir unsere
Custom Mobs sogar laichen lassen. Wir lassen unseren Baum unsere Blumen
laichen. Damit alles vollkommen gut funktioniert. Und du siehst, dass wir
einfach hier reingehen werden. Wir können die
Kobalt-Explosionsroute
wie ein Rezept hier bekommen , nur aus Gründen der
Argumentation, warum nicht? Probieren wir es einfach aus, denn das Rezept
sollte auch ganz gut funktionieren. Lass es uns einfach ablegen. Da gehst du mit der Theorie, du gehst und es
funktioniert immer noch völlig gut. Sie können sehen, dass wir
Kobalt-Spitzhacke sind, es funktioniert, es ist da drin. Und wie Sie sehen können, meine
ich, so ziemlich
alles funktioniert noch. Wir können uns auch
die Werftrute hier ansehen, wobei das Datentablet vor einiger Zeit
auch noch funktioniert. Es funktioniert also auch
völlig gut. Alles sollte funktional sein. Und ja, ich meine,
das ist es so ziemlich. Werfen wir einen kurzen
Blick auf den Titelbildschirm. Also werde ich einfach das „Fake“
ändern und dann schauen wir uns
an, was der Titelbildschirm und die Schwänze sind. In Ordnung, wie Sie sehen können, sowohl der Begrüßungsbildschirm als auch die zusätzlichen
Informationen in sind
sowohl der Begrüßungsbildschirm als
auch die zusätzlichen
Informationen in
der unteren linken Ecke irgendwie nicht vorhanden. Ich bin mir nicht hundertprozentig sicher,
warum das der Fall ist. Ich denke also, dass die beste
Vorgehensweise darin besteht, Ihrer benutzerdefinierten Kacheln Standardeinstellung
Ihrer benutzerdefinierten Kacheln im Grunde genommen ausgeschaltet wird,
damit er nicht ersetzt wird. Und sobald ich etwas
herausgefunden habe
, werde ich natürlich
einen weiteren kurzen Vortrag
darüber halten, einen weiteren kurzen Vortrag wie ich das
vorerst beheben kann, denke
ich, dass dies sein wird gefeuert und es wird kein
zu störender Roboter sein , diese Vorlesung genau hier abschließt. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
den nächsten Vorträgen.
114. (1.18.2) Benutzerdefinierte Strukturen (Arbeiten mit Tutorial): Alles klar, willkommen zurück
zum Schmiedekurs für 118. In dieser Vorlesung werden
wir uns einer benutzerdefinierten
Strukturgenerierung
beschäftigen ,
die sehr wichtig ist, dass die
Generierung von benutzerdefinierten Strukturen hier natürlich 118
zu sein wird, wenn Sie eine aktualisiert, raten Sie
sehr, zu
der letzten Vorlesung zu gehen , die wir hatten und wo wir im Grunde
auf 118 aktualisiert haben, um dies zu beachten,
was wir in
diesem speziellen Vortrag machen werden,
ist, dass was wir in
diesem speziellen Vortrag machen werden wir gehen werden durch das
Struktur-Tutorial von telepathischem Grunt. Und das ist genau hier. Ich habe das
hier bereits im Hintergrund geöffnet, und dies ist wahrscheinlich die beste Ressource für
Strukturen, die es je gibt. Ich meine, wie Requisiten
für telepathischen Lauf weil das einfach
absolut verdammt erstaunlich ist. Und wir können sehen, dass es hier
verschiedene Zweige gibt. Sie können die 1800er Jahre verwenden, einen Stichsägenzweig
schmieden,
wenn Sie 1, 1000th 2 verwenden, und wenn nicht, können
Sie den
Zweig der 1800er Jahre 0 verwenden, diesen hier. Schmiede. Es ist definitiv ein
bisschen anders. In 1 1000. 2. Was wir jetzt tun können, ist, dass wir tatsächlich benutzerdefinierte Strukturen erstellen sie
ohne Code der Welt
hinzufügen können. Wir brauchen nur JSON-Dateien, was wirklich
verdammt genial ist. In dieser Vorlesung werden wir diesen
Struktur-Tutorial-Mod genau
hier durchgehen , den gesamten Code, alle angrenzenden Dateien, kopieren sie Stück für Stück und dann Schauen Sie
sich im Grunde an, was Sie ändern
müssen. Was kannst du dann, was
musst du dann tun? Und die allgemeine Idee,
die beiden Strukturen, die hier
hinzugefügt werden, als Beispiel hinzuzufügen . Und dann werden
wir in den nächsten
folgenden Vorträgen selbst eine einteilige
Struktur erstellen. Und dann werden wir
auch eine Stichsägenstruktur erstellen, die tatsächlich viel einfacher ist,
als Sie vielleicht erwarten. Es ist eigentlich alles nicht zu verrückt. Ich denke, dass ja, natürlich, wenn man etwas
ganz normal hat, wird es natürlich
etwas komplizierter. Aber
vorerst
gehen wir einfach hier rein und
schauen wir uns an, was wir tun müssen. Gehen wir also in die
Quell-Hauptleitung und wir müssen beide Ordner tatsächlich
öffnen. Also gehe ich einfach
zur mittleren Maus, klicke auf die Java und dann auch
auf die Ressourcen. Wir beginnen zuerst mit dem Code. Sie können sehen Es gibt die
Hauptklasse, die wir haben,
das würde ich die Mod-Strukturen
nennen. Und dann haben wir in diesem
Strukturordner im Structures
Paket die Sky Structures Klasse. Aber das ist das erste,
was wir tun werden. Wir werden im Grunde genommen,
ich werde das ein bisschen
neu organisieren, aber wir beginnen
mit den Mod-Strukturen. Dieser hier und
unter wird das machen, und dann machen wir das 1. Zuallererst brauchen wir eine
Mod-Structures Klasse. Nun, das ist im
Weltpaket ganz einfach zu machen. Dann gehen wir hier neues Paket namens structure ein. Anstatt dann
werden sie alle eine neue Klasse machen die die Modelle bricht. Da gehst du. Jetzt ist es
richtig geschrieben, dass sie vor dieser Klasse was wir tun
werden, ist, dass ich einfach den Inhalt hier kopieren
werde. Das ist eigentlich, lasst uns
tatsächlich alles kopieren. Das wird gut werden. Ich benenne
es hier nochmal um. Wenn ich also moderne Strukturen sage, werden
sie sicherstellen, dass
der Name hier korrekt ist. Und dann können wir
dies und das auch löschen. Da gehst du. Und formatiere
das einfach ein bisschen neu. Dies ist natürlich
jetzt der MC Course Mount bei AdMob ID. Und weil ich
das gerne mache, werden
wir
ein machen , weil ich das gerne mache. Wir werden es öffentlich machen
statische Void Register Methode mit einem I von n plus Event Pass. Und dann rufen wir
die aufgeschobene Registerstruktur auf. Man könnte
es auch direkt in
der Hauptklasse
des Konstruktors nennen , aber das werden wir in
dieser Klasse nicht tun. Wir werden
in nur einem Moment hinzufügen. Also im
MC-Kurs-Mod hier werden
wir einfach runtergehen, sagen
wir genau hier, um Strukturen zu
modellieren, die sich registrieren und dann den Event-Bus-Tarif, den
Sie fahren, oder? Und jetzt haben wir
das tatsächlich genau hier und
dann auch dieses gemacht . Sie können sehen, dass
dies buchstäblich
das einzige ist , was
wir hinzufügen müssen. Und dann haben wir hier
die Himmelstrukturen eins, wir einfach
über das Ganze kopieren werden. Wieder einmal ist dies
das Strukturpaket. Klicken Sie mit der rechten Maustaste auf neue
Java-Klasse namens Sky structures, nein, sin hier. Was wir nur tun
wollen, ist, dass wir nicht Log-Manager sagen wollten, um
sicherzustellen, dass wir wählen oder Apache-Protokollierungsprotokoll für
J. Sehr wichtig. Und dann sagen wir
statt Lagerbier, sagen
wir doch Lager oder
Log. Da gehst du. Dies ist nicht das heruntergekommene Haus. Es gibt tatsächlich
Himmelsstruktur. Dort gehst du an einer
bestimmten Position. Und dann können wir uns diese Klasse tatsächlich
ansehen, was es ist, was macht sie? Werden Sie auch diesen Import los. Und dann geht's los. Insgesamt in dieser Klasse können Sie
das Struktur-Feature der
Puzzle-Konfiguration sehen . Das ist eine Art
Boilerplate-Code. Sie können sehen, dass es viele
Kommentare gibt , die ich
in Ihrer Freizeit wärmstens empfehlen kann. Gehen Sie durch, lesen Sie alle
Kommentare. Versuche einfach ein
bisschen zu verstehen, was es sagt. Die ewigen Ideen, dass Sie hier zwei verschiedene Methoden
haben, diese Feature Truck mit
ihm und deklarierten Teilen. Der Generator und der
Creed-Pizza-Generator sind wirklich das, was für uns am
interessantesten ist. Sie können im zukünftigen Kofferraum sehen, wir
überprüfen im Grunde nur, hey, ist dieser Teil der eigentliche
Teil, wo dieser platziert ist? Grob gesagt
empfehle ich, wie gesagt,
alle Kommentare durchzulesen. Es ist sehr empfehlenswert. Aber dann können
Sie im Creative
Pieces Generator hier sehen, was wir hier
im Grunde tun. Das ist interessant,
oder? So bekommst du die Trunk-Koordinaten
in einen Blogbeitrag. Das wird also das
sein, was es tut. Und dann platzieren wir es hier
im Grunde 60 Blöcke über dem obersten Land. Sie können also sehen,
dass es so ist. Sie können in dem Kommentar hier sehen, wir werden
die WG am obersten Wasser anhalten , damit wir unsere
Struktur nicht versehentlich in den Ozean stecken. Und dann bekommst
du im Grunde genommen die Y-Koordinate der Spitze des
Landes, und dann addieren wir 60 hinzu. Dies ist also eine Möglichkeit das Y-Level
grundsätzlich zu ändern. Und dann können Sie
auch genau hier sehen, wir haben für jeden
der verschiedenen Parameter
, die wir hier einsetzen,
den, was hier im Grunde passiert
. Es ist wirklich gut gemacht. Ich kann
Ihnen nur empfehlen, wenn es
eine gewisse komplexe Sache gibt ,
die Sie tun möchten, lesen Sie die
Kommentare durch, die hier
hinzugefügt werden , und dann wird es
Ihnen gut gehen. Jetzt ist das eigentlich
der gesamte Code, den wir brauchen. Dies ist sehr interessant
, da der Rest
alles mit JSON-Dateien erledigt wird . Wir werden im Grunde
wieder zum GitHub
zurückkehren und
das alles schließen und dann sind wir
hier in den Ressourcen. Das, was wir brauchen,
ist im Datenordner, wir
müssen hier tatsächlich eine Menge Sachen öffnen. Wir müssen dieses
Zeug und dieses Zeug hinzufügen. Wenn wir unsere
Struktur zu diesem Tag hinzufügen, können
Sie sehen, dass microbe
einige konfigurierte
Struktur-Feature-Tags hat , die bei Verhalten sind. Und dann wird es im Grunde genommen
einem Locator hinzugefügt. Wir strukturieren
die Fotografen, Dorfbewohner,
Ozeankarte, Denkmalkarten. Dies ist nicht unbedingt erforderlich. Es ist einfach eine interessante Sache. Wir werden diesen nicht wirklich
umsetzen. Wir werden es einfach ignorieren
und wir werden nur an dem Datenordner
für unseren eigenen benutzerdefinierten Ordner
interessiert sein . Dies ist natürlich
ein Strukturunterstrichen-Tutorial oder die Mod-ID-Stunden,
wird Mc-Kurs sein. Und dann öffnen wir
alle drei dieser Ordner. Und dann können Sie sehen, dass die
Strukturen hier NVT-Daten sind. Das ist sehr interessant. Die NVT-Daten werden also
grundsätzlich
innerhalb der Zeit
anstelle von Minecraft generiert . Sie bauen also Ihre Struktur auf, verwenden
Sie bestimmte Blöcke, um sie vorerst zu
erzeugen. In dieser Vorlesung nehmen
wir diese NVT-Daten auf und kopieren sie
einfach. Und dann müssen wir
tatsächlich
ein kleines bisschen in den NVT-Daten ändern ,
aber keine Sorgen. Das werden
wir in einem Moment sehen. Vorerst werden
wir im Grunde
alle vier herunterladen. Also gehen wir einfach hier rein, öffnen sie alle
und laden dann herunter,
downloaden , herunterladen und herunterladen. Und Sie können sehen, dass sie sich unter Data Mart ID-Strukturen
und dann der eigentlichen Datei befinden. Was wir also
tun werden, ist in unserem Datenordner, MC natürlich, wir werden ein neues
Verzeichnis namens Structures erstellen, und dann füge ich sie
alle hinzu. Ich werde es einfach so
machen. Da gehst du. Genau wie sie in diesen Ordner
ziehen. Ich meine, an dieser Stelle
sollte ziemlich selbsterklärend sein. Wie man einfach
Sachen hinzufügen kann, folgt hier, indem du sie
einfach hineinziehst. Und dann haben wir die NVT-Daten genau hier.
Das ist also richtig gut. Und das ist der erste Teil. Und jetzt müssen wir hier wieder
wechseln. Wir können das alles
hier loswerden. Da gehst du eine Stunde hier in den Tags world
genbiom hat eine Struktur. Das ist also ein wirklich cooles Tag
, das wir hinzufügen werden. Und das ist ehrlich gesagt wirklich verdammt cool, denn
man sieht vor allem die Sky Fan Biome hier. Und dann gibt es auch
das JSON-Haus. Das einzige JSON-Haus, wenn Sie sich in unseren
Strukturen erinnern, die wir hatten, hatten wir nur die
Himmelsstrukturen genau hier. Es wird kein Haus erwähnt. Genau. Das sage ich. Sie können
bestimmte Strukturen tatsächlich hinzufügen , ohne überhaupt Code zu haben. Diese DJs und hören nur Haus. Dies wird es uns im Grunde ermöglichen, dies zu tun. Ich werde es tun, dass ich sie einfach beide besitzen
werde. Was ich dann mache, ist, dass ich
den Namen hier kopieren werde , weil
das ein bisschen einfacher ist. Und das war ein Tag in unserem
MC-Kurs, Holdup-Tags. Und das unter dieser
Unterwelt Jen. Und statt hier wird
das unter Biom sein. Und dann noch eine Struktur, ein weiteres Verzeichnis, das als Unterstrich-Struktur
bezeichnet wird . Und dann können wir die
Datei hier hinzufügen, diese 1. zuerst. Und dann bekommen wir
auch die zweite, den Namen
auch hier, eine neue Datei. Los geht's, Jason
hat nur Biome und Sie können den Inhalt sehen , wenn ich das
kopiere. Das ist also die
Codestruktur Skype und Biome. Sie können sehen, dass diese Biomsteuer
angibt,
welche Biome tatsächlich darin beginnt. Sie können
es entweder mit Biom-Tanks
mit einem Hashtag starten oder ein bestimmtes
Biom wie dieses
angeben. Es ist echt verdammt genial. Auf
diese Weise können Sie grundsätzlich angeben, in welche Biome diese
bestimmte Struktur spawnt, aber auch
den Inhalt dieser Struktur kopieren. Sie gehen. Ohne das. Natürlich gehst du da.
Und die gesamte Saccharose auch im
GitHub Repository im verfügbar ist, genauso gut. Mach dir
keine Sorgen. Ich denke jedoch wirklich,
dass es das Beste ist, wenn Sie dieses
Struktur-Tutorial
einmal und dann vielleicht
sogar einmal alleine
durcharbeiten dieses
Struktur-Tutorial
einmal und dann vielleicht
sogar einmal alleine
durcharbeiten , nur damit Sie jeden einzelnen Teil im Grunde
kennen. Man kann also grundsätzlich sagen, dass dieses
Biom-Tag der Welt eine Struktur hat und verwendet
wird, um
die Biome zu spezifizieren , in denen unsere
Strukturen laichen. Aber wir können das
jetzt auch schließen. Und dann können wir mit
dem nächsten fortfahren , das die Weltgenschaft
ist. Es gab diesen Ordner, also werden wir das auch
schließen. Und dann
sieht man, dass es hier vier verschiedene Ordner gibt. Wieder einmal, alle wirklich
verdammt interessant. Also werden wir einfach den ersten
öffnen und wir werden uns im Grunde damit
befassen. Wir können sehen, dass wir hier die Codestruktur
Sky Fundraising und das angrenzende einzige Haus für das konfigurierte
Struktur-Feature haben. Noch einmal
kopiere ich den Namen genau hier und wir werden
es uns ansehen. Daten sind also
noch
idealere Unterwelt und dann konfigurierte
Strukturfunktion, wir werden ins Herz gehen. Das ist also unter den Tags, also sehr wichtig, dass Sie das nicht versehentlich hier platzieren
. Unter dem EMC Kursordner. Wir wollen tatsächlich einen neuen
Ordner namens world gen, sich dann unter Ihren Tags
befinden sollte. Stellen Sie also sicher, dass
dies korrekt ist, nicht innerhalb dieses Ordners. Stellen Sie sicher, dass dies der Fall ist,
Sie haben zwei davon. Du siehst X Gen. Dieser hat er
Struktursachen. Und dann ist dieser
World-Gen-Ordner anstelle Ihrer mehr ID für Ihren
MC-Kurs voll von sehr, sehr wichtig, dass
es dort einen Unterschied gibt. Bitte stellen Sie sicher, dass
dies korrekt ist. Statt dieser
Welt Gen Follow können
wir uns tatsächlich alle vier verschiedenen
ansehen. Die Dinge, die wir brauchen,
machen wir es einfach für einen Moment
so. Wir werden also nur sagen, dass dies die konfigurierte
Unterstreichungsstruktur ist. Und dann werden wir das
einfach hier drüben kopieren. Wir werden sagen, dass dies die
Prozess- oder Unterstrichenliste ist, und dann werden wir diese
kopieren. Dies ist der eingestellte
Strukturunterstrich. Und nicht zuletzt haben
wir auch den
Vorlagenunterstrichen-Pool, der natürlich sicherstellt, dass alle diese korrekt geschrieben sind. Und dann können wir mit
der konfigurierten
Strukturfunktion genau hier fortfahren . Und wir werden da einfach
noch einmal reingehen und
diesen Namen sagen, genau hier. Ich mache
eine neue Drazen-Datei. Wir klicken mit der rechten Maustaste auf
neue Datei und nennen sie so. Da gehst du. Und dann kopiere
den Inhalt davon. Und dann
werden wir sehen, wo die ersten Dinge sind, die wir hier
tatsächlich ändern müssen. Und wie Sie
sehen können, gibt es wieder viele Kommentare, keine Sorgen. Diese Pfeile können
Sie übrigens in
den JSON-Dateien ignorieren , weil sie
immer noch arbeiten werden. Und so gibt es keine Sorgen. Sie können im Grunde sehen, dass wir hier einige Überschreibungen
haben,
was bedeutet, dass, hey, diese besonderen Monster
könnten in dieser Struktur spawnen, Sie können sehen, welche Mobs im Laufe der Zeit
in der Struktur
spawnen können . Das ist auch hier sehr
interessant, wenn echtes Land am Boden
einer Struktur sein
wird, die auf dem y-Wert
des Stücks basiert. Das ist auch etwas
, das du tun könntest. Dieser hier ist das Tag. Dies müssen wir
dieses Tag genau hier angeben. Dies ändert sich natürlich an
unserer Modell-ID und hat dann Strukturen ist das
Gleiche und dann ist
dieser Name
dasselbe wie dieser. Also müssen wir dies nicht
ändern. Der Pfad zur schlechten JSON-Datei
der Vorlage muss natürlich auch MC-Kurs sein. Dies ist angrenzend, das
wir in einem Moment
unter dem
Vorlagenpool hier hinzufügen werden. Und dann ändern wir hier auch
diesen Namen
in MC Course Sky Structures. Sehr wichtig, dass Sie mit
diesem Namen
die Basisstrukturklasse sehen können , die für das Verhalten
der Struktur
verwendet werden soll. So können wir in den
Mod-Strukturen genau hier sehen, dies ist der Name
der Himmelstrukturen und dann ist
es das, worauf es es basiert. Dies ist jedoch im Grunde
die Verbindung zwischen dieser JSON-Datei und
dieser Struktur, hauptsächlich wie diese
Strukturklasse hier. Denken Sie also auch
daran, dass
Sie das Typjahr richtig geschrieben haben , wenn es um
das JSON-Haus geht , oder? Wir werden den Namen einfach noch
einmal kopieren. Wir werden das
in denselben Ordner legen, eine neue Datei genau hier. Los geht's und dann wird der eigentliche Inhalt noch
einmal kopiert. Da gehst du. Und dann müssen
wir uns auch noch einmal ändern, da dieser
MC-Kurs sinnvoll sein sollte. Und dann ändern wir dies auch
auf MC-Kurs. Dies wird nach einer JSON-Datei im
Template-Unterstrichen-Pool
suchen ,
in
der wir diese im Grunde genommen
in nur einem Moment hinzufügen Abgesehen davon kann
der Rest bleiben. Zum Beispiel können Sie sehen, dass
es eine Illusion oder einige Plünderer und einige Eltern gibt
, die hier drin spawnen könnten. Das ist wirklich interessant. Wir werden dann
weitermachen. Jetzt haben wir
das konfigurierte Struktur-Feature verwaltet das konfigurierte Struktur-Feature und können uns dann die Prozessorliste
ansehen. Das ist auch eine sehr interessante
Sache. Wir können das einfach
basierend auf Akten direkt hier bekommen. Lassen Sie es uns einfach überschreiben
und wir werden es uns darin
ansehen . Dies ist die Prozessorliste, eine neue Datei,
die als zufällige Mäuse
bezeichnet wird bricht Grayson nicht. Und das ist sehr interessant. Also füge ich das ein. Und Sie können sehen, dass dies eine ist, das ist im Grunde eine
Regel und was es tut ist, dass es eine bestimmte Sache ersetzt. Sie können also sehen, dass der Block, den wir suchen, der Steinstein ist. Und dies hat eine
Chance von 50%, dass der gefundene Steinstein durch verschiedene Dinge
ersetzt werden kann . Zum Beispiel. Und Sie können sehen,
ob wir einen Steinbruch finden, dann besteht eine Chance
von 5% , ihn
durch ein Smaragd ODER zu ersetzen, und hier können Sie
sehen, dass eine Chance
von 50% besteht , ihn tatsächlich durch
einen befallenen Steinziegel zu ersetzen. Und dann können Sie hier unten sehen, ein paar tiefe Schiefer mit einem Wert von
10% oder einer Wahrscheinlichkeit von 10%
mit einem Deep State
Redstone oder so ersetzt werden
könnten Wert von
10% oder einer Wahrscheinlichkeit von 10%
mit einem . Das sind einige sehr
interessante
Beispiele für im Grunde eine
dieser interessanten Regeln, die wirklich
verdammt interessant ist, was Ihre Strukturen
genau so mehr machen kann, naja, ich meine das mehr
interessant, wenn Sie dann bestimmte Blöcke
unter bestimmten Bedingungen
ersetzen können, grundsätzlich mit einer
gewissen Wahrscheinlichkeit es sich
hier um andere Blöcke handelt. Das ist echt cool
und echt genial. Das ist also definitiv
etwas, mit dem man auch
in Ihrer Freizeit ein bisschen
herumspielen kann. Aber das wurde auch hinzugefügt
und wir werden in nur einem Moment sehen, wo das verwendet wird damit wir dies auch schließen können. Und dann
öffnen wir uns einfach für die Struktur, die im Vorlagenpool
festgelegt ist. Beides kann man noch einmal sehen,
die Struktur ist festgelegt. Wir haben zwei JSON-Dateien, eine für jede unserer verschiedenen Strukturen
noch einmal. Also werden wir
diese Jason-Akten auch einfach lesen. Lies das hier. Da gehst du. Und dann kopiere ich
den Inhalt hier. Wieder einmal, los geht's. Dieser ist also eine der, naja, ich würde sagen, dass dies eine
der einfacheren JSON-Dateien ist. Ich würde sagen, ich ändere einfach
den Namen hier. Und dann sollte das natürlich, in diesem Fall die Struktur hier,
hier in diesem Fall die Struktur hier,
hier nach
dieser JSON-Datei suchen ,
wenn ich mich nicht irre. Und dann
ist die Platzierung hier eigentlich sehr wichtig. Also das Salz hier,
du kannst es sehen. Stellen Sie sicher, dass dies
einzigartig ist und
mit keinem anderen Salz übereinstimmt. Ansonsten wird es
passieren, dass sie selben Ort platziert werden, was wir natürlich nicht wollen. Und Sie können die durchschnittliche
Distanzunterstützung in Chunks sehen. Und dann hier ist dies der
Mindestabstand von Ihrem Kofferraum entfernt. Dieser muss also immer kleiner
sein als dieser. Es ergibt Sinn. Und dann
wählen wir hier im Grunde
nur einen zufälligen Spread aus. Dies ist auch ratsam
, um es so zu behalten. Und das ist
so ziemlich genau das, was wir brauchen. Ohr. Und was wir dann brauchen, ist normalerweise auch der
Fall. Wir werden auch
dazu kommen, sie vor und dann der Name hier, also neue Datei und dann einfach über den Inhalt
kopieren. Und Sie können sehen, dass sich das hier
wieder ändert. Sie sind schon her. Und Sie können sehen, dass dieses Salz hier
anders ist als dieses Salz. Noch einmal
empfehlen Sie dringend,
wenn Sie Ihre eigene
benutzerdefinierte Struktur hinzufügen. Wenn wir die
benutzerdefinierten Strukturen in
den nächsten beiden Vorträgen hinzufügen , werden
Sie sehen
, dass wir auch
das Salz ändern werden.
Sehr, sehr wichtig. Ansonsten ist dies
eine ziemlich einfache
JSON-Datei. Dieser zeigt erneut auf,
zeigen Sie auf das konfigurierte
Struktur-Feature genau hier. Das Letzte, was wir
brauchen, ist der Vorlagenpool. Das werden also genau hier die
JSON-Akten sein. Also werde ich das schließen,
dies und das. Sie können sehen, dass wir die
einzelne angrenzende Datei hier haben und wir haben zwei
JSON-Dateien für das Haus. Wir werden einfach zuerst den Sky Fan
benutzen. Das wird genau
hier drin sein. Also Skype über Jason und
dann
kopiere ich das
auch. Da gehst du. Und du könntest sehen, was
hier passiert ist, dass ich zuerst im Namen hier ändern
werde. Das ist also eigentlich nicht unbedingt
notwendig, denn ich glaube, dass
der Name hier ist, es ist so
ziemlich der Name
des Vorlagenpools selbst. Ich glaube nicht, dass
dies hier wirklich geändert
werden muss ,
nicht 100% sicher, aber Sie können auch sehen, dass
es hier einen Link für die JSON-Datei A Template
Pools gibt. Empfehlen Sie dringend,
dies auch zu überprüfen. Dies ist natürlich
auch hier verbunden , also gibt es keine Sorgen. Und dann
siehst du, nach welchen Elementen wir suchen? Nun, wir suchen nach dem achten Platz. Wieder einmal muss das
Struktur-Tutorial auf
MC-Kurs wechseln , den Sky Fan. Nun, wie Sie sehen können, ist
der letzte Pfad Ressourcen Datenstruktur
Tutorial in unseren Fällen MC-Kurs, Es ist Strukturen heruntergeklappt,
linkes Haus, linke Seite MVT. Das stimmt natürlich
nicht ganz. Dies sucht nach Sky
Underscore Fan, NVT, Sky Fan, und dann ist
dies genau hier, Skype und MET unter dem
EMC Kursstandort. Dies ist, wo es sucht. Und dann ist dieser
auch sehr interessant. Sie können sehen, dass wir
den Prozessor genau hier hinzufügen
, der MC-Kurs,
randomisierter Stein, Ziegel. Dies ist genau diese
JSON-Datei hier, also wird diese eigentlich nicht benötigt. Dies ist sozusagen nur ein
zusätzlicher Bonus. Und Sie können sehen, gibt die Prozessorliste an
und
wendet sie dann im Grunde genommen auf die
NVT-Datei an, wenn Sie
sie in der Welt platzieren. Und dann ist es da. Sie können sehen, dass
Prozessorlisten sich hervorragend eignen Blöcke zu
randomisieren und Strukturen natürlicher erscheinen zu lassen. Wirklich verdammt
genial, Wirklich cool und insgesamt nicht
zu verrückt zu benutzen. Wieder einmal ist dies eines
dieser Dinge, bei denen es natürlich genau das
hinzuzufügen, was etwas schwierig sein könnte, genau das
hinzuzufügen, was
Sie wollen. Aber insgesamt ist es immer noch
eine wirklich coole Sache, sich im Grunde anzusehen, sich umzuziehen und mit ihm
herumzuspielen, oder? Das wird
also der Himmel-Fan sein. Und jetzt werden wir
das heruntergekommene Haus machen. Sie können sehen, dass es einen
Site-Pool und einen Speicherpool gibt. Wir werden im Grunde beide
in der Nähe sein, werden nur zuerst
zum Site-Pool kommen. Und das ist in einem
neuen Ordner genau hier, der als Run
Underscore down
underscore house bezeichnet wird . Und dann werden wir eine neue Datei namens „
Dot Underscore-Pool“
haben , Jason. Und wir werden bisher auch eine Basis
haben , die als
Site-Unterstrichen-Pool bezeichnet wird, dot dot js
unterstreichen und tatsächlich
Poole-Seitenunterstrich zitieren, der nebeneinander getäuscht wird. Da gehst du. Dies ist
der Site-Pool JSON, und dann
ist dieser hier der Startpool Jason, warum brauchen wir zwei von ihnen? Nun, das eigentliche heruntergekommene
Haus Ist eine Puzzlestruktur,
was bedeutet, dass es zwei
verschiedene Teile davon hat. Du hast eine linke
Seite, genau hier. Wir werden das noch
einmal in MC-Kurs ändern. Dies ist das heruntergekommene
Haus linke Seite, das auf diese,
diese NVT-Daten genau hier,
heruntergekommenes Haus linke
Seite und den Seitenpool hinweist diese NVT-Daten genau hier, . Sie können sehen, dass wir hier tatsächlich eine Liste von
Elementen
haben , die
unterschiedliche Gewichte haben. Und es deutet grundsätzlich auf zwei verschiedene
NVT hin. Und Sie können sehen, dass
eine Wahrscheinlichkeit von 50% besteht den Goldrauf
anstelle des regulären zu
laichen. Das ist die Idee hier. Und wir werden
ein Beispiel dafür sehen, die benutzerdefinierte Puzzle-Struktur
, die ich auch machen werde. Natürlich wieder einmal,
die MOD-ID genau hier zu ändern, was sehr wichtig ist. Und dann können wir hier einfach die Modus-Idee
ändern. Ich denke nicht, dass es
unbedingt notwendig ist, aber wir werden es einfach auch
machen, nur damit wir es haben. Sie können also sehen, dass es hier
viele bewegliche Teile gibt. Ich werde jedoch noch
einmal zusammenfassen, weil es tatsächlich noch eine
Sache gibt, die wir
ändern müssen , denn so wie es gerade
aussieht, wird
dies tatsächlich nicht
zu 100% funktionieren. Das heruntergekommene Haus
wird eigentlich nur eine linke und rechte
Seite spawnen, denn in diesen MPT-Daten wird
die falsche Monodie gespeichert. Wir werden sehen, wie wir das in einem Moment
beheben können. Aber
lasst uns zuerst
mit all dem Zeug zusammenfassen , das wir gemacht haben. Wir haben zwei
verschiedene Strukturen hinzugefügt. Wir haben die Himmelstruktur auch
mit etwas Code hinzugefügt, hauptsächlich die Sky Structures
Klasse hier, die
an bestimmte andere Funktionen verwendet werden
kann , die nicht nur über die JSON-Dateien. Hauptsächlich können Sie diesen
hier sehen, wo wir
die tatsächliche Y-Position
dieser bestimmten Struktur und
einige andere Dinge angeben die tatsächliche Y-Position
dieser . Aber was wir auch
getan haben, ist, dass wir auch eine Struktur rein
mit JSON-Dateien
erstellt haben. Und Sie können für diese
Struktur sehen, die wir brauchten. 12345 verschiedene Jason-Dateien, die sich natürlich
alle an
den richtigen Orten befinden müssen und alle
miteinander verwandt
sind. Denken wir eine Sekunde
darüber nach. Es ist also am besten, hier wahrscheinlich
mit dem
Speicherpool zu beginnen , da der Store-Pool
auf die NVT-Datei verweist. Dies ist die
NVT-Datei hier in, unter Ihrem Datenordner
Mod-ID-Strukturen in VT. Und das wird
genau hier im Sternenpool referenziert. Während der Store-Pool nun auf seinen Star
Plus verweist, der
in der konfigurierten
Struktur-Feature-Class hier referenziert wird . Wir können also sehen, dass dies der Store-Pool
ist, auf den verwiesen wird. Sie können sehen, dass dies
die Konfiguration
dieser bestimmten Struktur ist , und
dies wurde referenziert, während auch das Biom Jason Dies ist die unter der Steuerwelt, Jin Biom hat Struktur. Nur Jason Wie sind die Biome, was im Grunde schnell bedeutet in welchen Biomen kann
diese Struktur spawnen? Dies erklärt diese Verfolgungsjagd ziemlich genau und folgt hier, diese JSON-Datei wird verwendet, um die Welt
tatsächlich hinzuzufügen, wobei
im Grunde
die Struktur
der Welt hinzugefügt wird, in der diese
Struktur festgelegt ist. Sie können in diesem Kommentar hier sehen dass es
im Grunde
eine dieser Strukturen auswählen wird. Ich meine, in diesem Fall
gibt es nur eine Struktur. Man könnte theoretisch bei
mehreren Strukturen eines nicht irren, da dies hier als diese
bezeichnet wird. Ich bin mir dabei nicht 100% sicher, aber ich denke, dies
sollte sich
auf diese spezielle JSON-Datei beziehen , die sich natürlich auf
den Store-Pool und
auch auf die Biome bezieht . So sind sie irgendwie
miteinander verknüpft, genau dann für den Site-Pool. Aber weil dies eines
dieser interessanten Dinge ist, liegt
der Zyklus wieder daran, dass wir den Stichsägeblock
verwenden. Ich kann es wärmstens empfehlen, wenn dies ein
wenig verwirrend mit
einem Psych-Pool für Sie ist . Das werden wir in der sehen, wenn wir in den nächsten Vorträgen
in nur ein bisschen
über die Puzzlespiele sprechen . Und das ist es. Es gibt also einige
bewegliche Teile. Noch einmal
empfehle ich dringend, dass Sie sich diese Vorlesung möglicherweise zweimal
ansehen müssen.
Es gibt keinen Weg damit umzugehen. Strukturen können
ziemlich kompliziert sein. Sobald Sie sie jedoch eingerichtet
haben, Hinzufügen weiterer Strukturen ist das Hinzufügen weiterer Strukturen tatsächlich
sehr, sehr einfach. Die alles
hier ist eingerichtet. Ich empfehle,
nichts zu viel zu ändern, ändert im Grunde
Ihre MOD-ID, diese Ahmad-ID in Ihre Modell-ID, und dann sollte es das
sein, oder? Weil das im Grunde
alles ist ,
was wir vorerst brauchen
, werden wir eine neue Welt erschaffen,
sehen, ob die Spawns, und dann werden wir sehen, dass wir müssen
ändern Sie noch eine Sache, die ziemlich
einfach zu ändern sein wird. Aber mal sehen, ob es funktioniert. Denken Sie auch daran, wenn Sie diese Strukturen
erstellen, werden
Sie dies erhalten, dass
die weltweiten
experimentellen Einstellungen nicht unterstützt werden. Es
ist einfach was es ist. Sie können einfach auf Weiter klicken. Es ist meins. Sieht vielleicht ein bisschen
anders aus, wenn Sie sich einer Welt
anschließen
, die bereits existiert. In diesem Fall
schuf dies eine neue Welt. Es gibt im Grunde
keinen Weg damit zu umgehen. Das wird auftauchen, aber es gibt keine Sorgen. Man kann es grundsätzlich ignorieren. Sag einfach weiter
und los geht's. Ordnung, wir
befinden uns also in Minecraft und Sie können sehen, dass eine dieser Strukturen hier bereits erfolgreich hinzugefügt wurde, und es gibt noch eine andere. Sie sind vielleicht ein
bisschen zu nahe. Aber zuallererst können Sie
sehen, wie die tatsächliche
Struktur laichen wird. Man kann auch sehen dass einige bereits hervorgebrachte
Leute hier wie Mobs sind. Und was dann auch
wirklich interessant ist, können
Sie die
Ersetzungen genau hier sehen. Sie können sehen, dass einige der Steine ausgetauscht
wurden und Sie
sehen , dass einige von ihnen auch
befallen sind. Das ist echt cool. Es besteht also natürlich eine Chance
von 50% ,
dass sie investiert werden. Und dann
werden einige von ihnen auch durch das Smaragd-ODER
ersetzt , und dann
sieht man, dass ein Teil davon
auch durch Redstone ersetzt wird . Alles, das ist echt cool. Das war das
Ersatzzeug, das erledigt wurde. Und du kannst sehen, dass
sie es sind, sie laichen. Dann das andere, das Haus, sollten
wir es tatsächlich sehr,
sehr schnell finden , weil es wie alle paar
geboren wird, es gibt tatsächlich schon
ein Haus. Und was Sie
finden werden ist, dass es irgendwie wie
ein halbes Haus aussieht, oder? Ja. Das sieht aus wie ein
Halbhaus, weil es eigentlich nur ein Halbhaus ist. Du kannst sehen. Zuallererst gibt es auch hier einige
hilfreiche Hinweise. Empfehlen Sie dringend
, diese auch auszuchecken. Aber Sie können sehen, dass Sie es sind, der Puzzleblock wurde hier tatsächlich
ersetzt und nun, das Problem ist, dass das eigentliche
Modal, mit dem er nicht übereinstimmt. Um das zum Laufen zu bringen,
werden wir uns einfach etwas Distanz
und etwas Platz besorgen . Grundsätzlich. Lasst uns eigentlich einfach
rüberfliegen Hier geht's. Dies sollte hoffentlich genug Distanz
sein. Und was wir dann brauchen,
müssen wir uns
den strukturellen Block
hier geben , diesen. Und dann legen wir es einfach
fest und klicken wir mit der rechten Maustaste. Jetzt wird
der
Name der Struktur hier strukturiert sein Name
Jahr wird
MC Kurs Doppelpunkt sein ,
linker Unterstrich
, Unterstrich unten
Unterstrich unterstrichen, linke Unterstrich
Seite, denke ich dann es wird nicht
hier vorne rechts bleiben. Der Name hier sollte genau hier
dieser Name sein. Lassen Sie uns einfach mit der rechten Maustaste auf Refactor Umbenennen klicken, kopieren Sie dies. Das wird ein
bisschen einfacher. Da gehst du. Es ist tatsächlich das
und wenn ich jetzt genau hier
geladen werde, sollte
es das laden. Und dann könnte ich wieder laden, und dann
spawnt es tatsächlich das Haus. Sie werden jetzt genau hier sehen können
, das ist der Stichsägenblock. Und Sie können hier sehen,
dass es tatsächlich nach
diesem Site-Pool sucht , den
wir ändern müssen. Ich muss das
auf MC-Kurs ändern, sagen wir fertig. Dann wollen wir auch den
anderen Teil des Hauses. Wir wollen eigentlich auch den anderen
Teil des Hauses. Was ich tun werde, ist, dass
ich das hier drüben kopieren werde . Also genau wie Control a, um
alle Steuerelemente C auszuwählen , um das
Steuerelement V zu kopieren, um es einzufügen. Und dann wird
das die richtige Seite sein. Wenn eine Ladung ist, und dann werden
wir wieder laden. Und hier findest du den
anderen Puzzleblock. Klicken Sie mit der rechten Maustaste auf diesen. Wir möchten den Namen hier
in MC Kurs rechts fertig ändern . Sie möchten
den Namen hier in
MC-Kurs auf der rechten Seite ändern . Fertig. Und was wir dann
auch tun wollen, nur damit wir alles haben. Wir wollen ein anderes Haus spawnen. Das wird
die richtige Seite sein, goldene, glaube ich, rechte Seite. Also wird es richtig sein. Wenn Sie
Unterstrichen-Site-Unterstrich schreiben, golden. Da gehst du. Zieh das und lade
es dann. Und da gehst du. Nun, das ist die goldene Stätte, nur ein paar
goldene Schlösser drin haben wird. Und dann wollen wir hier auch
den MC-Kurs ändern, also zu unserer Model-ID, ja, und dann
wird es uns gut gehen. Was wir jetzt
tun müssen, ist, dass wir die NVT hier
tatsächlich speichern müssen . Wieder einmal ist dies ein bisschen das,
was die FREC wiederholt.
Mach dir darüber keine Sorgen. Dies
ist im Grunde das, was wir tun
müssen , damit dies richtig funktioniert. Sobald wir dies getan haben, werden
wir in
den nächsten beiden Vorträgen
wirklich durchgehen, wie wir das
ganz normal machen können. Also werden wir
eine benutzerdefinierte Struktur erstellen. Wir speichern die
benutzerdefinierte Struktur. Und ich werde
ein bisschen detaillierter erklären was wir hier im Grunde tun. Wenn du dem nicht
folgen willst, dann ist
das natürlich auch in Ordnung. Aber im Grunde gibt es einige sehr einfache
Dinge, die Sie tun müssen. Jetzt, nachdem wir den Puzzleblock
gewechselt haben, werden
wir
hier in den abgesicherten Modus gehen . Wir möchten sicher sagen, dann
können Sie sehen, dass es jetzt gespeichert
wurde und das Gleiche gilt für die
anderen beiden sind abgesichert. Gehen Sie auch hier
in den Sicherungsmodus abgesichert, und dann sind wir fertig. Wir können jetzt tun, dass wir aus Minecraft
raus können. Wir werden einfach von hier
verschwinden. Und dann
werden die
NVT-Daten im
Ordner R1 unter „Speichern“ gespeichert. Wo auch immer Sie haben, dies war das Vergessen Sie nicht, die Welt zu überprüfen, und dann
sollte dies unter generiert werden. Und Sie können alle drei
NVT-Daten genau hier sehen. Wir werden das tatsächlich genau hier rüberbringen
. Und wir werden
Override für alle sagen. Jetzt wurden die
NVT-Daten hier mit
unseren MOD-IDs
überschrieben. Und wenn ich jetzt
wieder anfange, mach eine neue Welt, dann werden wir sehen
, dass das Haus wie zuvor
komplett
finden werden, anstelle des
linken Hauses oder
des anderen Teils des Hauses. Also das Haus, wir haben diesen Puzzleblock, der
tatsächlich
nach dem Site-Pool unter der
Struktur suchte tutorial mod ID, was natürlich nicht korrekt ist. Mal sehen, lass uns tatsächlich eine neue Welt
erschaffen. Hier. Es wird der
Strukturtest sein. Struktur-Tests. Das wird gut werden. Eine Rate von Welt. Wieder einmal werden wir das bekommen,
du hast die Einstellungen der Weltgeneration
und des Experiments geändert . Das wird gut werden. Wir werden einfach
auf „Fortfahren“ klicken und dann
warten wir einfach, bis es fertig ist. Und dann werden wir sehen
, ob unsere Struktur vollständig ist oder nicht. Okay, wir befinden
uns in Minecraft, also lasst uns einfach sehen, dass es ist, und Sie können bereits feststellen, dass die Struktur jetzt abgeschlossen ist. Nun, lass uns einfach
hier rein gehen und mal sehen. Sie können sehen, ob wir reingehen, du wirst dort finden, dass du gehst. Dies ist sogar die
goldene Variante davon. Dies ist die richtige Seite
für das Ziel und dann
sollten wir nicht weit fliegen müssen um ein anderes Beispiel dafür zu finden. Das ist also erstaunlich, dass die
Weltgeneration fantastisch aussah. Obwohl wir ziemlich schnell
ein anderes Haus finden sollten . Normalerweise sollten sie nicht
zu weit voneinander entfernt spawnen . Mal sehen, Es gibt noch eine andere, so dass Sie deutlich sehen können, dass
sie nicht so selten sind, aber natürlich
können Sie das auch sehr leicht ändern. Also lass uns einfach hier rein gehen. Mal sehen, das sollte
hoffentlich das normal sein? Das ist normal
. Da gehst du. Nein, hier kein Ziel. Wir haben auch Sachen in der
Brust, und Sie können sehen, dass
alles gut funktioniert. Dies ist die grundlegende Struktur die dem
Tutorial
folgt. Und wenn Sie
115. (1.18.2) Benutzerdefinierte Strukturen (ein Stück): In Ordnung, willkommen zurück
zum Futterkurs
für 118 und wir befinden uns in Minecraft mit einer bereits gebauten
Struktur genau hier. Was ich
Ihnen wärmstens empfehlen kann, ist, dass Sie entweder die Struktur kopieren oder einfach Ihre
eigene Struktur erstellen können. Und dann können
wir im Grunde, nachdem
Sie diese erstellt haben, weitermachen. Also gebe ich
dir nur ein bisschen Zeit, um deine
eigene Struktur zu erstellen. Aber ich hoffe, dass Sie innehalten und einfach Ihre eigene Struktur
erstellen. Denn was wir jetzt tun werden ist, dass ich eine
MVT-Datei daraus machen werde.
Wie machen wir das? Nun, wir müssen uns zuerst den
Strukturblock wieder
geben. Also dieser hier. Und was wir tun müssen, ist, dass
wir es in
die Ecken dieser
besonderen Struktur platzieren müssen . Was wir also tun müssen,
ist, dass wir es
außerhalb der tatsächlichen
Willensstruktur platzieren müssen . Also müssen wir es
genau dort und genau hier platzieren. Und dann auch auf der anderen Seite, an denselben Orten
im Grunde genau hier und dann auch hier. Da sind wir los. Was wir jetzt
tun wollen, ist, dass wir
mit der rechten Maustaste darauf klicken wollen und
dann müssen wir uns trennen. Geben Sie zunächst hier einen Namen an. Das wird der
MC-Kurs-Dolon sein. also immer Ihren
Modell-ID-Doppelpunkt, egal wie der Name ist. Und in diesem Fall wird es
das Seetang-Unterstrichenhaus sein. Und dann drücken
wir Strg a, um alles auszuwählen,
steuern Sie X, um es
auszuschneiden , und Control V, um es wieder
einzufügen. Das ist im Grunde
das, was ich gerade getan habe. Und ich gehe in den
Besitzermodus. Sehr wichtig. Wir werden sagen „fertig“,
und da bist du ja. Ich mache das Gleiche hier, füge es in den Eckmodus ein, fertig, ein Sit-In, mehr erledigt. Und dann werden
wir es tatsächlich einfügen und
dann
gehen wir in den Speichermodus. Wir möchten dann diesen
Erkennungsknopf genau hier drücken. Und es sollte theoretisch die gesamte Struktur
erkennen. Sie können also sehen, dass wir im Grunde die Außenseite
der gesamten Struktur
hervorgehoben haben, was genau korrekt ist. Das wird
dir gerettet. Was wir dann tun können, ist, dass wir hier
einfach auf die
Schaltfläche Speichern klicken können . Und dann wurden diese
NVT-Daten gespeichert. Das ist also buchstäblich
alles, was wir
tun müssen , um einige NVT-Daten zu speichern. Und jetzt haben wir dieses Haus. Was wir jetzt tun können, macht
wirklich Spaß, denn das ist bereits gespeichert. Was wir tun sollten,
ist einfach woanders zu gehen. Sag, Hey, gib mir dieses Haus. Ich kann das einfach reinlegen, sagen wir Last, und es sollte dieses Haus
erkennen. Und dann können wir sagen, lade es
wieder und los geht's. Und jetzt kann ich
dieses Haus tatsächlich von dort nach hier kopieren , und dann habe ich das tatsächlich
schon gemacht. Aber was wir
tun wollen, ist, dass wir
dieses Haus in einem natürlich
gefleckten der Welt nehmen wollen. Was wir also tun werden, ist, dass wir
jetzt
aus Minecraft zurück zu Intel J gehen und dann im Grunde einige
der angrenzenden Dateien hinzufügen ,
damit wir in
diesem Haus, der Welt, spawnen können. In Ordnung, also finden wir uns
auf intelligente Weise wieder. Und das erste,
was wir tun müssen, ist, dass wir das Haus holen
müssen. Das ist also wieder
in Ihrem Run-Ordner. Dies sollte genau hier in Ihren
Verkäufen sein. Dies sind die Strukturtests
in meinem Fall unter generiert. Und dann haben wir hier
das Zählhaus NVT. Also ziehe ich
das einfach hier hin
zu den Strukturen, und dann haben wir
das genau dort. Das ist also sehr wichtig. Und jetzt können wir die JSON-Datei grundsätzlich
ändern. Was werden wir also machen? Was müssen wir tun? Nun, das erste, was wir tun
werden, ist, dass wir dafür die strukturierte JSON-Datei
für das Tag erstellen. Dies wird alle verschiedenen Biome
einschließen , bei denen wir uns diese
Struktur zu klein stellen. Und so werden wir einfach das bereits
existierende hier kopieren . Dies wird das
Graf- und Unterstrichenhaus sein. Ehrlich gesagt denke ich, dass
das gut werden wird. Wir werden nur diese Biome-Stufe
übernehmen. Sie können
es natürlich auch ändern, wie Sie möchten. Aber ich bin damit wirklich zufrieden
und es wird uns gut gehen. Aber das ist der erste. Dies bedeutet nur noch einmal , welche Biome diese
Struktur spawnen kann. Und dann wollen wir die
konfigurierte Strukturfunktion
nur noch einmal bekommen ,
ich werde das kopieren. Ich ändere das in ein
Teppich-Unterstreichhaus. Wir werden diesen
Namen jetzt ein paar Mal benutzen. Und hier möchten wir
den Startpool auf unser Konto
und unseren hausgespeicherten Pool umstellen . Das wird das sein
, was wir
hier in nur einem Moment hinzufügen werden
und hier. Das wird jetzt
das Gegenhaus sein. Dieses Biom-Tag bezieht
sich auf dieses, das wir
gerade hier erstellt haben. Aber keine Sorge. Ich persönlich möchte eigentlich nicht dass hier
irgendwelche Monster laichen. Aber was ich will ist, dass ich
tatsächlich möchte, dass einige
der MC-Kurstiger dort
spawnen. Warum nicht? Sagen wir einfach, dass
es
einen oder zwei Tiger geben wird , die dort sehen
könnten. Fügen wir es einfach so hinzu. Das wird sehr interessant sein und sehen, ob es das
tatsächlich auch tut. Das sollte so
ziemlich alles sein, was
wir hier ändern müssen. Dann brauchen
wir in unserem Fall keine
Prozessorlisten, aber wir brauchen einen Struktursatz. dies erneut kopieren, indem Sie
den Namen ändern , um zu bewältigen
und zu Hause zu
ändern, ändern Sie diesen, um zu Hause zu kommen, was dann auf
diese JSON-Datei verweist , die
wir zuvor gemacht haben. Sehr wichtig hier, das Salz zu
wechseln, das muss ein einzigartiges
Salz sein und ziemlich groß. Und dann werden
wir den Abstand hier nur ein bisschen mehr
Abstand für beide Punkte
geben , und das wird gut. Das Letzte, was wir tun
müssen, ist, dass wir
hier einen neuen Ordner
erstellen müssen . Dies wird wieder
das CAPM-Unterstrich-Haus sein. Dann wird der Name der
Datei hier
der Startunterstrichen-Pool sein , der
angrenzend ist und
dessen Inhalt ich tatsächlich noch
einmal kopieren werde, die bereits vorhandene JSON-Datei. Deshalb habe ich gesagt, wenn
Sie es einmal eingerichtet
haben, ist das Hinzufügen neuer
sehr einfach. Was wir hier also tun können,
ist, dass dieser ändern
muss, um
unterstrichenes Haus und dann zu zählen. Wir werden das
kopieren und dann noch einmal hier
ändern. Und das war's. Wir haben das schon getan, jetzt wird
unsere tatsächliche Struktur in der Welt spawnen. Das ist alles, was wir tun müssen. 1234 JSON-Dateien in diesem Fall weil es sich um eine einzige
Struktur und eine NVT-Datei handelt, ist
dies buchstäblich. Sie haben gesehen, dass es
ziemlich einfach ist, sobald
Sie es eingerichtet haben, nachdem Sie einige
der JSON-Dateien kopiert , ein paar Dinge
geändert, einige Dinge
optimiert und dann sind Sie
ziemlich viel erledigt. Das ist buchstäblich alles
, was wir
zur Vollendung tun müssen . Mal sehen, ob es funktioniert. Um sicherzustellen, dass
alles funktioniert, empfehle
ich dringend, für alle Fälle
eine neue Welt zu schaffen. Und dann denken Sie natürlich auch
daran, dass Sie die experimentellen
Welt-Einstellungen
erhalten. Wir müssen nur auf Weiter drücken. Das ist nur Gao. Es wird sein, wenn Sie die
benutzerdefinierte Welt Jen über die auf Dateien basierenden Daten hinzufügen. Aber das wird gut werden. Lassen Sie es uns generieren
und sehen, ob wir
unser
Buchhaltungshaus in der Welt
oder das
Haus Ihres Freundes in Minecraft finden können unser
Buchhaltungshaus in der Welt
oder das . Und da solltest du es
schon sehen können. Das Carbon-Haus wurde erfolgreich zu Minecraft
hinzugefügt. Und sehen Sie, dass es genau
hier ist und es ist perfekt
in den Boden gerückt,
genau wie wir es aufgegeben haben. Ich
zerstöre tatsächlich versehentlich die Tür dort. Das war nicht beabsichtigt.
Da gehst du. Aber ja, es ist
ziemlich schon hinzugefügt. Wie ich schon sagte, es ist
sehr einfach. Sobald du es geschafft hast, einmal. Deshalb habe ich gesagt, Sie
sollten das
Struktur-Tutorial unbedingt einmal mit
der Vorlesung
durchgehen das
Struktur-Tutorial unbedingt einmal mit
der Vorlesung
durchgehen , indem Sie im Grunde das
GitHub-Repository davon
zeigt. Und dann vielleicht
einmal alleine, schauen Sie sich
einige der Kommentare an. Ich meine, ja. Ich meine, ich
weiß nicht mal was ich sonst noch
sagen soll, da du das so ziemlich gesehen hast. Es ist sehr, sehr einfach. Es gibt ein paar Dinge
, die du ändern kannst. Und jetzt liegt es wirklich
nur an Ihnen, Ihre Kreativität bei dem was Sie Minecraft
hinzufügen möchten. Mal sehen, ob ich noch
eines unserer Lagerhäuser finde . Sie können viele
der heruntergekommenen
Häuser sehen , die hier darauf hinweisen. Ich möchte
noch ein Konto finden House. Mal sehen, ob wir es finden können. Nein, es
gibt noch einen anderen, also kannst du sehen, dass du gehst. Insgesamt finde ich also
wirklich interessant, aber auch ziemlich einfach.
Alles in Betracht gezogen. Ich denke nicht, dass es so verrückt
ist und so schwer und gut, ich meine, ja,
so einfach ist es Minecraft eine benutzerdefinierte
Struktur
hinzuzufügen. Aber wie ich schon
mehrfach gesagt habe und ich
sage es noch einmal. Wenn Sie es eingerichtet haben, sobald
Sie es gesehen haben, ist es
sehr, sehr einfach, Ihrem Spiel
weitere Strukturen hinzuzufügen, und es ist sehr einfach. Jetzt wird wieder einmal, denn die Getränkequelle, die
wir uns
in der nächsten Vorlesung ansehen in der nächsten Vorlesung werden,
wird etwas
komplizierter. Aber selbst dann, nachdem Sie ein Beispiel dafür
gesehen haben, im Grunde genommen alles eingerichtet haben, werden
Sie sagen,
dass selbst das fair,
sehr vernünftig und
ziemlich einfach sein wird , alles in Betracht gezogen, richtig? Aber das wäre es für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Oder die JSON-Dateien stehen
natürlich auch
im GitHub-Repository und
einer Einzelperson zum Download bereit . Aber sonst sehe ich
dich in der nächsten Vorlesung.
116. (1.18.2) Benutzerdefinierte Strukturen (1.18.2): Alles klar, willkommen zurück
zum Forstkurs für 118. Und in diesem Vortrag werden
wir uns ein paar Puzzle-Strukturen ansehen . Sie können sehen, dass ich genau hier schon etwas
vorbereitet habe, was
die Speicherplattform sein wird. Und die Art und Weise, wie das funktionieren wird,
ist, dass dies zwei
verschiedene Strukturen sein wird, aber es wird als eine spawnen. Die Idee ist also, dass ein
Teil der Struktur
, der hier im Grunde genommen
alles übrig geblieben ist, der Startpool sein
wird. Und dann
haben wir einen Puzzleblock in der Mitte, dann die richtige
Seite hier der Struktur erzeugen wird, die
auch sein wird, sagen wir Eisen. Und dann werden wir im Grunde auch eine Variante
machen , die
vielleicht
etwas wie Diamant haben wird und dann sogar
eine mit Smaragd. Das ist also die allgemeine Idee. Und dann wird das enden. Wir können es dann mit
verschiedenen Gewichten spawnen lassen,
so dass, wenn man um die Welt
geht,
viel davon mit dem
Bügeleisen finden muss verschiedenen Gewichten spawnen lassen,
so dass, wenn man um die Welt
geht,
viel davon mit dem
Bügeleisen finden , zum Beispiel mit wie, ich weiß es nicht,
wie 80% und dann wie 10% der Zeit
wirst du den Diamanten finden. Und dann wirst du 10% der
Zeit den Smaragd
finden, so
etwas. Was wir also
tun werden, ist,
dass wir das richtig einrichten müssen . Was wir also tun werden, ist dass
wir es einfach nehmen werden, richtig. Also lasst uns zuerst die Haupt-1
machen. Das sollte also genau hier sein. Also brauchen wir den
Strukturblock genau hier. Und dann auch hier. Das sollte in Ordnung sein. Und dann
haben wir auf dieser Seite gezeigt, dass wir das
richtige wählen Es ist
irgendwie so gut, lass uns hier runter gehen. Also los gehst du. Und dann für die
Höhe sollte h
direkt um dich herum sein , glaube ich schon. Lassen Sie uns
das auch noch einmal überprüfen. Das sollte also dieser
sein. Da gehst du. Lassen Sie uns die
Helferblöcke hier löschen. Und das ist tatsächlich höher, also werden wir
einen darunter machen, dass wir
die Besitzer bereit haben und
dann werden wir es dass wir
die Besitzer bereit haben tun, und dann werden wir
diese MC-Kursspeicherplattform nennen . Das wird gut werden. Steuern Sie erneut
ein, Control X, Control V, damit wir
den Namen haben und dies wird der Viertelmodus
sein. Und dann werden wir den Eckmodus für
jeden von ihnen oder Modus
durchlaufen . Da gehst du. In diesen Modus gehen und dann
wird dies der abgesicherte Modus sein. Also werden wir diesen
abgesicherten Modus machen und dann erkennen. Und dann werden
wir wieder feststellen, dass dies jetzt entdeckt
wird. Natürlich, was Sie
finden werden, ist, oh nein, wir brauchten tatsächlich höher, aber es gibt überhaupt keine Sorge. Was wir tun können, ist, dass wir es einfach aufbauen
können. Du bist, lass es uns einfach
auf die Höhe aufbauen , die wir brauchen. Genau da. Da gehst du. Und dann werden wir diesen zerstören, was im Grunde genommen
das
Richtige war , das
vorerst bleiben wird. Aber sobald wir
es tatsächlich neu geladen haben, sollte es in Ordnung sein. Das sollte also ungefähr
diese Höhe sein , ich glaube,
das sollte sein. Dann können
wir wieder in den Eckmodus gehen, ja, und dann auch
diesen löschen. Modus auch mit dem gleichen
mit dem richtigen Namen. Und dann können wir es wieder erkennen. Und dann wirst du
feststellen, dass das Ego jetzt fertig ist und
alles drin ist. Im Grunde ist das eine
Sache, die du tun könntest. Du richtest es ein und
dann sagst du, Oh, das sind eigentlich ein paar
Blöcke außerhalb davon. Ersetze es einfach
und los geht's. Jetzt ist das das Wichtigste. Und was wir noch tun
müssen, ist, dass wir den Stichsägenblock noch ablegen müssen . Dafür werden wir das Terminal
öffnen und der
Befehl ist wieder, natürlich haben sie den Befehl oder
den Puzzleblock
gegeben ,
diesen hier. Und was wir tun wollen, ist,
dass wir uns auf diese Weise stellen wollen. Was wir also wollen,
ist, dass
es
noch drin sein sollte . Da gehst du. Die Pfeile sollten
nach außen zeigen. Sie können also sehen, dass sich
dies immer noch innerhalb
der Struktur befindet und ein Punkt außerhalb
der Struktur
sein sollte. Und genau hier wollen
wir, dass der andere
Puzzleblock darauf zeigt. Das sind also die beiden
Stichsägeblöcke, die wir wollen. Auf dieser Seite wird ein Name damit verknüpft sein. Das wird also
MC Course Colon sein, sagen
wir zum Beispiel Site, Plattform, so etwas. Und ich sage, habe
diesen Namen genau hier gemacht. Wir werden
es kopieren und das wird genau hier der
Zielname sein. Und dann wird der
Zielpool hier ein MC-Kurs-Doppelpunkt
sein. Und das ist der Name
der JSON-Datei, die
wir eingeben müssen. Dies wird also
der Unterstrichen-Pool der
Speicherunterstrichen-Plattform sein. Das ist die JSON-Datei genau
hier, sagen wir fertig, und jetzt sind diese mehr oder weniger
miteinander verbunden. Und das Wichtigste
ist natürlich, diese vorerst,
denn das befindet sich in dieser
Struktur genau hier. Also können wir das jetzt speichern. Wir können dann Save sagen. Und jetzt wurde die
Lagerstruktur gespeichert. Wir können jetzt das Ähnliche
für die anderen Strukturen tun. Also werden wir das einfach hier
machen. Und dann
müssen wir nur noch hierher gehen. der anderen Seite werden wir es
einfach weitermachen,
es ist im Grunde gleichzeitig so dass hier ein weiterer
Strukturblock ist, und dann sollten die anderen
Strukturbücher hier
sein. Das scheint in Ordnung zu sein. Also dann den Namen hier machen
wir MC-Kurs Doppelpunkt, Eisenlager, Pflanzenform. Noch einmal kopiere
ich
diesen Eckmodus oder die Fernbedienung. Und dann hier unten wird
dieser abgesicherten Modus noch
einmal erkennen lassen. Mal sehen. Da gehst du. Dann
wird das jetzt auch erkannt und Sie können jetzt sehen,
dass wir tatsächlich beides haben. Und ich empfehle es sehr
, es so zu machen. Denn jetzt im Grunde genommen,
wenn Sie
diese hier für
eine andere Varianz sozusagen ändern , und es ist sehr, sehr
einfach. Die Namen hier können
grundsätzlich bleiben. Das ist also die
Seitenplattform und die Seitenplattform. Das ist alles in Ordnung. Wir
speichern dies also unter dem eisernen Unterstrich,
der unter der Score-Plattform gespeichert
ist. Sparen Sie es auf. Und was ich dann tun
werde, ist, dass ich das ändern werde und
dann speichern wir es unter einer Diamantspeicherplattform
und dann auch Smaragd. Ich habe das Eisen hier
durch einen Diamanten ersetzt. Und
was wir hier
ändern wollen, ist natürlich der Name, oder? Dies wird also jetzt
die Diamantspeicherplattform sein. Noch einmal, kopiere das,
ich sage „fertig“. Und dann werden wir das auch hier
ändern. In allen
Ecken werden
wir
es im Grunde auch in einem Moment erkennen können . Wir werden das tun und
dann wieder zu diesem zurückkehren, noch einmal
entdeckt wurde. Dann wurde jetzt die
Diamant-Sortierplattform erkannt, und jetzt können wir sie unter
der Durchmesserspeicherplattform speichern . Und dann machen wir das
Gleiche auch für Smaragde. Okay, jetzt wurde es durch m-Rollen
ersetzt. Also lasst uns den
Namen hier noch einmal ändern. Dies wird also die
Emerald-Speicherplattform sein. Kopieren Sie es noch einmal und ändern Sie dann
die Namen und alle Ecken genau hier. Also nichts zu verrückt. Da gehst du. Und dann
lasst uns das nochmal holen. Also lasst uns einfach die handelnde Here,
Emerald-Speicherplattform
sein und sie dann wieder speichern. Aber jetzt haben wir
eine Hauptplattform und sind
damit drei verschiedene, sagen
wir Varianz
der anderen Art von Plattform
, die wir spawnen können, verbunden sagen
wir Varianz
der anderen Art von . Wechseln wir nun wieder zu
intelligentem
Dich und richten wir dann
alles ein. Alles klar, also finden wir
uns als Intelligent. Und zuerst
lasst uns natürlich die NVT-Daten abrufen. Dies sollte unter
den strukturierten Tests stehen. Wenn ich mich nicht irre,
gehen wir los. Wir haben also die
Speicherplattform und die drei verschiedenen
Plattformen. Kopieren wir sie
einfach hier noch einmal
in die Strukturen. Was wir dann brauchen, ist natürlich die Struktur
in ihrer Gesamtheit. Dafür brauchen wir noch einmal die fünf
benachbarten Dateien. Wir werden
sie einfach kopieren. Dies wird also die
Speicherunterstrichen-Plattform und wir müssen diesen
Namen ein paar Mal verwenden. Also kopiere es einfach rüber. Noch einmal. Wir bleiben
vorerst bei diesen Biomen
. Das ist natürlich sehr einfach hier oben zu ändern. Und die konfigurierte
Struktur verfügt über Speicherplattform
und möchte
auf den Speicherpool innerhalb
des Halters der Speicherplattform verweisen auf den Speicherpool innerhalb , den wir ein wenig
erstellen werden. Und dann ist dies die JSON-Datei der
Speicherplattform, die angibt, welche
Biome hier verwendet werden sollen. Jetzt
will ich eigentlich keinen Richards hier haben. Was ich jedoch
festgestellt habe, ist, dass wenn Sie die kleinen
Überschreibungen vollständig entfernen
, sie tatsächlich einen Fehler erhalten. Ich bin mir also noch nicht 100% sicher,
was Sie hier tun müssen um
nichts zu bekommen , wo wir einfach
tun können, ist so etwas. Also wird es uns gut gehen, dann
denke ich nein, hier spawnt nichts. Also wird es uns gut gehen,
die Struktur festgelegt. Was wir tun werden, ist
noch einmal über
das Counterhaus zu kopieren, den Namen hier zu
ändern und dann
wieder hier den Namen hier zu
ändern, damit er auf
das Richtige hinweist struktur-Feature. Und dann sehr wichtig hier, die Struktur zu
verändern,
natürlich das Salz hier und dann den Abstand, den
ich ein
bisschen mehr machen werde als die
minimale Trennung. Und sie sind etwa 12,
das wird gut. Und dann kommt es
auf das Template-Haus an, das wir einfach über das heruntergekommene Haus
kopieren werden. Wir benennen
dies in Speicherplattform um. Dann möchten
wir dies
innerhalb der JSON-Dateien auf eine Speicherplattform ändern. Das ist die rechte Seite, also werden
das die drei rechten Seiten sein. Was wir also tun werden, ist, dass
ich es einfach lösche, die Kommentare hier. Und
was wird dann passieren? Wir sagten, wir
wollen tatsächlich noch eine davon. Und dann wird das wahrscheinlich so etwas wie ein Gewicht
sein, sagen
wir fünf, Gewicht drei, und dann warten Sie auf so
etwas. Und das wird die Vier-Unterstrich-Speicherunterstrichen-Plattform sein. Das wird die
Autorität haben, die nicht oder Eisen ist.
Natürlich gehst du da. Aufbewahrungsplattform aus Eisen Dann nennen wir es kopieren vorbei und
das wird
die Emerald-Speicherplattform sein . Und dann sagen wir, dies ist
die Diamantspeicherplattform, aber dies sollte eine Wahrscheinlichkeit von
50% haben, zu laichen. Dies ist eine Chance von 30% und
dies ist eine Chance von 2% bei 20%. Dies ist die verschiedenen Gewichte sollten ziemlich
selbsterklärend sein. Es ist im Grunde die Gewichte,
wie sie hervorgebracht werden. Dies sollte also der
Site-Pool sein und dann für den Speicherpool
der Speicherplattform gehen
wir hier zum Store-Pool. Das wird natürlich sein, dann die Speicherunterstrichen-Plattform. einmal, Plattform. Da gehst du. Kopiere das hier. Und dann ist dies natürlich
die Speicherplattform. Dies ist unser Ausgangspunkt im Grunde genommen NVT-Daten zu starten, in
denen der
Stichsäge-Block darin enthalten wird,
der dann nach dem Site-Pool
sucht, den wir gerade im
Stichsäge-Block definiert haben vorher. Und das ist buchstäblich
alles, was wir brauchen. Und jetzt
würden all diese drei unterschiedlichen Abweichungen auch hervorgebracht. Wie ich schon sagte, es ist
wieder einmal, sobald es eingerichtet ist, einmal sehr einfach,
alles in Betracht gezogen. Lasst uns nun
eine neue Welt schaffen und mal
sehen, ob wir
unsere Speicherplattformen oder
Francis in Microsoft
in einer neuen Welt finden können unsere Speicherplattformen oder . Und mal sehen, ob wir unsere Speicherplattform nicht
finden können. Wir können uns auch einfach
so für unseren MC-Kurs befinden . Und das ist die
Speicherplattform genau hier. Mal sehen. Also genau hier ist einer von ihnen, mal sehen, los geht's. Einer von ihnen hat in diesem Fall bereits
hier mit dem Bügeleisen hervorgebracht . Und Sie können
genau sehen, wie wir
das Grundsätzliche verlassen haben und das Volumen in den Stichsägenblöcken
ebenfalls verschwunden ist , weil sie durch Luft ersetzt
wurden. Lasst uns eigentlich einfach woanders
HTP
finden und sehen, ob wir vielleicht einen anderen von ihnen
finden können. Lass uns einfach 20 K oder was auch immer mögen. Und dann gehen sie und dann
lasst es uns wieder finden. Lass uns einfach eine, eine andere
suchen, eine Plattform suchen
und dann mal sehen. Da ist es. Es ist ein anderes mit Eisen. Halley. Nun, ich meine,
manchmal funktioniert es so. Lass uns noch eins machen,
lass es uns noch einmal versuchen. Diesmal negativ zehn k. Warum nicht? Und dann gehen sie. Und
dann lasst uns wieder lokalisieren. Mal sehen, ob dieser etwas
anderes als Eisen hat und
es auch Eisen hat. Nun, ich meine, es ist
eines dieser Dinge, die häufiger vorkommen
als die anderen. Es ist einfach das, was es ist. Und auch ich denke , dass
wir uns nur bewegen
und herumfliegen, nicht zu viele von
ihnen
begegnen werden , da wir
sie ein bisschen
seltener gemacht haben als die anderen
Dinge, die wir gemacht haben. Das Zählhaus und das heruntergekommene Haus sind in diesem Fall
viel häufiger. Aber ja, ich meine, das ist so
ziemlich genau das Richtige. Das ist eigentlich noch einmal
versuchen , weil ich tatsächlich
möchte , dass die anderen Sachen funktionieren. Also lasst uns zu einer 100 gehen,
ich weiß nicht , und dann machen
wir es minus zehn K hier. Dann machen wir eine andere Locate- oder MC-Kurswortplattform. Mal sehen. Oh, nun, ich meine, das ist auch etwas, das passieren
kann, oder? Dies ist also ein sehr
seltenes Ereignis. Das passiert also normalerweise nicht
, aber Sie können sehen, dass
diese beiden Strukturen tatsächlich
ziemlich im selben Teil spawnen . Im selben Moment. Deshalb willst
du das Salz wechseln. In unserem Fall hatten wir einfach unglaublich Pech. Nehmen wir an, dass sie
im Grunde
die gleiche allgemeine Umgebung teilten . Das sollte nicht allzu oft
passieren, aber ja, ich meine,
es kann nicht passieren. Es ist einfach das, was es manchmal ist. Aber Sie können sehen, dass diese
in diesem Fall
die Smaragd-Variante ist , also funktioniert es definitiv. Und das ist einfach,
manchmal passiert das. Es sollte nicht viel passieren. Das sollte also ein
ziemlich seltenes Ereignis sein, aber
so gut geht es so gut, oder? Und so
ziemlich können Sie Ihrem MOD auch
einige Puzzle-Strukturen
hinzufügen . Alles, was als
ziemlich einfach angesehen wird, ist nur
noch einmal bei den JSON-Dateien, die Struktur
korrekt
einrichten und dann
die NVT-Daten für diese Struktur abrufen . Aber das wäre es für
diesen Vortrag genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
der nächsten Vorlesung.
117. (1.18.2) Benutzerdefinierte 3D-Armor: Alles klar, willkommen zurück
zum Futterkurs für 118. In diesem Vortrag werden
wir
ein 3D-Rüstungsmodell für Kunden
oder unsere Kobalt-Rüstung herstellen . Anstatt also unsere
Rüstung zu benutzen, die wir vorher haben, also diese in den
Modellen genau hier, was dann in 3D überlagert wird. Wir werden tatsächlich
ein neues benutzerdefiniertes ARMA-Modell erstellen, das definitiv
nicht so gut aussehen wird. Weil ich Ihnen im Grunde nur
die Schritte zeigen
möchte , die Sie tun
müssen um dies tatsächlich zu machen. Aber wir werden dafür sehen, wir werden wieder eine
Blockbank in Gecko-Lippe benutzen, ich habe schon die
eigentliche Rüstung vorbereitet, genau hier
kannst du sehen, dass dies die
Blog-Bench-Datei ist. Dies passiert, wenn Sie
das Folgende tun, oder? Wenn Sie also ein neues animiertes
Gecko-Lippenmodell erstellen, können
Sie
das einfach tun, zum Beispiel hier testet Rüstungen, oder? Und was Sie dann tun können,
ist, dass Sie zu Datei zu
den Gecko-Live-Modelleinstellungen wechseln
und dies in Rüstung ändern können . Wenn Sie dann auf „Bestätigen“ klicken, können
Sie sehen, dass hier einige Sachen
erzeugt werden, was im Grunde genommen
der bereits vorbereitete Körper ist . Und dann kannst du Dinge hinzufügen, wo du
es hinzufügen möchtest, ist unter diesen. Sie haben also den Bipeds Kopf, berühren Sie das
Besondere
nicht. Dies ist natürlich der
Kopf in diesem Fall. Und dann können deine benutzerdefinierten
Sachen hier rein gehen. Sie können also einfach einen Würfel hinzufügen. Und dann kannst du
einfach deine Sachen benutzen, es
schaffen, es
genau hier vergrößern, oder? Skaliere es also um einen bestimmten Punkt und dann gehen
sie und dann kannst du einfach mit diesem
grundsätzlichen Duplikat herumspielen, noch einmal einen neuen Würfel
machen, ihn hier runter schaffen, ihn wieder
bewegen. Aber das ist natürlich alles nur
Dinge, die Sie tun müssen. Und Sie können hier Ihre
eigenen benutzerdefinierten Dinge erstellen. Sobald Sie dies getan haben, werden
wir im Moment eine, naja,
im Grunde keine Textur
haben . Und was du dann tun kannst,
ist, dass ich es nur für einen Moment lösche
und dann kannst du sehen, dass du so
etwas haben wirst. Und was Sie dann tun können, ist, dass
Sie Strg a drücken können, und dann wird alles hier drin
ausgewählt. Und was Sie tun können, ist hier eine neue Textur zu
erstellen. Wir
nennen das einfach die
Humboldt-Rüstung extra, ich
sage „bestätigen“. Und dann sieht man, dass es irgendwie so
aussieht. Wenn wir das jetzt speichern, speichern
wir
das einfach als Kobalt-Rüstungstextur. Wenn ich es mir dann mal
ansehe, sieht es so aus. Also öffne ich es einfach schnell damit du sehen kannst, dass es so
aussieht. Und ich öffne
es jetzt in Photoshop. Ich habe hier schon einen
Haufen Soft Course vorbereitet. Sie können sehen, dass Sie es
auch in Farbe,
Dotnet oder GIMP oder was auch immer öffnen können , denken Sie
im Grunde genommen. Und was Sie dann tun können, ist
normalerweise das, was Sie
tun möchten , ist, dass Sie wie
hier zum Beispiel, ich glaube, das sollte eigentlich der Kopf
sein, nicht 100% wahr,
aber ich denke, es ist es. Dann können wir zum Beispiel
einfach eine beliebige Farbe nehmen. Ich werde es einfach auf
die gleiche Ebene legen und dann speichern wir es einfach noch einmal,
dass
sich das eigentliche Ding
in der Blockbank selbst ändert. Wir können jetzt mit der rechten Maustaste auf Aktualisieren klicken. Und dann sieht man
zum Beispiel, dass dies
tatsächlich der Kopf war. Das war natürlich nicht
das interessanteste Zeug, aber Sie können im Grunde genommen
die einzelnen Komponenten ändern die einzelnen Komponenten so sind. Vielleicht ändern wir einfach
ein paar Sachen wie hier. Zum Beispiel. Das ist, ich meine, ich würde nicht unbedingt einen
mühsamen Prozess sagen, aber dies ist ein Prozess,
der definitiv
einige Zeit dauern wird , bis Sie diese Aktualisierung im Grunde noch einmal
durchführen.
Wir können sehen, dass sie
das durchmachen der
Hinterkopf in diesem Fall. Sie können natürlich auch jeden dieser Würfel manuell nehmen
und sehen, was sie sind. Aber das ist im Grunde die Idee. Also musst du
die Rüstung zur eigentlichen
Textur oder zum Selbst machen . Jetzt habe ich natürlich eine Textur
vorbereitet. Das wird genau hier sein. Und es gibt tatsächlich
eine Kleinigkeit , die wir tun wollen und
das wird im Grunde genommen all
das nicht berühren und
sie dann einfach unten bewegen, nur damit wir es im Grunde
können sehen Sie den Unterschied hier, weil die tatsächlichen uns
nicht berühren, sowieso nicht
benutzt werden, aber sie sind nur als Referenz
da. Im Grunde genommen nimm das einfach hier. Ich fand, dass dies
der einfachste Weg ist Rüstung um ihn herum im Grunde
zu ändern
. So können Sie zum
Beispiel hier sehen, diese Rüstung tatsächlich
ein bisschen zu niedrig ist. Es gibt ein paar Dinge
, die zu niedrig sind und wir können sie
auch einfach nehmen und dann
bewegen, richtig. Sie können also sehen, dass wir dann die Rüstung hier
wechseln. Wie ich schon sagte, es wird
nicht die schönste Rüstung
oder die Zeit sein. Das eigentliche, sagen wir, das eigentliche Modell
hier ist ziemlich cool, aber die Textur
könnte definitiv etwas Arbeit gebrauchen. Ich gebe absolut zu, dass ich es bin, ich stimme absolut zu. Ich wollte dir im Grunde nur
den allgemeinen Kern
zeigen , wie das funktioniert. Was wir dann haben,
ist diese Kobalt-Rüstung. Also werde ich das speichern,
diese
Block-Bank-Datei wird dir natürlich
zur Verfügung stehen. Schließen wir einfach
den anderen hier. Und was Sie dann tun können,
ist, dass Sie das
Gecko-Live-Modell hier
exportieren können . Das wird ein gepanzerter
Kobalt-Unterstrich sein, GO Dot JSON. Also werden wir
das einfach speichern das andere
überschreiben. Und dann lass uns
zu Intelligent gehen und
lass es uns dort hinzufügen. Was brauchen wir für einen Kunden? Es ist eigentlich ziemlich
viel Zeug. Fügen wir zuerst die Modelldatei hier
im Geoordner hinzu. Also werden wir
es einfach übertippen. Da gehst du. Und dann brauchen wir auch eine JSON-Datei für
Animationen. Jetzt wird das so
sein, ich habe das schon vorbereitet und es ist
buchstäblich genau so. Ich bin mir nicht hundertprozentig sicher. Du kannst das einfach so ziemlich
nehmen und benutzen. Und es sollte
ziemlich gut gehen. Wir brauchen auch die
benutzerdefinierten ARMA-Modelle, so wie die Textur. Also werden wir das hier in die Modelle hinzufügen
. Wie ich schon sagte, dies ist
derjenige, der ein bisschen komisch aussieht, aber überhaupt keine Sorgen macht. Und das wird
eigentlich die
Kobalt-Rüstungstextur genannt , nur
weil ich denke ,
dass dieser Name ein
bisschen schöner ist. Gehen Sie über Armor Texture und
dann sind die Dateien alle eingerichtet. Was brauchen wir jetzt in Bezug auf
welche Renderer und so? Nun, im Entitäts-Renderer werden
wir nur
im Client in einem neuen
Paket namens armor erstellen . Und dies wird zwei neue Klassen
beinhalten. Eines davon, das
Kobalt-Rüstungsmodell und das andere
wird der Hello
World Armor Renderer sein. Bevor wir nun tatsächlich mit diesen
fortfahren, brauchen
wir tatsächlich
eine neue Item-Klasse, was sehr interessant ist. Das wird also im
benutzerdefinierten Paket enthalten sein. Das wird der Gegenstand der
Kobalt-Rüstung sein. Und dann nehmen
wir als
erstes alles aus dem Mod-Rüstungsobjekt
und kopieren es einfach rüber. Also
kopiere ich eigentlich einfach alles hier drüben. Also werden wir das machen. Da gehst du. Und dann werden wir hier ein paar Fehler
bekommen. Keine Sorge, wir
machen das einfach hier. Und was wir dann
tun können, ist, dass wir dies dann
ändern können , um das Folgende zu sein. Dies wird nun
das Geo-Rüstungselement erweitern das Geo-Rüstungselement und
die KI animierbar implementieren,
was dann auch erfordert, dass wir die beiden Methoden implementieren
müssen,
den Register-Controller
und sie werden in die Fabrik aber ich werde
das einfach hier oben verschieben. Lass es uns einfach hier unten
schreiben. Sie passen unter dem, dem Konstruktor. Das
wird gut werden. Also
brauchen wir auch ein Prädikat, das
ich bereits vorbereitet habe. Dies ist das ziemlich
unkomplizierte Gleiche, was wir mit dem Prädikat der
Entitäten gemacht haben, der animierbaren Fabrik, mit der wir auch vertraut sein
sollten. Das haben wir auch
vorher gesehen. Und natürlich
ist der gesamte Code wie immer
im GitHub-Repository im
Einzelnen verfügbar . Die
Register-Controller-Methode ist genau das
Gleiche wie die Entität. Und dann gibt die Fabrik
buchstäblich einfach die Fabrik
zurück. Also diese Krampffabrik,
lass uns das einfach machen. Ich meine, es ist nur ein
bisschen netter. Da gehst du. Es gibt eine Fabrik,
die diese ist. Wir haben immer noch alle
Funktionen, die wir zuvor gemacht haben. Jetzt gibt es eine winzige Sache , die ich tatsächlich
ändern möchte, dann ist es die letzte Methode
hier, das Haus richtig. Rüstung auf Ich schlage vor, dass du
das auch machst, weil du
sonst auf
ein Problem stoßen könntest , wenn du eine volle Rüstung
hast, Beispiel wenn du die
volle Rüstung trägst und auch
ein Elektron hast , das manchmal ein Problem mit dem anderen,
mit dem alten Zeug. Denken Sie also auch daran, aber das ist nicht Teil
des benutzerdefinierten Modells. Jetzt noch ein Rüstungsgegenstand
mehr Gegenstände Klasse, und wir möchten tatsächlich, dass
es all diese
in den
Kobalt-Rüstungsgegenstand genau hier ändert . Das ist ein kleiner
Unterschied als zuvor, aber es gibt keine Sorge,
es
gibt auch völlig in Ordnung und
das sollte es sein. Also jetzt haben wir diese
eingerichtet, wir können jetzt in
das Modell gehen und tatsächlich folgendes
tun. Dies wird
das animierte Geo-Modell
des Typs oder beide
Rüstungsgegenstände erweitern . Da gehst du. Sie werden den Mauszeiger über
diese implementierten Methoden bewegen. Also werden wir
die drei Methoden implementieren. Ich kopiere es noch einmal. Dies ist die Sorte wie
das Gleiche, was wir
in den Modellen für den
Waschbären und den Tiger hatten . Man sieht
so ziemlich das Gleiche. Wir zeigen nur auf
die GeoJSON-Datei der Kobalt-Rüstung genau hier. Wir zeigen in diesem Fall auch auf die
Testrüstung. Jetzt wollen wir den Namen hier tatsächlich
ändern. Dies ist eine
Kobalt-Unterstrich-Rüstungsschicht, eigentlich Textur. Da gehst du. Textur, los geht's. Und dann ist dies die
Rüstungsanimation. Das ist auch in Ordnung. sind also alles die Dinge
, die wir hier tun müssen. Und dann wird
es für den Renderer sehr ähnlich sein. Wir wollen hier ist noch einmal, ich werde einfach den
Geo-Renderer,
dieses Mal des Typs
Kobalt-Rüstung Gegenstand auch
vorbei, über diesen Create
Constructor passend super stehen dieses Mal des Typs
Kobalt-Rüstung Gegenstand auch
vorbei, über . Und dann
wollen wir diesen Konstruktor tatsächlich loswerden, ein neues Kobalt-Rüstungsmodell
einsetzen. Dann wollen wir auch sicherstellen , dass wir sozusagen die richtigen,
guten Dinge auswählen . Das wird
sehr interessant sein. Was ich tun werde,
ist, dass ich das noch einmal
kopieren werde. Und das
sollte eigentlich ziemlich einfach sein. Du siehst also, dass Kopfhörer der Rüstungskopf
ist. Wenn wir zurück
zur Blockbank wechseln, können
Sie sehen, dass
dies genau hier ist. Der Rüstungskopf, die Rüstung, die
Körperrüstung, oder? Und so weiter und so fort. Was sehr interessant ist
, ist, dass aus irgendeinem Grund der Beinknochen tatsächlich mit einem Bein
geschaltet wird. Ich weiß nicht warum.
Sie können also sehen, dass der rechte Beinknochen tatsächlich ARMA
linkes Bein
ist und dann der reife Stiefel tatsächlich der linke Stiefel
ist. Ich weiß nicht, warum
das der Fall ist. Es ist einfach das, was es ist. Ich weiß nicht, warum das der Fall sein
könnte, aber denken Sie daran. Wenn du also denkst,
dass das irgendwie seltsam ist, gibt es dort ein Missverhältnis. Ja. Es liegt im Grunde daran dass es aus
irgendeinem Grund einfach das ist, was es ist. Wir müssen diesen Renderer immer noch
registrieren
lassen , und wir
tun dies im R-Ereignis
in den Mode-Ereignisbus-Ereignissen. Und das wird in einer neuen Methode
geschehen ,
die vorerst vorbei sein wird. Und dies wird
das folgende Ereignis sein. Dies wird die
Entität sein, die uns Ereignis rendern, Punkt-Add-Layer, den Umfang, medizinische und kalte Ereignis sein. Und das
einzige, was wir hier
tun müssen, ist, dass wir nur den Geo-Renderer brauchten , die Rüstung
registrieren, die uns für
die
Kobalt-Rüstungsgegenstand-Punktklasse und dann
eine neue Award-Rüstung macht die
Kobalt-Rüstungsgegenstand-Punktklasse und dann rendern Sie vor einem Tag. Insgesamt ziemlich verrücktes Zeug. Aber insgesamt nicht zu verrückt. Viel von dem gleichen
Zeug, das wir
in den Entitäten bereits gemacht haben , richtig, mit dem Rüstungsmodell, mit dem Modell und
der Renderer-Datei. verrückt ist es nicht. Die JSON-Dateien
sind auch ziemlich einfach. Diesen, wie ich schon sagte, können Sie einfach aus Block-Pinch exportieren. Das hier. Ich würde einfach den nehmen
, den ich vorbereitet habe. Ich meine, es ist auch nicht
so kompliziert, aber du solltest wahrscheinlich damit einverstanden
sein, als wäre es nicht so kompliziert. Und dann die Textur, die man sich
nur selbst machen muss, das ist wahrscheinlich der zeitaufwendigste
Teil von all dem. Und ich bin gerade für eine Sekunde zurück zu
Photoshop gewechselt. Füllen Sie jetzt alles
aus, als würden Sie sich definitiv meiste Zeit
nehmen ,
die Sie
für die benutzerdefinierte Rüstung haben. Aber ja, so ziemlich genau das, was muss
man tun wenn man ein wirklich
cooles, benutzerdefiniertes ARMA-Modell möchte, es ist genau das, was es ist, aber das sind
die notwendigen Schritte. also noch einmal so
ziemlich alles, was wir brauchen. Um der Vollendung willen,
schauen wir mal, ob es funktioniert. Okay, wir haben Trost
in Minecraft gefunden, also lass uns einfach die Rüstung anziehen
und da sind wir verdammt noch mal los. Wir haben die Rüstung auf dem LAC natürlich
auch noch funktioniert. Und du kannst sehen, wie
die Rüstung funktioniert. Ich meine, so ziemlich wie
man es erwarten würde. Wie ich schon sagte, es ist nicht die
schönste Rüstung insgesamt, aber sie ist funktional und es ist definitiv was
man sagen mag, es ist definitiv ein Brauch. Das ist definitiv das, was ich wärmstens empfehle, einfach damit
herumzuspielen offen
für Experimente für die Rüstung zu sein. Wie Sie sehen können, funktioniert alles für das Schwingen der Arme und Beine und
ähnliches. Aber es ist echt cool. Ja. Ich meine,
so einfach ist es so einfach , dem Spiel die benutzerdefinierte
Rüstung hinzuzufügen. Fügen Sie es sehr einfach
und ziemlich einfach hinzu, damit es wirklich
verdammt cool aussieht, definitiv viel härter. Natürlich stehen
Ihnen der
gesamte Code und die JSON-Dateien im GitHub-Repository zur Verfügung und auch individuell. Aber das wäre es für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
der nächsten Vorlesung. Ja.
118. (1.18.2) Benutzerdefinierte Dorfbewohner: Willkommen zurück zum
Schmiedekurs für 118. Und in diesem Vortrag werden
wir Minecraft
einen benutzerdefinierten Dorfbewohner hinzufügen . Jetzt ist es an der Zeit für den
Beruf des Dorfbewohners, denn es stellt sich heraus, dass es eigentlich
ziemlich einfach ist. Alles in Betracht gezogen. Was wir tun werden, ist, dass
wir ein neues Paket
in unserem
MC-Kurspaket erstellen , alter Dorfbewohner. Und dann machen wir
drinnen eine neue Java-Klasse
namens MOD-Dorfbewohner. In diesem Fall werde
ich ein wenig von
meiner üblichen Sache abweichen , die wir tun werden, und
wir werden tatsächlich hinzufügen,
um Register aufzuschieben. Das erste
wird ein öffentliches statisches endgültiges verzögertes Register des Spieltyps sein. Dies ist also der Typ „Point
of Interest“. Wir
nennen dies nur den
Punkt-Punkttyp stay ago verzögerten
Register
entspricht , die Typen erstellen oder Registrierungstypen, AMC-Kurs moderat
und moderat. Und was wir dann
tun werden, ist, dass wir
ein zweites oder drittes
Register machen werden
, das vom Typ
Dorfbewohner sein wird. Ein Dorfbewohner unterstreicht
Berufe. Da gehst du. Und es wird
ein anderes Register geben, Dot Create, Register, Dot Dorfbewohner, Punktberufe. Da gehst du. Mc Kurs
überwachen Modalität. Und jetzt, wenn wir
verschiedene Register haben, haben wir
natürlich eine öffentliche
statische Void-Register-Methode mit einem
Eye-Event-Bus, einem coolen Event-Bus. Und dann
rufen wir die Punktetypen , die sich
im Event-Bus registrieren. Und zweitens gehen wir im Dorf oder in
den Berufen vorbei. Ich habe mich
beim Eventbus angemeldet und sorge
dafür, dass wir das hier
anrufen. Nennen wir es einfach erlaubt
die Mod-Strukturen. Also mod Dorfbewohner
melden sich an und fahren dann
im Event-Bus vorbei, da gehst du. Sehr nett. Und was wir dann
brauchen, sind natürlich Registerobjekte
für den Prototyp und die Dorfbewohner. Also werden wir zuerst
den Punkttyp machen, dies wird das
Registry-Objekt vom Typ Prototyp sein. Das wird
der Blaster-Punkt sein. Also werden wir hier
unseren Kobaltblaster benutzen. Es wird die
Prototypen geben, die sich registrieren. Das wird
der Explosionspunkt sein. Da halte ich es fest. Und dann wird es natürlich wieder, ein Lieferant eines neuen Prototyps
, diesen Explosionspunkt nennen. Dann müssen wir
Punkt eingeben, blockiert werden,
sagen Mod-Blöcke, Punkt, Punkt. Dann sagen wir danach 11. Werfen wir einen
Blick darauf, was das alles mit sich bringt. Klammern schließen. Da gehst du. Und dann lasst uns hier auf den
eigentlichen Prototyp eingehen. Sie können sehen, dass Max-Tickets dieses sind und dies
ist der gültige Bereich. So können Sie
sich zum Beispiel das ansehen, wo
dies verwendet wurde. Mal sehen, ich glaube hier und dann
in der
Register-Methode, dass es wahrscheinlich
dort verwendet wurde. Da gehst du. Normalerweise sind
sie alle 11. Es gibt noch einen anderen, normalerweise ist
der Prototyp 11, deshalb verwenden wir 11. Da gehst du. Dann
gehen wir zur öffentlichen statischen endgültigen Registrierung, Registrierungsobjekt. Dieses Mal des Typs
Dorfbewohner Beruf
, der der Explosionsmeister sein wird. Und das wird
dem Dorf- oder
Berufsstatregister gleich sein , dem Explosionsmeister genau hier. Und dann ein neuer
Lieferant oder ein Lieferant eines neuen Dorfes oder Berufs. Dies
könnte natürlich wieder der
Explosionsmeister sein. Lass mich das richtig schreiben. Dies wird den
Blaster-Punkt-Punkt bekommen, und dann wird es sehr
interessanterweise ein veränderbares Set dauern . Und dann
sagen wir einfach mit nichts drin. Und dann
sagen wir noch ein veränderbares Set mit nichts
drin. Und dann wird der
letzte der Sound-Ereignis-Punkt
sein. Und dann arbeitet einfach jeder Dorfbewohner. Nehmen wir zum Beispiel einfach den
Tools-Mythos und enden dann mit einem Semikolon. Und dann sind wir fertig im
Dorf Professional. Wir können sehen, dass das
erste unveränderliche Set die angeforderten Artikel sind, definiert die Artikel, die Adresse
davon abholen und verwenden können. Und dann
ist der andere der sekundäre PUI, wie Hindernisse ist, mit
denen diese professionellen
Interaktionen auftreten? In unserem Fall
werden wir
keine davon haben, die sehr zu empfehlen ist. Wieder einmal, offen für
Experimente zu sein, ein paar Sachen
auszuprobieren und
zu sehen, was Sie finden werden. Das Letzte
, was wir tun werden,
ist, dass wir
eine andere Methode haben , die die
öffentliche statische Lücke sein wird, und dies wird die
Register-Plest-Methode sein. Und das ist
unglaublich wichtig. Wir werden gleich hier einen Versuch und eine
Auffangaussage haben. Schreib das nicht rein. Der Fang wird
folgendes haben. Es wird eine
Aufrufzielausnahme mit dieser einzigen einzigen
geraden rechtlichen Zugriffsausnahme namens E-Exception haben.
Da gehst du. Und dann wird das
der Ausnahme-Punkt Print, Stack, Trace sein. Da gehst du. Und was es im
Trie hat, ist das Offensichtliche. Und dann werden
wir hier im Versuch eine
Verschleierungsreflexions-Helfer-Methode sagen. Wir machen die
Punkttyp-Punkt-Klasse. Der Methodenname wird Registerblockstatus
sein und dann erneut eine Punktklasse vom Zeigertyp übergeben
. Dann
werden wir danach sagen invoke null und der
Blaster-Punkt-Punkt bekommt: Los geht's. Jetzt könnte das für
dich absolut
verrückt aussehen , und das ist es auch. Der Grund, warum wir dies tun
müssen ,
ist im Grunde , dass wir
die Blockstaaten registrieren müssen. Wir können es
uns
als diese Methode genau hier ansehen . Sie können diese Methode für die
Registerblock-Status-Methode sehen. Wie Sie sehen können,
sind alle Methoden des
Registerblocks States alle privat. Deshalb müssen wir in diesem Fall
den
Helfer der Verschleierung verwenden , und dann können wir es
tatsächlich nennen. Wenn Sie jedoch mehrere Punkte haben, können
Sie hier einfach einen weiteren
mit Ihrem anderen Punkt hinzufügen. Fügen Sie also einfach den anderen Punkt und dann wird es Ihnen gut
gehen. Diese Methode
muss in
der Setup-Methode des MC-Kurses
im gemeinsamen FMLA-Setup gekühlt werden. Also werden wir sagen, dass Mod-Dorfbewohner anfangen, sich zu registrieren
und da sind wir. Jetzt sind wir noch nicht fertig, weil
wir diesem
Dorfbewohner noch ein paar Eigenschaften
hinzufügen müssen . Und dann auch sehr wichtig. Das Extra, fangen wir mit der Übersetzung in
die Übersetzung an, ist ziemlich einfach,
alles in Betracht zu ziehen. Ich werde das
nur kopieren und das steht Ihnen natürlich im
GitHub-Repository
zur Verfügung , einer
Einzelperson genauso gut. Sie können Entity
Micro Dorfbewohner, MC Course Blastmaster sehen. Und das wird der Name
der tatsächlichen Entität
oben sein, wenn Sie das Inventar oder
die Textur öffnen , das wird sehr interessant
sein. Das ist unter Entität
und ich werde ein neues Verzeichnis
namens Dorfbewohner erstellen. Und dann kopiere ich
darüber, was ich schon hier
habe, und ich zeige
dir, woher ich das habe. Das wird also die Nummer
eins sein, der Dorfbewohner hier. Ich bin mir nicht sicher, was wir auch
den Dorfbewohner selbst brauchten, aber anscheinend
brauchten wir immer noch, es sei denn, Profis, natürlich genau wie
diesen
hier genannt werden, Explosionsmeister. Und Sie können sehen, ich füge
wirklich ich in diesem Fall einen bereits existierenden
Beruf neu erfunden habe, nur damit wir
etwas haben, das in diesem Moment
anders aussieht , aber es tatsächlich funktioniert. Und das habe ich
natürlich noch einmal von
den externen Bibliotheken bekommen, die
bis zum folgenden hinunter gehen . Mal sehen, es sollte
genau hier um eine zusätzliche 1182 sein oder was auch immer Ihre Version im Assets-Ordner
Minecraft
ist , Texturen
im Entitätsordner bis hin zum
Dorfbewohner genau hier. Dann haben wir den Dorfbewohner genau hier. Dies ist der
normale Dorfbewohner. Dann hier ist das
der Beruf und ich habe die Rüstung
genommen, glaube ich.
Ja, da gehst du. Aber nimm einfach die Rüstung ein bisschen so
sehr empfohlen wird, nimm sie, benutze sie und trainiere sie
dann ein wenig. Das Strukturierte hier wird also
definitiv die einzige Sache sein ,
die Sie
vielleicht eine
Weile dauern kann , bis
Sie es richtig machen, aber es ist was es ist. Und dann die Typen,
ich glaube nicht, dass er dich
tatsächlich
etwas mit den Typen machen musste, aber man tut irgendwie
aus irgendeinem Grund, braucht den Dorfbewohner
und den Beruf. Ich weiß nicht warum
das der Fall ist. Zumindest ist das was mein,
das ist es, was meine Tests haben. Wirtschaft. Wenn es um
die tatsächlichen Eigenschaften geht, können wir unsere Veranstaltung einfach wieder
nutzen. In der Motor-Event-Klasse ganz unten
rechts hier können
wir dies buchstäblich auch für unsere Veranstaltung nutzen
,
für unsere Custom Professionals . Nun, also mehr
Dorfbewohner, die den letzten Master-Punkt bekommen, und jetzt
können wir auch Sachen hinzufügen. Also können wir einfach
so
etwas sagen , wo wir die Liste
einfach hinzufügen können, fügen Sie
einfach ein
paar Dinge für die Stufe eins hinzu. Und dann, nur um der Argumentation
willen, fügen
wir hier einfach ein
paar zwei Level zwei hinzu. Wir werden das einfach auf Stufe zwei ändern
. Aber das wird sein,
wir werden einfach
dasselbe für verschiedene
Preise hinzufügen , denn warum nicht? Lass uns das einfach machen und
dann
machen wir eine Stufe zwei. Wir werden
hier so etwas wie eine
58 als sehr viel Test machen 58 als sehr viel Test , nur damit Sie sehen können, dass
Sie diese auch hinzufügen können. Es ist im Grunde das gleiche
Kobalt-Paxil, das wir hier kaufen können. Es wird also nicht
so interessant sein, aber probieren wir es einfach
aus und Sie werden sehen , dass dies auch die
Trades zu ihnen hinzufügen wird. Also schätze ich mal
sehen ob es funktioniert oh, direkt vor
uns in Minecraft. Lasst uns also einfach
einen Dorfbewohner spawnen Und dann lasst uns die
Kobaltexplosionen niederlegen oder die sofort als einen Punkt
von Interesse erkennen und es sollte sich darauf zubewegen und dann
das tatsächliche bekommen oder ich schätze nicht. Lasst uns ein
bisschen näher kommen. Nun, ich gab dort einen Tippfehler. Es ist eigentlich der
Kobaltblock,
der der Punkt des Interesses ist ,
aber fair genug, schätze ich. Also lass es uns einfach ablegen und dann kannst du sehen,
dass es sich jetzt darauf bewegt. Weil du sehen kannst, haben wir
einen Pfeil und die Textur. Das werden
wir in einem Moment beheben. Sieh dir das O an, es ist eigentlich
der Blaster Moskau. Das ist großartig. Aber Sie können sehen dass
der Trace hier hinzugefügt wurde. kriege ich. Und danach
sollten wir sehen können, dass, sobald es tatsächlich aufsteigt, in der Lage sein
sollte, die anderen zu bekommen, die sie für Level zwei
und da ist es. Das funktioniert also definitiv. Lassen Sie uns also nur einen Moment
lang
die tatsächliche Textur reparieren . Genau hier steht Blastmeister. Es sollte natürlich Explosionsmeister
sagen. Das sollte also den ganzen Rest hier ziemlich
beheben. Ich werde das auch hier in den
Kobalt-Blaster ändern. Und dann, nur um der
Argumentation willen , schauen wir mal, ob es funktioniert. Zum Beispiel wieder in
Minecraft, und lass
es uns einfach ablegen und sie gehen Jetzt
funktioniert alles gut, wenn ich
hierher gehe und der letzte
Meister auch so
funktioniert wie du es
würdest erwarte es. So einfach ist es also,
ein individuelles Dorf oder einen eigenen
Beruf hinzuzufügen , Minecraft, oder? Wieder einmal steht Ihnen natürlich der
gesamte Code im GitHub-Repository zur Verfügung und auch
individuell, aber das wäre es für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
der nächsten Vorlesung.
119. (1.18.2) Baby: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in diesem Vortrag werden
wir uns Baby-Entitäten
ansehen. Ja, also werden wir die
Baby-Entität zu unserem Tiger hinzufügen. Und wieder einmal ist dies
eines dieser Dinge, die tatsächlich viel einfacher sind,
als Sie vielleicht erwarten. Ich war auch etwas
komplizierter, aber es ist eigentlich überhaupt nicht
kompliziert. In unserer Rasse
Nachkommen genau hier wollen wir Mod-Entitätstypen sagen,
nicht ein Tiger, der diese kreiert und dann
in die Serverebene übergeht. Das ist dieser
Parameter genau hier. Ich klicke einfach darauf,
drücke die Umschalttaste F6, um
es auf Serverebene umzubenennen, nur damit
wir wissen, was wir hier
weitergeben,
und dann geben wir
es genau hier rein drücke die Umschalttaste F6, um
es auf Serverebene umzubenennen, nur damit wir wissen, was wir hier
weitergeben . Dies ist die Nummer eins
, die wir tun müssen. Nummer zwei: Wir müssen
eine bestimmte Methode außer Kraft setzen , und das ist die Lebensmittelmethode. Anstatt hier
prüfen wir grundsätzlich, ob dieser Stapel
das Lebensmittel ist, das diese bestimmte
Entität gezüchtet werden kann oder
nicht . In diesem Fall werden wir
sagen, p dot get item item, und ich sage, dass es den Gegenständen Dot Beef
entspricht. Ich möchte im Grunde, dass Sie mit Rindfleisch mit
der rechten Maustaste auf die Tiger-Entität klicken,
als es Das ist die Idee hier. Wir brauchen
dann ein neues Ziel. Also werde ich nur die Siedlung oder das Ziel kopieren und dies wird das Zuchtziel
sein, wird auch hier einen
Ein-Geschwindigkeitsmodifikator aufnehmen. Also werden wir
einfach die gleiche
Geschwindigkeit haben und ich lege es einfach hier unter die in
Priorität drei. Ich denke, das
sollte ziemlich
einfach sein Entropie in Ordnung. Jetzt sind dies eigentlich
all die Dinge, die wir in der Tiger-Entität tun
müssen. Es gibt noch eine Sache, die wir im Renderer tun
müssen, und das wird hier die Skala
sein. Dies ist natürlich der
Maßstab des eigentlichen Modells. Und was wir tun können,
ist, dass wir sagen können, ob es
animierbar ist, das ist Baby, und wir werden anders skalieren,
als einfach Control X drücken, um es
auszuschneiden und es dann wieder
einzufügen. Und dann machen
wir das hier. Also hier sind wir, wenn
es kein Baby ist, und dann
sind wir hier, wenn es ein Baby ist, also werden
wir das einfach halbieren und dann war's das. Und das sollte
alles sein, was wir
tun müssen , um die Arbeit
des Babys zu haben. Es gibt einige
interessante Dinge. Zum Beispiel, wenn wir tatsächlich die Tiger-Teams
haben und dann klicken wir rechten Maustaste darauf mit
dem Lebensmittel hier. Dann
gehen wir immer noch gerne drauf, um es zu schreiben. Es gibt also ein
bisschen Verrücktheit hier, aber das sollte ziemlich trivial
sein das genau hier
zu beheben,
im Grunde um zu überprüfen,
hey, wie ein Spieler
mit einem Rindfleisch klickt und dann
sollten wir eigentlich nicht
einmal fang an, es zu schreiben. Das sollte ziemlich
einfach zu beheben sein. Aber um der Vollendung willen,
schauen wir mal, ob es funktioniert oder
uns in Mikro findet. Lassen Sie uns also auf Tiger antworten und sehen wir, klicken Sie mit der
rechten Maustaste, klicken Sie mit der rechten Maustaste. Da sind wir los. Und sobald sie sich
finden, ja, nein. Okay. Da gehst du. Es gab einen da gibt es auch
den Babytiger oder
funktionierte absolut gut. Jetzt dauert es tatsächlich
eine ganze Weile, bis sie erwachsen sind. Ich habe es ausprobiert
und sie werden erwachsen werden. Es braucht einfach viel Zeit. Dies ist meiner Meinung nach
in der Tierklasse hart codiert, aber
das können wir tatsächlich in einem Moment überprüfen. Aber ja,
so macht man das so ziemlich. Und dann können wir
natürlich nicht züchten. Nun denke ich, dass wir es nur genug schreiben können
sollten. Ich meine, okay. Das ist, als müsste es wahrscheinlich
einen Scheck dafür geben. Aber ehrlich gesagt, das sind
Baby-Entitäten. Sehr selbsterklärend. Wirklich nicht so schwierig. Ich dachte wirklich, dass sie schwieriger werden
würden, aber sie sind eigentlich
ziemlich einfach, oder? Wenn Sie sich diese eine mittlere Maustaste
noch
einmal ansehen,
klicken Sie auf diese
mittlere Maus und klicken Sie
mit der rechten Maustaste darauf. Siehst du, das ist das Tier, und dieses hat irgendwie die verschiedenen Dinge
für die Zucht darin. Sie können also sehen, dass es eine Menge Sachen hat. Du hast die Kerze und
liebte das Set und liebst das. Ich liebe es, genug Zeit zu
bekommen, geliebt werden Kurs ist verliebt, zurücksetzen, Liebe kann sich treffen. Das sind irgendwie die Dinge. Ich meine, hier
sieht man das Spawn-Kind von der Zuchtmethode, die im Grunde
das eigentliche Kind sponsert. Sie können sehen, dass es mobil von der
aktiviert wird, es liest hier Nachkommen. Das sollte also die Sache sein
, die Sie sich
ansehen müssen , ob es
etwas gibt, das Sie möglicherweise außer Kraft setzen möchten. Also ja, das ist so ziemlich genau was du vielleicht
im Schutt-Mopp brauchst. Ja. So können Sie sehen, wie
Babys anfangen h, Dies ist das gespeicherte h hier. Sie können dies also wahrscheinlich
auch innerhalb
Ihrer Tiger-Entität ändern . In diesem Fall, wenn
du willst, vielleicht der Tiger
ein bisschen schneller erwachsen, das könnte auch gemacht werden. Aber ja, so einfach ist es
so einfach Ihren Mobs Baby-Entitäten
hinzuzufügen. Es ist viel einfacher
als ich dachte, aber das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
den nächsten Vorträgen.
120. (1.18.2): Alles klar, willkommen zurück
zum Forstkurs für 118. Und in dieser Vorlesung
werden wir uns ansehen, wie Sie einem Minecraft benutzerdefinierte Geocodes
hinzufügen können . Nun, das ist eigentlich ziemlich einfach
hinzuzufügen , und wir werden
es uns nur ansehen. Im World-Paket werden wir
im Feature-Paket die von Mod konfigurierten Funktionen
den Geode hinzufügen und ich kopiere
über den gesamten Halter. Und dann
werden wir
uns im Grunde jede
dieser Zeilen ansehen und was sie bedeuten und die
Verrücktheit, die damit
verbunden ist , weil
es eine ziemlich lange Sache ist, aber überhaupt keine Sorge. Sie können sehen, dass es auch hier eine neue Linie
macht. Und Sie können sehen, dass es in diesem Fall ein ziemlich
langes Feld ist, aber überhaupt keine Sorgen. Natürlich verwenden
wir wieder einmal Feature Utils dot
register, um in diesem Fall eine
Geode-Funktion zu registrieren. Und dann müssen wir eine
neue Geode-Konfiguration erstellen. Dies ist auch eine großartige Klasse
, die man sich im Grunde anschauen kann. Wenn wir also mit der mittleren
Maustaste darauf klicken, können
Sie tatsächlich sehen, was jedes dieser
Dinge bedeutet, oder? Wir haben die Blockeinstellungen, wir haben die Ebene,
die richtigen Einstellungen, wir haben potenzielle
Platzierungschance
und all diese verrückten Dinge, und all diese verrückten Dinge die wir hier grundsätzlich
hinzufügen können. Was
in diesem Fall sehr interessant ist, sind eigentlich auch die
Geodenblock-Einstellungen hier. Das ist also im Grunde alles, was genau hier
ausgewählt wurde. Und das
ist eigentlich sehr interessant weil man hier sehen kann woraus die jeweiligen
Vermögensschichten im Grunde
bestehen. Sie können also sehen, dass der
Abfüllanbieter Luft
sein wird , die
ziemlich selbsterklärend sein sollte. Also das G oder im Inneren
davon ist alles Luft. Wenn du nicht willst, dass es Luft ist, kannst
du auch
etwas anderes ändern, oder? Du kannst diese Box also
direkt hier in
jemand anderen ändern , oder? Wenn Sie einen anderen
Block haben, möchten Sie, dass dieser mit Hindu gefüllt wird. Das ist also wirklich cool und ermöglicht
es Ihnen, fast
alles zu modifizieren und zu konfigurieren, was ich wirklich cool finde. Das ist also so
ziemlich die Idee, oder? Das ist also wieder
eines dieser Dinge, bei denen ich nur wärmstens empfehle, einfach nur
mit den verschiedenen Blöcken,
den verschiedenen Zahlen,
herumzuspielen . Es ist das Beste
, was du tun kannst. Probieren Sie einfach ein paar Dinge aus, sehen Sie, bis Sie
im Grunde genommen ein GO finden können das Ihnen in Bezug
darauf gefällt,
wie geknackt es ist , genau mit den richtigen
Einstellungen, zum Beispiel bedeutet
dies nur, ob es welche gibt oder
nicht auf der Seite , die
exponiert ist und sie können sofort auf
solche Dinge eingehen. Ich empfehle nur wärmstens
, einen Blick darauf zu werfen hier mit
den Zahlen
herumzuspielen. Und dann erstellst
du hoffentlich sozusagen
eine Geode deiner
Träume. Was ich jetzt machen möchte, ist, dass ich die Deep
Slate genau hier
ersetzen möchte. Ersetzen wir das durch Dreck. Und sagen wir gleich hier, lass uns einfach Smaragd machen. Klar. Warum nicht? Nur für den Fall
möchte ich mir im Grunde ansehen, wie sich dies
auf die Einstellungen
des Geo-Blogs auswirkt. Und dann kann man
sehen, wo all diese verschiedenen Blöcke
grundsätzlich platziert sind, oder? Das Wichtigste ist also eigentlich diese Liste hier drüben. Da diese Liste normalerweise schreibt, handelt es sich bei
dieser Liste tatsächlich um
die inneren Platzierungen und die inneren Platzierungen oder
die Amethystkristalle. Diese Listen würden also im Grunde diese Amethystkristalle
enthalten. Was wir uns also im Grunde
genommen ansehen können, ist ein weiteres
Feature, Geode. Lassen Sie uns also nur die mittlere
Maustaste klicken, klicken Sie auf diese, mittlere
Ankündigung, klicken Sie darauf und Sie können
den Amethyst sehen GO genau hier. Wenn wir einfach den ganzen Weg
zum gehen, los geht's. Dort kann man also
den angehenden Amethyst sehen. Und das wird auch
in der Liste genau hier gemacht. So können Sie Amethyst Cluster sehen, wobei Sie hier sehen können, dass wir die kleine Amethystknospe
Medium MF ist Knospen sind. Dies ist also eine Liste
der möglichen
Amethyst-Cluster-Amethystknospen , die möglicherweise spawnen können. Das ist die allgemeine Idee
dieser Liste hier drüben. Also habe ich in diesem Fall gerade den
Kobaltblock benutzt, aber du kannst natürlich deinen eigenen
bauen, deinen eigenen gruppieren. Aber im Grunde und dann
schwan das auch. Das ist alles in Ordnung und gut, aber was machen wir mit
dieser konfigurierten Funktion? Nun, wir gehen umso mehr ein, wir gehen wieder in die
Marketplace-Feature-Klasse, und wir werden es einfach tun, und ich werde nur noch einmal
den Inhaber kopieren, dies steht Ihnen alles zur Verfügung in das GitHub Repository und
Individuum genauso gut. Und Sie können sehen, dass dies
die Kobalt-Geode ist. Natürlich nehmen wir
die Kobalt-Geode , die wir gerade
erstellt haben, im Grunde genommen, dann machen wir im Durchschnitt
alle 50 Brocken einen
Seltenheitsfilter . Der N-Quadrat-Aufstrich ist nur
etwas, das ich auch so
ziemlich aus der
Vanille-Geode genommen habe . Und dann siehst du, wir sind heute Morgen
im Grunde genommen über sechs und bis zu 50. Erneut empfehle dringend, mit
den vertikalen Ankern
über unten,
unten,
absolut,
herumzuspielen den vertikalen Ankern
über unten, . Probieren Sie es einfach aus und sehen Sie,
was Sie im Grunde sehen können bis es
so platziert ist, wie Sie schreiben möchten. Das ist also so ziemlich genau das. Und dann müssen wir einfach
in unsere Mehr oder Generation gehen. Anstatt dann
das Kobalt zu rufen oder platziert zu machen, möchten
Sie die
Kobalt-Geode platziert nennen. sind eigentlich all
die Dinge, die wir brauchen, um unseren benutzerdefinierten Geode
hier in diesem Fall
hinzuzufügen. Lasst uns also eine neue Welt erschaffen
und sehen, ob es funktioniert. Oder wir befinden uns
in Minecraft. Und wie Sie sehen können, habe
ich bereits
eine nette kleine Geode gefunden , damit Sie sehen können, was die
verschiedenen Blöcke im Grunde sind. Zuallererst ist
das Innere natürlich gut mit Luft
gefüllt, genau wie von
Anfang an angegeben. Und dann kann man sehen, und
dann kann man sehen, dass die Blöcke hier im Grunde die
angehenden Amethyste wären, oder? Während das Pferd die Blöcke
sein würde , aus denen
das MSS herauswächst. Das ist die allgemeine Idee. Sie können auch sehen, wo sich
der Schmutz befindet. Ein Smaragd oder wo ist das? Nun, wenn wir tatsächlich hier raus gehen ,
sollten wir in
der Lage sein, einen Smaragd zu finden oder möglicherweise auf der anderen Seite, so dass sie die Amroblöcke tatsächlich
sehen können. Das ist also den ganzen Weg dorthin, wo die
eigentlichen Geoden-Spots
sind. Sie können also sehen, dass die
tatsächliche Größe des Geoids ziemlich
größer ist. Und C, da gehst du. Ich empfehle also dringend, dies vielleicht nicht in Smaragd-Auren zu
ändern, sondern in diesem Fall Smaragdblöcke. Das ist also ziemlich verrückt. Aber ja, das sind
im Grunde die Ideen was all diese
verschiedenen Blöcke machen. Und dann geht es nur darum ein bisschen mit
ihnen
herumzuspielen Ihrer Freizeit ein bisschen mit
ihnen
herumzuspielen und verschiedene
Werte
auszuprobieren , oder? Aber das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich
und die Warnungen, dass das Neue, und wir sehen uns in
der nächsten Vorlesung. Also ja.
121. (1.18.2) Block, der mit Redstone interagiert: Okay, willkommen zurück
zum Schmiedekurs für 118. In diesem Vortrag werden wir einen
kurzen Blick darauf werfen, wie Sie Ihre Blöcke mit einem Redstone
interagieren lassen können. Aber das war
etwas, das sich einige Leute
im Grunde genommen
ansehen wollten und sie waren sich nicht ganz sicher wie. Also. Werfen wir einen Blick auf unsere
Kundenblockklasse, hauptsächlich den Kobaltlampenblock. Anstatt es also so zu machen
, dass Sie mit der rechten Maustaste klicken können , um
dies im Grunde ein- und auszuschalten. Was wir tun werden, ist, dass wir nur prüfen, ob ein Redstone-Signal auf diesen Block
angewendet wird oder nicht. natürlich wieder einmal Unser bester Freund hier sind natürlich wieder einmal
die externen Bibliotheken, hauptsächlich der
Minecraft-Quellcode. Wenn wir also
zweimal die Umschalttaste drücken und dann einen
Blick auf die Redstone-Lampe werfen. Dies wird
die Redstone-Lampe sein, um sicherzustellen, dass
Nicht-Projekte enthalten angekreuzt ist. Sie können diesen hier sehen, seinen eigenen Lemma-Block,
dann können wir ziemlich viel, und das ist Verrücktheit, tatsächlich über das meiste davon
kopieren, das
meiste davon, was hier
geschrieben ist. Also wollten wir die
Tick-Methode und
auch die Methoden der
Nachbar-Änderung. Diese beiden sind also im Grunde die
einzigen Methoden, die wir brauchen. Also werden wir diese
beiden aus dem
Redstone-Lampenblock
kopieren . Der gesamte Code wird natürlich auch im Repository und auch
im
Einzelnen verfügbar sein . Und wir müssen hier nur den Deckel
wechseln um
ihn abzuholen, weil
wir ihn vor geklickt nennen. Und das sollte in Ordnung sein. Aber wir können dies auch hier
in dieses Jahr ändern. Auch in diesem Jahr. Und dann
auch hier, los geht's. Lassen Sie uns
hier einfach eine Add-Override hinzufügen, nur damit
wir wissen, dass wir
diese Methoden für alle Fälle überschrieben haben ,
und das sollte in Ordnung sein. Jetzt möchte ich eigentlich, dass sich hier nichts
ändert, also werden wir das einfach
auskommentieren. Das sollte auch in Ordnung sein. Und jetzt ist das eigentlich
so ziemlich alles, was wir in diesem Fall tun müssen
. Was macht das
eigentlich? Stimmt's? Weil du vielleicht
so bist, ist das irgendwie seltsam. Nun, zuallererst wird
die
Methode der Nachbarn geändert ziemlich
selbsterklärend sein. Dies wird jedes
Mal aufgerufen, wenn sich ein Nachbar dieses bestimmten
Blocks ändert. Was es dann macht,
ist es, hey, genau wie jeder Nachbar hier
ein Signal hat, oder? Es wird also im Grunde sagen, dass es vor
allem den Wert von Clicked bekommen wird. Das ist fair, fair
genug. Das stimmt. Also sind wir gerade dran, richtig. Dann wollen wir
grundsätzlich überprüfen, hey, ist das, wir auch, haben wir kein
Nachbarsignal, wenn wir dran sind? Denn was wir dann
tun wollen, ist, dass wir diesen besonderen Rock
als allgemeine Idee ausschalten wollen. Dies ist etwas kompliziert in der Art und Weise, wie
dies grundsätzlich formuliert wird. Aber das ist die allgemeine Idee. Das geplante Häkchen plant
ziemlich einfach ein Häkchen, wenn
wir tatsächlich darauf eingehen. Und das ist
mit den Nicht-Map-Parametern
etwas schwer zu lesen . Die allgemeine Idee ist nur, dass
wir im Grunde
ein Häkchen planen und dann die
Tick-Methode hier aufgerufen wird. Tick-Methode hier wird in
diesem Fall erneut überprüft, ob unsere
eigene ist oder nicht und ob der Nachbar
nicht eingeschaltet ist, ob es kein Signal für
den Nachbarn gibt , falls dies der Fall ist, desto mehr setze
diesen Block auf „Sein“, und wir fahren tatsächlich
durch das Verlinkte hier. Wir können also tatsächlich
einen Blick darauf werfen was der Radfahrer von
Nixon Collection, was das so ziemlich einfach tut ist, dass es das angeklickte umkehrt. Es ist also das Gleiche, was
wir hier mit
dem aktuellen Zustand gemacht haben und ihn dann negiert haben, es ist
dasselbe. Wir fahren einfach durch das Rad. Das ist also alles, was wir tun. In diesem Fall fast keine Änderung
des Codes von Vanille. In diesem Fall, nur die Beleuchtung
zu
ändern haben
in diesem Fall zwei geklickt. Und das ist so ziemlich genau das. Wir wollen
es auch tun, dass ich
die folgende
Systemausdruckzeile hinzufügen wollte die folgende
Systemausdruckzeile , nur
damit wir das sehen können. Also können wir hier drüben sagen, wir das einfach,
um „powered by“ zu sagen. Und dann werden wir sagen, wenn ich P-Level sage, bekomme ein Signal für beste Nachbarn. Siehst du, wir geben
gerade die Position vorbei. Aber was ist der beste Nachbar? Siegel? Was ist das beste Nachbarsignal? Nun, das beste
Nachbarsignal stammt einfach
von allen seinen Nachbarn, was das stärkste Signal hat. Und wir geben
im Grunde nur das eigentliche Signal von
diesen bestimmten Nachbarn aus. Das ist also eine Ganzzahl. Sie können sehen, wo es 15 ist, ist die höchste Signalstärke
, die Redstone haben kann. Wenn also einer der
Nachbarn 15 hat
, werden wir 15 ausgeben. Wenn es ein schwächeres Signal gibt, geben
wir das aus. Lass uns einfach ins Spiel gehen und sehen, was das tatsächlich bewirkt. Oder Frankreich oder in Minecraft. Und ich habe
es schon eine Kobaltlampe aufgestellt. Versuchen wir es einfach mit einem Level. Zuallererst gehst du los. Ich kann es ein- und ausschalten, also funktioniert das. Und ich kann
Redstone auch dazu bringen. Und das funktioniert auch. Wenn ich jetzt mit der rechten Maustaste darauf klicke
und dir intelligent zeige, kannst
du sehen, powered by 14. Warum ist es 14? Nun, natürlich,
denn das wäre 15 Stärke und das
wäre 14 Stärke. Schalten Sie das jetzt auch ein
, oder? Also der Hebel dann in C, jetzt wird er von angetrieben. Das ist also so ziemlich
alles, was es dazu gibt. Auf diese
Weise können Sie
eine bestimmte
Blockstatuseigenschaft ändern eine bestimmte
Blockstatuseigenschaft , wenn Sie Redstone darauf anwenden. Und das ist so ziemlich
alles, was Sie brauchen, wenn Sie dann spezielle
Funktionen dazu haben möchten.
Nun, dann müssen Sie
natürlich diese Blöcke nehmen, sagen Sie beispielsweise Eigenschaften, die sich ändern und tun
etwas mit ihnen. Aber das ist
so ziemlich alles machbare. So einfach ist es
, einen Block mit
etwas
Redstone-Funktionalität des Spiels hinzuzufügen . Wie immer ist der gesamte
Code auch
im Repository nur und im
GitHub-Repository verfügbar . Und wir sehen uns allerdings alle in der
nächsten Vorlesung. Ja.
122. (1.18.2): Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in dieser Vorlesung werden
wir einen
Blick auf Blockentitäten werfen, die uns rendern. Nun, dies ist ein sehr
interessantes Thema , mit dem Sie
im Grunde genommen einige benutzerdefinierte Dinge
auf Ihre
Blockentitäten rendern auf Ihre
Blockentitäten Jetzt importieren wir ein benutzerdefiniertes Blockmodell
aus
eine Blockbank. Also habe ich das schon vorbereitet. Es nennt sich ein Podest. Und was wird es tun
können, ist, dass wir mit einem Gegenstand mit der
rechten Maustaste klicken können und dann wird der Gegenstand
auf dem Sockel schweben. Das ist die allgemeine Idee
dieses speziellen Beispiels hier. Und es wird wirklich,
wirklich verdammt genial werden. Die Blockbench-Datei wird
natürlich auch verfügbar sein. Und wenn Sie dies haben,
möchten Sie zur Datei gehen und das
Blockelementmodell genau hier exportieren. Wir werden nur den Sockel
exportieren, dass Jason. Okay, das wird gut werden.
Und dann können wir fortfahren. Es wird also natürlich
unsere
Blockmodell-JSON-Datei geben . Aber
lasst uns zuerst einen Block,
die Blockentität und all
die Verrücktheit schaffen die Blockentität und all
die Verrücktheit , die es mit sich
bringt. Fangen wir mit der
eigentlichen Blockklasse an. Wir klicken also mit der
rechten Maustaste auf eine neue Java-Klasse in unserem benutzerdefinierten Blog-Paket. Und das wird vor einiger Zeit
der Sockelblock sein. Jetzt wird dies die
Basis-Entitäts-Block-Klasse genau hier erweitern . Es wird mit der Maus über diese
Implementierungsmethoden, die neue Entitätsmethode, bewegen. Und dann bewegen wir den Mauszeiger wieder, erstellen einen Konstruktor, der super
passt. Wenn der Parameter
hier Sie ärgert, Umschalttaste F6,
um ihn in Eigenschaften umzubenennen , und dann sollte
alles in Ordnung sein. Das erste, was ich tun
möchte, ist, dass ich
hier
einen absichtlichen Fehler machen möchte , damit wir nicht vergessen, dies zu ändern,
nachdem wir
die Block-Entität erstellt haben , weil dies manchmal passiert. Und was ich
auch tun werde, ist, dass ich den Rest des
Codes hier
kopieren werde . Das ist also nicht allzu verrückt. Es mag also viel aussehen, aber
es ist eigentlich nicht zu verrückt. Wir erhalten
hier auch einen Fehler, weil wir nicht über das
Block-Entitätsguthaben verfügen, aber das ist in Ordnung. Das erste
, was unglaublich
wichtig ist, da sie die
Render-Schame-Methode bekommen und
der gesamte Code hier ist
natürlich auch wertvoll. Holen Sie sich genauso gut einen Pastor im
Einzelnen. also keine Sorgen. Aber die retinaförmige Methode
ist am wichtigsten, sonst
wird Ihr Block unsichtbar sein. Das ist also sehr wichtig. Sie verwendeten natürlich Methode,
ist die Methode, die aufgerufen wird, wenn Sie mit der rechten Maustaste auf diesen
bestimmten Block klicken. Und was passiert hier ist , dass wir im Grunde
nur überprüfen,
hey, gibt es irgendetwas
in diesem Inventar? Wenn es leer ist, nehmen
wir nur den Gegenstand, der sich in der Hand
des Spielers befindet , und fügen ihn hier zum Inventar hinzu. Also Sockel zum Spieler-Objekt, kopiere es und
dekrementiere es. Wir bekommen auch das
Abspielen des
Item-Pick-up-Sounds , weil das hier nur
ein bisschen schöner ist. Und wenn der
Sockel nicht leer ist
, spawnen wir den Gegenstand im Grunde vom Sockel und löschen ihn auch
vom Sockel. Aber das sind in diesem Fall nur drei kleine private
Helfermethoden, und der Rest passiert
in den verwendeten Methoden. Insgesamt ist die
eigentliche Funktionalität
hier nicht so verrückt,
alles in Betracht gezogen. Jetzt
brauchen wir natürlich immer noch die Block-Entität, also holen wir uns auch
die Bucheinheit. Lassen Sie uns also eine neue Klasse
und das Entitätspaket erstellen, dies wird die
sockellose Entität sein. Und lasst uns zuerst hier
wichtig sein. Also los gehst du. Wir können das einfach importieren. Und dann wird es uns
nur eine Sekunde gut gehen. Dieser Fehler wird verschwinden, sobald wir alles hier implementiert haben. Was brauchen wir hier?
Nun, zuallererst muss dies
natürlich
die Block-Entitätsklasse erweitern. Sollte nicht zu verrückt sein. Und lasst uns den
Konstruktor erstellen, der super passt. Und dann ist die Frage,
naja, was brauchen wir? Nun, wir brauchen tatsächlich
einige Dinge. Noch einmal werde ich
diese kopieren, aber keine Sorge. All dies ist
im GitHub-Repository und auch
individuell verfügbar . Diese beiden
sollten nicht verrückt sein. Wir haben dies auch in den
Akkordalblasten oder
Blockentitäten gesehen . Nur der
Item-Stack-Handler hier, im Grunde unser Inventar
dieser bestimmten Rock-Entität. Und dann brauchen wir den Laser auch optional, damit wir ihn auch über die
Fähigkeiten
verfügbar machen . Dann lassen Sie uns hier einige
Hilfsmethoden kopieren denn was Sie finden werden, ist, dass wir hier
auch eine Rotation haben. Warum haben wir die
Rotation hier drüben? Nun, denn was wir tun
wollen, ist, dass wir jede der verschiedenen Blockentitäten wollen,
wenn das Element da ist, wir möchten, dass es sich dreht. Und die Rotation
hier wird in diesem Fall tatsächlich auf
der Block-Entität gespeichert. Wir müssen es genau hier speichern, denn wenn wir es
im Entitäts-Renderer speichern, funktioniert
das nicht, da jede Block-Entität im Grunde einen Renderer
teilt. Und dann lässt jede Block-Entität,
die Sie hinzufügen,
einfach Drehung
im Grunde genommen schneller. Jede Block-Entität braucht also ihre eigene Rotation, aber
das ist in Ordnung, oder? Wir haben hier keine
Rotation hinzugefügt. Wir würden einfach eine Rotation hinzufügen,
wenn sie 360 erreicht, dann
setzen wir sie einfach auf 0 zurück. Wenn es weniger als 0 ist, fügen
wir es einfach hinzu. Im Grunde
drehen wir es einfach um. Das ist die allgemeine
Idee. Und dann haben
wir hier eine Get Rotation Methode, aber nichts zu verrückt. Fügen wir dann die Funktion
sowie die Speichern
- und Lademethoden hinzu. Aber wieder einmal
sollten diese auch nicht verrückt sein. Sie erhalten Fähigkeiten, die wir auch in
der benutzerdefinierten Entität gesehen haben ,
sowie die sicheren
zusätzlichen und niedrigen Methoden für das Tag, bei dem wir gerade das Inventar
gespeichert haben. Wenn wir also die
Welt verlassen und wieder reingehen, wird
das eigentliche Inventar immer noch gespeichert, oder? Und dann sind die letzten Methoden
, die wir
hier auch brauchen , die
Drops-Methode, oder? Das sind also nur die Methoden,
damit die Dinge tatsächlich sinken. Das wollen wir also in nur einem Moment
im Block umsetzen . Und dann haben wir auch die
Invalidate caps-Methode, die onload-Methode, mit der wir
die
Update-Paketmethode erhalten haben und
sie erhalten eine aktualisierte Tag-Methode. Jetzt sind diese beiden wichtig, um
die Lager für ungültig zu machen und dann entladen, damit der
eigentliche Item-Handler ordnungsgemäß initialisiert
wird
und all das. Nun sind diese beiden wichtig, da es sonst einem Synchronisierungsproblem zwischen dem Server und dem Client kommen könnte. Deshalb brauchen wir
beides. Und wir wollen
im Grunde die Update-Steuer erhalten. Also wollen wir hier
ein Tag bekommen und
es dann einladen und dann zurückgeben. Also das Nun, es ist nicht zu verrückt, aber wisse einfach, dass wir das brauchen. Andernfalls sinken der Client
und der Server nicht ordnungsgemäß, und dann wird das eigentliche
Element gespeichert, aber es wird
nicht geteilt. Deshalb brauchen wir
diese beiden Methoden auch, oder? Dann lass uns
für einen Moment zum Block gehen und lass uns hinzufügen, du kannst sehen, wie der Pfeil
hier verschwindet. Und ich füge hier auch die
onRemove-Methode hinzu, die die Drops-Methode
aufruft , die wir gerade hier
implementiert haben. Theoretisch müssen
wir also nicht einmal eine for-Schleife machen, aber
das wird gut. Es wird okay sein. Dies ist die gleiche
Drops-Methode, die wir
in den Chloroplasten
- oder Block-Entity haben . Und das ist eigentlich alles, was wir innerhalb der Block-Entität
brauchen. Insgesamt ist es nicht zu verrückt und es ist nicht
zu kompliziert. Im Grunde nur einige
der Dinge, die wir brauchen, um die Daten dort zu speichern. Dann gehen wir tatsächlich in die Mod-Block-Entitäten-Klasse
und registrieren wir sie. Aber wir werden es einfach tun, lasst uns die Genossenschaft letzte Reihe
nehmen. Wir werden dies nur in die
Header-Store-Block-Entität hier
kopieren . Dies wird auch
das Podest sein. Sockel. Da gehst du. Dann natürlich, den Namen hier zu
ändern, sehr wichtig
, als wir
dies brauchen, um die
Sockelblock-Entität zu sein. Und das muss
der Sockel sein , der
noch nicht umgesetzt ist ,
aber das ist in Ordnung. Lasst uns nun auch noch einmal
in die
Sockelblock-Entität gehen. Denn natürlich müssen wir den Konstruktor
hier
ändern. Sonst
wird es nicht funktionieren. Wir werden ihn dann sehen wollen,
aber schauen Sie, Entitäten, die das Ego immer noch nicht bekommen und jetzt sollten die
Blockentitäten in Ordnung sein. Wir müssen jetzt
das eigentliche Buch registrieren. Das wird gut sein
, dass es
in unserem Blog-Kurs sein wird , mehr Block-Klasse hier. Gehen wir einfach
ganz nach unten. Kopieren Sie über das Winterfenster. In diesem Fall
wird dies
der Sockel und natürlich auch der
Name sein , Sockel. Und das
wird das Podest sein. Glück. Jetzt ist dies geschützt, also müssen wir
dies in eine Öffentlichkeit umwandeln. Da gehst du. Und dann können wir das auch machen. Da gehst du. Völlig in Ordnung. Das wird kopiert. Wie wäre es eigentlich
nicht zu kopieren
Wie wäre es , ein Material zu diesem Stein zu
nehmen,
ich denke, dass das
den sinnvollsten materiellen
Stein ergeben würde . Und es wird
zu unserer benutzerdefinierten Creative-Registerkarte hinzugefügt. Das ist in Ordnung. Dann können wir wieder zum Sockelblock zurückkehren und
Mod-Block-Entitäten aufrufen, die Sockelpunkt, Punkt erzeugen,
die Position und den
Zustand hier drüben übergeben . Und der Block
sollte auch gemacht werden. Und dann die
Modusblock-Entitäten, diese ist jetzt auch kein
Fehler mehr und alles
sollte gut funktionieren. Das ist absolut großartig, aber wir haben immer noch nicht
die Darstellung unserer Welt. Wir haben grundsätzlich keinen
Kunden-Block-Entitäts-Renderer. Nun, lasst uns in unserem
Entitätspaket ein neues Paket
namens Client
erstellen. Und statt
dort werden wir
eine neue Java-Klasse erstellen, die als Sockelblock,
Header-Speicherblock
und Entitäts-Renderer bezeichnet wird. Und dies wird
den Buch-Entitäts-Renderer erweitern, dieser hier
vom Typ Sockel Bulk Entity. Lassen Sie uns den Mauszeiger darüber bewegen, Methoden
implementieren, die Render-Methode in diesem Fall. Und dann wollen wir dies auch
tatsächlich in Implements
anstelle von Extends
ändern. Eigentlich ist das ein guter Punkt , denn dies ist
eigentlich eine Schnittstelle. Wir brauchen auch einen öffentlichen
Sockelblock-Entity Renderer mit einem Block, mit einer Buch-Entity
Render-Up-Anbieter. Dieser hier, dieser
Kontext oder Kontexte, und das wird in diesem Fall unser
Konstruktor sein. Jetzt kopiere ich noch einmal
den Inhalt
der Render-Methode. All
dies steht
Ihnen wieder zur Verfügung und das sollte sein, dies sollte ziemlich
einfach sein ,
alles in Betracht gezogen. Zunächst einmal bekommen wir den Item-Renderer direkt
hier von Minecraft selbst. Und dann
sagen wir, okay, gib mir den Stapel, der hier
drin ist, und dann machen wir ein
paar Verrücktheit. Die allgemeine Idee ist, dass
der Stapel hier ziemlich einfach das
Rendern durchführt, grob gesagt. Und was wir
im Grunde tun, ist, dass wir den eigentlichen Stapel nur nach oben und unten
bewegen lassen. Das wird also R sein,
das wird der Gegenstand sein. Wir werden es auf und ab machen. Wir werden es hier
auf die Größe skalieren. Und dann
kriegen wir auch eine Rotation. Dies dreht also nur
den Gegenstand um die Y-Achse. Das ist so ziemlich all
diese drei Dinge sie
nicht tun, werden
das eigentliche Element hier rendern, und dann
müssen wir den Stapel
erneut knallen , und dann
sollten wir es gut gehen. Dann fügen wir im Grunde eine negative
Ein-Rotation hinzu, so dass jedes Mal, wenn dies im Grunde genommen jedes
Mal
genannt wird , grob
gesagt, oder? Jedes Mal, wenn
dies heißt, haben wir uns im Grunde
um minus
einen Grad gedreht , so dass es eine sanfte Rotation
wird. Sobald du tatsächlich siehst, dass das nicht zu verrückt sein sollte, solltest
du nicht
zu kompliziert sein. Alles in Betracht gezogen wird, ist
eigentlich ziemlich einfach. Jetzt muss der
Blockentitäts-Renderer tatsächlich zu einem bestimmten Ereignis hinzugefügt
werden. Und dafür
brauchen wir tatsächlich eine neue Klasse. Dies werden
die Client-Mod-Events sein, und ich werde dies noch
einmal kopieren. Aber das ist noch
einmal sehr einfach. Sie sehen, dass Sie den
Add-Modus-Ereignisbus-Abonnenten
an der Spitze der Klasse benötigen , sind wichtig, dass dies
sowohl die Mörtelbalken als auch der Wert
dist Dot Client sind. Dies ist äußerst wichtig, sonst funktioniert es
nicht richtig. Sie benötigen dann natürlich eine
öffentliche statische Methode mit einem
Attribut für Abonnenten. Und wir brauchen die
Entitäts-Renderer, Ereignisregister-Renderer. Wir haben dann einfach den
Blockentitäts-Renderer bei
der Sockelblock-Entität
und dem
Standblock-Entitäts-Renderer registriert der Sockelblock-Entität . Das ist alles, was wir tun müssen. Und jetzt ist der eigentliche Render auch richtig
registriert. Das letzte, was wir
jetzt brauchen, sind nur zwei. Fügen Sie die JSON-Dateien hinzu. Sie können sehen, dass wir
keinen Bildschirm
oder Menü hinzugefügt haben, da
unsere Bucheinheit
in diesem Fall tatsächlich
keinen Bildschirm oder ein Menü hat. Lass uns einfach
über den Sockel kopieren Jason hier drüben,
sollte nicht zu verrückt sein. Der Blockstaat ist Jason
ziemlich selbsterklärend? Gleiche gilt für die Übersetzung
dieses Punktes. Diese Dinge sollten, ich meine, an dieser Stelle nicht
einmal eine Frage sein sollten. Das ist einfach eine sehr
einfache Sache. Wir werden das hinzufügen. Fügen wir die JSON-Datei des
Blockmodells hinzu. Das wird also derjenige
sein, den wir tatsächlich von
einer Blockbank genommen haben. Lassen Sie uns das auch kopieren und dann sehen, was wir hier ändern
müssen, ist der glatte Stein,
denn dieser befindet sich unter dem Minecraft-Schrägstrich unter Mikroblock. Stellen Sie also sicher, dass Sie
dies bei beiden ändern. Und dann
ist die JSON-Datei des
Artikelmodells auch ziemlich einfach. Dies ist
im Grunde noch einmal, zeigt auf die Jason-Datei des
Blockmodells zurück, und das ist es so ziemlich genau. In
diesem Fall ist keine Textur erforderlich , da
wir
die Minecraft-Texturen tatsächlich
glatten Stein nehmen ,
das sollte auch in Ordnung sein. sind also alle
Schritte, die wir
tun müssen, um unsere benutzerdefinierte Entität
hierher zu bringen und sie
im Grunde mit einem speziellen
Block-Entitäts-Renderer zu haben . Lasst uns also in die Welt gehen
und sehen, ob es funktioniert. Okay, fantasiere
wieder in Minecraft und du kannst sehen der Sockel
erfolgreich zum Spiel hinzugefügt wurde. Lassen Sie uns also einfach ein paar von ihnen
niederlegen und sehen,
was wir sehen können. Wenn ich also mit der rechten Maustaste darauf klicke, sollten
wir das Kobalt nicht haben. Kobalt erscheint genau hier auf dem Sockel und einer von ihnen sollte
aus meinem Inventar verschwinden. Und genau das
passiert. Machen wir einfach das
Gleiche für alle von ihnen. Aber vor ihnen,
manchmal könnte man diese seltsamen
Render-Pfeile genau hier bekommen. Das ist also etwas
, bei dem ich mir nicht
hundertprozentig sicher bin , warum das der Fall sein könnte. Also denke ich, dass es etwas mit
den Schatten und so zu tun
hat. Also lasst uns einfach sehen, ob sich das ändern
könnte. Wenn ich das mache. Aber das ändert es nicht. Aber wie gesagt, da ist es
manchmal ein bisschen wackelig daneben
mit einem Rendering. Und ich werde ehrlich sein, ich bin kein weiterer Experte für Rendering. Rendering ist eigentlich
eines dieser Dinge, bei denen, ähm, sagen wir einfach, das heißt, ich würde nicht meinen
schlimmsten Albtraum sagen, aber es ist definitiv keine Sache , die mir besonders gefällt. Also ja, aber insgesamt funktioniert
es immer noch ziemlich
gut und ziemlich cool. Und es ist eine Sache
, die sich bildet. Es ist ziemlich genial. So einfach kann
es sein,
ein
Block-Entitäts-Renderer-Mikrofon hinzuzufügen . Wie immer steht Ihnen natürlich der
gesamte Code
im GitHub-Repository
zur Verfügung und auch
individuell. Und wir sehen uns alle
in der nächsten Vorlesung. Also ja.
123. (1.18.2) Loot in benutzerdefinierten Strukturen: Alles klar, willkommen zurück
zum Schmiedekurs für 118. Und in dieser Vorlesung werden
wir uns ansehen, wie Sie Ihren
Kundenstrukturen eine
benutzerdefinierte Belastung hinzufügen können . Was ich also getan habe,
ist, dass ich hier
im Kabinenhaus hervorgebracht habe, nur damit wir eine
Struktur haben und sie auch in
einem Moment retten werden . Aber wir werden es tun, wenn
wir
eine Truhe hinunterlegen und sie mit etwas zufälliger Beute
füllen werden. Jetzt ist die Frage,
wie funktioniert das? Was kannst du nicht tun? Und das ist die Sache
, die manche Leute versuchen. Sie nehmen einfach die
Truhe und
legen sie dann einfach ab und dann gleich. Warum ist da keine zufällige Beute
drin ? Nun, das funktioniert nicht. Was müssen Sie tun, ist, dass
Sie
die Truhe tatsächlich über einen Befehl besitzen müssen , oder? Also habe ich den Befehl
bereits vorbereitet und was du tun kannst ist, dass ich das im Grunde verfügbar mache und es wird
nicht so verrückt sein. Was Sie also sehen können,
ist, dass an
Ihrer aktuellen Position
nur weniger eingestellten Block vorhanden ist . Du stehst als
Minecraft-Brust zugewandt. Also willst du
es einfach irgendwie ins Gesicht bringen. Und lasst uns
das tatsächlich einfacher machen. Lasst uns
das einfach nach Osten richten. Und dann sieht man geschweifte
Klammern, Beute, Tisch, Minecraft, Truhen, einfache
Kerker in diesem Fall, lass uns das einfach ausführen. Jetzt. Es deutet tatsächlich auf die
falsche Richtung hin, aber das ist in Ordnung. Hier geht es nur darum, das Gesicht zu
ändern. Und wenn wir das öffnen,
können Sie sehen, dass es da ist. Also etwas zufällige Elute. Jetzt ist die eigentliche Frage das. Wenn ich das jetzt speichere, ist das zufällige Beute? Nein, denn wann, sobald
du es öffnest, wird es elutt. Tabelle
erzeugt tatsächlich etwas Beute. Jetzt wird
jedes einzelne der Häuser diese Beute drin haben. Was Sie also tun müssen, ist,
dass Sie es nicht öffnen müssen. Was Sie also tun müssen, ist, dass
wir einfach hier runter gehen. Also lasst uns das einfach
machen,
glauben, dass dies Süd sein sollte, tatsächlich
diesen nach Süden erzeugen. Okay, das stimmt auch
nicht ganz. Also lasst uns das tun, richtig, lass uns das mit
dem Norden generieren, ich denke, dann sollte es im Norden sein. Und ich zeigte in
die richtige Richtung und öffne sie nicht. Andernfalls
verfestigen Sie tatsächlich , was sich die
Schleife darin befindet. Das funktioniert also nicht. Also musst du es einfach
dort behalten und du musst so sein, ich weiß nicht ob es
funktioniert, es wird funktionieren. Mach dir darüber keine Sorgen.
Dann können wir das speichern. Und Sie können dies entweder tun,
wenn Sie es
geladen haben oder Sie können es auch mit
einer Eck- und Häutungsmethode tun. Wenn du es tatsächlich
baust, kannst du einfach eine Truhe wie
diese hinzufügen und dann speichern, damit
wir zum Speichern gehen können. Außerdem werden wir hier
nur Save sagen, und dann wurde dies gespeichert. Jetzt können wir
es in der Intelligenz ersetzen. Also schauen wir uns einfach genau dort an. Aber noch einmal wollen wir zum Run-Ordner speichern
gehen, und dies sollte
der lächerliche Ordner innerhalb des generierten sein, wir haben den Calvin, wie geht's NVT? Und wir wollen
den Datenordner,
MC-Kursstrukturen ändern . Wir haben die Zählung mein Haus, und wir wollen nur
das eine durch das andere ersetzen. Also werde
ich das einfach kopieren,
überschreiben , und das ist
alles, was wir tun müssen. Jetzt haben wir die Beutetruhe noch einmal
nicht geöffnet. Die Schleife sollte also
grundsätzlich
jedes Mal generiert werden, wenn das eigentliche
Haus generiert wird. Wir sollten also nicht
die gleiche Schleife in zwei
verschiedenen Häusern haben . Lasst uns also einfach eine neue
Welt erschaffen und sehen, ob es funktioniert. Alles klar, wir sind Mikrofinanzierung
New World und mal sehen, es gibt die erste
Zählung, mein Haus, und wir haben die Truhe hier drüben. Du siehst also, dass
wir ein Musik-Discs haben. Ein paar Schießpulver ist es. Okay, das ist in Ordnung. Lasst uns also ein
neues Säulenhaus finden
und mal sehen, ob
wir auch
dieselben Musikdisketten finden können oder ob
es etwas anderes gibt. Es gibt also ein neues Camp
Meilen und
hoffen wir einfach , dass die Schleife
dort anders ist, aber ich bin mir ziemlich sicher, dass
es da sein wird, wo wir gehen, eine ganz andere Ladung. Also genau das, was du dir wünschen
würdest. Was also wichtig ist,
ist, dass wir
natürlich die
KO-Maus MET benutzen, aber wir haben den
einfachen Kerker benutzt. Das ist also
derjenige, der tatsächlich an einem Beispiel
hier ist , oder? Das ist also der eigentliche Befehl hier. Sie können den
einfachen Kerker der Truhen sehen und Sie können jede andere
Art von Ladetabelle verwenden. So können Sie auch Ihre eigenen kleinen Tische und Referenzen erstellen. sind sie, aber das ist
natürlich etwas , das Sie auch für
sich selbst tun können. Und so einfach ist es
so ziemlich einfach,
Ihren Strukturen
eine benutzerdefinierte Beutentruhe hinzuzufügen , oder? Aber das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen und wir sehen uns alle
in der nächsten Vorlesung. Also ja.
124. (1.18.2) Fehler beheben: Alles klar, willkommen zurück
zum Futterkurs für 118. In dieser Vorlesung werden wir
nur einige kleine Fehler
beheben, die ich im Laufe dieses
Kurses
im Grunde genommen gemacht habe . Mit der Anzahl
der Vorträge, die wir haben,
gibt es natürlich ein paar
Fehler hier und da. Der erste wird also im Mod-Rüstungsobjekt
sein. Das wird sehr
interessant sein und das ist die richtige Rüstung auf Methode. Denn was wir
tun wollen, ist, dass wir es
durch Folgendes ersetzen wollen. Also
wollen wir im Grunde bei dieser
for-Schleife hier drüben hinzufügen , die die Rüstung
durchläuft und überprüft ob die
Rüstung tatsächlich ist oder nicht, die Gegenstände sind tatsächlich
Rüstungsgegenstände. Und wenn einer von ihnen nicht der Fall
ist, werden wir sofort falsch zurückgeben. Nun der Grund, warum
wir das tun wollen, wenn wir unseren Rüstungsgegenständen ein Elektron oder
einen Kürbis hinzufügen würden , im Grunde genommen in unserem
Rüstungsinventar, dann würde das Spiel abstürzen,
weil wir es versuchen wirf es auf einen Rüstungsobjekt
und das funktioniert nicht. Deshalb wollen wir im Grunde
damit
umgehen und dann sollte es uns gut gehen. Das zweite, was wir ändern
wollen, ist die MC-Kurse-Mod-Klasse. Und was wir tun wollen,
ist, dass wir die gesamte
Client-Setup-Methode verwenden
möchten und im Grunde genommen das,
was hier ausgewählt ist, Umschalttaste
gedrückt halten, hier klicken und dann Strg
X drücken, um es auszuschneiden. Sie können diese Zeile
dann hier löschen und wir möchten
in die Event-Klasse gehen , um weitere Events zu
finden. Hoffentlich haben Sie
dies in der
letzten oder
vorletzten Vorlesung erstellt , wir werden die
Denkweise der Methoden hier einfügen. Wir
möchten dies so ändern, dass es öffentlich und statisch ist, und wir möchten diese
Abonnement-Veranstaltung ebenfalls hinzufügen. Warum brauchen wir das jetzt?
Nun, nur für den Fall, dass das Client-Setup-Ereignis normalerweise
nur auf den Client aufgerufen wird. Die
MC-Kurse-Mod-Klasse ist jedoch tatsächlich
eine übliche Klasse. Dies wird also sowohl auf
dem Client als auch auf dem Server aufgerufen. Und es kann manchmal passieren , dass durch einige
Java Mumbo-Jumbo im Grunde einige dieser Klassen auch auf dem Server aufgerufen werden, wodurch
der Server dann zum Absturz bringt. Und das ist natürlich
nicht das, was wir wollen. Um sicher zu sein, fügen Sie dies den Klimaereignissen hinzu. Wichtig ist, dass dies
ein Mob-Boss ist und auch mit
dem Value-Desktop-Client, und dann sollte es ihr gut gehen. Und zu guter Letzt haben wir etwas im
Dowsing Rod Item. Und zwar die Art und Weise, wie wir uns Tags im Grunde ansehen
können. Dies ist also eine gültige Methode
, um grundsätzlich zu prüfen, ob sich
der jeweilige Block
hier in diesem Tag befindet oder nicht . Das ist jedoch wahnsinnig kompliziert und wir können
es ein bisschen einfacher machen. Anstatt also hier
einen Block zu erwarten, wollen
wir tatsächlich einen
Blockstatus, oder? Blockieren Sie also den Status,
ändern Sie dies in Status. Und wenn wir es dann wollen, löschen
wir einfach all
diese Verrücktheit und wir werden darüber in einem Moment Sorgen machen. Zuallererst, wie bekommen
wir den Staat in
der „ist wertvollen Blockmethode“? Also werden wir
hier einen Fehler bekommen , weil
wir einen Block haben. Jetzt wollen wir dies ändern
, um den Blockstatus zu sein. Und anstatt
Blood Get Block hier zu
nennen, werden
wir einfach den Blockzustand kriegen. Wir werden dies ändern, um blockiert zu bleiben und dann das Gleiche
hier, nicht blockiert zu werden. Und das sind alle Anforderungen, die
wir hier ändern müssen. Und dann in der ist
wertvollen Blockmethode,
was wir tun können, ist
, dass wir den Zustand zurückgeben können ist mehr Tags, die die Wertsachen
der Wertsachen der Dowsing Rod blockieren. Jetzt ist das viel einfacher als das, was
wir vorher hinzugefügt haben, und das wird
so ziemlich alles sein , was ich dir zeigen
wollte. Dies wird auch so ziemlich
den 118-Teil des
gesamten Kurses hier
abschließen . Danach wird es also auch ein
neuntes Update geben. Es wird also
im Grunde genommen geben, wie Sie all
die verschiedenen Dinge
, die da drin sind, mit
vielleicht ein oder zwei
verschiedenen Dingen aktualisieren die verschiedenen Dinge
, die da drin sind, mit , wenn sie noch nicht
entdeckt werden , wie einfach sie in 119
zu tun sind, aber das wird
danach folgen und dann ist
der Kurs trotzdem
ziemlich erledigt. Ich hoffe, du hast das nützlich gefunden
und du wirst etwas
Neues lernen und wir sehen uns
in der nächsten Vorlesung. Also ja.
125. 1.18.2 UPDATE AUF 1.19: Alles klar, willkommen zurück
zum ersten Kurs für 118. In dieser letzten Vorlesung werden
wir unser
Projekt aus den 1890ern aktualisieren. Zum Glück ist das Update aus den
1890er Jahren nicht das verrückteste. Ich habe viel schlimmere
Updates zwischen der Vergence gesehen, aber es gibt immer noch einige Dinge, die komplett geändert
werden. Und ich glaube
, es gibt
mindestens eine Sache , die überhaupt nicht funktioniert, aber so wird
es sein. Also navigieren wir einfach
zur gebauten oder Gradle-Datei hier unten
zu unseren Abhängigkeiten hier drüben wo wir die
Minecraft-Schmiede haben. Und was sehr
wichtig ist, ist, dass
Sie Ihr gesamtes Projekt sichern . Denn wenn Sie es nicht
sichern
lassen , können Dinge passieren. Sie könnten Ihr
Projekt brechen, wenn Sie aktualisieren. Haben Sie entweder ein GitHub-Repository, erstellen Sie einen neuen Zweig
, damit Sie alles
gespeichert haben , oder kopieren Sie einfach
das gesamte Projekt, damit
Sie es sichern können. Ich empfehle dringend
, das jetzt zu
tun , um die
Futterabhängigkeit hier zu ändern? Nun, es ist eigentlich
nicht so verrückt. Was wir tun
wollen, ist, dass wir es auf
41038 ändern wollen, natürlich 119. Das ist also die neueste
Version für Sie. Es wird hier wahrscheinlich weiter
fortgeschritten sein , aber
das wird gut. Immer kannst du immer
die neueste Version verwenden und
das wird okay sein. Also lasst
es uns einfach da drüben ändern. Also lass uns zurückgehen
und das wird 119 Strich und dann 41038 sein. Da gehst du. Und das ist die Version, auf die wir wechseln
wollten. Wir wollen auch die
Gecko-Lippe hier aktualisieren. Also wird das jetzt einen Strich aus dem Jahr 193119 schmieden. Da gehst du. 1313. Da gehst du. Ich glaube, das
sollte das neueste sein. In diesem Fall. Es kann einfach auf Gecko-Lippe nachgeschlagen
werden. Sie können
die Version ganz einfach hier
im Gecko Lip GitHub Repository finden . also keine Sorgen. Und nachdem
wir diese beiden geändert haben, klicken wir einfach auf Gradle-Änderungen
laden. Und dann wird
es wieder Sachen bauen, Sachen herunterladen, all den gleichen Jazz, den
wir ein paar Mal gemacht haben, besonders
am Anfang von all dem. Empfehlen Sie daher dringend, geduldig zu
bleiben lassen Sie dies
einfach alle
Fehler durchlaufen, alles Rote, die meiste
Zeit, sicher ignoriert werden. Und dann werden wir sehen,
sind wir da, bauen wir erfolgreich in zwei
Minuten und 28 Sekunden. Jetzt sind wir in der
Build-Up-Gradle-Datei
noch nicht ganz fertig , weil wir sie auch in die
Pergamentzuordnungen
ändern wollen . Wir haben also Pergament für
dieses hier, und wir möchten
es auf Folgendes ändern. 1182022 oder sechs oder 5119. Das bringt also einfach die
119 offiziellen Mappings in Overlays aus dem 19. Jahrhundert zu
Pergamentzuordnungen darüber. Und dann werden wir ungefähr
Pergamentzuordnungen für 119 haben. Nicht alles wird
perfekt abgebildet, aber das ist, glaube ich, die neueste Version, die wir haben, dass es noch keine
119 Version gibt. Wieder einmal können
Sie sich natürlich einfach
das Pergament-Repository ansehen und sollten nicht, Sie sollten dort etwas
finden können. Lasst uns das einfach noch einmal laden, radiale Änderungen und das
sollte nicht allzu lange dauern. Ich hoffe nicht noch zwei
Minuten, aber mal sehen. Warten wir einfach noch einmal und warten
geduldig hier. Und dann wird es uns gut gehen. Okay, los geht's.
Build erfolgreich in einer Minute und 37 Sekunden. Also wird es uns jetzt gut gehen
und alles ist eingerichtet. Aber jetzt lasst uns in die
MC-Kurse-Mod-Klasse springen und wir werden hier sofort mit einem winzigen Pfeil
begrüßt. Und das sind nur die Importe. Sie können also sehen, dass ich hier immer noch
Sachen in den Importen habe, aber keine Sorge, ob mit den Eingaben etwas nicht stimmt. Sie können sehen, wie die
drei Punkte hier rot werden. Grundsätzlich können Sie einfach
Control Alt O drücken und dann wird
alles in den
Importen, im Grunde genommen gelöscht
, was wir nicht brauchen. Und vorerst ist hier
nichts falsch, aber es wird
ein paar Dinge geben, die in anderen Klassen
falsch sind. Normalerweise
können wir einfach in den Unterricht gehen. Ich glaube, dass die erstklassige Klasse bei der wir
ein Problem
haben werden, tatsächlich im
gedrehten Säulenblock mit Flammenkugel liegen wird . Interessanterweise, oder
wir müssen uns hier ändern nur die Parameter hier drüben. Also kopiere ich
das einfach vorbei. Wieder einmal ist
hier natürlich alles im
GitHub Repository
verfügbar. Und in der Tat genauso gut, das wird
jetzt im Stapel sein. Dies wird Kontext-Stack
sein. Und dann
werden wir einfach
den Kontext genau hier passieren , und dann auch das
Simulate genau hier. Sie sind her und das
sollte das beheben. Nun, dieser ist fertig und ich glaube, der
Rest sollte in Ordnung sein. Eigentlich blockiert Aldi Speedy, ja, weil der Animator tickt, weil wir jetzt
nicht mehr den Zufall verwenden,
aber wir verwenden die
Zufallsquellenklasse aber wir verwenden die
Zufallsquellenklasse hier von diesem
Micro-View-Tool aus. Tu das einfach. Und dann geben
wir hier nichts weiter. Und das wird auch gut
werden. Das sollte also so
ziemlich alles sein,
was wir auch im
SPD-Block tun müssen. Und ich glaube, das sollte alle Blöcke
reparieren. Eigentlich. Ich glaube,
der Rest ist in Ordnung. In der Tat scheinen sie in
Ordnung zu sein , wenn es
um die Entitäten geht. Ich glaube, sie sollten nur wie eine winzige Veränderung
hier sein. Ja. Und das ist die Textkomponente , weil sich das gesamte
Textsystem geändert hat. Glücklicherweise ist die Veränderung hier eine unglaublich einfache Komponente, die
wörtlich ist, und los geht's. Und das war's. Das
ist alles, was wir tun müssen. nur sicher, dass
die Eingaben korrekt sind. Kontrolliere Alt O und dann ist
der Rest hier gut. wir einfach sicher
, dass der Rest hier
auch in Ordnung ist . Und in der Tat ist es das. Also ist hier nichts Verrücktes los. Und Mod-Blöcke
sind hier wieder nur die übersetzbaren
Komponenten. Es ist also nur eine Komponente, die in diesem Fall
übersetzbar ist. Und da sind wir los. Es ist also tatsächlich
sehr einfach gemacht. Es ist also nichts Verrücktes los. Wir haben keine mündliche Blockade mehr
. Das ist auch richtig,
denn jetzt ist es tatsächlich ein Drop
erfahrener Block, aber es funktioniert genauso
. Noch einmal kontrollieren Sie Alt oder
um die Importe loszuwerden. Und dann wird es uns
gut gehen und der ganze Block. Das Paket ist tatsächlich fertig. Die Befehle werden
sich auch in einem Moment etwas
mehr ändern. Aber vor allem sind natürlich
die Textkomponenten, die erste Komponente,
wieder literal, **** und wörtlich. Da gehst du. Dann ist das Gleiche hier. Und dann glaube ich, dass wir das auch im Set haben , aber
wir kontrollieren Alt O, um die falschen
Importe des Jahres
loszuwerden , und sie würden gehen, wir müssen auch
den Konstruktor hier ändern ,
wenn ich irre dich nicht, aber die werden gut werden. werden wir in einem
Moment sprechen. Die Konflikte sind,
Konflikte sollten völlig in Ordnung sein und dort auch nichts zu
tun. Auswirkungen haben sich ebenfalls nicht geändert. Also das wird alles in Ordnung sein. Und Behandlungen haben die Entität nicht
verändert, dass etwas mit
der Entität anders ist und das
ist das Modell, weil tatsächlichen Namen die tatsächlichen Namen der Methoden ein wenig
verändert haben. Also das ist jetzt
GET-Modellressource hier drüben. Ressource sie vor, und das ist jetzt Texturressource erhalten und das hat
Animationsressource. Was Sie also
tun können, ist, wenn Sie
mehrere
dieser Modelldateien haben , die Geo-Model-Dateien, was Sie tun können, ist, dass
Sie einfach drücken können, sagen
wir zur
allgemeinen Regel oder was auch immer Ihr Name ist Paket, drücken Sie Umschalttaste R. Suchen Sie nach einem guten Modellspeicherort und ändern Sie es dann, um die Modellressource zu
erhalten. Sie können sehen, dass
wir das auch in den anderen beiden Modellen haben. Also werden wir einfach „
ersetzen“ sagen, ja. Ich mache
dasselbe mit der Texturposition,
die die Ressource
ersetzt. Jetzt hat dieser manchmal
einen zusätzlichen, von dem wir eigentlich
nicht wollen, dass es sich ändert. Ich glaube, es ist dieser, also werden wir sie einzeln
ersetzen,
nur diejenigen, bei denen ich sicher
bin, dass ich glaube, dass dies nicht geändert
werden sollte. Also los gehst du. Und dann hat sich der letzte,
gute
Speicherort der Animationsdatei jetzt geändert, um auch die
Animationsressource zu erhalten und alles zu
ersetzen, was in Ordnung sein wird. Und da sind wir los. Jetzt sollte
das in Ordnung sein. Mal sehen, wo die
Pfeile hier sind. Es wird genau hier sein. Okay, also innerhalb des Renderers bleibt
dies tatsächlich eine Texturposition. Es ist ein bisschen komisch,
denn das ist auch durch
Gecko-Lippe, aber los geht's. Das sollte also in Ordnung sein. Stellen Sie einfach sicher, dass
Sie es
beim Ersetzen nicht auch
im Render ersetzen. Ich schätze, das Boot
wird leider nicht gerettet. Ich muss mir den Bolzen ansehen und ich konnte ihn leider nicht richtig
zum Laufen bringen. Was wir also nur
tun müssen, ist, dass wir
vorerst einfach ohne das
Boot leben müssen. Sie können also entweder alles
löschen, einfach so machen und es
dann auch hier loswerden. Leider ist es das, was es ist. Das Problem mit der
Kühnheit, natürlich sie die Truhen in
das Boot aufgenommen und noch nicht herausgefunden, wie sie das
ändern können. Tut mir leid, aber
so wird es sein. Manchmal passiert das, wenn Sie von einer
Version zur anderen wechseln, dass sich bestimmte Funktionen komplett geändert
haben. Dann wirst du es eigentlich nicht
können, du wirst es nicht schnell herausfinden können
. Das ist manchmal auch der Grund, warum bestimmte Formen so
lange dauern, oder? Denn durch Versionen
ändern sich die Dinge und so
wird es sein. Ich glaube also, dass wir hier
auch
die alte Entität loswerden können. Wir bekommen vielleicht
woanders
einen Fehler , aber das wird gut. Das
sollte also, glaube ich, alles sein, was
sich hier tatsächlich verändert hat. Okay, die Multi-Entität würde dann auch nicht funktionieren. Aber noch einmal
werde ich einfach den ganzen Weg nach
unten ziehen , damit du dies tun kannst,
indem du Alt hältst. Und dann können Sie in diesem Fall
einfach
mehrere verschiedene
Zeilen auswählen . Dann dasselbe mit dem
Artikel. Absolut. Ich werde das einfach loswerden. Wie gesagt, glaube
ich nicht, dass
es zu umfangreich ist. Die Änderungen sind nicht
zu umfangreich, aber es ist was es ist. Manchmal passiert das. Also lasst uns das auch einfach
loswerden. Und was dann? Das ist in Ordnung. Das ist
in Ordnung. Das ist in Ordnung. Und dann können wir
mit den Ereignissen fortfahren. In den Ereignissen hat
sich die
Laute tatsächlich auf die Klo Tische
geändert, aber glücklicherweise nicht zu verrückt. Das einzige
, was sich
hier geändert hat, ist eigentlich die Methode
do apply. Wie Sie sehen können, können Sie
nicht mehr so überschrieben werden, da
dies jetzt statt einer
Liste ein Objekt ist ArrayList. Wir setzen einfach ein Objekt in jede Liste wichtige Klasse, und dann wird es
dir gut gehen. Gleiche hier. Ändern Sie dies in das Objekt, jede Liste, die diese Klasse importiert. Und dann
sollten die Lautenmodifikatoren genauso funktionieren wie zuvor. Mir ist gut gelaufen. Und dann kommen wir zu der
Registry-Veranstaltung, die sich geändert hat, würde
ich ungefähr
deutlich sagen , weil wir das Registry-Ereignis
nicht mehr haben,
wir haben jetzt ein Registererereignis . Dies wird also jetzt
ein letztes
Registerereignis hier sein . Und dann müssen
wir jetzt innerhalb
der eigentlichen Ereignismethode nach der sie suchen. Grundsätzlich
werden wir sagen, oh, das nennt man natürlich Ereignis , das hier ziemlich
wichtig ist. Da gehst du.
Anstatt dies zu tun, sagen
wir ein Ereignis,
das sich registriert, und dann sagen, dass die Schlüssel
fälschen. Das in diesem Fall Beute
Modifikator oder Serialisierer, Hama, Helfer, und das
ist nur ein Verbraucher. Und jetzt stecken wir diese
Dinge da rein. Also wollen wir das hier hineinstecken
. Und so wie wir es wollen, wollen
wir Helfer
dieses Register sagen. Dann nimm zuerst den
Ressourcenstandort des tatsächlichen Namens. Und dann wird
die zweite
Sache ein neuer Serializer sein. Also werden wir den
neuen Serializer hierher bringen. Da sind wir los. Und das sollte jetzt
funktionieren. Und dann können wir es. Duplizieren Sie dies, ändern Sie
den Namen hier und ändern
Sie dann den
Sterilisator in diesen. Und dann werden wir Spaß machen. Vor ihnen hat sich das
so geändert und dann passiert
das Gleiche auch
in den Rezepten. Wenn ich mich also nicht irre, wollen wir
sagen, dass
wir sagen möchten, dass
ein Punktregister registriert, dass Schlüssel Rezept Serialisierer punkten weil dies tatsächlich ein
Rezepttyp ist, tut mir leid, das ist ein
Rezeptarten, ja. Dann nochmal, Helfer, ähm, oder so, benennt es,
was wir im Grunde wollen. Dann können wir Rezeptart
des Helfers sagen, dieses Rezept. Und ich denke, wir können das buchstäblich
einfach kopieren. Okay, aber nicht ganz. Nicht ganz. Denn was wir
hören möchten, ist entweder eine Zeichenfolge oder ein Ressourcenstandort oder
könnten wir das dann nicht tun? Ja, das können wir, weil die
ID das sein wird. Jetzt ist die Frage, okay, ich fühle mich tatsächlich ein
bisschen besser, wenn ich einen neuen
Ressourcenstandort erstelle, weil ich mir nicht
sicher bin , ob dies unter
unserem Ressourcenstandort kommt oder nicht. Wir werden einfach
so etwas machen. Beende es genau
hier, los geht's. Erstellen Sie also einen neuen
Ressourcenstandort unter unserer
Modell-ID mit der ID-Spalte. Und dann wird es uns gut gehen. Und dann
brauchen wir das nicht mehr. Und der Rest hier, glaube ich,
sollte völlig in Ordnung sein. Kontrolliere Alt O, um
die Importe loszuwerden , und dann wird es
uns gut gehen. Weitere Ereignisse sind völlig in Ordnung. Nichts hat sich geändert,
daher werden Ereignisse erledigt. Und jetzt kommen wir zu den
Flüssigkeiten, weil die Flüssigkeiten, die endlich die neue Fluid
API eingeführt wurden. Ich konnte
jedoch noch nicht genau herausfinden,
wie es funktioniert. Sie sind auch noch keine
Art von Dokumentation darüber. Leider werden
Flüssigkeiten vorerst auch
den Weg des Bootes gehen. Es ist passend, wenn
man darüber nachdenkt. Aber ja, das Boot sind die Flüssigkeiten in diesem Fall werden
leider nicht funktionieren. So funktionieren Flüssigkeiten
vorerst nicht. Noch einmal können Sie sich nur
ansehen, ob Sie sich
das in Zukunft ansehen Werfen
wir einen Blick auf die Schmiede, schauen Sie sich die Dokumentation an. Vielleicht haben sie dort auch schon etwas
hinzugefügt. Dann kannst du versuchen,
das an dir selbst herauszufinden. Die neue Fluid API sollte
viel vielseitiger sein. Aber vorerst werden
Flüssigkeiten leider nicht passieren, in diesem Fall benutzerdefinierte Artikel. Ich glaube, dass es nur etwas im Datentablet
geben sollte . Wieder einmal ist die
Komponente hier drüben, also Komponentenpunktliteral. Und dann passiert das Gleiche auch
beim Dowsing Rod Item, nur mit dem O und dem Registrierungsnamen, fair genug? Ja. Dies ist
komponentenübersetzbar. Nein. Wie wäre es,
wenn wir es richtig machen? Komponentenpunkt
in diesem Fall übersetzbar. Und dann auch hier. Dann ist die gesendete Nachricht
tatsächlich
eine Systemnachricht , die am Ende hier keine UUID mehr aufnimmt, aber es nimmt ein
Komponentenliteral auf, dass sie den
Registrierungsnamen nicht mehr verfügbar sind. Was ich tun werde, ist, dass ich
einfach sagen werde, dass das Schloss unten Punkt hier Name bekommt und dann
das gleiche schräg hier oben. Das sollte in Ordnung sein. Getname auch hier, und das sollte so ziemlich genau das
sein. Gehst du da hin. Wir haben eine weitere SYN-Nachricht,
senden Sie eine Systemnachricht. Wir brauchen die UUID nicht mehr. Und dann wird dies
das Komponentendatenliteral sein. Eigentlich nein, ist es nicht. Es wird übersetzbar sein. Und das ist alles, nur die Importe kontrollieren
Alt O wie immer. Und da sind wir los. Das sollte so ziemlich alles sein
, was wir brauchen, um es hier
zu trainieren, glaube ich. Die Mod-Flüssigkeiten hier. Ja, das ist in Ordnung. Wir werden
den normalen Unterricht durchlaufen. Sie sind auch in nur
einem Moment. Materialien sind in Ordnung,
kreativer Modus. Tab-Lebensmittel sind OK Mod-Artikel. Das sollte unbedingt der
Honigeimer sein. Wird diese
Einfuhrbeschriftung loswerden. Und dann sind wir auch
damit einverstanden. Die Tränen sind auch in Ordnung, also funktioniert alles gut. Interessanterweise haben sich die
Bilder tatsächlich verändert. Ich weiß, dass es wirklich verrückt ist, darüber
nachzudenken. Dies ist kein Motiv mehr. Dies nennt man jetzt
Malvariante. Und das wird auch
Malvarianz genannt. Da gehst du. Wir werden
hier einfach das Motiv auf
Malvarianten
umwandeln . Dann werden
wir noch
einmal die Kontrolle über alle haben, damit
die Importe da verschwinden. Und das sollte es sein. Tränke sind in Ordnung. Rezepte haben sich tatsächlich geändert. Also lass uns zum Rezept gehen. Es gibt zwei wichtige
Dinge, die wir tun müssen. Löschen Sie alle drei
dieser Methoden hier
drüben, und das
wird in Ordnung sein. Und dann müssen
wir bei der Matratzenmethode hinzufügen, wenn P-Level auf
der Kundenseite ist, Sie nur falsch zurückgeben möchten. Das sollte also alles sein, was
wir auch hier tun müssen. Und das sollte so ziemlich
alles sein , was wir im Rezept
brauchen, in der Kundenrezeptklasse, dem Bildschirm, es hat sich hier
etwas geändert. Ich glaube nicht, dass es so ist. Das ist also wirklich gut. Und dann
sollte der Ton, Sounds auch in Ordnung sein. Jetzt im Util denke ich, dass sich irgendwo
etwas geändert hat, nicht hier, sondern in den Tags. Nein. Artikeleigenschaften, util,
eigentlich überhaupt keine Änderungen. Die Titelbildschirme haben
immer noch einige Probleme, also werden wir dies einfach
ignorieren. Jetzt
hat sich die Klasse der Dorfbewohner tatsächlich geändert und wir müssen hier ein paar
Dinge anders machen, oder? Das wird also ein
bisschen anders gemacht. Jetzt
machen wir tatsächlich folgendes. Wir machen tatsächlich
einen neuen Prototyp. Und was wir tun
ist, dass wir
eine unveränderliche Setdot-API
davon erstellen eine unveränderliche Setdot-API , so dass der
Kobalt-Blaster-Punkt,
der Punkt Standardstatusdefinition oder den
getState-Definitionspunkt mögliche Zustände erhalten , dann das eine und das hier. Und dann
machen wir es hier tatsächlich folgendermaßen. Wir bauen ein neues
Dorf oder einen Profi. Wir brauchen tatsächlich zwei
Prädikate hier drüben. Es wird also noch x-dot sein. Gleich Last- oder
Punkt-Punkt-Get auch. Und dann
wird das zweite Prädikat genau dasselbe sein. Also x dot bekommt gleich Blaster-Punkt, der bekommt und
das sollte auch beheben. Und der Rest hier
sollte vollkommen in Ordnung sein. Wir müssen tatsächlich auch in einem Moment
Tags hinzufügen, da sowohl die
Dorfbewohner
als auch das Gemälde
interessant genug jetzt auch einige
Tags hinzugefügt
haben. Und nicht zuletzt kommen
wir zur Weltgeneration, die natürlich immer
der Lieblingsteil ist. Zum Glück ist es also einfach, nur eine zufällige Quelle im
abstrakten Baumzüchter hier. Aber dann kommen wir
zur Verrücktheit Denn was
jetzt
in diesen Klassen passiert ist, hat sich
nichts geändert, oder? Funktionen
oder alles zu konfigurieren ist in Ordnung. Aber dann gehen wir zu den
Gen-Klassen und
sehen, dass das
Biom-Ladeereignis nicht mehr verfügbar ist. Und jeder, und jeder
fängt an auszuflippen, denn wie mache ich jetzt
eine benutzerdefinierte Welt, Jan. Nun, die Herkunft der Kunden
hat sich komplett verändert, wo wir
jetzt Bio-Modifikatoren
verwenden werden. Theoretisch können wir also alle diese vier
Klassen hier
löschen, löschen und
dann neue erstellen. Gleiche gilt für diesen
hier. Motorwelt-Events, wir brauchen das nicht
mehr weil es
nichts mehr tut. Wir müssen jetzt
Bio-Modifikatoren verwenden. Wir werfen also nur einen Blick
auf die Bio-Modifikator-Klasse,
diese hier. Sie können also eine Schnittstelle sehen
und wir müssen im Grunde
einen benutzerdefinierten Codec erstellen , der in
einer JSON-Datei liest , was
so ziemlich alles ist , was der
Codec wirklich ist. Nun, zum Glück an dieser Stelle, oder es hat tatsächlich
einige Beispiele hinzugefügt. Wenn Sie sich also die
Forge-Biomodifikator-Klasse ansehen, haben
wir eine Funktion
zum Bio-Modifikator hinzufügen, einen Entfernen-Modifikator, und wir haben auch einen Spawns von zwei mal m eins und ein
Entfernen von Spawns aus Biom-Eins. Das ist also eigentlich alles
, was wir brauchen werden. Glücklicherweise ist es nicht allzu
verrückt und wir
müssen hier nicht einmal
eine benutzerdefinierte Klasse erstellen. Was wir tun können, ist dieses
Zeug im Datenordner zu machen. Fangen wir einfach mit
den Bio-Modifikatoren an. Wie können wir unsere
benutzerdefinierten Sachen zum Laufen bringen? Wir wollen zum Data
Folder MC Kurs gehen ,
sehr wichtig. Und anstatt
eine Frau, die ein neues Verzeichnis
namens forge erstellt, muss
das Forge-Verzeichnis in Ihren MC-Kurs gehen oder was auch immer Ihr
Mod-Ideen-Verzeichnis sein
muss. Und dann erstellen
wir anstelle
des Force-Verzeichnisses ein neues
Verzeichnis namens Bio Modifier. Da sind wir los. Und dann können wir
die JSON-Dateien hinzufügen. So
werden die JSON-Dateien aussehen. Also kopiere ich das einfach und wir erstellen
eine neue JSON-Datei. Mal sehen, was unsere Ortsmerkmale in diesem Fall
sind. Das wird also
der Ort sein. Wir
müssen die
Platzfunktionen tatsächlich in nur einem Moment ändern , aber darüber werden wir uns im Moment keine
Sorgen machen. Fügen wir einfach den
ersten Bio-Modifikator und dann schauen wir uns auch die
Platzfunktionen an. Aber das wird
eine neue Akte sein und dann werden wir das
einfach
die
Anzeigenkirschblüte nennen . Wir werden das einfach hier
hinzufügen. Und dann werden wir
sehen, dass der erste dies ist, das ist erforderlich, wir müssten das
immer tun. Dann wollen wir hey zu was sagen, was ist der Namensraum des
Bioms, dass diese Einstellung, wir werden nur Forge Yz Flugzeug
sagen. Dies wird also
ein Tag aus der Schmiede sein,
das im Grunde alle
Flugzeugbomben
darin haben wird. Dann werden wir
einen MC-Kurs haben, Polen. Und das sollte
Ebenholzkirschblüte sein, die hier drüben platziert wird. Ja, da gehst du. Und dann ist
das nicht im Untergrund. Oris, das ist eigentlich
der andere. Werfen wir einen
Blick auf die Dekorationen. Ich glaube, es heißt das ist der oder ist es Dekorationsschritt. Es könnte das sein. Okay, gut. Ich meine, ich bin damit einverstanden. Dies sollte als
pflanzliche Dekoration bezeichnet werden. Das hier genau hier.
Wir werden es einfach hier
hinzufügen und
dann sollte es uns gut gehen. Und dies sollte theoretisch unser
Kirschblüten-Feature in jedes existierende
Ebenenbiom
hinzufügen . So ziemlich selbsterklärend. Die Platzmerkmale
müssen sich jedoch auch ein wenig
ändern. Wir müssen hier eigentlich ein
anderes Register verwenden. Also werden wir nur
ein aufgeschobenes Register des Typs
am geringsten Merkmal oder des platzierten Uterus erstellen. Und dann entspricht dies
einer aufgeschobenen Registrierung. Ich erstelle diesen Registrierungspunkt
am wenigsten Feature-Registry. Sehr wichtig. Dann ist der
MC-Kurs keine dumme Modell-ID und natürlich benötigen
wir auch eine
Registrierungsmethode. Ich kopiere das
nur ein bisschen einfacher. Wir werden
das gleich hier nennen. Das wird heißen,
ich denke, es sollte egal sein ,
dass mehr Platzmerkmale sich registrieren und dann im Event-Bus
vorbeifahren. Und anstatt uns so zu
registrieren, müssen
wir, es wird sein, es wird jetzt ein
bisschen komisch aussehen, glücklicherweise
wird Ihnen natürlich der gesamte Code hier zur Verfügung stehen. Dies ist jetzt also ein
Registrierungsobjekt anstelle eines
Haltevorgangs, im Moment nichts zu verrückt. Sie möchten möglicherweise ändern, dass
die Platzierungs-Utils einen Ort registriert
sind, die sich registrieren. Das stimmt nicht ganz,
tut mir leid, los geht's. Und dann dieses,
dieses und dieses. Das ist alles in Ordnung. Ich kopiere
die Zeile und das muss genau hier hinzugefügt werden. Also sollten wir
keine Fehler haben außer einer
schließenden Klammer. Sie können sehen,
dass wir es Place-Funktionen
nennen möchten , die sich registrieren und den Namen
weitergeben, normalerweise wie wir es
bei jedem Register zuvor getan haben. Und dann haben wir einen Anbieter eines neuen Platzes Feature. Und dann müssen wir
diese von Mud konfigurierte Funktion
zuerst an einen Halter von
Feature konfigurieren Fragezeichen,
Fragezeichen und
dann einen Halter von Feature
konfigurieren westliches
Zeichen, Fragezeichen, umwandeln zuerst an einen Halter von
Feature konfigurieren Fragezeichen,
Fragezeichen und
dann einen Halter von . Es ist Verrücktheit,
aber so muss es plötzlich passieren wenn
Sie dies sehen, vielleicht haben
Sie tatsächlich einen
besseren Weg, dies zu tun. Vielleicht wurde etwas
bereits herausgefunden
oder so ähnlich. Aber vorerst wird das plötzlich so
laufen müssen. Und dann müssen
wir sowohl für die Zeilen
als auch für die Geode tatsächlich
eine Liste aller
Dinge haben , die wir hier haben. Also Liste von n, dann müssen wir hier nur all die
verschiedenen Dinge
hinzufügen. Es heißt, es sei
respektlos, all
diese Verrücktheit in eine Liste zu filtern . Und dann nur zwei
schließende Klammern. Und dann auch hier,
wenn ich mich nicht irre, Liste des Ziels und
dann nur zwei Mal
Klammern schließen n
dort, sollten wir gut gehen. Das ist es, was wir tun müssen, so verrückt es auch aussieht. Aber das sollte
tatsächlich
all die Dinge tun , die
wir machen wollten. Dann können wir also auch die anderen
Bio-Modifikatoren
hinzufügen. Das wird auch die
Add Pink Rose sein. Und das wird das
Merkmal der rosa Rose ein Ziel gesetzt. Dann fügen wir auch unter pflanzlicher Dekoration hinzu
, die Sinn macht. Und dann machen wir
die ganze Glatze oder lassen Sie uns das auch hier
rüber bringen. Und das ist jetzt keine
pflanzliche Dekoration mehr. Aber das ist eigentlich, gehen
wir zurück zu den
Erklärungen hier drüben. Dies ist jetzt im Untergrund, oder es ist sehr wichtig
, dass wir dies ändern. Da sind wir los. Wir werden es einfach
hinzufügen, wie es wäre wenn
Minecraft-Doppelpunkt auf der ganzen Welt ist, also werden wir es einfach
jedem Biom hinzufügen , das es
in der ovalen Welt gibt ,
das wird in Ordnung sein. Und dann
lassen Sie uns nicht zuletzt das Kobalt kopieren oder, und das wird
die Werbe- oder Bolzen-Geode sein. Und dann
ändert das nur den Namen. Er hat eine Geode hier drüben platziert. Lassen Sie es uns einfach auch auf der
ganzen Welt hinzufügen und
das sollte in Ordnung sein. Aber das ist die neue
Weltgeneration, sehr wichtig, dass hier
alles in Ordnung ist. Und dann nicht zuletzt haben
wir auch diese
Strukturen jetzt zum Glück hat der
telepathische Boden bereits
aktualisiert, hat der
telepathische Boden bereits dass ihr Repository, so dass hier drüben nichts zu Verrücktes
passiert. Also
müssen wir einfach folgendes tun. Also lass uns das einfach machen. Ich kopiere zuerst
die Modus-Strukturen-Klasse. Mal sehen. Da sind wir los. Und dann werden
wir hier ein Problem mit
den Himmelstrukturen haben ,
aber keine Sorgen. Lassen Sie uns die
Importe auch hier löschen. Und dann wird
das in der Sky
Structures Klasse auch sein, naja, ich meine nicht zu verrückt. Lassen Sie mich einfach noch einmal die Klasse hier
drüben kopieren. Und dann werden wir sehen, dass nur die Importe falsch sind. Noch einmal kontrolliere Alt O. Und du kannst sehen, dass es auch hier einen weiteren Codec gibt. Dies ist, wie ich schon sagte, im Grunde ein bestimmtes Feld,
das Lesen in einem Rennen und einer Datei generiert und dann eine Klasse generiert,
die so ziemlich der Überblick auf hoher Ebene ist. Ja, das sind die
beiden Änderungen hier in diesen Strukturen
und dann ändert sich
auch die Struktur, Rennen und die Dateien. Weil es natürlich nichts Verrückteres geben
könnte. Aber zuallererst änderte das
Ältere hier seinen Namen in nur
eine Struktur. Also werden wir
es in den Strukturnamen ändern. Und dann
gibt es in
der angrenzenden Datei tatsächlich
einige Änderungen. Zuallererst
ist dieser Konflikt nicht mehr erforderlich, also werden wir nur die Konfiguration
löschen und
dann beginnen sie, die Websites zu ziehen, die
immer noch benötigt werden , aber nicht
innerhalb des Konflikts. Was wir dann tun
wollen, ist, dass wir den Schritt hier hinzufügen wollen, und das wird gefragt. Und dann ist das Nächste
die maximale Entfernung von der Mitte. Das muss also auch hinzugefügt werden. Und dann müssen wir auch drei verschiedene Felder
hinzufügen. Das wird der Schritt sein, die Starthöhe und
das Projekt
beginnen, die Karte zu wandern und den arabischen Lärm zu
löschen. Das
werden wir also immer machen. Jetzt. Jetzt ist dies für
denjenigen, bei dem Sie tatsächlich einen Typ innerhalb des Codes
haben. Wenn du das nicht hast, können wir das Dorf nicht
mehr benutzen. Wir wollen jetzt
Minecraft-Stichsäge benutzen. Also wollen wir
das noch einmal verwenden, das Untaugliche hier
loswerden, den Sternenpool und
die Größe in einem maximalen
Abstand von der Mitte
halten . Und wenn wir dann das Puzzle
verwenden, möchten
wir es tatsächlich
für verschiedene Felder verwenden. Immer noch der führende
arabische Lärm. Dies ist wiederum der Schritt, die absolute Höhe und
das
Projekt beginnt mit der Höhenzuordnung. Diese werden
im Grunde gleich bleiben und vielleicht die Starthöhe ändern. Aber dann müssen
Sie für die Stichsäge auch die Erweiterung
verwenden. Verdammt, ich werde auch
das Zeug für die Kameras
und die
Speicherplattform kopieren das Zeug für die Kameras , aber es
ist ziemlich dasselbe. Jetzt können Sie
das auch im
GitHub Repository und
einer Einzelperson genauso gut nachschlagen . Es sollte also kein geben, aber überhaupt keine Sorgen. Wie ich schon sagte,
es wird uns gut gehen. Glücklicherweise sind die Änderungen
nicht so verrückt. Ich erinnere mich noch daran, dass es
sich von eins auf 1617 ändert. Das waren Veränderungen, bei denen ja, das war ziemlich verrückt. Das ist nicht dafür. Jetzt brauchen wir nur zwei
Dinge, die wir noch brauchen die Dorfbewohner und
die Gemälde der Tags. gehen also in den
Datenordner auf Minecraft. Und dann möchten
wir anstelle
des Steuerordners einen neuen Ordner namens Painting
Underscore-Variante erstellen . Und dann brauchst du wieder
Steuermappe, wir möchten etwas ansprechen. Unterstrich, Unterstriche
Interessen, Unterstrichentyp. Und dann klicke ich einfach mit der rechten Maustaste
auf neue Datei. Dies wird der
Draht ein Bulle Unterstrich Job sein,
unterstreicht Seite, dass Jason in der Art „Point
of Interest“
ist. Und das wird das Folgende
sein. Das sollte also sein. Theoretisch ist dieser Wert Mc
Kerne, Explosion oder Punkt. Lassen Sie mich einfach schnell prüfen
, ob dies der Name ist. Es ist eigentlich ein
Explosionsspiel. Da gehst du. Was ich
hier drüben in die Malvariante eingecheckt habe, klicke mit der rechten Maustaste auf eine neue Datei
namens Polizei Sub Bowl, dass Jason, los geht's. Und das wird
all diese Dinge beinhalten. Lassen Sie mich das einfach
überschreiben. Und dann muss ich
die Namen hier überprüfen. Also werden wir Pflanze haben und dann noch zwei und dann
wird es der Wanderer
und dann auch Sonnenuntergang sein. Und hoffentlich sollte das alles
sein, was wir tun müssen. Wie Sie gesehen haben, gibt es tatsächlich
einige Dinge, einige Schritte hier drüben. Es ist nicht so einfach, dass es so einfach
ist,
wie man sagen könnte:
Nun, das war eine
ziemliche Tortur. Wissen Sie, das ist eigentlich sehr Team, wie
ich schon sagte, 1 16., 117. Das war zehn Stunden wie absolute Verrücktheit alles
durchlief, alles
änderte, weil der
Klassenname geändert wird, Methodennamen Methoden ändern,
die verfügbar
waren, nicht mehr waren verfügbar. Und zum Glück funktioniert hier das meiste von
diesem Zeug immer noch. Also bin ich
mit dem Update hier ziemlich zufrieden. Aber vorerst fangen
wir einfach an und sehen, ob etwas auftauchen könnte. Möglicherweise liegt
in einer dieser Klassen immer noch ein Fehler vor. Das wird
gut werden. Da gehst du. Wir haben sogar eine Kobaltlampe
gegründet. Das ist also die Take
Methode hier drüben. Wieder einmal, nur
wegen des Zufalls, ist
dies jetzt eine zufällige Quelle. Eigentlich gehen sie in Zufallsquelle und
dann sollte es funktionieren. Überhaupt keine Sorgen. Lasst uns noch einmal weitermachen, anfangen und sehen,
da gehen wir los. Wir haben dies auch im
abgelehnten Modell, wenn wir die Mod-Flüssigkeiten tatsächlich loswerden
. Absolut keine Sorgen
sind hier die Klimaereignisse. Fangen wir noch mal damit an. Dies passiert auch, wenn Sie es starten, Sie
erhalten einen Fehler. Du behebt einfach den Fehler
und fängst dann wieder an. Also überhaupt keine Sorgen. Und jetzt
scheint es zu funktionieren. Also lasst uns einfach sehen, ob
Minecraft anfängt. Das wird ein großartiges Zeichen sein. Und dann können wir sehen, in unsere Welt
gehen und
sehen, ob alles funktioniert. Eine Mangrove fängt an. Allerdings bekommen wir hier einen Fehler, aber
das wird in Ordnung sein. Mal sehen wir zuerst,
ob es überhaupt anfängt oder ob es keinen
Staubsturm auslöst, das ist ein großartiges Zeichen. Lasst uns einfach eine neue Welt erschaffen. Wir bekommen
nichts, weil wir hier einige unbekannte
Elemente
haben. Okay, lass uns darüber nachdenken. Wir können sehen, weil Minecraft Kirschblüte
geprüft nicht verfügbar ist. Nun, das ist wahrscheinlich
ein Pfeil für mich , weil ich die Modell-ID nicht
geändert habe. Nun, das stimmt nicht ganz. Iteris MC Kurs,
Kirschblüte überprüft. Das ist also sehr seltsam hier
drüben, denn wenn ich mir das ansehe, benutze ich
immer meinen MC-Kurs. Das ist also sehr
seltsam, in Ordnung, also war das Problem tatsächlich die Konflikte hier drüben zu
verwenden. Ich bin mir ehrlich gesagt nicht sicher, warum der Konflikt hier nicht
ganz funktioniert. Das es sollte theoretisch funktionieren. Jetzt
das einzige, was ich mir vorstellen kann, und ich bin eigentlich so, dass
ich das live mache. Ich habe das noch nie versucht. Wenn Sie die
Registrierungskonflikte vor alles
andere stellen , könnte dies möglicherweise
ändern. Versuchen wir es tatsächlich und
sehen, ob die Konflikte richtig funktionieren. Nur
aufgrund der Konflikte funktioniert die tatsächliche Registrierung des Orts-Features
jedoch nicht. Wie ich schon sagte, habe ich das
noch nie versucht. Also lasst uns einfach sehen, ob es etwas
gibt
und wenn nicht, dann funktionieren die Konflikte offenbar
leider auch nicht ganz. Was in
der Tat sehr seltsam ist , weil ich vorher nicht darauf
gestoßen bin, aber mal sehen. Vielleicht
bekommen wir den gleichen Fehler darüber, dass die Konflikte
nicht wieder funktionieren. Und wenn wir das nicht verstehen, bin
ich ziemlich
zuversichtlich , jetzt verstehen wir das
tatsächlich, was sehr seltsam ist. In der Tat. Das bin ich. Ich
weiß ehrlich gesagt nicht, warum das der Fall ist. Also lasst uns einfach sehen. Aber an diesem Punkt,
wenn dies passiert, bin
ich wirklich sehr zuversichtlich,
dass es nicht funktionieren wird, aber wir
müssen vorerst einfach
ohne die Konfigurationen
leben . Wieder einmal ist es wahrscheinlich nur
eine gefälschte Veränderung irgendwo. Also los geht's, es funktioniert nicht. Aber wenn ich
dies jedoch wieder ändere, um keine Konflikte zu
verwenden, sondern hier nur eine
normale Zahl zu verwenden. Und es spielt keine Rolle, die
Konflikte werden hier nie wirklich geladen und dann sollte
es funktionieren. Also noch einmal, ich weiß nicht, ich habe keine Ahnung, warum das bei den
Konflikten hier drüben nicht
funktioniert . Es hat schon früher funktioniert, aber vor ihnen, machen wir es einfach so
ohne die Konflikte. Und wenn sich die
Konflikte tatsächlich geändert haben und wir sie ändern
müssen, können wir das
später immer tun. Normalerweise ist es wichtiger
, ein Arbeitsmodell in
einer neuen Version zu erhalten ,
anstatt dass alles sofort
funktioniert. Das ist normalerweise besser
, denn dann kannst du es reparieren. Und ja, also los geht's. Und dann können wir
Einzelspieler schaffen Welt gehen, und jetzt sollte es tatsächlich funktionieren. Wir sollten Datenpakete
validieren. Und los geht's, komm schon, los geht's, neue Welt. Machen wir einfach was auch immer, so
etwas wie di