Transkripte
1. Einführung in meine to: Hallo, ich bin Nico Company
oder Master-Student für Informatik und
ein begeisterter Minecraft-Spieler. Du könntest mich
von meinen
YouTube-Kanal-Tutorials von Cotton Joe kennen, wo ich
Minecraft-Modellierungs-Tutorials erstelle. Aber jetzt werden
wir noch größer werden. Dies ist die
Mikrowellenmodellierung 118, eine Klasse mit Stoff. Hier erfahren Sie alles, was
Sie wissen müssen,
um einen fantastischen und
erstaunlichen Minecraft-MOD zu erstellen.
Selbst absolute
Anfänger können damit beginnen, Selbst absolute
Anfänger können damit beginnen die
Java-Einführung des Anbieters zu
durchlaufen, die wirklich hilft Ihnen dabei, einige
der Grundlagen zu lernen. Dann lernen wir einige
der einfachen Konzepte kennen,
wie man meinem Handwerk einen Gegenstand, einen
Block, Rezepte und
sogar Werkzeuge hinzufügt . Danach werden wir uns weiterhin benutzerdefinierte Blockmodelle,
kundenspezifische Kulturen und
so viele andere coole und
interessante Funktionen
ansehen kundenspezifische Kulturen und . Am Ende werden wir uns sogar mit
einigen fortgeschrittenen Themen
wie Block-Entitäten und
Welterzeugung befassen . Worauf wartest du also? Melde dich jetzt für diesen Kurs an, und wer weiß, vielleicht wird
dein Model der nächste große Hit
sein. 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) Dateitypen: 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. 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, eine bestimmte
Art von Datentyp, 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 in der Welt, die etwas
zwischen diesen Blockpositionen
geschrieben weil ein Block natürlich nicht so
ist ein einziger Punkt im Raum wie ein
kleiner Farbverlauf dort. 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 diese nicht mehr so oft gesehen
. Zu einem Byte gehören acht Bit
und es 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 ein Short eine kleine
Zahl, die
zwischen negativen
32000 und plus 32000 speichern kann . Und dann hingegen ist eine lange, die, wie Sie sehen
können, es von
negativen neun Billionen
bis zu positiven Billionen
neun Billionen Billionen speichern kann , nämlich Bree,
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,
naja, im Grunde genommen Dezimalzahlen
oder ähnliches verwendet naja, 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,
einen booleschen Wert haben und
entweder wahr oder falsch sind. Es kann also 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 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 speichern und Sonderzeichen
regulieren den Handel. 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. Was nun 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 ich nicht verstehe,
ohne Wert, zu erkennen. Was heißt das? Nun, es hat einfach keinen Wert, der sozusagen undefiniert
ist. 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, die ich hier vermitteln
wollte, sind die Datentypen. Ansonsten hoffe ich, dass das für Sie
nützlich war und Sie
etwas Neues lernen und wir sehen
uns in der nächsten 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 Fundamentaldaten 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 einige Dinge tatsächlich für uns
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. Uns wird es 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 Hello World-Programm schreiben ein Hello World-Programm und sie werden so
sein, als warte ich 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. Lassen Sie uns das ausführen Hallo Studenten. 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
dieses System nicht einfach noch einmal aus und
ich kann damit anfangen, das zu schreiben. Und Sie können sehen, dass
dies so
ist ein ausgewählter Kurs 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? So können
Sie sehen, wie schnell
das manchmal funktioniert. Keine Sorge, 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. Sobald wir es einfach mit der Tabulatortaste
abschließen können. Und jetzt kann ich so etwas sagen, wie einen Wert
auszugeben.
Und jetzt sieh dir das an. Ich kann über
die Saite hinausgehen, oder? 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 entspricht Scanner in
klein einem neuen. Und dann nochmals
mit einem großen S mit einem Kapitalisten innerhalb
der Klammern einscannt. Also werden wir
Klammern System.in erstellen. Und ich beende das
mit einem Semikolon. 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
Java util Scanner sehen , dass dies im Grunde importiert wird. 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 werden wir
System out sagen, Zeile drucken, deinen Benutzernamen
eingeben,
ungefähr so. Und was wir dann
sagen werden, werden wir
eine neue String-Variable
namens input erstellen . Und wir werden
das gleich dem Scanner machen. Das. Als Nächstes. Da gehst du. Okay, also muss als Nächstes, wie Sie
sehen können , so
geschrieben werden. Also müssen wir als nächstes einsetzen und dann Klammern öffnen und
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
testen wir das im Grunde. 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, wie dein Benutzername lautet. 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 tun Dinge, die davon abhängen
, was der Input 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 angehst.: 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, wie werden
Sie das sehen 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. Nun, 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, was zu erwarten
ist, wenn Sie
programmieren, dass erwarten
ist, wenn Sie beim ersten Mal
etwas funktioniert ,
tatsächlich sehr misstrauisch, weil es sehr
selten ist dass wenn Sie an einem Code arbeiten, dass er
beim ersten Ausführen funktioniert. Also bitte, zuerst, blieb
immer ruhig, wenn du einen Fehler bekommst. Es gibt 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, bei Zeichen oder einer anderen
Zeile 11, Zeichen 2008. Das ist also
wirklich verdammt cool. So können wir sofort herausfinden wo dieser Pfeil ist
und können 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 , 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, nur 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 Pfeil bekommen und Sie haben den
Post-Prozess mit Exit-Codes 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? Eine Ausnahme und ein Fehler, Art 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. Das ist nur etwas, das
ich dir geben wollte, was sehr wichtig sein kann. Gummi 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 Pfeile gibt. Wenn du unterwegs Pfeile bekommst und um Hilfe bittest, ist
das völlig in Ordnung. Ich wollte nur
erwähnen, besonders diesem Jahr, 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) Integers, Arithmetische und Mathematische Methoden: Oder ich komme hier zur Java-Einführung für die modernen Minecraft-Kerne zurück. Und in dieser Vorlesung werden
wir uns ganze Zahlen
ansehen. Wir werden
uns mit Mathematik befassen, 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
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
. Als ob du anfängst, diese zu mischen, aber das sollte
ziemlich 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
benutzen, oder? Und was ich tun werde,
ist, dass ich das alles in Ordnung lasse? 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. Ich wähle dieses Steuerelement wieder 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. Lasst uns einfach das C 2005 durchgehen. Das ist eigentlich alles in Ordnung. Und jetzt stellt sich die
Frage, nun, was ist der fünfte Typ? Oder 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. Also 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 es 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. Aber wir sollten
am Ende
hier bei einem 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 kannst den Kosinus kriegen, du bekommst ein paar Exponenten. So können Sie etwas an
die Macht von e Logarithmus 10 setzen. Hier gibt es ein paar verrückte
Sachen, zufällig
runden. Selbst nach dem Zufallsprinzip gibt es sogar
Konstanten wie e und Pi. Es gibt also ein Haufen
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, 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.
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 mal 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 drucken wir das einfach aus. Und dann funktioniert
natürlich auch
x minus minus. 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
für Minecraft-Modellierung. 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 . Zum Beispiel werden
wir hier einen neuen booleschen Wert erstellen. Zum Beispiel mögen die Vorträge,
Hauptvorträge, die
richtig geschrieben sind, 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. Wer mag diese Vorträge? Und dann kann ich Control
D drücken, um dies zu duplizieren. Und zum Beispiel können Sie sagen, dass Sie in den Fragen und Antworten eine
Frage gestellt haben ,
also könnte ich dies zum
Beispiel sagen. 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 jetzt
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 darunter
wie ein wahres geben. Es gibt auch ein größeres oder gleichwertiges. 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 in Betracht gezogen
ist , dass dies in unserem Fall natürlich
der Fall wäre , aber wenn sich
Ihre Punktzahl ändert,
ändert sich die Antwort hier, oder? Denn sobald
das kein Bein mehr ist, wenn es 49 ist, besteht man 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 . Und das ist sehr wichtig. Und hier ist
das natürlich falsch. Ab natürlich 98
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. Dies ist also im Grunde genommen das
Deklamationszeichen hier. 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 ist natürlich
sinnvoll. Wenn das also
etwas verwirrend ist, schreiben
Sie es aus, als ob Sie tatsächlich
einen Schreibertext schreiben. Wenn die fehlgeschlagene Klasse wahr ist , ist die Klasse natürlich falsch. 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. Es gibt 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 geben 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 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? Entweder ist die Punktzahl
größer oder gleich 150 oder nicht, impliziert das. 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
etwas Neues gelernt. 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 werfen jetzt einen Blick
auf die logischen Operatoren. 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
angeschaut
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? Also
würde jemand, der ein Fan ist, den Kurs beenden. So fertige Kerne
und Eva Review, das sollte auch insgesamt
sinnvoll sein. Und jetzt hat sich jemand, der
vielleicht lernt, wie vielleicht viel lernt
, die Vorlesungen angeschaut
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, dann 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-Modellierung. 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 sagen,
dass wir ein Programm schreiben
müssen , das diese
Werte dieser beiden Prüfungen bewertet. Und im Grunde sagt: Hey, du hast die Prüfung 1 nicht bestanden oder
hast die Prüfung 2 bestanden. 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 legen wir versteckt hier ist nach den schließenden
Klammern, wir setzen 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 was wir jetzt tun können, ist, dass wir etwas anderes schreiben
können. 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 den if-Anweisungen 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 hier am Ende
ein anderes hinzufügen hier am Ende
ein anderes 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 in diesem Jahr passiert direkt
vom Anderen 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
ausführen und wir sollten eine U nach der Prüfung bekommen. Und natürlich bekommen
wir das, da 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 das Gleiche
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. Also, 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, dass
Sie bestanden haben, 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 dies falsch ist, dann sonst und dann eine andere if-Aussage ist, wo
Sie im Grunde genommen werden, nur aus Gründen des Arguments, sagen Sie
einfach wahr hier. Natürlich würde das auch
funktionieren, aber wissen Sie, und dann können wir
etwas anderes sagen und diese im Grunde zusammenketten, damit Sie es machen
können, wenn sonst, wenn sonst, und der letzte wird
immer anders sein oder können 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. Und wir fangen damit an und
jetzt
erwartet es tatsächlich , dass wir eine Prüfung ablegen. Nun, leider 32, eigentlich
nicht 320, sondern 32. Nun, und dann
waren die
Ergebnisse für Prüfung zwei tatsächlich
sehr viel besser. Leider gab es 68, nur ein bisschen, nicht
ganz genug für 69. Und dann können Sie sehen, dass Sie
Prüfung 1 und die frühere Prüfung 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
der Kern natürlich in einem
Repository oder 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, paar if-Aussagen zu machen, nur eine ganze
Reihe cooler Sachen wie dieses zu machen, Du kannst 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 Aufzeichnungen, 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 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 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, 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, 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 ist da. 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 String: 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
Stringvariable erstellen, die als Satz bezeichnet wird. 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 und nichts. Und das erste, was
wird schreien, nun, das wird bedeuten,
dass alles hier in Großbuchstaben verwandelt wird. 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
lassen Sie uns nur aus
Gründen der Argumentation den
Satz noch einmal ausgeben. Oh, lasst uns auch einen
Kommentar hinzufügen, richtig, also ist dies Groß- und Kleinbuchstaben. So ziemlich einfach. Wir können die gesamte
Zeichenfolge einfach in Großbuchstaben umwandeln, eine ganze Zeichenfolge in Kleinbuchstaben. Und was sollten
wir dann 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
Satzvariablen zurück. Sie ändern die
Variable nicht an sich. Als wir also Dinge
wie x gleich x plus 1 hatten, haben wir tatsächlich Röntgen geändert, EEG plus ist gleich eins. 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, dass der
Satzpunktindex der
sehen kann , dass es hier ein paar verschiedene
Arten von Index gibt, aber wir wollen die Zeichenfolge 1. Es spielt übrigens keine
Rolle, welche Sie wählen,
Sie können sehen, dass, sobald 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? Haha, 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. Und es gibt ein paar andere Orte
, an denen wir das benutzen müssen. Aber wenn wir bei 0 zählen, können
Sie die 0123456789,
10, 11, 12, 13,
14, 15, 16, 17 sehen. 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 sehr interessant. In der Tat, wenn wir wirklich über dieses Ende
nachdenken, was wäre, wenn wir es
eigentlich nicht sind, das ist nicht richtig. Wo wir hinzufügen, ist,
dass wir tatsächlich 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, oder? Vielleicht wollen wir
sehen, ob ein bestimmter Satz mit etwas beginnt
oder endet. Das ist eigentlich sehr einfach, wir werden einfach
den Ersatz noch einmal durch
Control D duplizieren den Ersatz noch einmal . 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 es erraten, womit
der andere natürlich endet,
was, sagen
wir ein Großbuchstaben a, was in diesem Fall natürlich
falsch ist, wäre stimmt,
das sollte falsch sein. Also lasst uns einfach aus Gründen
der Argumentation nachsehen. Und dort kann man wahr und falsch
sehen. Ganz einfach zu machen. Was ist, wenn wir
einen String haben, oder? Und wir werden das vorerst einfach S nennen
, 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, druckende Zeile, die leer ist könnten
wir natürlich auch
S-Punkt leer in
deinen Hintern legen . Warum die Mühe machen? Das ist vollkommen 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,
weil das leer ist. 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 r2-Jahr 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 habe ich es benutzt, bin
ich mir sicher, dass du dich daran gewöhnen
wirst. Und lasst uns einfach
noch etwas anderes machen. Und das wird die Teilzeichenfolge
sein. Interessanter Teilstring. Was ist 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 gibt, aber arbeiten Sie ihn durch und
sehen Sie, ob Sie ihn nicht reparieren können. Aber das
wäre es so ziemlich für die Saiten. Und diese Strings
Methode Vortrag. 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.
16. (Java) Casting: Oder ich begrüße zurück zur Java-Einführung
für
die Mikrowellenmodellierung. 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. Zum Beispiel möchten wir
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. Deshalb wollen
wir gleich
hier zurück
zum Float. Also gehen sie. 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. Um mehr Informationen
zu weniger Informationen zu erhalten, kann
das einige
Konsequenzen haben, sagen wir einfach. Das ist also immer das, was
man beachten 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 eine ganze Zahl namens Geschenk. Aber das ist, sagen wir,
unser Vater möchte uns ein Geschenk von X Betrag machen. 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 ja, machen Sie sich 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 zuerst 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 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. 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) Arrays, erklärt: In Ordnung, willkommen zurück zur Java-Einführung
für
die 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 hatte auch damit zu kämpfen,
als wir das erfuhren. Und am Ende der Vorlesung werde
ich tatsächlich
eine kleine
Geschichte darüber erzählen . Aber vorerst, uns daran, dass wir
die drei Saiten 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ß, dass du alle gedrückt
halten kannst und dann mehrere
Dinge gleichzeitig ändern kannst, aber dann wechseln
sie alle in dieselbe Nummer und es ist alles Mögliche
, es einfach zu vermasseln. 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 keine
100-prozentige 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 du wolltest eine Reihe von
Fragen
erstellen und es ist ein
Klingelbereich von Antworten. 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? Drei, 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 dann kann ich damit einfach
weitermachen, oder? 23. Und dann lasst uns einfach, naja, wie kann ich das richtig
ausgeben? Wie, wie ist das möglich? Nun, IT-System-Out-Druckzeile, und dann können wir
einfach Fragen sagen, keine Fragen, los geht's. Und dann zum Beispiel ist
dreijähriges Wissen 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. Jetzt habe ich 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. Das ist also das
, was es 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. Sehr interessant in der Tat. Und was wir dann
tun können, ist zum Beispiel, dass wir die Antwort 0 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 auf 0
zu ändern. Das ist vollkommen in Ordnung. Alles was wir
jetzt tun können ist, nun, okay, dann können wir
das einfach neu zuweisen? Also können wir das nehmen, ich nehme das
einfach. Eigentlich schreibe ich
es nach außen. Fragen, noch einmal, Klammer 0 ist zum Beispiel gleich, wie alt ist Ian? Mick Jagger, genau 2021. Das ist nur, 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 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 auch die Größe der Länge dieses
Arrays, dieser Liste,
sozusagen, ermitteln, indem wir
Fragen dieser Länge stellen, wie Sie hier sehen können, wir können uns das
nur 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. Aber das ist 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 stecken
, existiert sie tatsächlich nicht. Wir werden
einen Array-Index
außerhalb der Grenzen bekommen . 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 dies 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, dann mach 20
verschiedene und
dann wenn ich sie raushole,
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 weit. Oh, ich verstehe es nicht. Deshalb
muss ich es nicht lernen. Deshalb ist es nicht
wichtig, keine. Und natürlich, 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 Idee von Arrays 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 legst verschiedene Elemente in, im Grunde mit unterschiedlichen
Indizes oder Indizes, so
etwas ein, oder? Aber sonst wäre das
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. Also ja.
19. (Java) für und für Schleifen: In Ordnung, willkommen zurück zur Java-Einführung
zur Mikrowellenmodellierung. Und in dieser Vorlesung
werden
wir über Loops sprechen. Was wir
für diese Vorlesung benötigen, sind sowohl die String-Arrays
, die wir
zuvor für die
Fragen erstellt haben , als auch die Antworten. Aber bevor wir
irgendetwas 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 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. 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 eine
Art booleschen Ausdruck haben
und dann ein Inkrement. Was passiert ist
, dass ich auf 0 eingestellt bin, während ich überprüft
werde, 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 nicht mehr für gepanzert
ausgeführt. Das ist irgendwie die Idee und
das ist wirklich cool, oder? Als könnten wir das ganz einfach machen? Und jetzt werde ich dich
absolut umhauen. Jetzt werde ich
Ihnen sagen, nun, alle Fragen und
Antworten
ausgeben und Sie
werden das System einfach besetzen. Drucken Sie die Zeile Frage 0, antworten Sie 0, genau wie
zuvor. 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 den
gewünschten Index zugreifen und auf welchen Index
diese ganze Zahl annehmen kann. 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 Phi. 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. Dafür
schreiben wir uns einfach ein. Ich kann String Western,
alte Fragen sagen. Und die Art, dies zu lesen, ist, oder jede String-Frage in Fragen, so würde
man es 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. Und was wir tun werden, ist wir
einfach
so etwas wie die folgende
Systemausdruckzeile sagen werden. Willst du weitermachen? Also werden wir einfach sagen: Hey, will die Person
weiter benutzen? Wir werden weitermachen und dann sagen
wir einfach: 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 fahre mit dem
eigentlichen Keyword fort, das
wir sonst brechen werden. Dies ist ein Beispiel für das Schlüsselwort Continue und
the break, das Continue Schlüsselwort,
das im Grunde alles ignoriert, was
in der Schleife danach kommt und zurück an den Anfang
springt die Schleife, während das
Schlüsselwort break 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 es natürlich
eine Endlosschleife, oder? Solange ich also eintippe, wird das so weitergehen. Sobald ich etwas anderes
eintippe, wird
es herausbrechen. Das ist also irgendwie die Idee
dieser While-Schleife hier. Schauen wir uns das einfach an, damit ich tippen kann. Ja. Und ich kann tippen, ja.
Und ich kann tippen. Ja. Und dann mache
ich hier einen Fehler und ein OH nein, Plötzlich
nannte er das Stopp. 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 oder while-Schleife. Und du hast eine Menge
Continue und Pausen da 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 , 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. Vorläufig 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 in Ordnung sein. 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) Java) Object Programmierung: In Ordnung, willkommen 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
vor sich geht und den Sprachgebrauch, wenn Sie mit Leuten
sprechen die Programmierung kennen, und wenn ich damit fortfahre, also werden
Sie besonders im
Minecraft-Teil dieser Vorlesung oder dieses Kurses sehen Sie, dass
ich grundsätzlich immer die Begriffe verwenden werde, die verwendet
werden müssen. Also Klassen, Methoden, Objekte, solche Sachen, und du
solltest wissen, was das sind. Aber das erste
, worüber wir nachdenken 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 dann können Klassen
vererbbare Funktionen, die Methoden,
Variablen aus anderen Klassen sein würden. Wir werden zwei grundsätzlich
Theoriebeispiele dafür sehen. Und dann werden
wir uns in späteren Vorträgen auch
einige Praxisbeispiele ansehen . Aber 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 gut
und niemand wird
damit verrückt werden . Wir müssen dabei nicht zu
pedantisch sein, oder? So können Methoden oder Funktionen im Grunde
spezifisches Verhalten
für ein Objekt definiert werden und Methoden 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 die allgemeine Idee. Eagles oder Attribute, wie 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
das alles werden wir natürlich auch live und 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. Die Idee ist also, dass wir einen Tierunterricht
haben könnten, 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 sagen, 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
eine Objektrate 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. Wie Sie sehen können, handelt es sich jedoch zwei verschiedene Objekte oder zwei verschiedene Instanzen
der Dog-Klasse. 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? Aber das wäre schon
das Ende der Vorlesung. Eigentlich. Das
Wichtigste an dieser Vorlesung, lass mich einfach schnell hierher zurückkehren ist dieser 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 . Es gibt also
keine Sorgen. Sie haben also auch Zugang zu
diesen beiden niedlichen Hundebildern. 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 wäre es also für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und Neuronen sind neu, 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. Zunächst 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. Also könnten wir zum Beispiel 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
so etwas wie eine öffentliche Leere. Und dann werden wir zum Beispiel, damit wir
sowohl Felder als 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 sollte 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? 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 ein
wenig 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
oder rassigen Punkt retten , sollte
alles sinnvoll sein. 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: Okay, willkommen zurück zur
Java-Einführung hier für Minecraft-Morgen
und in dieser Vorlesung werden
wir uns die Zugriffsmodifikatoren
ansehen. Sie benötigen also den gesamten
Code aus der letzten Vorlesung. Keine Sorge,
dies steht
Ihnen natürlich als Ressource zur Verfügung. Also schau dir das
auf jeden Fall an und dann gut, wir springen 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 werden wir in der Lage
sein, einige Thiels außerhalb dieser Klasse nicht
veränderbar oder modifizierbar
zu 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 enthalten
sind, können wir uns hier immer noch
auf dieses Feld beziehen. Und das geschützte
Schlüsselwort funktioniert auch oder Klassen, die sich davon erstrecken. Im Grunde
könnten Vermögenswerte, 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 so ziemlich das Gleiche, 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 Im Alter, im Alter, wenn Alter. Und jetzt ist hier das
Interessante. Natürlich funktioniert das nicht
, weil wir einer Methode nichts
zuweisen können . 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 genau 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 für
die Klasse aufgerufen 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 Sie,
Dr. Human Year Multiplikator
, ändert sich wieder nicht von Dr. Dog. Ignorieren wir nun die
Tatsache, 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. Das muss sich wirklich nicht
ändern, oder? Weil wir jetzt wieder das gleiche
Problem haben, oder? Also Hunde, dein 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 , da eine
eine endgültige Variable ist , die sich der Wert niemals ändern
kann nachdem
es 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 die
folgende Rate. 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, richtig, wo wir den Multiplikator
hier verwenden können, dass wir die altersvariable
Zeiten
zurückgeben werden , die der Arzt hier, menschlicher Arzt,
Multiplikator für das menschliche Jahr genau dort ist. Jetzt können wir das einfach nennen normalerweise kann man 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. Aber 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 Mikrowellen-Modding
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 klarer davonkommen. Und noch einmal
kann ich Ihnen sehr raten,
ein paar Sachen auszuprobieren. Schießen Sie einfach intelligent an, machen Sie eine Reihe von Klassen und probieren Sie einfach
ein paar Sachen aus. Mache ein paar Klassen, mache ein paar Felder,
ganze Reihe von 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 wirst etwas Neues
lernen. 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, vor allem
ein Polymorphismus und Vererbung für sehr
große Wörter Rate. 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
darüber nachgedacht. Ich höre. 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 der Argumentation sagt
jemand: Weißt du was? Ich will auch wirklich einen
Katzenunterricht, denn ich bin kein
Hundemensch, 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. Ich bin Mimi Chao und du
kommst an einen Punkt, an dem du viel Code
kopierst
und normalerweise eine Menge Code durchsuchst ist ein Zeichen dafür, dass du etwas
optimieren kannst. 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,
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 wir es
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 man, wenn es sich um
eine geschützte Variable handelt, 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. Nun können Sie sehen, dass
in dieser Dog Klasse 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 sehen können, das eigentlich schon vermuten
lässt, 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 in diesem Fall tatsächlich
perfekt. Dann etwas anderes,
vielleicht zum Beispiel
das, sowohl das Alter als auch die Geburt. Sie könnten zum Beispiel auch in der
Tierklasse sein. Das würde auch völlig gut
funktionieren. Und der Rest hier ist
eigentlich total okay. Ich mache das nur
ein bisschen anders. Also möchte ich normalerweise
die Konstruktoren an der Spitze der Klasse haben, oder? Also kommen 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 passt 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 die
Katzenschnurrhaare eine neue Katze sind, oder? Also neues Konto hier. Und das ist zum Beispiel, dann Whiskers dot PNG. Und dann wird
der Name Schnurrhaare sein, oder? Und dann sind
sie vielleicht 12 Jahre alt oder
so ähnlich. Und dann können wir zum Beispiel einfach
anrufen, Whiskers dot ns kann sehen, dass ich alles Alter bekommen nennen
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, über
die jetzt kommuniziert, was ist so interessant
daran, dies zu haben? Nun, lass uns
darüber nachdenken, oder? Also haben wir die
Wolfs-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
gerade ein Geräusch gemacht. Also können wir das nicht machen. Und eine andere wirklich
interessante Sache ist dies in
der Tierklasse definiert ist. Aber ich kann immer noch
etwas wie Schnurrhaare sagen, Dot-Dot-Dot-Dot macht Klang richtig? 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
hier die Mikrofon-Sound-Methode
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 mit der Gülle, hab hier etwas anderes. Und was Sie dann
sehen werden, wenn ich
zum Beispiel Benji tatsächlich nenne ,
mach keinen Ton. 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
hier sowohl
Methoden als auch Felder erben , das macht
es nur so, 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 ein Hund als auch ein Tier. Fair genug. 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. Sagen wir einfach Jeoneun Punkt PNG. Jenny. Vielleicht ist Guinea etwa 15. Alles 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 Tiere
genannt. 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 die zurückbekommen will, bekommen
Tiere zum
Beispiel einen Ton. Also macht es da draußen, ja. Oh, richtig. Und die Get-Methode hier
bringt dir ein Tier zurück. Aber wieder einmal haben wir
gesehen, dass das Aufrufen einer Methode dazu
tatsächlich die
spezifischste Methode verursacht spezifischste hat, die es kann. Obwohl dies als Tier gerettet wird
, wird
Gracie hier
als Tier gerettet, der Mikrofonton wird es so
machen, dass Gracie, einfach, also das ziemlich cool ist. 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: Update von Trivia: Alles klar, Willkommen
zur dritten Aufgabe hier zur Java-Einführung. Und das ist eigentlich eine
ziemlich einfache 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 wieder 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: Update von Trivia: 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. Wieder einmal, wenn
das nicht genau
wie deins aussieht , ist das
absolut in Ordnung. Dies ist nur ein Beispiel
dafür. Und dann genauso mit dem
Quizspiel, oder? 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 geschieht genau hier, wo wir nur
eine neue ArrayList haben und dann einen Haufen
dieser Trivialen genau dort
zur eigentlichen Liste hinzufügen . 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 , 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 haben wir am Ende hier gefragt:
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, überhaupt
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 also 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 einmal
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 viele 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. Lassen Sie uns zum Beispiel einfach
eine Schwierigkeitsstufe
erstellen , 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 so 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. Schwierigkeitsgrad, 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 . Das steht Ihnen
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 ist also
wirklich enden wird, 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 und Probiere: 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, es kann
ziemlich wichtig
sein. 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 folgendes. 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) 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 generieren wir dafür einfach
einen Konstruktor. Rechtsklick also Konstruktor
generieren. 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, Sie fanden das
nützlich und lernen etwas Neues, wenn Sie
ein Anfänger sind.
Ich hoffe, dass Sie jetzt die
Java-Grundlage haben , die
Sie benötigen, 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. Installation, Einsetzung und GitHub: Alles klar, Willkommen
beim Minecraft-Stoffkurs hier für 118. Und in dieser ersten Vorlesung werden
wir einige Voraussetzungen
durchgehen, werden
wir einige Voraussetzungen
durchgehen die Sie benötigen, um mit der Modellierung von Minecraft
zu beginnen. Jetzt gehen wir alles
durch,
laden alles
herunter, was Sie brauchen, die Programme,
richten das Fabric-Projekt und richten dann sogar ein
GitHub-Repository ein,
damit Sie entweder Ihr mit jemandem, der dir helfen
könnte. Wenn Sie beispielsweise auf ein Problem
stoßen, können
Sie
Ihren gesamten Code hochladen und ihn dann an eine andere Person
senden. Zum Beispiel ich in den Fragen und Antworten. Und dann kann ich ganz einfach
versuchen
, den Fehler
zu finden , der nur viel Zeit
zwischen der
Frage und der Antwort spart . Aber zuerst, wenn Sie ein absoluter Anfänger
sind, empfehle
ich dringend, wenn
Sie es nicht gesehen haben, die Java-Einführung
ansehen, ich kann das einfach nicht genug
empfehlen. Es wird
dir immens helfen. Denn wenn Sie das nicht haben, besonders wenn Sie den
Minecraft-Modellierungsteil dieses Kurses
durchlaufen , werden
Sie sich
sehr schnell sehr verloren fühlen. Denn an dieser Stelle gehe ich davon aus, dass Sie zumindest alles in
der Java-Einführung
gesehen haben und Sie mit den Konzepten, die wir dort besprochen haben
, einigermaßen
vertraut sind . Aber was auch immer der Fall sein mag, Beginnen wir mit dem
Herunterladen des JDK. Wir brauchen also ein Java
Development Kit, und das wird
Javas 17. Eigentlich ist dieser Link in den Ressourcen
verknüpft. Obwohl wir Java 16
für die Java-Einführung verwendet haben, müssen
wir jetzt Java 17 herunterladen. Das ist
übrigens überhaupt kein Problem. Dies ist also verknüpft
und dies sollte theoretisch erkennen, was Ihr
Betriebssystem ist. Wenn das falsch ist, können Sie auf andere Plattformen
gehen. Sie stellen sicher, dass
Sie Tamarin 17 auswählen, und dann können Sie im Grunde einfach Ihr Betriebssystem und
die Architektur hier
auswählen die Architektur hier und dann einfach das MSI-Jahr
herunterladen und herunterladen. Und wenn Sie dies herunterladen, ist
dies nur eine normale
Isolierung,
sodass Sie diese wie jedes andere Programm auf Ihrem
PC installieren können. Und sobald Sie dies
getan haben, können Sie den nächsten
Teil
fortsetzen, wenn wir eine IDE
benötigen, die
eine integrierte
Entwicklungsumgebung ist . Und für uns
entscheiden wir uns für Intelligente Idee. Wenn Sie
wieder ein Anfänger sind, empfehle
ich dringend, einfach
dabei zu bleiben, denn sonst wird es ein paar Dinge geben, die für Sie anders
aussehen könnten. Wenn
Sie zum Beispiel
Eclipse oder VS Code verwenden wollten , ist es
auch völlig in Ordnung. Denken Sie jedoch daran, dass
ich, wenn Sie dort auf
Probleme stoßen, möglicherweise nicht so gut
helfen kann, wie ich mit intelligenten Ideen
kann weil ich alle Beine kenne, sagen
wir mal Verknüpfungen und alle
Tasten, die Sie drücken müssen, wenn etwas in der Idee schief
geht, ich bin nicht 100%
mit Eclipse oder VS-Code vertraut, also denken Sie
daran und laden Sie
die Community-Version herunter .
Sehr wichtig. Das ist kostenlos, sodass Sie nichts bezahlen
müssen. Die Community-Version
auf der rechten Seite hier. Laden Sie das einfach noch einmal und installieren
Sie es dann
wie jedes andere
Programm auf Ihrem PC . Jetzt kommen wir zum
nächsten Ding und das wird mehr das
Stoffbeispiel sein. Jetzt können Sie sehen, dass dies eine öffentliche Vorlage
ist, also gibt es ein paar Dinge
, die Sie tun können. Sie können
diese Vorlage entweder verwenden und einfach ein neues GitHub-Repository erstellen. Das werden wir nicht tun. Wir werden tun, wenn
wir hier
zum Code gehen und
auf eine Postleitzahl herunterladen klicken. Dies wird
eine Zip-Datei mit allen erforderlichen Dateien herunterladen ,
die
wir im Grunde benötigen. Und ich habe
hier bereits einen Halter
vorbereitet , in den ich
das eingehen möchte. Ich klicke einfach
hier, extrahiere hier. Das ist nur dafür verwende
ich Wind Rawr. Sie können auch sieben zip oder
ein anderes ZIP-Programm verwenden , um dies
im Grunde zu öffnen. Nun, jetzt ist alles hier drin. Ich gehe tatsächlich
zu Control X dies,
um das rauszuholen und Control
V, um es hier einzufügen. Also möchte ich nur, dass alles
in diesem Ordner ist. Und jetzt zwei Dinge, die
wir sofort tun können. Wir können die
Lizenz und die
README-Datei löschen , damit wir
hier nicht dieselbe Lizenz erhalten, da dies
im Grunde die Public
Domain-Lizenz ist . Und das ist eigentlich nicht etwas, was ich
persönlich will. Natürlich kannst du
dabei bleiben, wie du möchtest. Und dann empfehle ich auch
dringend den
GitHub-Ordner hier,
den Dot-GitHub-Ordner, zu
löschen , da dieser im Grunde einige Workflows
enthält. Hier können Sie im Grunde automatische Rechnungen
des Projekts
sehen und beliebige
Konfigurationstests dafür ausführen. Du
musst das nicht unbedingt tun. Du kannst es behalten. Aber das ist etwas, das manchmal
etwas verwirrend sein könnte,
besonders für Anfänger. Daher empfehle ich dringend, das
einfach zu löschen und sich vorerst keine Sorgen
darüber zu machen. Jetzt haben wir den
Stoffbeispielmod hier drin, und das ist eigentlich
alles, was wir brauchen. Wir können
zum ersten Mal mit Intelligenz beginnen. Jetzt wird es für dich wahrscheinlich
nicht
genau so aussehen . Es wird jedoch drei
Komponenten haben, die wir benötigen. Und das ist das neue
Projekt, das Open. Und sie bekommen von VCS
für diese drei Tasten, im Grunde Arthur, Dinge,
die Sie brauchen werden. Und wir möchten auf die Schaltfläche
Öffnen klicken und dann im Grunde
zu diesem Verzeichnis navigieren. Also werden wir einfach
dieses Verzeichnis hier hineinlegen und Sie können das
Stoffpferd 118 sehen, und es hat tatsächlich dieses Symbol hier und wir
werden Okay treffen und dann das Projekt durchqueren
und dann ein neues Fenster öffnet sich hier und Sie können sehen dass
einige Dinge hier
schon angefangen haben. Das ist vollkommen in Ordnung. Lass es einfach weiter gehen. Wenn du hier wie rot wirst, Pfeile, keine Sorgen. Wir werden
alle in nur einer Minute reparieren. Das erste, was
Sie sich wahrscheinlich
einfallen lassen werden , wenn Sie zum Beispiel eine andere
Version von Java
haben, können
Sie sehen, dass Sie
eine veraltete Version von Java verwenden . Das ist richtig für
mich, da ich
mehrere Versionen
von Java installiert habe . Nun, wie repariert man das? Ganz einfach. Sie gehen zur
Dateiprojektstruktur, und Sie können hier
im Projekt-SDK sehen, dass
Sie Java 17 auswählen müssen. Und dann hier in der Sprache auf
Projektebene oder so 17 drücken Sie Anwenden und Okay, und es gibt eine zweite Sache,
die Sie tun müssen, und gehen wir zu Dateieinstellungen zu den
erstellten Tools für die Ausführungsbereitstellung Gradle, und stellen Sie sicher, dass dieses
Jahr SDK projiziert wird. Das ist auch sehr wichtig. Es gilt, wenn das
nicht der Fall ist, okay? Dann kannst du diesen
kleinen Elefanten hier
wieder schlagen und uns wieder
durchlaufen lassen. Und jetzt solltest du in diesem Fall
keine Pfeile bekommen, aber es sollte einfach richtig
durchlaufen. Aber du kannst sehen, dass ich hier einen
Build erfolgreich habe, also ist das wirklich gut. Und was Sie dann auch
sehen werden, ist, dass Sie
drei dieser orangefarbenen
Ordner generieren lassen werden . Und wenn wir zum Beispiel den Quellordner
öffnen
, den Quellordner
öffnen
, steht SRC für source. Wenn wir das öffnen, können
Sie sehen, dass wir hier auch ein paar Farben bekommen. Das nächste ist, dass man beim Öffnen dieses Java-Ordners
sehen kann, dass hier
alles erweitert wird. Wenn Sie
zum ersten Mal intelligent verwenden, ist dies möglicherweise nicht
der Fall für Sie. Gehen Sie hier oben zu diesem Gang
und stellen Sie sicher, dass sowohl abgeflachte Pakete kompakte mittlere Pakete ausgeschaltet
sind. Das könnte also der Fall sein,
wie es für dich aussieht. Stellen Sie einfach sicher, dass sowohl Fly- als auch Pakete
sowie
kompakte Middle-Pakete ausgeschaltet sind und
dann für Sie alles
genauso aussieht wie
für mich gerade, wir müssen ein paar Dinge ändern innerhalb der
Gradle-Punkt-Eigenschaftendatei. Sie können also sehen, dass
einige Eigenschaften definiert sind, also gibt es einige
Fabric-Eigenschaften, es gibt einige weitere Eigenschaften, und dann gibt es hier auch
einige Abhängigkeiten oder ein kleines Zwischenspiel
. Was also sehr wichtig
ist, ist, dass es
zwei Möglichkeiten gibt , dies zu tun. Zahl. Erstens können Sie entweder
den bloßen Beispiel-Mod nehmen und
dann sind Sie im 19. Jahrhundert. Bitte beachten Sie, dass ein
paar Dinge nicht genau wie in 101
funktionieren. Dieser Name, Sie
werden also die Tags sein, der erweiterte Artikel, der im Grunde
Steuern und die
Weltgeneration verwendet . Am Ende werden Sie am Ende
des Kurses
Probleme haben . Es wird also ein
Update-Video geben, in dem
wir die Dinge aus
dem 19. Jahrhundert auf ein 1800er Jahre aktualisieren werden. Wenn Sie jedoch
den Kurs in seiner Gesamtheit verfolgen möchten ,
hauptsächlich Wörter oder Iteration, empfehle
ich dringend, darüber
nachzudenken möglicherweise einen 1800er zu wählen. Hier. Ich werde wahrscheinlich am Ende des
Kurses für 1800er Jahre
einen Abschnitt hinzufügen. Und nicht nur die Änderungen, sondern wahrscheinlich auch
verschiedene Vorträge , die
das ersetzen, nicht ersetzt werden. Aber es wird Folgen
für die Vorträge aus dem 19. Jahrhundert geben. Entweder können Sie
die Gradle-Eigenschaftendatei
hier in diese Werte ändern , oder wenn das nicht Ihre ist, wenn
Sie dies nicht möchten, wenn Sie das 19. Jahrhundert verwenden möchten, können Sie dies natürlich
gerne tun. Aber bitte bedenken Sie, dass
es
einige Unterschiede geben wird , verglichen mit dem, was Sie
in den Vorträgen sehen werden. Sie also einfach daran und ich schätze zurück zur Vorlesung. Insgesamt können
Sie also sehen, dass wir
hier
tatsächlich einen Link haben und wir werden
uns diese
Seite in nur einem Moment ansehen . Und wir geben im Grunde nur an ,
was ist die Minecraft-Version, welche Version der
Mappings verwenden wir? Dies dient im Grunde darum,
den Code so zu übersetzen, dass wir die
Methodennamen und solche Dinge
tatsächlich lesen können . Und dann ist die Loader-Version Grunde
nur die Version des
Fabric Loaders. Dann haben wir
noch ein paar Immobilien, die wir selbst definieren können und
das werden wir in einem Moment tun. Und dann haben wir hier auch
die Stoffversion , die
wir verwenden,
ganz unten. Wenn wir die Link
Fabric MC Net Slash-Versionen öffnen, werden
Sie sehen, dass wir hier
tatsächlich einige Updates haben. Was wir also tun können, ist, dass wir
einfach dieses Steuerelement C übernehmen oder mit der rechten Maustaste auf kopieren klicken und
dann hierher zurückkehren und es dann im Grunde einfach einfügen. Also lasst es uns
einfach einfügen. Wir kriegen ein
paar Pfeile, weil es mehrere gibt. Aber was wir tun können, ist, dass wir dies hier unten
einfach ersetzen können. Also drücke ich Control X, um es
auszuschneiden , und dann Control V
, um es wieder einzufügen. Jetzt haben wir, wir werden auf 0.44 aktualisieren. Dies könnte tatsächlich eine
andere Version für Sie sein, was völlig in Ordnung ist. Während es einige
Unterschiede in den Versionen
gibt, sollte es normalerweise keine
verrückten Unterschiede geben. Und wenn ja,
werde ich versuchen,
mit dem Besten Schritt zu halten , was ich kann,
und wahrscheinlich
eine weitere Vorlesung danach
oder irgendwo zwischen
den Änderungen hinzufügen eine weitere Vorlesung danach . Und dann wird es im Grunde auch
damit eingeholt
werden, oder? Und hier
löschen wir einfach all diese und stellen dann auch sicher, dass
sie richtig geschrieben sind. Drücken Sie also im Grunde die
Tabulatortaste, um sie zu verschieben. Und jetzt haben Sie gesehen, dass
wir im Grunde genommen den
Gewinn von sechs auf
12,8 aktualisiert haben und von 431, denke
ich auf 440,
das ist völlig in Ordnung. Noch einmal können wir
den kleinen Elefanten
hier oben in der Ecke anklicken . Und wenn wir
dieses Build-Fenster erweitern, können
Sie sehen, dass es
Dinge wie verrückt herunterlädt ,
aber keine Sorgen. Auch dies könnte
ein paar Sekunden dauern. Noch einmal, vielleicht
eine Minute oder so. Ich habe gesehen, dass es für manche Leute viel
länger gedauert hat, aber das hängt von Ihrer Internetverbindung ab
und wie gut Ihre PCS sind. Manchmal kann es also 20 Minuten
dauern, das habe
ich schon mal gesehen, aber das ist sehr selten. Sehr selten. Also los gehst du. 21 Sekunden, eigentlich
schon fertig. Und jetzt können wir anfangen, nun,
weiter zu sehen, was wir für unseren eigenen MOD ändern
können. Grundsätzlich werden alle unsere
Änderungen in der Gradle-Punkt-Eigenschaftendatei
geschehen. Das ist im Grunde sehr
einfach für uns. Und die allgemeine Idee ist, dass wir hier unsere
Modelleigenschaften ändern und dann auch ein paar Dinge
in unserer Ordnerstruktur
oder Paketstruktur ändern müssen. Der allgemeine Kern
ist, dass
wir gerade diesen
Beispiel-MOD verwenden, wo es
natürlich nicht ganz das gibt ,
was wir haben. Wir haben eine bestimmte
Mathematik, die wir wollen. Wenn ich also auf
diese Beispiel-Mock-Klasse doppelklicke, kann
man sehen, dass es Beispielmod heißt. Es hat sogar ein paar
Kommentare hier drin. Das ist sehr nett. Aber insgesamt müssen
wir hier ein
paar Dinge ändern. Das erste ist, dass ich möchte, dass dies in
meinem eigenen Paket enthalten ist. Was ich mache, ist, dass ich
hier rauf gehe und das einfach
auf
Nettokonto und Rho Not
Mc-Kurs ändern werde, das ist das Paket. Ich möchte, dass dies
sehr empfehlenswert ist, diesen Baumwolljob nicht anzurufen weil Sie in
einem Coulomb Joule sind. Und zweitens,
benutze einfach net deinen Namen. Und dann kann
ich zum Beispiel MC natürlich nur empfehlen, dies zu
tun, weil es einfach sehr seltsam ist, den Namen einer anderen
Person zu verwenden, wenn Sie Ihren
eigenen Code erstellen, weil es einfach verwirrend wird Leute, die wie
du sind, haben das nicht geschrieben, das war von Cotton Row
und es ist, naja, was ich hier tun kann, ist das, natürlich wird jetzt eine rote Unterstreichung
haben. Ich werde nur den Mauszeiger
darüber bewegen und Sie können sehen, wie Sie zum Paketnetz Cotton
Joe MC Kurs wechseln. Ich klicke einfach darauf
und du siehst ein neues Paket erstellt wurde. Und das ist jetzt im Grunde
gut gemacht. Was ich dann tun werde,
ist, dass ich
dieses Mixed and Package nehme und es einfach direkt in den EMI EMC
Kurspaketrefaktor
verschiebe. Und da gehst du.
Jetzt kann ich den Fabric MC hier tatsächlich
löschen, einfach die
Löschtaste drücken und dann bestätigen. Und was ich dann tun kann, ist, dass ich jetzt mit der rechten Maustaste darauf klicken
kann. Das ist sehr wichtig. Ändere diesen Namen nicht
einfach hier. Rechtsklick Refactor Umbenennen. Und dann wird dies die MC-Kurse-Mod-Klasse
sein. Darauf werde
ich mich in
den kommenden Vorträgen
und in den Antworten
auf einige Fragen
als Hauptklasse beziehen den kommenden Vorträgen
und in den Antworten
auf . Das ist also die Hauptklasse. Die Hauptklassen, die
die mehr
Initialisierungsschnittstelle implementiert , sind sehr wichtig. Dies werde ich bezeichnen, da Ihre Hauptmod-Klasse
hier auch alle Kommentare
löscht alle Kommentare
löscht, da sie nicht benötigt werden. Und dann werde ich hier
ein neues Feld vorstellen. Und das ist eine öffentliche
statische endgültige Zeichenfolge namens Mod-Unterstrich-ID. Und es wird
gleich einer neuen Zeichenfolge sein, die MC-Kurs genannt wird, weil dies unsere Modell-ID sein wird
. Jetzt ist je mehr Ausweis
sehr wichtig. Hören
Sie also hier noch einmal genau zu, je mehr ID nur
Kleinbuchstaben,
Unterstriche und Zahlen enthalten kann , sonst
nichts, keine Leerzeichen und
keine Großbuchstaben. Das ist also sehr wichtig. Keine Großbuchstaben. Ich habe das
mehrmals für Ihre Modell-ID gesehen, Sie können keine
Großbuchstaben enthalten. Und anstatt die Model-ID hier
aufzurufen, werden
wir einfach mehr ID sagen. Jetzt
ist alles in Ordnung und Dandy. Das ist also
alles, was wir
im Mathematikunterricht des RMC-Kurses tun müssen . Gehen wir nun auf das
Beispielmischen ein, weil
wir hier einen Fehler bekommen, da dies immer noch versucht, den Beispielmodus
zu verwenden. Keine Sorge, wir
sagen einfach MC Course. Sie können sehen,
sobald ich es eintippe, wird
es uns tatsächlich
vorgeschlagen. Also kann ich
das mit der Registerkarte automatisch vervollständigen, und dann lass uns den
Import hier öffnen und du kannst sehen, dass sie auch hier
einen Fehler bekommen. Wir können
diesen Import einfach löschen und dann sollten alle Pfeile
hier verschwinden. Nun, dann lasst uns wieder
zur besten Immobilie navigieren. Und hier haben wir
die Mod-Version. Ich empfehle dringend, was Sie tun
sollten, ist, dass Sie
die Micro-Version entweder
vorne oder hinten platzieren sollten . So können Sie zum Beispiel
sagen, dass so etwas
Version von 0.01 dash 118 ist . Also dann
ist der Benutzer, weiß, okay, das ist Version
0.01 für deinen MOD. Und dann für Micro-Version 118 können
sie sogar eine Gruppe sein, natürlich nur net.com Zeilenpunkt IMC Force und
dann der Archivbasisname. Ich bin mir eigentlich nicht sicher, wie
wichtig das ist, aber das
wird einfach für uns sein, Fabric Vers 2018, oder? Und jetzt wurde das geändert. Das ist in Ordnung. Und jetzt müssen wir etwas anderes
ändern, und das befindet sich im
Ressourcenordner genau hier. Öffnen Sie das also und
Sie können sehen, dass es sich tatsächlich um ein Modell-ID-Symbol handelt. Wir können das tatsächlich löschen. Das brauchen wir
im Moment nicht. Und es gibt eine
Fabric-More JS-Datei und eine
gemischte Modell-ID. Zuallererst
gehen wir auf
die Fabric-Moderation ein. Und hier müssen wir tatsächlich eine Menge Dinge
angeben. Das erste, was
wir tun müssen, ist, dass wir die
Modus-Idee hier
natürlich auf MC-Kurs ändern
müssen . Das ist das Modell, das wir genau hier
gewählt haben, oder? Das muss also überall genau
gleich sein. Und dann der Name Ahmad,
ich werde mich nur für
MC Course Fabric Mod entscheiden . Das ist in Ordnung. Wir können hier auch eine
Beschreibung hinzufügen. So können wir zum Beispiel Mod
sagen, andere unterrichten. Stoff Morgen,
Stoff, mikrophonisch Klar, heidnische Autoren
sind Homeroom Course. Gib noch einmal deinen eigenen Namen ein. Jetzt bin ich nicht der
Autor Ihres Modells, und dann haben Sie einen Kontakt, zum Beispiel kann ich dies ändern, um ins Netz zu kommen
und dann Quellen. Ich werde das wahrscheinlich
ein wenig ändern , weil wir
jetzt
natürlich noch kein
GitHub-Repository haben, aber das werden wir natürlich auch in
dieser Vorlesung machen. Die Lizenz, die ich wählen werde, die MIT-Lizenz, von der
ich persönlich denke, ist die beste Formate, die
normalerweise nur, wissen
Sie, sie ist immer noch Open Source als der Einstiegspunkt hier. Wir müssen dies
so gut ändern, wie Sie sehen können, das ist Nettozahl
und Rho Not
Mc-Kurs und dann kein Beispiel
mehr über MC Course Mod. Noch einmal sehr wichtig,
dass du das geändert hast. Genau wie
du es hier hast. Sie können Net Out
und Row MC Kurs, MC-Kursmodell sehen.
Das ist sehr wichtig. Gleiche gilt für die Mixins. Wir haben die
Modell-ID hier auf MC-Kurs geändert. Und jetzt
funktioniert alles hier auf der Icahn im Moment nicht. Natürlich könnten wir hier auch ein neues Icon
hinzufügen. werden wir
vorerst nicht machen. Dann lasst uns öffnen, je mehr
ich die Mixins, Jason. Und was Sie
sehen können, ist die Nummer eins,
was wir wollen, ist mit der rechten Maustaste auf
Refactor Umbenennen und dann die
Modell-ID hier in MC-Kurs zu ändern. Und dann muss das Paket
hier, das Sie
sehen können , auch geändert werden. Der Nettobuchhalter Joe beim MC
Kurs mischt, das ist in Ordnung. Dann ist auch das Beispielmischen
hier in Ordnung. Dies ist nur ein Beispiel für
die eigentlichen Mixins. Wir werden uns das in der Art und Weise
später
ansehen, denn Mix-Ins
können ziemlich kompliziert sein. Vorerst werden wir hier einfach
das Ganze ignorieren .
Das Gleiche gilt für diesen. Wir werden
es einfach ignorieren und sagen, dass das in Ordnung ist. Aber jetzt sind tatsächlich alle Änderungen , die wir vornehmen
müssen, vorgenommen worden. Wir haben die
RMC-Kurs-MOD-ID angegeben, den Namen hier
ausgetauscht, wir haben die Dinge
im Fabric-Mod Jason geändert, sehr wichtig, Sie
ändern den Namen dieses Jason nicht. Man ändert nur den Namen
dieser Jason hat auch eine
sehr wichtige Sache. Und jetzt
haben wir immer noch die Elefanten. Klicken wir einfach noch
einmal darauf und
sehen wir uns alles an, was
in 940 Millisekunden erledigt wurde. Das ist sehr schnell. Und wie können wir
in Minecraft beginnen, gehen Sie rechts
oben zum Gradle,
erweitern die Tasks Fabric
und führen Sie dann den Client aus, es sei denn,
Sie sehen einen Doppelklick darauf. Und dann wirst
du das in Zukunft hier oben haben. Und dann haben Sie
auch eine Art,
nur einen Play-Button, auf den
Sie grundsätzlich klicken können. Und das wird
dann auch funktionieren. Aber vorerst werden wir nur ein paar Dinge
warten. Dieser Pfeil hier ist
absolut normal weil wir uns in einer
Entwicklungsumgebung befinden, wir haben uns nicht bei Minecraft
angemeldet, daher
werden wir diesen Fehler bekommen. Das ist vollkommen in Ordnung. Und Minecraft wird hoffentlich schon angefangen
haben und man kann es tatsächlich hören. Ich werde die Musik tatsächlich
ablehnen ,
weil das manchmal
ein wenig ablenken kann. Und da gehst du. So ist
Stoff tatsächlich drin, wir können sehen, dass Stoffmodell
auch völlig gut funktioniert. Wenn dies passiert, sind
Sie tatsächlich fertig, wir haben die
Entwicklungsumgebung eingerichtet. Beenden wir das Spiel tatsächlich. Und lasst uns noch zwei Dinge machen. Nummer eins, was ich möchte
, dass du hier auch
auf diese
Jen-Quellen klickst. Doppelklicken Sie einfach darauf. Dies wird
die Quelldateien
für Minecraft und Fabric generieren , damit wir uns diese genauer
ansehen können. Grundsätzlich werde
ich Ihnen zeigen, was das in
den
zukünftigen Vorträgen im Grunde genommen sehr wichtig sein
wird , dass wir Zugriff auf
die Quelldateien für
Minecraft und für Fabric haben . Weil es viele
großartige Beispiele gibt , wie man dort auch
Dinge macht. Jetzt wird das eigentlich etwas länger
dauern, aber keine Sorge, sei einfach geduldig, warte darauf und dann werden wir sehen nachdem alles
erledigt ist, los geht's. Also fast eine Minute und
dann sind Jen-Quellen fertig. Sie können auch auf Assets
herunterladen klicken Nur für den Fall, dass
Sie das manchmal tun müssen. Manchmal tut man das nicht. Manchmal sollten die Assets
normalerweise bereits heruntergeladen werden, aber es könnte
einige Probleme geben. Und sobald Sie dies getan haben, können
Sie es schließen und dann sicherstellen, dass Sie hier
den Run-Client auswählen. Sie können hier auch den
Minecraft-Client auswählen. Sie können eine von ihnen auswählen oder normalerweise wählen Sie diese aus. Und dann können Sie Mikrofone mit diesem
Run-Button direkt hier im Grunde
wieder
starten . Im Moment
wurde alles eingerichtet. Lassen Sie uns nun fortfahren, wie
Sie das GitHub-Repository hinzufügen können. Schlagen Sie dringend vor, diesen Schritt nicht zu
überspringen ein GitHub-Repository erstellen, denn wenn Sie
ein GitHub-Repository erstellen, denn wenn Sie in Zukunft auf ein Problem
stoßen, stelle
ich mir Ihr
GitHub-Repository
zum Beispiel ein
Fehlerprotokoll zur Verfügung und sagen Hey, das hat nicht funktioniert, wird mein
Leben und dein Leben
viel einfacher machen , weil
ich in der Lage sein werde, schneller auf
ein Problem oder eine Frage zu antworten , die du vielleicht hast. Wie machen wir das? Nun, zuerst
müssen Sie ein GitHub-Konto haben. Ich empfehle dringend
, einen auf GitHub zu machen. Es ist völlig kostenlos.
Es ist sehr gut. Es ist eine Website, die von
fast jedem benutzt wird, der codiert. Es gibt noch ein paar
andere, aber ich
empfehle dringend , einfach
ein GitHub-Konto zu erstellen. Sobald dies erledigt ist, können
Sie hier
in die
Intelligenz gehen und
zu VCS gehen und dann Projekt auf GitHub
teilen sagen , dass
wir einen Namen auswählen müssen. Ich bin mit dem Stoff Dash
Kurs Monat 18 einverstanden, das ist in Ordnung. Ich entscheide mich dafür, das privat
zu machen. Das musst du nicht unbedingt. Remote-Ursprung ist auch in Ordnung. Ich füge
momentan keine Beschreibung hinzu. Ich sage „Teilen“. Jetzt können Sie sehen, dass das Konto nicht leer sein
kann, fair genug. Also füge ich
eine Zählung hinzu und du
kannst dich über GitHub anmelden. Ich
drücke einfach darauf und es wird
dann dieses JetBrains-Konto eröffnen. Ich werde sagen, autorisiert
in GitHub und dann kannst du sehen, dass es erfolgreich autorisiert wurde weil ich hier bereits
eingesperrt bin. Jetzt gehe ich
hier hin und du kannst
github.com Slash Cotton
Row sehen und dann teilen sagen. Jetzt unten
sehen Sie , dass es anfängt Sachen zu machen. Und dann deutet es hier
im Grunde auf Hass hin. Was willst du pushen? Wie? Die Idee ist, dass wir
zwei verschiedene Dinge haben. Du hast ein Commit und einen Push, und viele Sachen
werden rot. Die Dateien werden also rot
und wir sagen „Initial Commit“. Wir werden Add sagen. Und dann wird es hier unten
rechts weiter Sachen
machen. Und Sie konnten erfolgreich das Projekt auf GitHub
teilen sehen. Ich glaube, ich kann einfach
darauf klicken und los geht's. So wurde jetzt tatsächlich der
Pferdekurs ein Repository
unter Spalten erstellt Zeilenschrägstrich
Fabric Kurs 118. Und das steht Ihnen
auch zur Verfügung. In jeder Vorlesung finden
Sie also grundsätzlich einen Link
zur Filiale für diese
spezielle Vorlesung, damit Sie sich
den Code immer ansehen
und sicherstellen können , dass alles was du
getan hast, ist richtig, genau wie wir es hier haben. Ich kann es auch wärmstens empfehlen, besonders wenn wir uns mit
den komplexeren Themen befassen, werde
ich viel
mehr Code kopieren , weil es nicht Spaß macht, jemandem beim
Schreiben von 300 Codezeilen zuzusehen. Und dann im Grunde nur schauen, jemanden
beobachten, richtig, dass es eigentlich nicht
sehr interessant ist. Es ist viel besser für mich,
ein paar Sachen zu kopieren und dann zu
erklären, was geschrieben steht. So einfach ist das Setup für das
GitHub-Repository hier. Sobald das erledigt ist, können Sie unten hier sehen , dass ich jetzt
den Master Branch habe und ob ich
etwas ändern würde
, also
füge ich zum Beispiel einfach einen Hammond hinzu, die
Kommentare, oder? Sie können sehen, dass die
Datei blau wird. Dies bedeutet, dass eine
Änderung stattgefunden hat. Wie kann ich das jetzt markieren? Nun, ich kann
genau hier zu
diesem Commit-Tablet gehen und einfach sagen, ja, jede alte Änderung, oder? Ich wollte es, ich
wollte sie markieren. Und dann
sage ich, dass er einen Kommentar hinzugefügt hat. Was ich dann machen möchte,
ist, dass ich mich verpflichte. Jetzt wurde diese Änderung
begangen. Wenn ich zurück zum
Projektfenster gehe, kannst
du sehen, dass es nicht mehr blau ist, aber es ist noch nicht online. Denn was ich tun
muss, ist, dass ich hier zu diesem Druckknopf
gehen muss , zu dem Pfeil, der
auf den oberen rechten Push zeigt. Und dann heißt es
Master Origin Master Master. Dies bedeutet im Grunde, dass
Sie
die Änderungen, die Sie auf Ihrem lokalen Computer
vorgenommen haben, vorantreiben werden. Dass der Ursprung und der
Ursprung im Grunde online und dort zum
Master-Zweig sind, schieben Sie. Und Sie können hoffentlich sehen,
was passieren kann wird ein Commit
zum Origin Master gedrängt. Und wenn ich jetzt wieder
hierher gehe und das neu lade, können
Sie sehen, dass ein Kommentar hinzugefügt
wurde, der gerade abgegeben wurde. Wenn ich nicht zu sehr darauf
eingehen möchte wie Git funktioniert
und all das. Es ist jedoch sehr wichtig, dass
Sie dies im Grunde genommen einrichten. Ich kann das wärmstens empfehlen. Ich kann das nicht mehr empfehlen. Hilfe von mir
oder anderen Leuten zu erhalten , wird es so viel einfacher
machen, wenn Sie ein GitHub-Repository haben
, das Sie teilen können. Also bitte tun Sie dies und auch sehr wichtig, dass alle
diese Dateien dort sind. Sie müssen
die Gradle w-Datei haben, Sie müssen die
Builder-Gradle-Datei haben, die Grail-Eigenschaften, all diese Dinge müssen da sein. Sehr, sehr wichtig, oder? Aber was auch immer der Fall sein mag, das ist es bereits
für diese Vorlesung. Ich verstehe, dass dies
ziemlich umfangreich ist. Wir haben eine Menge Dinge getan, aber wenn Minecraft jetzt arbeitet,
herzlichen Glückwunsch, Sie haben
begonnen, sich der Trauer zu widmen. Es wird eine verrückte und
coole Reise auf dem Weg. Und ich bin mir sicher, dass du viel lernen
wirst. Wenn Sie zu irgendeinem Zeitpunkt auf Probleme
stoßen, können Sie natürlich die
Fragen und
Antworten verwenden, um eine Frage zu stellen. Ansonsten
empfehle ich auch dringend ,
alles noch einmal auf
Rechtschreibfehler zu überprüfen und
sicherzustellen , dass Sie
alles so gemacht haben wie ich. Und dann könnte hoffentlich
alles funktionieren. Aber das war's für diesen
Vortrag genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Wir sehen uns in
der nächsten Vorlesung.
39. (Grundlagen) Erstelle ein benutzerdefiniertes Element: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir
unseren eigenen benutzerdefinierten Artikel hinzufügen. Das ist also sehr aufregend. Wir beginnen mit dem
Hinzufügen von Elementen, da sie ein bisschen einfacher
sind
als das Hinzufügen von Blöcken. Aber lass uns einfach anfangen.
Was müssen wir tun? Nun, innerhalb unseres
MC-Kurspakets wir mit der rechten Maustaste auf ein
neues Paket. Welcher Artikel, damit die
Paketstruktur im Allgemeinen sehr subjektiv ist
und sich ändern kann. Es ist im Grunde eine
individuelle Organisation. Wie Sie dies organisieren möchten, können
Sie das
grundsätzlich nach Belieben auswählen. Ich empfehle dringend,
bei etwas zu bleiben, das dir gefällt. Grundsätzlich du und
wenn du ein Team hast, dein Team, solange du alles
findest, ist
das in Ordnung. Ich bleibe im Grunde
dabei, wie ich es
mache, um das Artikelpaket einzulegen. Wir klicken mit der rechten Maustaste auf eine
neue Java-Klasse mehr Elemente
genannt wird. Dies ist also eine neue Klasse
hier und dieses Fenster wird angezeigt, wenn Sie das
GitHub-Repository initialisiert haben. Im Grunde genommen
befindet sich dies in der Datei GitHub und normalerweise möchten Sie Ja sagen, Add, und dann
wird es grün. Dies ist also im Grunde eine
neue Datei wurde hinzugefügt. Wenn Sie
kein GitHub-Repository eingerichtet haben, wird dies nicht angezeigt und
alles ist auch in Ordnung. Um einen neuen Artikel hinzuzufügen, müssen
wir ihn registrieren. Es gibt zwei Dinge
, die wir tun müssen. Wir müssen einen
öffentlichen statischen Boyd haben oder eine Methode für mehr Elemente registrieren. Und das wird nur Systemausdruckzeile
sagen. Und es wird
etwas wie das Registrieren,
Registrieren von Elementen für Mod-Items,
Mod-Items oder plus
MC-Kurs sagen Registrieren von Elementen für Mod-Items,
Mod-Items , die Melodie mod. Dies wird also INSEAD-Seite
unserer nicht initialisierten Methode
genannt , um die statischen Elemente
, die wir in dieser Klasse haben, zu initialisieren. Dies ist eigentlich
unbedingt erforderlich, da die Artikel
sonst grundsätzlich
nicht ordnungsgemäß
registriert werden. Und dann haben wir ein
privates statisches Element oder ein Registerelement, registrieren ein Element mit einem
Zeichenfolgennamen und einem Element, Item. Jetzt werden Sie sehen
, dass dieser Artikel hier
rot ist , keine Sorgen. Was Sie tun können, ist, dass Sie
darauf klicken, Alt und Enter
drücken, um das
Netto-Minecraft-Element, die Artikelklasse, zu importieren. Wie Sie sehen können,
erhalten wir hier immer noch einen Fehler, da wir
natürlich einen Artikel zurückgeben müssen , der überhaupt keine
Sorgen macht. Was wir tun werden,
ist, dass wir die Registrierung
zurückgeben, nicht bei dem
Registry-Punkt-Element registrieren alles in Großbuchstaben AMA, neue Kennung von
net Minecraft util, MC-Kurs-MOD, dass
Name der Modell-ID. Und dann nach dem Kommaelement der ersten
Klammern. Wieder einmal
wird die Registry Kras noch nicht importiert, also klicken Sie auf alles in zwei wichtige Minecraft
UTI Registry, Registry. Und dieser Aufruf
registriert im Grunde das Element
unter unserem Namespace , der sich unter unserer Modell-ID befindet, mit dem hier angegebenen Namen als
erster Parameter. Und es wird dieser Gegenstand sein. Dies ist also im Grunde
eine Hilfsmethode , um uns bei der Registrierung unserer Artikel zu helfen. Und welche Art von Gegenständen
werden wir herstellen? Nun, wir werden sie
machen oder neu alken. Nun, das ist schon
Kalzium in Waren und Nuggets und roh
oder neu alc sie. Und später kann Oracle
blockieren und all diesen Jazz. Wie stellen wir einen Artikel her? Also werden wir
öffentliches statisches Finale sagen. Das ist also wieder
nur ein grundlegendes Zeug, oder? Das ist also statisch, damit wir
keine neue Klasse
mehr Items erstellen müssen. Und dann endgültig, damit wir es danach nicht ändern
können. Und das
wird der neue
Einkommensunterstrich Englisch sein. Und das wird
gleich dem Registerelement sein. Du kannst sehen, dass ich das
schon bekomme und dann ist der erste
eine Zeichenfolge. Dieser Name hier wird tatsächlich automatisch
generiert. Du
musst das nicht tippen. Zoomen Sie ein bisschen hinein. Sie
können sehen, dass dies ein bisschen anders aussieht als das,
was ich geschrieben habe. Dies wird also automatisch generiert, Sie
müssen dies nicht eingeben. Und das ist ein Orakel kommen unterstrichen Barren und dann Komma und dann ein neues Element. So
erhalten Sie tatsächlich schon einige Vorschläge c, Wir wollen hier ein normales Element, neues Element mit den neuen
Fabric-Elementen, Einstellungen, dieser Gruppe, Objekt, Gruppe,
die Misc, schreiben Sie diesen. Und dann am Ende
hier ein Semikolon. Dies ist das Ganze
, um hier einen neuen Gegenstand zu machen. In diesem Fall machen wir
im Grunde einen neuen Gegenstand, den Namen oder das Kalzium-Englisch. Das Orakel komm rein, komm her. Dies ist natürlich der Name der
Variablen, und dies muss immer in der Feststelltaste
geschrieben werden und unterstreicht im Grunde
auch getrennte
Grenzwerte. Und das alles
muss ein Kleinbuchstaben sein, genau wie die Modell-ID. Also der Name hier, die Zeichenfolge
hier, immer ganz Kleinbuchstaben. Und normalerweise empfehle ich dringend sich an eine
Möglichkeit zu halten, dies zu schreiben. Grundsätzlich ist es in Ordnung, den Unterstrich
hier zu haben, oder? In New Item sind
Artikeleinstellungen erforderlich , und Sie
können sehen, dass wir es einfach die Gruppenmethode
nennen und sie an den Punkt der
Elementgruppe Sonstiges
übergeben
haben, so dass dieses Element tatsächlich so dass dieses Element tatsächlich dem
verschiedene Gruppe. Und ich kann auch danach auch hier einen Punkt
hineinlegen. Und es hat mehr
Sachen dazu gebracht. Du hast ein bisschen
mehr Java-Wissen. Dies ist ein
Builder-Muster und Sie können sehen, dass ich hier tatsächlich
ein paar Dinge tun kann, eine Veränderung, ein paar Dinge
vorerst. Wir werden nur daran bleiben
,
die Gruppe im Grunde genommen als
Gruppe Verschiedenes auszuwählen . Und das ist so ziemlich genau das. Wir werden vorerst
dabei bleiben. Aber gegen Ende
der Vorlesung werden
wir tatsächlich
einen weiteren Punkt erstellen , damit
Sie sehen, wie das funktioniert. Dass manche Leute
ein bisschen verwechselt wurden. Wie füge ich ein zweites
Element hinzu, um
eine neue
Modus-Artikelklasse erstellen zu müssen , Nein, Keine Sorge. Wir werden es im Grunde nur in
unserer MC-Kurse-Mod-Klasse in
der initialisierten Methode
durchhalten , wo wir jetzt mehr Elemente aufrufen werden , die Moduselemente registrieren. Und wir können
die Logger-Info löschen. Das wird gut werden. Und jetzt müssen wir uns in
den Assets-Ordner wagen und
im Grunde die JSON-Dateien erstellen. Nun, JSON-Dateien sind
etwas, das, ich meine, ich würde nicht
unbedingt nervig sagen, aber es kann sehr
nervig werden, denn für jeden Block und für
jeden Artikel, den
Sie hinzufügen, müssen Sie
diese hinzufügen JSON-Dateien. Wir werden die JSON-Akten des
Artikels genau hier durchgehen. Und dann der nächste Vortrag, wenn
wir über Blöcke sprechen , werden wir diese auch
durchgehen, also keine Sorgen. Sie im Ordner „Assets“ rechten Maustaste auf das neue Verzeichnis
namens MC-Kurs. Das muss also deine MOD-ID sein. Bitte vergewissern Sie sich, dass dies
korrekt geschrieben ist. Alles, was ich
gerade mache , muss richtig
geschrieben werden. Sonst wird es nicht funktionieren. Sag das noch einmal. Bitte stellen Sie sicher
, dass Ihre
Ordnerstruktur korrekt geschrieben ist. Überprüfen Sie das acht Mal, wirklich, ich meine es MC-Kurs, klicken Sie mit der rechten Maustaste
auf neues Verzeichnis namens lang. Dies ist also das erste Verzeichnis
, das wir brauchen werden. Und dann gibt es noch
ein anderes namens Models. Und dann gibt es noch eine
, die wir brauchen werden, nämlich die Texturen. Aber sehr wichtig, Lang Modelle mit einem S am Ende und
Texturen mit einer Säure am Ende. Der Models-Ordner wird auch zwei Verzeichnisse
haben,
eines namens broke. Das ist Singular. Und was ich dann tun kann, ist, dass ich diesen Ordner nehmen
kann und wenn ich die Strg-Taste drücke und
ihn in denselben Ordner ziehe, kann
ich eine Kopie davon erstellen
und nur dieses Element meinen. Jetzt nehmen wir beide
und erstellen tatsächlich eine Kopie davon in
den Texturordner, da wir
einen Block benötigen, auch
einen Elementordner. Aber so sollte das im Moment
aussehen. Stellen Sie sicher, dass sich alles
an der richtigen Stelle befindet, damit nichts Vergleichbares im Ordner „Modelle“ innerhalb des Assets-Ordners
befindet. Alles muss so sein. Ressourcen, Assets,
MC-Kursmodelle, M, C Corps Texturen, MCQs, Lang. Jetzt innerhalb des leg-Ordners wir mit der rechten Maustaste auf
Neue Datei und unterstreichen uns dot-dot-dot Grayson it
Enter und fügen Sie
dies
natürlich noch einmal dem
GitHub-Repository hinzu, falls Sie eines haben. Und jetzt ist dies die
Übersetzungsdatei. Dies wird also
den Namen von Elementen in
verschiedene Sprachen übersetzen . Jetzt werden
wir für unsere Zwecke nur
e verwenden und uns unterstreichen, Jason, weil wir dies nur in
die englische Version
übersetzen wollen . Sie können jedoch
sehr einfach
die anderen
unterstützten
Sprachen herausfinden die anderen
unterstützten
Sprachen und dann auch in diese
übersetzen. Wir müssen es tun,
dass wir
geschweifte Klammern hier
und dann eine Zeichenfolge einsetzen müssen . Dies wird also ein
Punkt jener MC-Kurs sein, Neukalk-Unterstrich Barren und dann ein Doppelpunkt- oder
Calcium-Score, ein
Leerzeichen ohne Nullunterstrich darin. Da gehst du. Dieses Jahr ist also der
nicht übersetzte Name. Im Grunde ist dies
der Übersetzungsschlüssel. Sie können sich das wie diesen Artikel vorstellen da dies ein Artikel ist,
weil MC-Kurs, weil dies unsere Modell-ID ist. Und dann ist der Siliziumbarren
hier der
Name in der Mod-Items
Klasse genau hier. Aber das ist die allgemeine Idee. Und dieses Ding
wird
im Grunde auch fast jeder
anderen Sache folgen , den Blöcken, verschiedenen Dingen. Also ja, das ist dann
der übersetzte Name. Dies ist also der Name, den Sie sehen
werden, wenn Sie den Mauszeiger über den tatsächlichen Artikel
im Inventar bewegen, rechts dann unter
Modellartikel, mit der rechten Maustaste, neue Datei oder Vorkalk, unterstreichen Sie den Barren
Jason ist so wichtig und
stellt auch sicher, dass dies richtig geschrieben
ist. Jetzt kann die Malcom ein hartes Wort
sein, also überprüfe einfach, ob
es richtig geschrieben ist. Es tritt ein und ich
werde es tatsächlich einmal zeigen,
im Grunde schreibe ich das auf. Normalerweise schreibe ich das nicht auf , weil es nicht nötig ist. Die meisten JSON-Dateien
werden auf der ganzen Linie
gleich sein. Grundsätzlich,
was Sie haben müssen geschweifte Klammern und
dann einen übergeordneten Doppelpunkt, Element-Schrägstrich generierte
Komma-Texturen, Doppelpunkt, frühe Klammer,
Layer 0, Olin, MC Kerne. Ihr Motto De all a item, flash oder malcolm oder recalc
m unterstreicht Englisch. Was passiert? Nun, der Elternteil
stellt einfach sicher, dass dies als normaler Artikel
in Ihrem Inventar
angezeigt wird. Dann stellen Texturen später einfach
Texturen für dieses
bestimmte Element bereit , 0 bedeutet einfach, hey, wir
werden nur eine Ebene verwenden. Wir müssen uns
darüber nicht zu viele Sorgen machen, aber so
muss das im Grunde genommen geschrieben werden. Und dann gibt dies den Speicherort in
Ihrem Texturordner an. Wir werden auch nach der
Blockvorlesung
einen tiefen Einblick in
JSON-Dateien erleben . Manchmal habe ich das Gefühl, dass
es gut ist, zuerst die allgemeinen
Grundlagen zu legen . Machen Sie also im Grunde genommen
das Ende der Blöcke und
sprechen Sie dann auch
in einer späteren Vorlesung über jede der
einzelnen JSON-Dateien . Das wird
auch passieren, oder? Da es sich also um einen Artikelschlamm handelt, Siliziumbarren, muss
das gehen, die Textur ist nicht zu
den Texturen von MC im
Artikelordner gegangen und
muss
Henri Calciumbarren Punkt PNG genannt werden . Also habe ich
das natürlich schon vorbereitet. Ich kopiere
das einfach über oder ein PNG, okay? Und natürlich zum
GitHub-Repository hinzugefügt. Und natürlich steht dir das alles im Handgelenk
zur Verfügung. Das GitHub-Repository
und die Extras stehen Ihnen
ebenfalls als Zip-Datei
zum Herunterladen zur Verfügung. Wenn es mehrere gibt und wenn es sich nur um einzelne
handelt, werden sie
wahrscheinlich auch
als einzelne Texturen sein. Im Moment ist das
alles, was wir brauchen, um den Artikel
ordnungsgemäß zu unserem MOD
hinzuzufügen. Jetzt können wir das Spiel tatsächlich starten und
sehen, ob es funktioniert. Stellen Sie sicher, dass Sie Run-Client
ausgewählt haben , bei dem der Minecraft-Client
hier ist, entweder in Ordnung ist. Und dann drücken Sie dort die Schaltfläche
Ausführen, Ausführen. Und dann geht es nur darum
zu warten, bis es anfängt. Alles klar, also befinden wir
uns hier in Minecraft. Stellen Sie einfach sicher, dass Ihr
eigenes kreatives natürlich, dass
wir im Grunde leicht
sehen können , ob
es funktioniert oder nicht. Und lass uns einfach sehen, wenn
wir dafür im Spiel sind. Also hier sind wir im Spiel
und lass uns einfach sehen. Gehen wir also zum Tab „
Verschiedenes“ und gehen wir
ganz unten. Da ist es. Das schon Kalzium ist gut, absolut erstaunlich. Und ich liebe die
Textur auch. Für alle Transparenz, übrigens, die Texturen, können
Sie sie tatsächlich
verwenden,
sie stehen jedoch unter einer
bestimmten Lizenz. Ich werde es Ihnen
in nur einer Sekunde zeigen, aber das ist
wirklich cool, dass Sie gehen, der Artikel wurde erfolgreich
hinzugefügt, aber hier sind wir
die Credits Notice, also ist das sehr wichtig. Alle Texturen wurden durch Nanoangriff erstellt und
werden unter
der internationalen
Vier-Punkte-Null-Lizenz CC BY SA verteilt . Vergewissern Sie sich, dass Sie dem folgen. Wenn Sie sie
in Ihrem eigenen Repository verwenden möchten, fügen Sie
einfach diese Datei hinzu. Ich bin mir sicher, dass
das in Ordnung sein wird, aber stellen Sie sicher, dass dies erledigt ist. Andernfalls
verletzen Sie tatsächlich das Urheberrecht. Ich möchte also nur
sicherstellen, dass dies der Fall ist. Ansonsten sind die Texturen
hier eigentlich alle großartig und du kannst sie benutzen. Überhaupt keine Sorgen. Um Ihnen sofort zu
zeigen, wie Sie hier ein zweites Element hinzufügen
können, werden
wir dies im Grunde kopieren, also wähle ich
all dies aus und
drücke Strg D, um es zu duplizieren. Und was wir dann tun
werden, ist, dass Sie sehen können , dass Sie das nur ein bisschen ändern
müssen. Wir müssen den
Namen hier natürlich in orales Calciumnugget ändern . Und dann
auch hier drunter Nugget. Und jetzt ist der zweite Gegenstand eigentlich schon im Spiel von dir Kurs muss auch ein neues Artikelmodell
haben. Was wir also tun werden,
ist, dass wir
diesen kopieren , indem wir ihn einfach
in denselben Ordner ziehen , während wir die Kontrolle
gedrückt halten, oder? Also
so etwas. Und dann können wir dies
sofort in Oracle com nugget umbenennen. Okay? Und dann auch
hier drinnen, für
ein Calcium-Kugget, nehmen wir
das Kalziumnugget, auch hier drin
extra robust ist. Alles klar. Und dann werden wir
in der EN unterstreichen
Jason-Akte das kopieren. Im Grunde genommen
habe ich einfach, weißt
du, Control C, Control C,
Control V, Control V,
Control V gedrückt habe weißt
du, Control C, Control C,
Control V, Control V,
Control V gedrückt Control V, Control V, , um
es mehrmals einzufügen ,
damit alles hier
funktioniert und das Nugget und dann hier
natürlich auch Nugget. Und jetzt ist
das alles, was wir tun müssen, um
einen zweiten Artikel hinzuzufügen , und jeder neue
Artikel ist im Grunde gleich. Es ist nur ein weiterer
öffentlicher statischer
endgültiger Punkt mit einem neuen Namen. Das ist also sehr
wichtig, dass dies immer einen eindeutigen Namen hat. Wenn es Namen gibt
, die im Grunde mehrmals
verwendet werden, wird
das nicht funktionieren. Lassen Sie uns also nur um der Vollendung willen sehen, ob es funktioniert. Alles klar, Freunde haben
Schwarz in Minecraft. Gehen wir also zum
Tab Verschiedenes und mal sehen, da ist es, das
Orakel kommt und klopft an. Es wurde auch dem Spiel
hinzugefügt. Also hat alles einwandfrei funktioniert. Ist das nicht großartig, oder? Und das ist es für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Der gesamte Code für
Sie ist natürlich im
GitHub-Repository
oder
auch in Einzelpersonen
verfügbar , LinkedIn und Ressourcen. Wir sehen uns also in
der nächsten Vorlesung. Also ja.
40. (Grundlagen) Einen benutzerdefinierten Block erstellen: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir
versuchen, Minecraft
benutzerdefinierte Blöcke hinzuzufügen . Oder benutzerdefinierte Blöcke ähneln
dem Hinzufügen der benutzerdefinierten Elemente, benötigen
jedoch
ein paar weitere JSON-Dateien. Aber zuerst müssen
wir sie natürlich einprogrammieren. also in unserem
MC-Kurspaket mit der rechten Maustaste auf ein neues
Paket namens block. Und dann erstellen
wir drinnen eine neue Java-Klasse
namens MOD-Blöcke. Jetzt erfordert dies erneut die öffentliche statische Void namens
Register-Modus-Blöcke Methode , die
im Grunde etwas wie das
Registrieren von Monologen
oder MC-Kurs-Mod,
Mod-ID ausgeben wird Registrieren von Monologen
oder MC-Kurs-Mod,
Mod-ID , die wir sind in der
MC-Kurse Mock-Kurs
anrufen. Aber das wird auch erfordern, dass
ich hier zwei
verschiedene Hilfsmethoden erstellen werde. Das erste ist
das private statische Element
namens Registerblock Item. Der Grund, warum ich dies tun
werde, ist wenn wir
einen Block in Item erstellen , nicht
dafür erstellt wird und wir tatsächlich ein Element dafür erstellen
müssen. Der erste Parameter
ist also der Zeichenfolgenname, dann Block, Block und
dann Elementgruppe, Gruppe. Und dann werden wir auch alles
hier rot, total in Ordnung. Klicken Sie darauf und
geben Sie ein, um es zu importieren, geändert und geben Sie die wichtige, sehr wichtige ein, dass wir
die richtige Blockklasse importieren. Sie können Net Minecraft
Block sehen, sehr wichtig. Und dann die
Elementgruppe, das Gleiche, einfach Alt und Enter. Und dann wird es
wichtig sein. Und dann geben
wir hier das
Registry Dot Register zurück ,
Registry Dot Item mit
einem neuen Bezeichner, MC-Kurs-MOD diesen Mod-ID-Namen. Und dann noch einmal nach
dem ersten
Komma neuer Blockelement in Klammern , dieses Zeitblockelement. Rechts kann die Tabulatortaste drücken um dies grundsätzlich automatisch zu vervollständigen, indem der
Blockparameter hier übergeben wird. Und dann noch einmal neue
Fabric-Items Einstellungen. einmal, auch einfach mit Tab
automatisch vervollständigen. Es gibt eine Gruppe und
übergeben dann den Gruppenparameter. Und dann die drei
Klammern und dann ein Semikolon, um
die Zeile zu beenden , und sie gehen die
Registerblock-Item-Methode vollständig fertig. Und dann haben wir eine Methode
, die dies im Grunde nennt. Für den Block müssen
wir also
ein Blockelement und
natürlich auch den Block registrieren . Wir haben also einen privaten
statischen Block oder die Registerblock-Methode, bei der es sich um
einen
String-Namensblock, einen Block und dann natürlich eine
Elementgruppe handelt. Und das erste
, was es tun wird, ist
, dass das Register eine
Block-Item-Methode mit dem
Namensblock und der Gruppe aufruft . Und dann wird die zweite Zeile
hier nur noch einmal
zurückgegeben ,
Registrierung, die sich registriert. Diesmal registriere diese Blockierung. Der Block hier
mit einem neuen Bezeichner. Identifikator MC,
Kurs-Mod, Mod-ID-Name. Und dann nach den ersten
Klammern wieder blockieren. Genau so steht Ihnen der
Code hier natürlich auch zur Verfügung. Sie können sich
das GitHub-Repository oder das genauso gut ansehen. In der Idee hier
ist, dass
wir für jeden Block die
Registerblock-Methode im Grunde aufrufen werden , damit wir
dann sofort ein Element haben können dann sofort ein Element haben , das auch
dafür registriert ist. Und was wir dann tun
werden, ist, dass wir hier einen neuen Block
bauen, alles durchgehen uns ansehen, ob es funktioniert
oder nicht. Und dann, nachdem der erste
Block hinzugefügt wurde
, wird auch ein zweiter Block
hinzugefügt. Also öffentlicher statischer, finaler Block oder 40k Malcolm Unterstrichenblock, gleich dem
Registerblock mit dem Namen ist , natürlich kommt Neukalk Unterstrich Block oder in Kleinbuchstaben
geschrieben. Und dieser Name wird hier wieder automatisch
generiert. Und wir werden einen neuen Block
bauen. Du bist nur ein normaler Block. Mit dieser Zeit
Fabric-Rock-Einstellungen sieht
man das davon. Das
kopiert also im Grunde ein Material hier. Das wird materiell sein, eigentlich Material, das bekannt ist. Und dann werden wir sagen
, dass eigentlich der Block, jetzt wird der Block
tatsächlich Metall für
mein nicht so aus Material Metall haben . Und dann nochmals
punkten und Sie können
alle verschiedenen
Einstellungen sehen , die wir einstellen können. Es gibt viele von ihnen, wie Sie deutlich sehen können, einige von ihnen müssen durchschlagen. Also zum Beispiel,
weißt du, breche das BI-Tool. Sie können das sehen, wenn ich das Tool-Tag hier
tatsächlich hinzufügen würde , und Sie können sehen, dass
dies tatsächlich auch
ein roter Durchschlag ist . können wir also nicht benutzen. Diejenigen, die Durchbrüche
haben,
sollten also nicht die
anderen verwenden, die wir verwenden können. Keine Sorge. So kann zum Beispiel so
etwas wie diese
Stärke verwendet werden, was im Grunde die
Härte und Beständigkeit ist. Im Grunde wie lange
dauert es, diesen Block zu brechen. Wir möchten immer
die
Requid-Tool-Methode für jeden Block aufrufen . Im Grunde ist es sehr wichtig. Nachdem wir den Block haben, müssen
wir auch die Artikelgruppe übergeben
. Also Artikelgruppe Verschiedenes
hier in diesem Fall. Aber im Grunde in
der nächsten Vorlesung werden
wir
auch sehen, wie wir
unsere eigene benutzerdefinierte Artikelgruppe hinzufügen können. Deshalb ist dies sehr
wichtig, dass wir dies
als möglicher Umfang hier
haben als möglicher Umfang hier um unser
Leben ein bisschen einfacher zu machen. Im Moment ist dies tatsächlich
der definierte Block. Gehen wir zu unserem
MC-Kurs und gehen wir hier hin. Dies werden also die Blöcke im
Punktregistermodus sein. Stellen Sie sicher, dass dies nach den Items
aufgerufen wird. Dies ist nur die Reihenfolge
, in der ich es gerne mache. Ich glaube nicht ausdrücklich , dass dies immer notwendig ist, aber es macht einfach Sinn. Manchmal ist die Reihenfolge hier vorerst sehr wichtig. Wir
bleiben einfach dabei. Und lasst uns
zuerst
D öffnen , um uns JSON-Datei zu unterstreichen. Und mal sehen. Also was
wäre der Block? Nun, das ist eigentlich
ziemlich einfach. Blockpunkt-AMC-Kurs, der den Unterstrich
neu bereinigt. Und dann natürlich
noch einmal der übersetzte Name oder Malcolm block genau hier. Das beginnt also natürlich jetzt mit einem Block und
das ist Oracle kann blockieren hier ist wieder nur der Name, der in
den Schlammblöcken angegeben wird. Jetzt
sind die JSON-Dateien ein bisschen anders, weil wir
tatsächlich einen neuen Ordner benötigen. Also innerhalb der Vermögenswerte
und einer Armada D,
in unserem Fall MC-Kurs, in unserem Fall MC-Kurs, klicken Sie mit der rechten Maustaste auf ein neues Verzeichnis
namens Bloc States. auch sehr wichtig, dass
dies richtig geschrieben ist. Und so brauchen wir
dort eine neue Datei namens recalc underscore block, die angrenzende das Ego. Und ich mache
das noch einmal manuell
und erkläre es dann. Also brauchen wir geschweifte Klammern
und dann brauchen wir eine Varianz. Stellen Sie sicher, dass dies korrekt geschrieben
ist, alles wieder in geschweiften Klammern. Und dann leere
Anführungszeichen, geschweifte Klammern, Modell,
Olin, MC-Kurs, gefallener Block oder eine Kuh kommen
Unterstrichenblock, oder? Genau so. Jetzt ist das eine sehr interessante
Blocksituation. Wie ich schon sagte, das werden wir in einem zukünftigen Vortrag
sehen. Ich werde
durchmachen, was jeder
dieser JSON tatsächlich bedeutet. Die allgemeine Idee ist, dass es verschiedene Varianten
gibt, die wir definieren können. Derzeit haben wir
nichts zu finden, da unser Block keine
Blockstatus-Eigenschaften hat. Es gibt also
verschiedene Eigenschaften die wir später definieren können, was wir im
Zwischenabschnitt des Kurses sehen werden . Und dann können wir
auf verschiedene Modelle verweisen. Für unseren Fall brauchen wir
tatsächlich ein Modell unter
dem Block älterer Anruf
oder einen Kalziumblock. also im
Modellordner Block rechten Maustaste auf neue Datei für einen Calcium-Unterstrich
blog.js, JSON. Und das Blockmodell
sieht wie folgt aus. Dies wird dem Artikelmodell
ähnlich aussehen. So unterstreichen geschweifte Klammern und
dann der übergeordnete
Block-Schrägstrich all das einfach, dieser Elternteil sagt im Grunde
nur, hey, die Texturen
werden rundum gleich sein. Dann werden wir
noch einmal die Texturen hier haben. Doppelpunkt-Rekord. Und dann alle gefallenen
MC Kurs Dickdarm Block oder ein Kalzium-Unterstrichenblock. Sie können also noch einmal sehen, wir eine Textur haben und
dies wird die Textur für alle
sechs Seiten des Würfels sein, aber deshalb ist es Würfel alles. Und dann ist dies unter MC
Kurs blockieren oder entsperren. Dies ist wieder der Name
der Datei, die wir haben müssen. Das ist also so ziemlich
alles, was es dazu gibt. Und das werden
wir tatsächlich auch kopieren. Das habe ich schon vorbereitet. Sie können das natürlich auch als Download
erhalten, aber bitte achten Sie auch
darauf, dass Sie die Lizenz in
den
Credits genau hier befolgen . Alle Texturen sind also tatsächlich unter einer
bestimmten Lizenz
lizenziert. Stellen Sie also sicher, dass Sie
dem auch folgen, wenn Sie dies in einer öffentlichen
Umgebung
verwenden, oder? Und wir
brauchen eigentlich auch ein Artikelmodell. Das ist die Sache
mit den Blöcken. Es benötigt tatsächlich drei
verschiedene JSON-Dateien, im Grunde alle gleich benannt. Jason eines Blocks 6, ein Blockmodell Jason und
ein Artikelmodell Jason. Ich werde das
eigentlich nicht kopieren. Ich werde
tatsächlich ein neues machen. also im Ordner Elementmodelle mit der rechten Maustaste oder neu alc come
unterstrich loc Jason. Und das
sieht tatsächlich anders aus als die anderen Artikelmodelle, da ein Blockelementmodell
tatsächlich anders ist. Das wird also geschweifte Klammern
haben. Und dann wird es
Eltern-Dolon,
MC-Kursblock
oder Schrägstrich
oder einen Kalzium-Unterstrich haben MC-Kursblock
oder Schrägstrich . Dies
bezieht sich hier auf das Blockmodell und macht
es so, dass der Artikel anstelle des Inventars auf
diese 3D-Weise angezeigt
wird , dass Blöcke normalerweise im Inventar
angezeigt werden. Aber noch einmal werden wir dies in einem späteren Vortrag etwas
genauer
sehen in einem späteren Vortrag etwas
genauer wenn wir
alle JSON-Dateien durchgehen. Aber jetzt haben wir die
drei JSON-Akten. Wir haben die Textur und
die Übersetzung erledigt und welche Blöcke die mobile
UX-Methode registrieren, wird auch genannt. Also mal sehen, ob es funktioniert. Alles klar, wir sind in Minecraft, also lass uns hierher gehen. Das früheste kann das
Orakel blockieren, und wenn ich es
dort unten setze, ist es das auch. Also funktioniert alles
völlig gut. Also wollte ich
eine kurze Kleinigkeit erwähnen. Es gibt im Grunde zwei Abschnitte , in denen Sie ein Problem haben können. Entweder funktioniert die Textur innerhalb
der Welt nicht. Sobald ich den Block eingestellt habe, könnte
er ein schwarzes
Ende rosa Texturjahr haben, oder die Textur im Inventar funktioniert nicht. Es gibt zwei verschiedene Dinge
, die vor sich gehen könnten. Wenn die Textur der
Welt nicht funktioniert, bleibt der
Block höchstwahrscheinlich die JSON-Datei. Das ist zu lahm. Wenn die Textur im
Inventar nicht funktioniert, ist
es das Artikelmodell
Jason, das schuld ist. Und wenn beide nicht
gut funktionieren, kann
es dann einen
dieser Gründe haben. So sehr wichtig. Das ist im Grunde die
allgemeine Idee, oder? Und nur damit gezeigt
wird, wie Sie einen neuen Block
hinzufügen können ,
wähle ich diesen im Grunde aus und drücke Strg C und dann
Control V, um ihn einzufügen. Und dann werden wir
das in Oracle oder hier ändern, und noch einmal hier
, oder? Der Name ist auch sehr wichtig. Der Rest, wenn Sie die Dinge
ändern möchten , die Sie
können, ändern Sie sie natürlich. Sagen wir zum Beispiel die Lautstärke oder es ist eigentlich nicht stark. Und es ist eigentlich kein
Metall oder es ist wirklich Metall. Es ist eher wie Stein. Das ist auch total in Ordnung. Und damit bin ich eigentlich
sehr zufrieden. Jetzt ist der Block im Spiel, aber er hat
noch keine Textur und all diesen Jazz. Aber wir müssen im Grunde auch einen Block C Jason dafür
hinzufügen, ein Blockmodell JSON
und Item Milk Jason. Was ich normalerweise mache, ist, dass ich
einfach einen der bereits
existierenden Jasons nehme und
ihn einfach so kopiere, oder? Ziehen Sie es hinein, während Sie die Strg
gedrückt halten, und dann können Sie den Namen hier
ändern. Also Oracle oder, und dann
auch hier drin. Recalc ODER, und dann auch das Gleiche für das Blockmodell
, oder? Anstatt dass Oracle blockieren kann, werden
wir
Pre-Calc oder ein Jahr haben. Und dann
wird dies auf
den Rückruf oder die Textur anstelle
der Blocktextur hinweisen . Und dann wird
das Letzte sein, dass das Artikelmodell auch umbenannt wird
oder hier. Und dann auch hier drüben. So füge ich normalerweise neue Blöcke
hinzu, oder? Ich kopiere nur einen. Das grundlegende Beispiel dafür, dann das Gleiche hier
in der Sprache, indem Sie dies
einfach duplizieren, das Komma hier
hinzufügen und dann sicherstellen,
dass dies oder oder alles gut funktioniert. Dann füge ich
auch die Textur hinzu, die Ihnen natürlich
zur Verfügung steht oder auch herunterladen kann. Das Ego und jetzt das Kalzium oder der Block werden dem Spiel
ebenfalls hinzugefügt. also nur um der Vollendung willen sehen, Lassen Sie uns also nur um der Vollendung willen sehen, ob es funktioniert. Richtig, wir sind wieder in Minecraft, also gehen wir einfach zum
Tab „Verschiedenes “ und mal sehen, dass es
schon Kalzium ist oder
jetzt auch im Spiel ist, lass es uns einfach ablegen,
alles funktioniert völlig gut. Das ist auch einer der Vorteile. Wenn Sie einen bereits
funktionierenden Block haben und
die JSON-Dateien kopieren, funktioniert es
normalerweise auch, wenn
es für einen Block funktioniert, auch für den anderen
Block. Das ist also wieder,
ziemlich cool, oder? Aber das wird es schon
für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Der gesamte Code steht Ihnen in den Ressourcen
zur Verfügung, und wir sehen uns in der
nächsten Vorlesung. Also ja.
41. (Grundlagen) Hinzufügen von benutzerdefinierten Elementargruppe: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
unsere eigene benutzerdefinierte
Artikelgruppe hinzufügen . Dies ist eigentlich
eine sehr einfache Übung und erfordert nicht viel,
naja, im Grunde genommen
Codewechsel. Innerhalb unseres Artikelpakets wir mit der rechten Maustaste auf eine
neue Java-Klasse die
als Modus-Elementgruppen bezeichnet wird. Und dann werden
wir drinnen
eine neue öffentliche statische
endgültige Item-Gruppe erstellen . Alles natürlich. Dies ist also nur der Name
der Variablen hier, und dies
entspricht dem Stoffelement. Group Builder
erstellte einen neuen Bezeichner, MC Course Mod, der ID
AMA Pferd als Name
von like als String modelliert . Und nach den
ersten Klammern werden
wir einen Lieferanten einrichten, um Klammern
zu öffnen und zu schließen,
gefolgt von diesem Pfeil hier
mit einem neuen Artikelstapel. Und dann
geben wir mehr Gegenstände oder einen Kalziumbarren ein und
enden dann mit einem Semikolon. Das ist jetzt also eine Artikelgruppe. Wenn wir eine zweite
hinzufügen wollten, könnten
wir das einfach kopieren. Ich bin nur ein Kurs 2, ich schätze so etwas. Dann ändere natürlich auch hier
den Namen, oder? Das ist sehr wichtig, aber
so würden Sie
eine zweite hinzufügen und dann können Sie
sich auch darauf beziehen. Aber für unsere Zwecke werden wir
einfach einen hinzufügen. Und
wie nennen wir das natürlich? Nun, statt der Klasse „
mehr Blöcke können
wir hier einfach den
Gegenstand Verschiedenes
durch mehr
Artikelgruppen ersetzen . Und dann geht
das Gleiche genau hier. Also
kopiere ich einfach dieses Control C, Control V. Und dann gilt das
Gleiche für je mehr Gegenstände
hier
das Diverses genannt werden. Wir werden einfach hier in
der Kursgruppe vorbeigehen. Und das wird gut werden. Entfernen Sie das auch einfach. Da gehst du. Jetzt ist
alles schön und ordentlich. Und natürlich, der
Item-Stack hier, bezieht sich auf
das
eigentliche Ding, das auf der
eigentlichen Registerkarte angezeigt
wird , oder? Jetzt wird es Willkommensartikel oder ein Baumwoll-England sein
, das ausgestellt wird. Man könnte zum Beispiel
auch sagen, wenn Sie möchten ein Er- oder ein Baumwollblock
ausgestellt wird, könnten
Sie das auch einsetzen und das würde auch funktionieren. Aber wir
bleiben beim Barren, das wird gut werden. Und dann
ist dieser Kurs hier eigentlich sehr wichtig , weil wir auch
die Übersetzung dafür hinzufügen möchten. Also im Ohr und
unterstreicht uns JSON-Datei, wir werden einfach ganz
unten gehen. Das wird dieser
Gegenstand
sehr interessant sein und dann das Gate g.
das tatsächlich in Großbuchstaben
geschriebene Gate gruppieren . Sehr interessant mit Ihrem
MOD ID MC Kurs in unserem Fall. Und dann ist natürlich der Name
, den wir dort gegeben haben. Und das wird
nur die Registerkarte „Kurs“ sein. Das wird gut werden. Dies ist jetzt der
Name, der
angezeigt wird, wenn wir den
Mauszeiger über den Tab bewegen. Und noch einmal,
dieser Kurs hier, genau das hier. Nachdem wir das
hinzugefügt und in den Blöcken weitere Elemente
, Klassen hinzugefügt haben, Mal sehen, ob es funktioniert oder ob es wieder in
Minecraft antwortet und mal sehen. Das ist also ein sehr
guter Hinweis darauf, ob wir hier eine zweite Seite
haben und los geht's. Die Registerkarte „Kurs“, die Registerkarte „
Kurs“ und alle unsere Artikel oder unsere
Box sind da drin. Aber das ist wirklich großartig
und wir können sie
herausnehmen und verwenden, wie wir es gerne hätten. Das ist also wirklich echt cool. Aber in Zukunft werden
wir natürlich die Registerkarte „Kurs“ verwenden. Daher empfehle ich dringend, auch einen
eigenen Tab zu erstellen. Dies ist also im Grunde genommen ein Missbrauch
in allen zukünftigen Vorträgen. Aber vorerst ist das 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.
42. ASSINGMENT 5: Benutzerdefinierte Blöcke und Gegenstände: Willkommen zur ersten Aufgabe hier im
Fabric-Kurs für 118. Und Ihre Aufgabe
besteht darin, den Moduselementen eine Zeile oder einen
Kalziumgegenstand
hinzuzufügen. Und natürlich alle notwendigen JSON-Dateien
sowie die Texturen. Die Texturen
werden Ihnen zur Verfügung gestellt. Bitte beachten Sie, dass sie unter
internationalen Flügen von
CC BY SA 4 lizenziert
sind . Wenn Sie
sie also in Ihrem Projekt und
in einem offenen Projekt verwenden möchten, stellen Sie
sicher, dass Sie dort einen angemessenen
Kredit gewähren. Und dann
solltest du auch zwei Blöcke machen, einen tiefen Schlitz oder ein Kalzium oder, und den Raub
Kalzium oder Block. Die
Texturen dort werden also wieder unter derselben Lizenz
bereitgestellt. Die Texturen werden ebenfalls bereitgestellt und alles ist auch auf dieser Seite
geschrieben, Sie sollten die
irgendwo geschriebene
Aufgabe als
tatsächliche Aufgabe sehen . Ich musste vermuten, dass das nicht
länger als eine Runde dauern
sollte ,
ungefähr 20 Minuten. Vielleicht musst du
zurückgehen und dir die vorherigen Vorträge noch einmal ansehen. Wir werden das im Grunde
wirklich festigen. Aber sonst
sollte das nicht allzu lange dauern. Und ich würde sagen, viel
Glück und wir
sehen uns in der Lösung.
43. LÖSUNG 5: Benutzerdefinierte Blöcke und Elemente: In Ordnung, also schauen wir uns
die Lösung an , um die beiden Schlösser
hinzuzufügen,
das Tröpfchen oder Kalzium oder in
der Gesteinsrekord kann blockieren. Natürlich ist es im Grunde
nur eine Übung, diese
zu kopieren, die Namen hier zu
ändern und
sicherzustellen, dass wir hier natürlich die
Artikelgruppe
auswählen. Und dann fügen Sie in den Modellgegenständen das Rory-Kalzium
hinzu , kopieren Sie es
einfach und ändern Sie den Namen hier. Und dann sind natürlich nur die JSON-Dateien alle
ziemlich einfach. Sie sind im Grunde genau
die gleichen wie die anderen weisen in diesem Fall
nur auf ein anderes
Modell hin. All diese stehen Ihnen natürlich wieder in
gewisser Funktion im
GitHub-Repository zur Verfügung gewisser Funktion im
GitHub-Repository und auch in einer nur, damit Sie jeden
von ihnen einzeln ansehen
können. Und ich glaube, ich werde
sie auch zum Download haben. Insgesamt
sollte das also nicht zu verrückt sein. Dies sollte eigentlich eine ziemlich einfache Übung sein,
die Sie befolgen können. Und ich hoffe, dass du das geschafft
hast. Wenn auf
dem Weg Fragen auftreten oder auf dem Weg
entstanden sind, zögern Sie nicht, Fragen über
das
Diskussionsfrage-und-Antwortsystem zu stellen. Ich hoffe, du lernst
mit dieser Aufgabe etwas und wir sehen uns in
der nächsten Vorlesung. Also ja.
44. (Grundlagen) Hinzufügen benutzerdefinierte Rezepte: Oder ich begrüße zurück zum
Stoffkurs für 118. In diesem Vortrag werden
wir uns ein individuelles Rezept
ansehen. Für benutzerdefinierte Rezepte insgesamt könnte
man sagen: Nun,
sie werden wahrscheinlich sehr kompliziert
sein. ist jedoch
eigentlich nicht der Fall. Einige Leute von Ihnen
haben in der Vergangenheit möglicherweise bereits mit
Datenakten
herumgespielt . Und es ist ziemlich
dasselbe. Also gehen wir zu unserem
Ressourcenordner. Und anstatt
dies in den Assets-Ordner zu legen, müssen
wir tatsächlich einen neuen anstelle
des
Ressourcenordners namens data
erstellen . Und dann erstellen
wir dort einen
neuen Ordner mit unserem Modell. In unserem Fall
natürlich MC-Kurs. Und dann möchten
wir drinnen den Ordner „Rezepte“ erstellen. Jetzt ist es wieder sehr
wichtig, dass
hier alles genau so geschrieben wird, wie es ist, also muss das genau mit
Ihrer Modell-ID übereinstimmen und Rezepte müssen
auch wie
diese oder Kleinbuchstaben geschrieben werden. Ich wollte
das nur noch einmal erwähnen. Und jetzt drinnen werden
alle unsere Rezepte gehen. Wie sehen sie aus? Nun, ich
schreibe ein Rezept aus. Sie sind jedoch nur
aus Gründen des Arguments, ich klicke mit der rechten Maustaste auf Neue Datei und
wir nennen dies den
Oracle-Einkommensunterstrich Block, Unterstrich von index.js. Und was manchmal
passieren kann ist, dass
unten rechts hier das Jason Minecraft-Rezept Jason sehen kann , dass das Schema im Grunde genommen automatisch erkannt
wird, aber Sie können auch hier
reingehen, oder? Für einige JSON-Dateien öffne
ich diese einfach. Zum Beispiel
sehen Sie kein JSON-Schema. Du kannst immer
mit Rot reingehen und
darauf klicken und dann grundsätzlich nach einem Rezept und Setups
suchen. Sie haben Mikrowellen-Datenrezept. Es gibt also ein paar Sachen hier. Du brauchst es nicht unbedingt. Der einzige Vorteil, den du bekommen
wirst, ist, wenn du anfängst Sachen in C
zu tippen, dass du hier einige Vorschläge
bekommst. Aber in einem Moment zeige ich
Ihnen, wie Sie Vanille-Rezepte tatsächlich kopieren
können, was
unser ganzes Leben viel einfacher machen wird . also keine Sorgen. Also fangen wir mit den geschweiften
Klammern und dann mit einem Typ an. Jetzt ist der Typ im Grunde genommen welche
Art von Handwerk das ist. Und Sie können sehen, dass
es eine Reihe von Sachen für diesen
geformten, formlosen, dauerhaften Kampfer gibt, das
Kochen,
Schmelzen, Schmieden, Rauchen
und Steinschneiden. Insgesamt
werden wir uns im Grunde genommen ansehen, dass die
Form, formlos, das Schmelzen und
das Sprengen über den Rest
ziemlich gleich sind. Es gibt keinen großen
Unterschied in allen von ihnen. Zuallererst
werden wir
einen Blick auf ein Shape-Rezept werfen. Das ist also ein Formrezept. Wir müssen hier tatsächlich ein Muster
definieren, aber dies ist das Muster,
das im Grunde eine Liste ist und
normalerweise drei Strings enthält. Und normalerweise
haben diese drei Saiten die Länge von drei. Diese Ringe repräsentieren also
den Basteltisch. Also wenn ich das mache, richtig,
also fülle ich
alle, alle mit Asche-Extras aus
Gründen der Argumentation hier, dann sollten Sie
bemerken,
dass das ein Drei-mal drei ist . Das ist buchstäblich
die Handwerksbank. Und das
stimmt genau. Das Muster hier repräsentiert also die
Handwerksbank. Wenn ich
das zum Beispiel machen würde, muss ich die Außenseite füllen und
den mittleren Slot grundsätzlich leer lassen . Und dann, weißt
du, könntest du dasselbe
mit so etwas machen. Das ist also eine allgemeine Idee, wie Sie dieses Muster
machen können. Jetzt
müssen Sie nicht unbedingt drei Saiten haben, und sie müssen auch nicht unbedingt drei lang sein. So etwas,
das wäre zum Beispiel die
Tür. Weil Sie die Tür
entweder auf der linken Seite
des Basteltisches
auf der rechten Seite
des Basteltisches grafieren entweder auf der linken Seite
des Basteltisches können. Und das würde
sich im Grunde darum kümmern. Auch hier ist
ein bisschen Experimentieren
natürlich sehr klug. Und auch gegen
Ende der Vorlesung werden
wir uns die Vanille-Rezepte
ansehen ,
damit Sie
dann auch von diesen kopieren können. Dann müssen wir einen Schlüssel definieren. Jetzt ist der Schlüssel hier sehr
interessant, denn das muss irgendwie etwas
zusammenhängen, oder? Was bedeutet der Hashtag-Alarm? Ich weiß es nicht genau. Also müssen wir das definieren. Wir machen Hashtag Doppelpunkt und dann noch einmal
geschweifte Klammern. Und drinnen definieren
wir einen Gegenstand. Dies wird natürlich MC-Kerne oder ein
Kalziumunterstrich sein. Und das bedeutet jetzt, dass der Hashtag hier dieser bestimmte Gegenstand sein
soll. Aber sei auch nicht zu verrückt, dann können wir hier am Ende ein
Ergebnis machen. Und das wird
MC-Kurs sein. Oder ein Kalzium-Unterstrichen-Block. Denn nichts zu Verrücktes
sollte hier drin sein. Dies sollte alles ziemlich
vernünftig sein, wie wir die OriC-Begrüßung
Ingrid hier als Schlüssel stellen werden. Und dann wird dies im Grunde
genommen erkannt. Hey, wir müssen
neun oder Kalzium-Ingles einsetzen , um einen oder einen
Kalziumblocker als Ergebnis zu bekommen. Jetzt wird die Frage kommen. Was ist mit andersherum? Wenn ich also ein Orakel in die Handwerksbank stecken kann , wie bekomme ich neun oder einen
Calciumbarren daraus? Nun, das
kopiere ich einfach. Alle aktuellen Dateien Ihnen natürlich
zur Verfügung. Also werden wir uns das in C ansehen. Dies ist jetzt ein formloser Typ. Anstelle eines Musters haben
wir jetzt Zutaten. Und Sie können sehen, dass wir haben, haben hier
nur eine Zutat. Das Orakel kann blockieren
und es würde für Calcium England
zu neun werden. So können Sie hier auch eine
Zählung angeben, die übrigens auch für das
geformte Rezept funktioniert. Das ist überhaupt
kein Problem. Das funktioniert also auch. Das sind also zwei
Beispiele dafür die im formlosen Rezept geformt sind. Werfen wir einen Blick auf das Schmelzen
und das Sprengen. Ich kopiere die
auch. Genau hier sind wir. Sie können also sehen, dass der
Typ hier nur springt und dann schmelzt hier
einfach. Und noch einmal muss
man eine Zutat definieren. In diesem Fall können Sie nur eine Zutat
definieren. Haben Sie natürlich
nur einen Eingangsschlitz im Hochofen
oder im normalen Ofen. Dann kannst du sagen, hey,
was ist das Ergebnis hier? Sie können sogar definieren, wie
viel Erfahrung Sie von jedem
einzelnen Stinken
bekommen, und dann auch die Kochzeit. Wie lange in Zecken
wird das im Grunde dauern. Man sieht, dass das Sprengen
natürlich schneller
ist als das
eigentliche Schmelzen. Eins. Eine weitere Sache, die ich Ihnen auch zeigen
wollte, ist zum
Beispiel, dass ich diese Stapeldiamanten
von einem anderen Sternenrezept habe . Und Sie können sehen, dass ich
sowohl meine eigenen Gegenstände als
auch Minecraft-Artikel verwende . Und Sie können sehen, dass es damit überhaupt
kein Problem gibt. Sie müssen nur den
Minecraft-Namespace hier und
dann den Namen des Elements angeben . Das
ist also so ziemlich alles, was es
zum Basteln von Gegenständen gibt
, die nicht Ihre eigenen sind. Sie können Minecraft-Gegenstände herstellen,
die völlig gut funktionieren, obwohl dies auch ein
Beispiel dafür ist. Und jetzt, bevor wir
uns das ansehen, gehen wir tatsächlich runter, damit wir uns alle Daten
und Asset-Dateien von
Minecraft ansehen können alle Daten
und Asset-Dateien von
Minecraft ansehen und Asset-Dateien von , indem wir
im Projektfenster nach unten gehen, das externe Bibliotheken, die das
öffnen und
dann runter gehen. Und das sieht man im Grunde genau hier, genau hier. Also haben wir das Netz Minecraft, Minecraft-Projekt abgebildet
und so weiter und so weiter. Diese vor
der schwarzen großen Liste ,
von denen alle gleich aussehen, genau oben haben
wir diese. Wir werden
das öffnen und Sie
können sehen, dass es
einen Assets-Ordner
gibt, einen Datenordner und
es gibt sogar einen Netzordner. Im net-Ordner ist
der gesamte Code
in dem geschrieben , was wir
im Grunde auch
den gesamten Code ansehen können . Aber das werden wir
vorerst nicht machen. Wir interessieren den Datenordner
Minecraft, dann Rezepte. Und du siehst, ich könnte mir
jetzt jedes
dieser Rezepte ansehen , das die Beine hier nicht einmal
wichtig
wären, oder? Also könnte ich mir alles
ansehen. Aber zum Beispiel, Oh, wie funktioniert das Schmelzen von Kohle oder oh, so funktioniert es. Okay. Fair genug. Wir können zum Komposter gehen. Wie stellt man das her? Oh, ja, natürlich hast du das
so gestaltet. Sie können sehen, dass
Sie hier Zugriff auf
alles haben , was Sie möchten. Sie sollten also wirklich in der Lage
sein, fast
alles in Bezug auf
die Rezepte zu tun alles in Bezug auf , die Sie
gerne hätten, mit diesem ausgestattet, Sie haben im Grunde
Zugriff auf alles. Ich kann
es nur wärmstens empfehlen
, wenn Sie dann im Grunde eine davon nehmen möchten . Sagen wir zum Beispiel, der Kochlachs hier,
du meinst, okay, ich möchte das nehmen. Was Sie tun, ist, dass Sie
gerade Strg drücken C wählen. Dann können Sie zurück zu
Ihrem eigenen Rezeptordner
Control V wechseln , um ihn einzufügen. Und dann hast du es da drin. Und dann kannst du
es
grundsätzlich ändern , wie du möchtest. Aber das ist die allgemeine
Idee, wie es geht. Ich
lösche es einfach noch einmal , weil wir das nicht brauchen werden
. Das wird sowieso in Ordnung sein, nachdem wir all diese hinzugefügt haben, Mal sehen, ob es funktioniert oder
ob wir selbst in Minecraft sind. Lasst uns zuerst sehen,
ob wir
den Block mit dem
Orakel in kommenden Minuten herstellen können oder nicht den Block mit dem und los geht's. Wir können es sehr einfach machen. Und was Sie auch
feststellen werden, ist, dass, sobald Sie die Rezepte
einmal gemacht haben, sehen, dass sie auch
hier in den eigentlichen
Rezeptbüchern erhältlich
sind . Das ist also ziemlich cool. Mal sehen, ob ich den Raub
riechen kann, zähle sie auch hier. Und natürlich kann ich das, und es sollte
entweder im normalen Ofen
oder im Hochofen funktionieren . Nun, ja, dieser ist
definitiv schneller, also gehen
sie leicht genug. Und du hast gesehen, dass ich
es auch umgekehrt kann. So funktioniert das auch. Das ist ziemlich cool, wenn
ich es selbst sage. Natürlich, alle Blöcke, die wir haben, könnten
noch einige
Rezepte fehlen. Wir
werden diese tatsächlich
in der nächsten Aufgabe haben , die nach
der nächsten Vorlesung tatsächlich stattfinden wird, wo Sie im Grunde genommen den Rest
der Rezepte hier
hinzufügen müssen . Und diese werden
dann natürlich auch verfügbar sein. also keine Sorgen. Und natürlich haben Sie immer Zugang zu den
Rezepten genau hier. Theoretisch sollte dies eine sehr, ziemlich einfache Übung sein. Aber vorerst ist das für diese
Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und etwas Neues
gelernt, wenn er es getan hätte. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
45. (Grundlagen) Benutzerdefinierte Block mit Loot Tabellen: Oder ich begrüße zurück zum
Stoffkurs für 118. Und in dieser Vorlesung
werden wir uns benutzerdefinierte
Verlusttabellen ansehen ,
obwohl
unsere benutzerdefinierten Routentabellen im Grunde genommen die Dinge definieren, die aus
einem Block fallen, wenn Sie sie minen. Also haben wir in unseren Blöcken das Orakel blockieren und
das Orbital OK. Und wenn Sie hoffentlich
die erste Zuweisung erledigt haben, haben
Sie auch die tiefe Schiefer oder mehr und die Zeile
oder eine Spalte oder einen Block. Jetzt werden wir jetzt
Drops für den Block implementieren und das oder, oder ist natürlich etwas Besonderes hier weil es einige Unterschiede geben wird ob Sie ein Tool haben , das tatsächlich hat eine
Zellberührung drauf. Und wenn das der Fall ist,
fällt natürlich der
tatsächliche oder der Block ab. Sonst sinkt das rohe oder
ein Kalzium. Obwohl es ein paar
Dinge gibt, die wir brauchen. erneut in unserem Datenordner im MC-Kursordner mit der rechten Maustaste auf ein neues Verzeichnis
namens Loot Underscore-Tabellen. Wieder einmal sehr
wichtig, dass dies genau so
geschrieben wird . Dann drinnen von dort in einem neuen
Verzeichnis namens Blöcke. Aber ich werde hier
eine neue Datei
namens Oracle Come Unterstrich
Block Dot-Dot-Dot-Dot-Dot-Dot-JSON erstellen . Was nun sehr wichtig
ist, ist, dass dieser Name genau hier mit dem hier angegebenen
Namen übereinstimmen muss. Aber das unterscheidet sich
von den Rezepten, weil wir auf
die Rezepte nicht wirklich von einer bestimmten Sache angewiesen sind. Wir konnten das
Ergebnis an der Seite definieren, während diesmal in
den Rodeltabellen der Name der Datei erneut dem hier angegebenen
Namen übereinstimmen
muss. Sehr wichtig, oder? Wir werden es
einfach durchmachen, also werden
wir einen Typ haben. Und das wird
Minecraft-Doppelpunktblock sein denn natürlich
ist dies ein Blockbeuteltisch. Dann werden
wir einen Testament haben. Und das ist eine Liste. Und dann im Grunde genommen eine
geschweifte Klammer hier wieder, Rollen, Rollen eins. Und dann haben wir hier
ein paar Einträge, was eine andere Liste ist. Und da drinnen werden
wir
einen Typ haben, der Minecraft-Gegenstände ist. Also möchten wir einen Artikel hier fallen lassen. Der Name dieses Elements ist MC Course Colon oder ein
Malcolm-Unterstrichenblock, oder? Das könnte also ziemlich
verrückt für dich aussehen und das ist
absolut in Ordnung. Denn insgesamt besteht
der allgemeine Kern der Rodeltabellen darin, dass
sie ziemlich kompliziert sein können. Dies ist definitiv ein
Beispiel für ein sehr, sagen
wir einfach oder ein Symbol 1. Allerdings können sie definitiv viel
komplizierter werden. Zum Beispiel, der alte,
ich werde das tatsächlich hier
kopieren. Also eine Zusammenfassung oder, und
Sie können sehen, dass dies etwas komplizierter ist ,
wie Sie deutlich sehen können,
dass Sie sehen können, dass
wir zwar nur einen Eintrag haben, dies jetzt
vom Typ Alternativen ist, was bedeutet, dass im Grunde gibt es zwei Alternativen. Wir haben entweder einen Artikel , bei dem
wir, wenn eine bestimmte
Bedingung erfüllt ist , diese auswählen werden. Und ansonsten haben wir hier nur einen Artikel mit einem
bestimmten Betrag. Diese unzüchtigen Tabellen können sehr kompliziert und
sehr schnell
werden , wie Sie deutlich sehen
können. Und die allgemeine Idee ist,
dass eine gute Ressource gibt. Es gab tatsächlich zwei
gute Ressourcen, die ich wärmstens empfehlen kann. Eine der Ressourcen ist
der Wiki-Eintrag hier. Das ist also der
Minecraft-Wiki-Beutetabellen-Eintrag. Ich empfehle dringend, einen
Blick darauf zu werfen, da man sich
im Grunde all
die verschiedenen Dinge ansehen kann sich
im Grunde all
die verschiedenen Dinge ansehen , die da drin sind. So wird das im Grunde genommen
beschrieben. Insgesamt ist
dies zum ersten Mal etwas kompliziert
zu lesen,
aber ich empfehle dringend, wenn Sie wirklich absolut
benutzerdefinierte Routentabellen
wünschen, müssen
Sie sich das
ansehen und es einfach nur tun müssen Werfen Sie einen Blick darauf und gehen Sie das im Grunde
durch, dann gibt es noch eine andere
Sache und
das ist der Beutetisch-Generator
von einer Rakete GitHub IO. Das ist unglaublich nützlich und Sie können im Grunde einfach
alles auswählen , was Sie wollen, oder? Man kann also sagen, ich
wollte nur dann
steinen , wenn es bestimmte Dinge gibt. Zum Beispiel können Sie hier
eine zufällige Chance haben. einmal,
Standortüberprüfung, sogar Match-Tool. Es gibt eine Menge Dinge,
die Sie hier machen können, und ich kann es nur
wärmstens empfehlen, wenn Sie sich
diesen Link ansehen , einige Dinge
generieren und
sicherstellen, dass Sie 11,
18 Jahre alt sind hier, weil es manchmal
Unterschiede zwischen
der Version gibt. Wenn Sie nun
nichts benötigen, was, sagen
wir, aus dem
Reich der Vanille herauskommt, dann können Sie
natürlich auch hier unten zu
den externen
Bibliotheken gehen , zu diesem
hier, net Minecraft, minecraft-Projekt um
und so weiter und so weiter in den Datenordner
Minecraft-Loottabellen. Und dann schauen
Sie sich im Grunde alle Rodeltabellen an , die auch die
normalen Blöcke haben. Zum Beispiel meine ich,
was könnte es sein? Die Truhe ist eigentlich nicht
interessant, weil das Fallenlassen
der Brust in diesem Fall
anders gehandhabt wurde. Aber wo haben wir sonst noch? Ich meine, was könnte interessant
sein? Du könntest, Gras könnte
interessant sein, oder? Der Grasblock
eigentlich genau hier. Wieder einmal haben wir
Alternativen, oder? Wenn du Seidenberührung
hast, bekommst du den Grasblock,
sonst bekommst du Dreck. Daher kann ich es noch
einmal empfehlen, wenn es etwas gibt, das in Vanille
bereits existiert, ein Blick auf
die externen Bibliotheken wird ein Blick auf
die externen Bibliotheken Ihnen
das Leben erleichtern. Aber nur diejenigen hinzuzufügen
, um Tabellen zu verlieren, ist eigentlich nicht alles
, was wir jetzt tun
müssen . Dies ist
sehr wichtig. Überspringen Sie diesen Schritt
unter keinen Umständen. Sonst wird es
nicht funktionieren, oder? Also müssen wir tatsächlich auch ein paar Tags
hinzufügen. Wir haben noch nicht über Tags gesprochen, aber wir werden es sehr bald tun. Vorläufig können
wir sie jedoch einfach
als eine Art Liste von Elementen, Blöcken oder was auch immer wir denken
können, die
einen gemeinsamen Zweck haben oder in irgendeiner Weise
gruppiert sind. Innerhalb unseres Datenordners wir mit der
rechten Maustaste auf ein neues Verzeichnis namens Minecraft. Jetzt haben Sie vielleicht
schon einmal davon gehört. Jetzt erstellen wir
dort ein neues
Verzeichnis mit dem Namen Tags. Und dann erstellen
wir drinnen ein neues Verzeichnis namens blocks. Und dann brauchen
wir nicht
zuletzt in Bezug auf ihre auch ein neues
Verzeichnis namens mineable. Eigentlich abbaubar
sie vor und jetzt werde ich tatsächlich
die oder abbaubaren Tags hier kopieren . Und ich werde es
in einem Moment erklären, wir brauchen auch drei
Tags oder die Blöcke. Dies
steht Ihnen natürlich alles im GitHub Repository oder einer
Einzelperson genauso gut zur Verfügung. Und das ist auch genau hier wieder in
den externen Bibliotheken zu finden, direkt im Datenordner gehen
wir zu Tags Blöcken, man als minable sehen kann. Es gibt auch genau diese
vier JSON-Dateien. Und dann im Box-Ordner hier sind
die anderen vier, die anderen drei
sind tatsächlich auch verfügbar. Was heißt das also? Nun, wir müssen in der Lage sein, die Unfähigkeit oder unsere Blöcke
festzulegen. Das heißt, wenn Sie
sich diese Rate ansehen können, habe ich bereits den
Orakel-Komorbiditätsblock,
die rohe Neukalk und Block
und die tiefe Schiefer oder
eine Telekommunikation oder zur angrenzenden
Spitzhacke hinzugefügt die rohe Neukalk und Block
und die tiefe Schiefer oder . Dies bedeutet, dass
diese Blöcke
mit einem Schwein abbaubar sind. Das sollte sinnvoll sein, das sollte hier ziemlich
vernünftig sein. Nichts zu verrückt. Jetzt gilt das
Gleiche für die Bedürfnisse Diamond braucht
Eisenerz, braucht Steinwerkzeug. Wir können im Grunde
definieren, welche
Werkzeug-Ebene es benötigt,
um dies abzubauen. Also das Eisenwerkzeug hier habe
ich es im Grunde genommen so
definiert, dass Eisenwerkzeuge
benötigt werden. Zumindest wäre jeder dieser
Blöcke nicht nur mit einem
Steinwerkzeug abbaubar. Das ist also eigentlich
sehr interessant. Es braucht also Eisenerz, und das ist im Grunde genommen das
,
was Sie hier hinzufügen müssen . Du kannst hier buchstäblich einfach
ein neues hinzufügen, oder? Also kenne ich den MC-Kurstest nicht. Und dann stellen Sie im Grunde
einfach sicher, dass wir auch hier ein Komma
haben.
Und das ist so ziemlich genau das. Das ist also alles, was
du tun musst. Stellen Sie sicher, dass alle
Blöcke, die Sie
in diesen Tag-Dateien definieren , tatsächlich gültig
sind. Du kannst also nicht einfach so wie
ich den Test gemacht habe. Wenn das nicht existiert, tritt möglicherweise ein Fehler auf. Das ist also sehr wichtig, aber Sie benötigen diese Tags und Sie müssen alles
in Ihrem Inneren
definieren , damit sie ihre Beute im Grunde
fallen lassen Das ist eine sehr wichtige Sache. Ich kann Ihnen wärmstens empfehlen, dies zu tun. Und
das steht Ihnen natürlich noch einmal zur Verfügung. Ansonsten
ist es nicht
so kompliziert,
diese Dateien zu erstellen , wie Sie deutlich sehen können, sie sind nicht so verrückt. Aber mal sehen
wir vorerst, ob es in Minecraft funktioniert oder
schneller funktioniert. Also lasst uns einfach
versuchen, das mit
der Steinspitzhacke abzubauen ,
und du kannst sehen, dass es schon lange dauert. Und es, es ist, das sollte
kein Ergebnis liefern. Und natürlich tut es das nicht. Wenn du die Eisen-Spitzhacke benutzt, funktioniert sie und sie
fällt auch genau hier ab. Aber lasst uns das
Gleiche versuchen. Und Sie können sehen, dass unsere
rohe oder eine Telekommunikation sinkt. Und wir können das auch mit
dem Nether schreiben X zum Beispiel versuchen . Ich meine, das
dauert eigentlich so lange. Dies ist natürlich ein sehr guter Hinweis darauf, dass
dies nicht funktioniert, oder? Und dann
funktioniert Diamant natürlich auch, weil es funktioniert,
naja, im Grunde Eisen oder darüber, das ist die allgemeine Idee hier. Das ist also ziemlich cool. Und dann nur zur
Vollendung willen eine Diamant-Pickaxe
mit Seiden-Touch. Und Sie können sehen, dass es
jetzt tatsächlich das Oracle CRM
fallen lässt oder auch
hier, oder? Eine weitere Sache, die ich erwähnen
wollte, ist, dass nicht so gut funktioniert,
wenn Sie
das
Requirets-Tool hier
nicht aufgerufen haben dies möglicherweise auch nicht so gut funktioniert,
wenn Sie
das
Requirets-Tool hier
nicht aufgerufen haben. Dies ist also eine weitere Voraussetzung
, die sehr wichtig ist. Ich wollte das nur
erwähnen, weil ich mir nicht hundertprozentig
sicher bin, ob ich das auch im
Block-Tutorial erwähnt habe oder nicht, aber dies wird definitiv auch für jeden Ihrer Blöcke benötigt . Das ist also sehr wichtig. Aber sonst wäre dies
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.
46. ASSINGMENT 6: Benutzerdefinierte Rezepte und Loot: Alles klar, Willkommen zur
zweiten Aufgabe hier für den
Minecraft-Teil dieses Kurses. Und in dieser Aufgabe sollten
Sie
die folgenden Dinge tun. Jetzt
haben Sie natürlich die eigentlichen Aufgaben hoffentlich auch vor
sich. Die Idee ist jedoch
, dass Sie
Beutetabellen sowohl für den Block,
die tiefe Schiefer oder einen Falken oder für die Zeile oder eine
Spalte oder einen Block hinzufügen sollten Beutetabellen sowohl für den Block, die tiefe Schiefer oder einen Falken oder . Diese sollten ziemlich
einfach sein, da wir zwei Beispiele
gesehen haben , die
fast genau gleich sind. Nun, das sollte, denke ich,
ziemlich einfach sein. Und wenn es um die Rezepte
geht, möchte
ich eigentlich, dass du
ein paar Dinge machst. Ich möchte, dass du
das Sprengungs- und
das Schmelzrezept für
die oder Blöcke hinzufügst . Das ist die Nummer eins. Und Nummer zwei, ich möchte, dass
du es kannst, ich möchte, dass du in der Lage bist, Nuggets von
einem Barren
zu bekommen und
dann auch Nuggets wieder
in einen Barren zu bauen. Und dann nicht
zuletzt für die Rezepte möchte
ich, dass du nur ein Rezept
mit ein paar Vanilleartikeln verwendest. Es kann alles sein
, wovon dein Verstand im Grunde träumen
kann, weißt du 64 Diamanten für
etwa 2 dritte Blöcke oder so
etwas zu
bekommen etwa 2 dritte Blöcke oder ,
könnte alles sein, solange es zumindest dauert Minecraft-Artikel im
Rezept einverstanden, damit geht's mir gut. Das wäre im Grunde genommen das. Wenn irgendetwas unklar ist, sollten
Sie natürlich die Aufgaben zur Verfügung
haben, um im Grunde noch einmal zu überprüfen, aber viel Glück und
Spaß bei der Aufgabe zu haben.
47. LÖSUNG 6: Rezepte und Loot: In Ordnung, schauen wir uns die Lösung für die
Aufgabe hier an. Natürlich
war der
Raubkalziumblock ziemlich einfach. Hoffentlich ist es so ziemlich das Gleiche wie das Normal oder Recalc. Entsperren. Das hier. Das Fallenlassen des
Rock-Rekords kann das
hoffentlich blockieren, wenn es hier
sehr einfach ist. Und dann
ist das Div
Schiefer oder ein Kalzium oder fast
das gleiche wie das normale. Wir sind hier unten, es lässt das
Rory-Kalzium hier oben fallen. Es lässt tatsächlich die tiefe
Schiefer oder einen Kaliko fallen oder das ist nur eine winzige Veränderung, die
Sie
im Orakel- oder
Beutetisch machen müssten , Jason. Hoffentlich
waren die nicht allzu verrückt. Aber schauen wir uns
die beiden Sprengrezepte an. Natürlich sind Sie
nur die Zutat, die wirklich ändern muss. Das Ergebnis wird natürlich
immer noch Barren sein. Und dann ist
Amin für das Schmelzen fast das Gleiche. Das einzige, was hier
die Änderungen für das Strahlen zum Schmelzen ist, ist
die Kochzeit. Und dann noch einmal hier, die Gegenstände Das ist
so ziemlich alles, was es gibt, die Nuggets könnten etwas
interessanter
sein , weil
natürlich einer von ihnen ein Formrezept ist
und der andere ein formloses Rezept, das auch eine Zahl neun
zurückgibt. Das könnte hier also
sehr interessant gewesen sein. Und dann
gibt es natürlich keine Lösung für Ihre individuelle Lösung. Solange es funktioniert, ist es in Ordnung. Sie können natürlich
immer einen Blick auf die Stapeldiamanten von
Netherstern werfen, was eine Idee oder ein Beispiel für
eine mögliche Sache ist, Beispiel die
Sie auch tun könnten, aber das wird sein es für
diese Lösung 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.
48. (Grundlagen) Ein fortgeschrittenes Element erstellen: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir uns einen erweiterten Artikel
ansehen. Was ist ein Advanced Item? Wo würde ich
Advanced Items nennen, sind Artikel, die ihre
eigene Artikelklasse haben. Wenn wir also in unsere
Adams-Klasse gehen, können
wir tatsächlich sehen, dass weder der Barren Northern
Nugget noch die Reihe oder ein Kalzium ihre eigenen Klassen haben weil sie hier alles
neue Gegenstände sind. Jetzt wird sich das ändern. Anstelle unseres Artikelpakets wir mit der rechten Maustaste auf
ein neues Paket namens custom. Und dann klicken wir mit der
rechten Maustaste auf eine neue Java-Klasse, und dies wird der Gegenstand
der Dowsing Rod sein. Jetzt ein paar Dinge
zu erwähnen hier. Normalerweise möchten Sie dies
mit dem Namenselement hier beenden, unabhängig vom Namen
Ihres Artikels, und enden dann mit einem Artikel, nur damit Sie leicht
sehen können , dass es sich
tatsächlich um einen Artikel handelt. Dies
erweitert nun die Item-Klasse. Also werden wir uns genau hier aussuchen
. Und dann werden wir den Mauszeiger über diesen Creed-Konstruktor bewegen, der super
passt. Und jetzt sind wir eigentlich sehr zufrieden damit, wie die SR und raus ist. Wir können diese Klasse jetzt schon
benutzen. Natürlich möchten
wir jedoch
einige benutzerdefinierte Funktionen hinzufügen . Wenn ich
mit diesem Element mit der rechten Maustaste klicke, möchte
ich grundsätzlich
jeden Block unter einem Block überprüfen , auf den ich gerade geklickt habe, und sehen ob es
Wertsachen gibt. Wie werden wir das machen? Nun, lasst uns zuerst mittlere Maustaste auf die Item-Klasse
klicken, und hier finden Sie eine Reihe von Dingen, die
Sie überschreiben können. Dies ist also die Nummer eins in Berufung. Noch einmal, wenn Sie mit Java
nicht vertraut sind,
um sich
die Java-Einführung noch einmal anzusehen, empfehle
ich es sehr, denn jetzt da wir in immer fortgeschritteneres
Gebiet kommen, werde
ich grundsätzlich davon ausgehen
mehr und mehr, dass Sie einfach wissen, was
Vererbung ist, zumindest bei einem Grundkonzept und einer Überschreibung einer Methode. Du sitzt einfach nicht
da und du meinst, ich weiß nicht was das bedeutet, aber du hast wenigstens
eine allgemeine Vorstellung davon. Aber wir können
Methoden überschreiben und im Grunde unsere eigene
Funktionalität für sie
erstellen. Wie Sie sehen können,
gibt es viele Methoden, die wir theoretisch
überschreiben könnten. Und das ist auch eines
der coolen Dinge. Was ich also tun kann, ist, dass ich
mit dem Tippen von Override beginnen kann. Und Sie
erhalten im Grunde auch alle Vorschläge, die uns überschreiben
können. Jetzt gibt es einen Haufen von ihnen. So sind die USA beispielsweise die Rechtsklick-Methode, ohne mit der rechten Maustaste auf den Block zu klicken. Es gibt so etwas wie
den Append-Tooltip
, der als Tooltip, den
wir auch in einer zukünftigen Vorlesung
sehen werden, das Inventar-Tick, das bei jedem Häkchen ausgeführt
wird, Dieser Artikel befindet sich in Ihrem
Inventar benutzungs-Tick. Ich bin mir eigentlich nicht
hundertprozentig sicher, aber ich denke, dass dies jedes Mal
ausgeführt wird, wenn Sie
dies in Ihrer Haupthand haben dies in Ihrer Haupthand und Sie mit der rechten Maustaste auf so
etwas klicken. Obwohl auch wenn wir das einfach
importieren würden und ich mit der
mittleren Maustaste darauf
klicke hier auf
den Super One. Manchmal haben sie
einige Hinweise darüber, also einige Kommentare. Das ist nicht immer der
Fall, aber, oh, naja, aber was wir
verwenden werden, ist, dass wir
die USA für eine Blockmethode verwenden werden. Wie Sie sehen können, geben wir das
einfach und doppelklicken darauf, dann
wird dies generiert. Die Add-Override hier ist eine Anmerkung und dies ist
nicht unbedingt erforderlich. Es gibt Ihnen jedoch auf einer normalen Drüsen durch
diese Klasse die Idee, dass, oh, okay, also das ist
eine überschriebene Methode. Deswegen ist das hier. Das ist also eigentlich
sehr wichtig. Und jetzt kommt der benutzerdefinierte Code , den wir im Grunde schreiben werden. Und das hat im Grunde wieder viel mit
Java-Wissen zu tun. Und wir werden zunächst zunächst
prüfen, ob wir auf dem
Client oder dem Server sind oder nicht . Denn in diesem eigentlichen Fall wollen wir eigentlich nur etwas
hier auf dem Kunden machen. Dies ist nicht immer der Fall. Normalerweise wollen wir anfangen, auf dem Server
zu passieren, aber das ist manchmal das Richtige. Wir werden
jedoch nicht zu sehr auf das
Detail eingehen . also vorerst haben, Was wir also vorerst haben, ist,
dass wir diesen Kontext hier haben, eine ganze Menge Sachen haben. So zum Beispiel die Welt, die genau
das ist, was wir brauchen, die automatische Vervollständigung mit Tab. Und dann werden wir
sagen, dass es Kunde ist. Und normalerweise übernehme ich
die Methode. Dies spielt keine
Rolle, ob
Sie die Methode oder das
Feld verwenden oder nicht , völlig in Ordnung ist. Und jetzt wissen wir, dass wir, wenn wir in
dieser if-Aussage sind, definitiv auf dem
Kunden sind, also ist das ziemlich gut. Was wir wollen, ist, dass wir die Position
des Blocks
wollen , auf den
geklickt wurde, und wir bekommen das als Block Pause. Und das ist nur
der Positionslift. Und das ist gleich dem
Kontextpunkt , der blockiert wird,
wie Sie sehen können. Und dann wollen wir, dass der Spieler, diese Spieler-Entitätsschicht, die gleich dem
Kontextpunkt ist, den Spieler genau hier bekommen. Und dann können wir auch nur einen booleschen Wert
haben
, der der gefundene Block
sein wird. Dieser prüft nur , ob wir den Block gefunden
haben oder nicht. Das machen wir
in einem Moment. Aber die Idee ist noch einmal, wenn ich mit der rechten Maustaste auf einen Block klicke, wollte
ich jeden Block
unter diesem Block überprüfen bis zum Fundament
hinuntergehen. Und im Grunde überprüft, hey, hat das einen wertvollen Gegenstand gefunden? Diese wertvollen Gegenstände, die wir natürlich
in einem Moment definieren werden. Aber vorerst machen
wir einfach eine for-Schleife. Für int ist ich also gleich 0, ich bin kleiner oder gleich
als die geklickte Position. Das kriegt, warum kriegt ihr eigentlich y? Und dann habe ich plus plus. Und was wir dann tun wollen, ist dass
wir etwas
sehr Interessantes machen wollen. Wir wollen den Block unten bekommen. Blockieren Sie also, den
Block, blockieren Sie unten. Und das wird die
Kontext-Punkt-Dot-Dot-Welt sein. Aber um den
Blockstatus an der Position zu erhalten, klickte das nach unten und ging
dann ins Auge. Und dann kriegen
wir hier den Block. Also, und dann natürlich
auch Import dieser Klasse. Also jetzt könnte das ziemlich verrückt
sein. Nun,
denken wir einfach darüber nach. Zuallererst bekommen wir nur die Welt, die zu verrückt sein
sollte. Und dann bekommen wir einen
bestimmten Blockstatus. Jetzt haben wir noch nicht
über Blöcke und
versus Blockzustände gesprochen . Der allgemeine
Kern ist jedoch, dass Blockstaaten
die Darstellung von Blöcken innerhalb der Welt darstellen. Während ein Block
eine Art perfekte Vorstellung von einem Block ist, ist
der Blockzustand das, was tatsächlich
innerhalb der Welt
existiert und beispielsweise Koordinaten hat und unterschiedliche
Eigenschaften hat. Dadurch wird der Blockstatus
an dieser bestimmten Position angezeigt. Und dann, wenn wir
die Position haben , auf die wir geklickt haben, gehen
wir einfach zu mir vorbei, was zum ersten
Mal nichts ist. Und wenn wir dann zunehmen, gehen
wir, während die for-Schleife weitergeht, immer während die for-Schleife weitergeht, immer weiter nach unten. Das ist also im Grunde
immer der untenstehende Block. Und was wir dann
tun können, ist, dass wir überprüfen können, hey, ist das ein wertvolles Buch? Und dafür werden wir dafür
tatsächlich eine neue Methode entwickeln. Denn das macht es tatsächlich, denn das macht
es tatsächlich ein bisschen einfacher. Wir werden also sagen, dass privater
boolescher Wert ist. Und dann
werden wir hier einfach in den Block
gehen. Und dann können wir im Grunde einen Booleschen Wert
zurückgeben. Und was wir tun werden,
ist, dass Block gleich Blöcke Punkt
Col ist, oder zum Beispiel
Kohle oder, oder LOC gleich
Sperren Punktkupfer, oder lassen Sie uns einfach ein paar weitere hinzufügen. Block ist also gleich Langston-Diamanten oder einem Letzten aber nicht zuletzt, oder einem Letzten aber nicht zuletzt, fügen
wir auch das
Eisenerz hinzu. Blockiert also das Eisen oder das Ego. Und jetzt diese Methode hier, wenn das kalt ist und ein
Block übergeben wird, wenn es einer
dieser vier Blöcke ist, dann wird sie wahr zurückkehren. Und was wir tun werden,
ist, dass wir sagen, ob hier
ein wertvoller Block ist, und gehen dann den
Block unten ein, oder? Was wir dann tun wollen, ist, sagen
wir einfach, was wir tun
wollen, ist, dass wir die tatsächlichen
Koordinaten dieses Blocks
ausgeben wollen. Wir wollen den
gefundenen Block auch auf wahr verwandeln. Und dann
wollen
wir tatsächlich aus dieser for-Schleife
ausbrechen weil wir
den ersten wertvollen Block gefunden haben und
das im Grunde genommen dann erledigt wird. Das ist also die allgemeine Idee. Das erste
, was wir hier machen wollen, wie gesagt, ist die Ausgabe
der Koordinaten. Dafür werden wir auch
eine neue Methode entwickeln. Die Idee ist also, dass
wir das zuerst aufschreiben und dann
das geschriebene Ding nehmen und eine Methode daraus
machen. Also können wir
Player SendMessage sagen. Dies ist eigentlich eine sehr
interessante Art, dies zu tun. Dann werden wir „Neuer wörtlicher Text“
sagen. Obwohl hier ein wörtlicher Text. Dies ist im Grunde eine Zeichenfolge. Wir können herausfinden, wo wir Sachen hineinlegen
können. Wir können so etwas wie gefunden sagen. Und dann können wir sagen
block, block darunter als Element
, das den
Namen erhält, der String erhält. Das ist also ziemlich verrückt, aber das bekommt im Grunde den
tatsächlichen Namen des Blocks. Und dann können wir bei und
dann an der jeweiligen Position sagen . Für die besondere
Position wird etwas See sein. Öffnen Sie Klammern und gehen Sie dann
an die Position, auf den Punkt getX
geklickt hat. Plus Komma. Position geklickt. Warum? Dann plus noch einmal Komma, dann plus Position
geklickt Punkt erhalten z oder z. Und dann schließt die
Klammer in der Zeichenfolge hier. Und dann nach der
literalen String-Komponente wollen
wir eine false hier
sind die ActionBar. Jetzt können Sie sehen, dass das
sehr unhandlich ist Rayleigh. Das ist also, als würde es zuallererst nicht gut aussehen. Es ist sehr unhandlich. Was wir also tun können, ist, dass wir alle
diese Rechtsklick auswählen
können Refactor Extract Method. Und das werden wir machen. Und Sie können sehen, dass wir das alles jetzt
tatsächlich extrahiert haben . Und es hat, im Grunde genommen nur die ganze
Arbeit für uns erledigt. Jetzt müssen wir nur noch einen Namen setzen. Wir werden
diesen Namen festlegen, um hier
wertvolle Ordinaten auszugeben . Und dann möchte
ich innerhalb
der eigentlichen Methode einfach
die Namen hier ändern, möchte
ich innerhalb
der eigentlichen Methode einfach
die Namen hier ändern, damit ich
auf Control und Shift fx klicken kann, etwa wie zum Beispiel die Blockpfade hier. Und dann ist der Rest, glaube
ich, definiert. Das könnten
wir das natürlich noch mehr ändern, oder? Aber vorerst denke
ich, dass das gut werden
wird. Dies wird einfach
die Koordinaten von
allem ausgeben , was wir ihm geben. Das sieht ziemlich gut aus. Was wir hier bekommen
werden, ist dass
wir eine Weile
einen Streit bekommen werden, denn hey, Spieler könnte null sein. Sie können also sehen, dass der
Argumentspieler möglicherweise null ist, um beide zu behaupten. Wir können uns auch um
ein paar Sachen ändern .
Die Zeit ist. würde ich mir eigentlich keine
Sorgen machen. Und es gibt eine weitere Sache , die wir natürlich machen
wollen, und das ist, wenn der Block
nicht gefunden wurde, richtig, dann wollen wir auch etwas
ausgeben. Aber zum Beispiel etwas wie Spieler
Dot-Dot-Dot-Dot-Dot-SendMessage. Und dann werden wir das tun, dass
wir
diese tatsächlich zur radar
übersetzbaren Textkomponente machen werden. Und dann setzen wir das
Aktionswort auch falsch. Normalerweise
empfehle ich daher dringend, wenn möglich,
die Komponenten für lesbare
Texte
hier zu verwenden die Komponenten für lesbare
Texte . Sie könnten also auch hier
eine übersetzbare
Textkomponente verwenden . Es macht dies jedoch nicht
etwas schwieriger, es
tatsächlich richtig zu machen, aber Sie könnten es tun. Ich empfehle dringend,
dies wann immer möglich zu verwenden, wo wir im Grunde einen Schlüssel
definieren, den wir
dann in das E einfügen und uns benachbarte Datei
unterstreichen können . Also mache ich es für uns
wie diesen Artikel, MC-Kurs. Also bleibe ich dabei. Und dann nehmen wir
den Namen
der Gegenstand-Dowsing Rute,
nicht wissen, dass Wertsachen unterstrichen werden. Lässt uns der Name,
den wir am Ende definieren werden , uns die
benachbarte Datei unterstreichen , aber
das wird es sein. Und außerhalb
dieser if-Aussage werden
wir tatsächlich
Kontexte sagen, die gestapelt werden. Dies ist also der
tatsächliche Artikelstapel,
der Artikel, den wir in
unserem Inventar haben, Punktschaden. Wir möchten
dies um den ersten Betrag beschädigen. Wir werden
Kontexte sagen, Dot Get Player. Und dann
wird der letzte Parameter ein Verbraucher sein. Ich glaube, dass dies ein Spieler sein
wird genau Spieler
von Spielereinheiten konsumiert. Also rufen wir diesen Spieler einfach
an. Und dann werden wir
sagen, dass Spieler Punkt sind, Werkzeug- und Werkzeugsteine Status mit dem
Spielerpunkt aktiv werden. Aber das mag auch ziemlich
verrückt für dich sein , aber keine Sorge. Nun, das alles
ist einfach zu sagen, hey, der eigentliche Gegenstand, mit dem wir gerade mit der
rechten Maustaste geklickt haben, wir werden
um den Betrag eins beschädigen. Dies wird also
die Haltbarkeit verringern. Und dann geben wir es einfach dem
Spieler weiter, das ist total in Ordnung. Dann ist das Letzte, was
hier genau ist, welche Art von Werkzeugbruch-Animation
es senden sollte wenn die Beschädigung
dieses Elementstapels
tatsächlich dazu führt
, dass das Element kaputt wird. Jetzt. Und das ist im Grunde die
gesamte Klasse genau hier. Obwohl es ziemlich verrückt ist. Und wieder, ohne irgendeinen Java-Hintergrund wird es
wahrscheinlich sehr komplex
sein. Ich empfehle Ihnen, dass Sie dies natürlich
alles im GitHub-Repository
oder in
einer Einzelperson zur Verfügung
haben Sie dies natürlich
alles im GitHub-Repository
oder in
einer Einzelperson zur Verfügung , um es sich anzusehen,
auszuprobieren, es auszuprobieren, wissen Sie, um es in Ihre eigene Mathematik zu stecken und Probieren Sie es einfach ein bisschen aus. Wechseln Sie einfach ein paar Sachen,
sehen Sie, was passieren könnte. Und vergessen wir nicht
, dies hier zu
unserer E- und Übersetzungsdatei hinzuzufügen . Ich füge
das einfach ganz unten hinzu. Das wird
eigentlich folgendes sagen. Dies wird einfach sagen, dass
keine Wertsachen raus sind. Das ist also alles, was
dieser hier sagt. Und jetzt ist das Tolle,
wenn wir zum Beispiel
eine andere Sprachdatei hätten , könnten wir sie in eine
andere Sprache
übersetzen. Deshalb ist normalerweise
der übersetzbare Text das, was
Sie verwenden möchten. Behalte das also im Hinterkopf. Nun, nur diese Klasse
hinzugefügt zu haben , reicht
natürlich nicht aus. Wir müssen
es auch in unserer Mod-Items Klasse registrieren, und das werden wir auch tun. Lassen Sie uns also einfach das Rock-Ergebnis
überschreiben. Wie gesagt, ich freue mich normalerweise
einfach über alte Gegenstände, weil sie fast immer gleich
sind. Das ist die Dowsing Rute. Und dann natürlich auch hier,
Dowsing Rute. Und anstelle eines neuen Artikels ist
dies sehr wichtig. Dies ist ein neuer Gegenstand der Dowsing Rute. Das ist also die Hauptsache
, die wir hier tun müssen. so wichtig
, dass du das machst. Wir wollen auch den
maximalen Schaden genau hier einstellen. maximale Schaden wird
also sein, sagen wir 32. Wir können dies also 32 Mal verwenden bevor die eigentliche Dowsing
Rute bricht, weil wir ihn
natürlich genau
hier in der
Methode „Use on Block“
beschädigen . Also sollte das jetzt auch völlig in
Ordnung sein, fügen
wir dies der
un-Unterstrich mit JSON-Datei hinzu. Also dowsing unterstrichen Rod und dann
auch hier natürlich , Dowsing Rute
ohne Unterstrich. Und
nicht zuletzt benötigen wir das Artikelmodell
sowie die Artikelstruktur. Lassen Sie uns also einfach
die Rolle oder das Kalzium für
diesen Dowsing Rute und
dann Ihre Dowsing Rute kopieren . Aber das ist wieder die
normale Art und Weise, wie ich den Benutzer mache.
Normalerweise ist das Hinzufügen von Elementen, wenn ich hier bereits vorhandene Modelle habe wenn ich hier bereits vorhandene Modelle sehr viel einfacher
als alles andere. Es auszuschreiben ist
absolut verrückt. Und wenn es Tippfehler in
Ihrem gibt, können Sie sich natürlich immer
das GitHub-Repository
oder die Juristen ansehen . Und lasst uns auch über
die
Werftrute kopieren . Da gehst du. Natürlich auch verfügbar. Bitte beachten Sie jedoch die
Gutschrift, dass Sie
der dortigen Lizenz folgen. Insgesamt ist das
eigentlich völlig in Ordnung. Und ich würde sagen Wir sind jetzt bereit. Werfen Sie einen Blick darauf, ob es
funktioniert hat oder nicht , oder findet uns wieder in Minecraft-Fans können
sehen, dass die Dowsing Rute erfolgreich zum Spiel
hinzugefügt
wurde. Und was Sie
auch finden werden, ist, dass ich es tatsächlich nicht stapeln kann. Das ist genau richtig, denn
natürlich haben wir
den maximalen Schaden hinzugefügt. Und wenn Sie maximalen Schaden hinzufügen,
funktioniert das Stapeln
im Grunde nicht mehr. Jetzt gehen wir einfach hier rüber und lassen Sie uns einfach
mit der rechten Maustaste klicken und Sie können oben oder
dort eine Stunde für ihre, äh, nein, keine Wertsachen
finden Sie hier. Und Sie können sehen, dass
die tatsächliche Haltbarkeit abnimmt, wenn ich hier
weiter klicke. Mal sehen, vielleicht können wir einen Diamanten finden , bevor er kaputt geht. Wäre das nicht ziemlich verrückt? haben wir leider nicht. Aber da gehst du. Jetzt bei Einbruch und jetzt haben wir
natürlich auch
die anderen Routen zur Verfügung. Also können wir das einfach
durchgehen und sehen, ob wir unten
etwas finden können. Aber das ist so ziemlich die allgemeine Vorstellung von der
Dowsing Rute, oder? Aber 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. Wenn noch Fragen zum erweiterten Artikel bestehen
, zögern
Sie bitte nicht zu fragen. Ansonsten sehe ich dich in
der nächsten Vorlesung. Also ja.
49. (Grundlagen) Einen erweiterten Block erstellen: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir einen fortgeschrittenen Block machen. Genau wie wir die letzte Vorlesung
mit dem erweiterten Element
gesehen haben , werden wir
jetzt einen erweiterten Block
für in unserem Blockpaket für in unserem Blockpaket rechten Maustaste auf ein neues
Paket namens Custom klicken. Und dann erstellen
wir drinnen eine neue Java-Klasse, die
als SPD-Block bezeichnet wird. Jetzt wird dies
die Blockklasse erweitern und
sicherstellen, dass wir
die richtige auswählen ,
Minecraft-Block,
Block und den Mauszeiger über
diesen Creed-Konstruktor bewegen, der super
übereinstimmt. Und genau wie bevor wir die mittlere Maustaste drücken
können, klicken Sie auf die Blockklasse und schauen Sie
sich im Grunde alle möglichen Methoden an,
die wir in unserer
benutzerdefinierten Blockklasse
außer Kraft setzen können . Und wie Sie sehen können, gibt es Unmengen von Dingen, die wir hier außer Kraft setzen
könnten. Und ich kann auch
das Wort Override einsetzen. Jeder wird sehen, dass es hier
eine Menge Sachen gibt. Eine Sache, die ich erwähnen
wollte ,
ist, dass Dinge, die
diesen Durchbruch haben , die
im Grunde veraltet sind, oder? Wenn ich mir das also anschaue, kannst
du sehen, dass dieser
hier veraltet ist. In der Regel. Was das eigentlich bedeutet,
ist,
dass Sie diese Methoden einfach außer Kraft setzen können, Sie
sollten sie
jedoch nicht aufrufen. Das ist also die allgemeine Idee im Block und in der Item-Klasse,
Dinge, die veraltet sind. Ich meine nicht, dass sie
veraltet
sind und in zukünftigen Versionen nicht verfügbar sind. In diesem Fall geht es tatsächlich
darum, dass sie nicht erwischt werden. Und das schließt zum Beispiel den
Super ein. Aber
das werden wir in einem Moment sehen. Was wird der SPD-Block machen? Nun, der SPD-Block wird zwei verschiedene
Funktionalitäten
haben. Nummer eins, wenn Sie darauf treten, erhalten
Sie den Geschwindigkeitseffekt, der Ihrem Charakter
hinzugefügt wird. Und dann, nur
damit Sie es gesehen haben, die Rechtsklick-Funktion, wenn Sie mit der rechten Maustaste auf den Block klicken, geben
wir einfach
eine Nachricht in den Chat aus. Das wird es sein. Lassen Sie uns also zunächst
die Aufrufste-Methode machen , die aufgerufen
wird, auf die eingetreten ist. Und du kannst sehen, dass du gehst. Und was wir hier drin machen werden,
ist eigentlich sehr einfach. Wir werden zunächst prüfen, ob die Welt Kunde
ist und
sehr, sehr wichtig ist. Wir werden
ein Ausrufezeichen
davor hinzufügen , um zu sagen, dass wir nicht auf dem Client
sein wollen, wir wollen auf dem Server sein. Wenn Sie beispielsweise
einen Statuseffekt hinzufügen , können Sie dies
nur auf dem Server tun. Dann werden wir prüfen,
ob das Unternehmen, das darauf
getreten ist, ein Beispiel für
Lebewesen
ist oder nicht das darauf
getreten ist, ein Beispiel für
Lebewesen
ist , da
nur Lebewesen Statuseffekte
auf sie angewendet werden
können. Und dann können wir ohne Probleme das Lebewesen genau
hierher
bringen und einfach
die Entität darauf werfen. Also Entity-Dot-Besetzung. Und dann füllt es sich normalerweise mit Lebewesen schon
hier. Und wir können das
Lebewesen nehmen und wir können die Methode
„Status hinzufügen“ aufrufen. Und was wir dann tun können, ist,
eine neue
Statuseffekt-Instanz zu erstellen , wie Sie sehen können. Und das nimmt
den Statuseffekt auf, das heißt Auswirkungen auf diese Geschwindigkeit
und eine Dauer auf 100. Die Dauer ist hier
natürlich in Ticks, daher
wären dies zehn Sekunden. Das würde dies natürlich auch
ändern. Das liegt natürlich
ganz bei dir. Aber das ist eigentlich die ganze
Methode, die wir für den Schritt zum
Geschwindigkeitseffekt hier
benötigen. Das ist es buchstäblich. Das ist alles, was wir tun müssen. Werfen wir jetzt aber auch einen
Blick auf die
Rechtsklick-Funktionalität. Und das ist die
Owner-Use-Methode. Und Sie können sehen, dass dies einer von
denen ist , die den
Durchbruch haben, der veraltet ist. Also werden wir sicherstellen, dass wir den Superhelden nicht anrufen. Und wir werden Aktionsergebnisse
sagen. Dieser Erfolg
wird gut werden. Genau hier. Da gehst du. Und dann werden
wir hier drin sagen, ob die Welt, das Kunde ist, das Ego. Und dann werden
wir drinnen sagen, Hand gleich und diese Haupthand. Und dann machen wir hier ein anderes. Also was, was passiert? Warum mache ich das?
Nun, wir werden einen kleinen Kommentar kopieren,
auf den
ich mich bereits vorbereitet habe. Die Idee ist, dass die unbenutzte
Methode zeitweise aufgerufen wird. Wenn Sie mit der rechten Maustaste auf den Block klicken, zweimal auf dem Server aufgerufen, eine für jede Hand und dann zweimal auf dem
Client für jedes Ende. Das ist das sehr
Interessante. Was wir dann tun werden, ist, dass
wir einfach ausgeben werden, deshalb nicht das Ego, das wird gut werden. Aber das sind nur
noch einmal Spieler und Nachricht mit einem kleinen Text. Das haben wir natürlich
schon gesehen. Und das ist
so ziemlich nur eine Idee. Ich wollte
das auch hier haben,
nur für den Fall, dass
Sie möglicherweise eine
Rotklick-Funktionalität Ihres Blocks
haben möchten , verwenden
Sie die unbenutzte Methode. Und das ist sehr
wichtig, um hier zu
beachten,
wenn Sie zum Beispiel
etwas im Code ändern würden, ist es wirklich
sehr wichtig zu
wissen, dass es tatsächlich zweimal für
jede Hand
passiert . Also behalte das bitte im Hinterkopf. Und das ist so ziemlich mit
der SPD-Blockklasse erledigt. Wir müssen hier
nichts anderes tun. Das nächste, was wir tun
müssen, ist, dass wir in
unsere Modellblock-Klasse gehen und dann natürlich den eigentlichen Block
erstellen
und registrieren müssen. Also werden wir einfach
den Rohstoff oder einen Kalziumblock kopieren. Und wir werden
diesen einfachen
schnellen Unterstrich genau
hier machen , und dann natürlich
auch hier einen schnellen Unterstrich. Und genau hier
ist das jetzt der SPD-Block, der neue Speedy Rock hier. Noch einmal sehr wichtig, dass wir sicherstellen, dass dies
korrekt ist und nicht nur
ein normaler Block. Sehr, sehr wichtig. Und sonst müssen
wir nur die JSON-Dateien hinzufügen. Und diese
stehen Ihnen natürlich auch
im GitHub Repository oder im
Einzelnen zur Verfügung. Ich werde diese
einfach kopieren, weil diese jeden Tag
ganz normal sind . Jason-Akten, oder? Hier ist
nichts Interessantes vor sich. Das Blockmodell sieht
genau so aus wie bei den
Brockman-Regeln, die wir gesehen haben das Artikelmodell
so ziemlich genau das gleiche ist wie bei jedem anderen
Blockelementmodell hier. Und dann
kopieren wir auch die Textur, die Ihnen natürlich
auch zur Verfügung steht, bitte nicht die Credits Datei für die spezifische Lizenz
für diese Texturen, aber ansonsten ist es
das tatsächlich. Fügen wir auch die Übersetzung hinzu. Vergessen wir das natürlich
nicht. Lassen Sie uns das einfach kopieren und wir werden nur
sagen, dass es der Block ist. Und dann hier das Gleiche. Schneller Block, das Ego. Und jetzt
wurde alles eingerichtet. Also mal sehen, ob es funktioniert. Oder Geld zurück und
Mikrofinanzierung können sehen, dass der SPD-Block
dem Spiel hinzugefügt
wurde und ich kann ihn so
einstellen, dass die Textur einfach normal ist. So wie ich schon sagte, oder? Obwohl diese Art von
etwas einseitig aussieht , wo es die Textur verändern
würde. es eigentlich nicht.
Das werden wir tatsächlich in einer zukünftigen
Vorlesung
sehen. Und lassen Sie uns einfach, lassen Sie es uns aus
Gründen der Argumentation so
niederlegen, dass
der Pfeil in
die Richtung schaut , in die
wir uns bewegen nur damit es
ein bisschen schöner wird. Und sobald ich oben
auf den Block gehe, kannst
du sehen, dass ich den
Geschwindigkeitseffekt auf mich ausgeübt habe, und das ist jetzt für zehn Sekunden. Wenn ich jetzt weiter darauf stehe,
sehe, dass es
die Fakten immer wieder auf mich anwendet und auf 10 Sekunden
zurücksetzt. Und dann kann ich im Grunde einfach mit einem Geschwindigkeitseffekt
laufen. Und das ist
so ziemlich genau das, oder? Eigentlich müssen wir hier zurückkehren ist ein tatsächlicher Ergebnispass. Und dann funktioniert der eigentliche Aufruf für zwei Mal für den Server und den Client
tatsächlich. Das ist also nur ein
kleiner Unterschied. Also lasst uns einfach sehen,
ob das auch funktioniert. In Ordnung,
wenn wir jetzt mit der rechten Maustaste klicken, können
Sie sehen, dass ich im Chat eine
Nachricht sowohl
für die Haupthand als auch für die Beleidigung bekomme. Und wir können auch noch Blöcke daneben
platzieren. Das ist auch eine sehr
interessante Sache. Ich empfehle dringend, mit
den tatsächlichen Ergebnissen
herumzuspielen , die Sie zurückgeben. Denn
je nachdem, was Sie zurückgeben, haben
sie eine andere Art von Interaktion, wenn
Sie mit der rechten Maustaste klicken. Sie können also sehen, wann ich
tatsächlich einen Block nach unten platziere, indem Sie auf diesen Block klicken, können
Sie sehen,
dass er tatsächlich nur nach der Haupthand aufgerufen
wird. Während ich mit
nichts in meiner Haupthand klicke, wird es für beides gefordert. Werfen Sie einen Blick darauf, was
Sie ändern können indem Sie ändern, was Sie
in dieser Methode zurückgeben, oder? Aber das ist es schon für
diese Vorlesung genau hier. Ich hoffe, Sie haben das nützlich gefunden und er erfährt, dass das neue, wenn er es täte, ich eine Rezension von
Ihnen sehr schätzen würde . Ansonsten sehe ich dich in
der nächsten Vorlesung. Also ja.
50. (Grundlagen) Erstellen eines benutzerdefinierten Food: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten Lebensmittelartikel hinzufügen . Das ist eigentlich ein sehr
einfacher Prozess und dafür benötigen wir nicht einmal eine
benutzerdefinierte Artikelklasse. Wir werden eine neue benutzerdefinierte Klasse
erstellen,
und das ist in unserem Artikelpaket, und das ist in unserem Artikelpaket, klicken Sie mit der rechten Maustaste auf neue Java-Klasse. Und das ist die Klasse der
MOD-Lebensmittelkomponenten. Und dies wird alle
unsere Lebensmittelkomponenten enthalten , da wir diese im Grunde genommen in unseren Artikel
hinzufügen müssen. vorerst Lassen Sie uns vorerst einfach hier reingehen
und fügen wir dies hinzu, sozusagen die öffentliche statische
Lebensmittelkomponente namens Rübe. Denn was wir
hier eine Rübe hinzufügen werden. Und das entspricht einem
neuen Komponenten-Builder. Sie können genau dort sehen, ich drücke die Tabulatortaste,
um dies automatisch zu vervollständigen. Und dann können Sie sehen, dass dies wieder
ein Builder-Muster ist , sodass es mehrere
verschiedene Dinge hinzufügen kann. Das erste, was ich tun möchte,
ist, dass ich den Hunger hinzufügen möchte, obwohl dies
ein Stück Fleisch
in unserer Hungerbar wiederherstellen wird . Und dann
ist der Sättigungsmodifikator im Grunde genommen, wie
viel
Sättigung und Sättigung Sie sozusagen im
Hintergrund haben. Dann müssen wir
das mit einer Gesetzesvorlage beenden. Und dann wird die
Lebensmittelkomponente hier gebaut. Was Sie jetzt auch
tun können, ist, dass Sie
hier auch einen Statuseffekt
hinzufügen können, wie Sie sehen können. Also könnte ich einen
Statuseffekt hinzufügen, dass dies
genau die gleiche Idee ist genau die gleiche Idee wir
zuvor
mit dem SPD-Block gesehen haben. Also müssen wir nur
eine Statuseffekt-Instanz übergeben. Zum Beispiel wirkt sich der
Status von Effekten nicht auf
eine Generation oder so etwas
wie 200 Takes aus. Und dann
müssen wir hier tatsächlich viel einreichen,
was die Chance ist diesen
Effekt genau hier zu erzielen. Das ist also nur ein Beispiel hier. Wir werden es nicht so
behalten, aber du hast es gesehen. Es ist eigentlich
sehr, sehr einfach. Oder Vanille-Beispiele,
was Sie tun können ist, dass Sie in
schneller Folge zweimal die Umschalttaste drücken können und dann dieses Suchfenster
hochfahren. Sie können nach der Klasse für
Lebensmittelkomponenten suchen,
sicherstellen, dass Sie dies überprüfen, Nicht-Projektelemente
einschließen
und dann hier Artikel. Klicken Sie hier und
Sie können alle Lebensmittelkomponenten sehen , die
Minecraft bereits hat. Und man kann im Grunde auch
all die verschiedenen
Dinge sehen , die hier drin sind. Es gibt also tatsächlich
alles, was schon vor dir liegt und
du könntest einfach einen Blick darauf werfen, wie das alles funktioniert, jetzt haben wir zwei, wir haben die Lebensmittelkomponente
hinzugefügt. Wir müssen jetzt den Lebensmittelartikel
in unserer Modellartikelklasse hinzufügen . Was ich tun werde, ist, dass
ich
über die Reihe oder ein Kalzium kopieren werde. Und das wird
die Rübe sein. Und gleich hier taucht auch auf. Und das ist ein normales neues
Item, ganz normales Jahr. Und dann
werden wir einfach nach
der Gruppe hinzufügen , wir
werden Essen hinzufügen. Und das wird die Art der
Lebensmittelkomponenten sein , die Rübe. Und das ist
so ziemlich alles, was wir brauchen um das Lebensmittel zu tun. Jetzt sollten wir das
grundsätzlich essen können, wenn
wir Hunger im Spiel haben. Jetzt müssen wir natürlich
immer noch
sowohl die Übersetzung hier im Jahr hinzufügen sowohl die Übersetzung hier im ,
das
uns die JSON-Datei unterstreicht, als auch natürlich
die Textur und die JSON-Datei des
Elementmodells hinzufügen . Die JSON-Datei des Elementmodells
ist natürlich wieder nur ein normales Elementmodell Jason, das hier auf
eine Textur zeigt. Und die Textur ist genau hier, also keine Sorgen. Und jetzt
wurde alles hinzugefügt. Also mal sehen, ob es funktioniert. Oder Farmen, die wieder
in der Mikrofinanzierung sind, sehen
können, dass der Begriff dem Spiel hinzugefügt
wurde,
also fangen wir an,
ihn zu essen und los geht's. Es füllt genau
einen Hungerbalken. Hunger ist also im Grunde
ein Treffensymbol genau dort. Das ist also so ziemlich genau das. Und ja,
so einfach ist es eigentlich Minecraft einen benutzerdefinierten Lebensmittelartikel
hinzuzufügen, oder? Und es gibt es schon für
diese Vorlesung genau hier. Ich hoffe, Sie haben das
nützlich gefunden und er erfährt von den neuen, allen Ecken, die natürlich auch im
GitHub-Repository
oder einer Einzelperson verfügbar sind . Und wir sehen uns allerdings in der
nächsten Vorlesung. Ja.
51. (Grundlagen) Erstellen eines benutzerdefinierten Fuel: Alles klar, lasst uns mit
dem Stoffkurs für 118 fortfahren. Und in dieser Vorlesung werden
wir Minecraft
einen gewohnten
Brennstoffartikel hinzufügen . Dies ist auch ein ziemlich einfacher und
unkomplizierter Prozess. Aber wir werden in unsere
weitere Gegenstandsklasse
gehen und wir werden einfach
die Rübe hier kopieren. Und dann wird dies
der Kohle-Unterstrich sein. Und natürlich auch hier unterstreicht
der Kohle Splitter. Es ist also nur ein Stück Kohle. Und wir werden
das Essen natürlich entfernen, denn in diesem Fall sollte
der Kausalvers nicht essbar sein. Und was der Artikel
noch einmal hinzugefügt wurde. Aber jetzt
müssen wir natürlich irgendwie
die Funktionalität
hinzufügen , dass es ein Treibstoff ist. Und dafür
gehen wir in unser MC-Kurspaket rechten Maustaste auf ein neues
Paket namens util. Jetzt ist dies nicht unbedingt
notwendig, um diese Klasse zu erstellen. Du könntest die Methode auch einfach
sofort in unserem
MC-Kurs-Mod-Mass
aufrufen , aber ich möchte, dass
alles getrennt ist. Das ist also die Registeries-Klasse. Und da drinnen werden
wir
zwei statische Methoden erstellen. Die erste ist eine öffentliche,
öffentliche statische Leere, die als
Registermodus-Suffs bezeichnet wird. Und dies wird die andere Methode
aufrufen
, bei der es sich um eine private statische Leere
oder Registerkraftstoffe handelt. Und jedes Mal, wenn wir unserem Modell
einen Treibstoff hinzufügen, können
wir es grundsätzlich genau hier
nennen. Und wir
werden Brennstoffe in der Methode für den Registermodus registrieren. Und dann schreiben wir
in etwas wie Systemausdruckzeile, aber registrieren Sie sich während Sie oder MSE-Kurs plus
MC-Kurs RID. Und dann werden wir weniger Registry
sagen, genau diese, die Registrierung ist gleich dass
Sie diese Instanz registrieren werden. Und dann können wir einfach
sagen, Registry Dot add. Und dann
punktet ein mehr Items ganzen Splitter, dann ein Wert von 400 Fall. Nun
läuft die Berechnung wie folgt aus, richtig, für 400 ist wieder 400
und dauert natürlich, für eine 100 geteilt durch 20, was 20 Sekunden entspricht, genau 1 Viertel
einer normalen Kohle. Das ist also im Grunde das. Und dann müssen
wir das natürlich auch
in der initialisierten
Methode aufrufen . Also mehr Register, die Modus-Stoffs
registrieren. Und wenn dann etwas
anderes eine Registrierung rechtfertigt, können wir dies grundsätzlich auch in
den modernen Registern
hinzufügen . Das ist also ziemlich
cool. Und das ist im Grunde alles, was wir tun müssen , um den
Kohlesplitter zu einem neuen Gegenstand zu machen. Jetzt müssen
wir die Übersetzung natürlich noch hier
hinzufügen. Also lasst uns das kopieren und nennen Sie
es, nennen Sie den Unterstrich Splitter. Und dann natürlich
hier, cooles Splitter. Und dann kopiere
ich für den Gegenstand die Rübe hier. Dies ist die Kohle
unterstreicht Leber. Dann hier die Kohle und
natürlich auch Leber. Nur eine normale Artikelmodelldatei. Und wir
werden auch hier nur
die Textur kopieren . Und jetzt wurde eigentlich
alles hinzugefügt. Mal sehen, ob es funktioniert oder es ist und wir uns wieder in
Mikro-Events
befinden , können sehen, dass
der Kohlesplitter erfolgreich zum Spiel
hinzugefügt
wurde . Und lass uns einfach sehen. Da gehst du. Wir können sogar die Umschalttaste hier
hineinklicken. Und genau wie angegeben, dauert
es 20 Sekunden,
um zu brennen und dann eine neue Ursache
Leber von hier aus zu
konsumieren. Das ist ziemlich gut. Und so einfach ist es
eigentlich, Minecraft
einen benutzerdefinierten Brennstoffartikel hinzuzufügen Minecraft
einen benutzerdefinierten Brennstoffartikel hinzuzufügen ,
wo auch immer das für
diese Vorlesung genau hier ist. Ich hoffe, Sie fanden das nützlich
und er erfährt von dem Neuen, ob er eine Rezension von Ihnen getan hat oder sehr
geschätzt hat. Ansonsten sehe ich
dich in der nächsten Vorlesung. Also ja.
52. (Grundlagen) Hinzufügen von benutzerdefinierten Tooltips: Oder ein Willkommen zurück zum
Stoffkurs für 118. Und in dieser Vorlesung werden
wir
einen benutzerdefinierten Tooltip hinzufügen , der
Rutengegenstand wirft. Dies kann also
grundsätzlich für jeden Artikel getan werden. Was wir also tun werden, ist, dass wir
hier eine
andere Methode außer Kraft setzen . Dies wird also die
Append-Tooltip-Methode sein. Und das wird
eigentlich sehr einfach gemacht werden. Das einzige, was wir wirklich tun
müssen, ist, dass wir es so machen
möchten, dass
Sie beim Mauszeiger über den Gegenstand etwas
wie den Effekt erhalten, wenn
Sie die Umschalttaste
drücken, um
weitere Informationen anzuzeigen. Und wenn Sie dann die Umschalttaste drücken, erhalten Sie weitere
Informationen zu diesem Element. Was wir tun werden, ist, dass
wir eine if-Erklärung abgeben und einen Bildschirm aufrufen, Schuss hat sich nach unten verschoben und dann auch dafür eine andere
Erklärung abgeben. Und wie fügen wir dann eine neue,
etwas Neues zum Tooltip hinzu,
werden wir einfach Tool zum Hinzufügen machen und dann eine neue übersetzbare
Textkomponente oder einen neuen übersetzbaren Text erstellen. Und dann werden wir
in einem e passieren. In diesem Fall wird
dies Item MC Kurs
Dowsing Rod Gehäuse
Unterstrich Stange
sein , diese Tooltip, diese Verschiebung. Jetzt können Sie Ihre Schlüssel natürlich so lange
oder so kurz
machen , wie Sie möchten. Ich bleibe dabei. Ich denke tatsächlich,
dass das vollkommen in Ordnung ist. Wir werden den
Tooltip auch hier ablegen. Und was wir tun werden, ist, dass
wir das ändern werden. Sie würden
die Verschiebung hier nicht einbeziehen. Kopieren wir das
noch einmal und lassen Sie uns ans Ohr
gehen und
uns benachbarte Dateien unterstreichen. Und lasst uns das einfach ganz unten setzen. Da ich das Gefühl habe, dass das
ein guter Ort dafür ist. Und wenn wir dann tatsächlich
die Umschalttaste drücken, können wir sagen, dass
wir rechten Maustaste klicken, um Wertsachen zu finden. Wertsachen sie gehen. Und dann die andere, wir
müssen die Verschiebung hier einfach entfernen. Und dann wird das einfach
Ruhe sein. Und jetzt werden wir
etwas sehr Interessantes ausprobieren. Dies ist also ein Absatzsymbol E,
Diebstahl, Absatzsymbol
R oder weitere Informationen. Und es gibt zwei Möglichkeiten
, wie das gehen kann. Das ist also etwas, das
ich erklären möchte. Das Absatzsymbol
beginnt mit der
Erstellung eines, wodurch der Text in eine andere Farbe verwandelt wird. Jetzt sollte normalerweise das
Absatzsymbol e funktionieren, aber manchmal sind einige
Fehler damit verbunden. Und ich wollte
dir nur beide Versionen davon zeigen. Manchmal funktioniert das also. Das E
fängt also im Grunde an, dies
gelb zu machen , und dann sind die
Absätze so, dass
alles wieder zurückgesetzt wird. Aber das ist eigentlich alles, was
wir für den Tooltip brauchen. Mal sehen, ob es funktioniert oder
es ein Deck und Minecraft hat. Und wenn ich den Mauszeiger
darüber fahre, können Sie Umschalttaste
drücken, um
weitere Informationen zu erhalten. Und wenn ich die Umschalttaste
oder eine ganze Verschiebung nach unten drücke, klicke mit der rechten Maustaste
auf Wertsachen. Also alles, was absolut
perfekt dafür funktioniert , ist
genau das, was wir wollen. Und selbst bei der Färbung funktioniert
hier einwandfrei. Das ist also erstaunlich, oder? Ich werde auch einen Wiki-Artikel
über die
Formatierungscodes für Minecraft verlinken . Ich empfehle
dringend, einen Blick darauf zu werfen, 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 allerdings in der
nächsten Vorlesung. Ja.
53. (Grundlagen) Alles über Tags: Zum Fabric-Kurs für 118. Und in dieser Vorlesung werden
wir uns
die Tags ansehen. Was unsere Tags wollen, spreche
ich nicht von Tags, die du auf Tiere
wie das Namensschild
legst . Ich spreche von
Tags, wie wir es
zuvor für die kleinen Bälle gesehen haben . Und wir werden im Grunde genommen welche Tools
Sie benötigen oder Ihre Blöcke. Und was wir tun werden, ist, dass
wir eine neue Klasse hinzufügen , die es
uns im Grunde ermöglicht, auch Tags zu verwenden. Dadurch wird
unser MOD grundsätzlich
mit anderen Mathematik kompatibler machen . In unserem util-Paket wir mit der rechten Maustaste auf eine
neue Java-Klasse, und dies ist das Schreiben von
Modus-Tags-Klassen. Wir müssen hier zu
statischen Klassen kommen. Die erste ist eine öffentliche
statische Klasse, vier Blöcke. Und dann ist die zweite
eine öffentliche statische
Klasse namens Items. Und in der Block-Klasse gehen
natürlich die Block-Tags und dann die Items
Klasse, das Element Texaco. Dafür brauchen
wir hier eine private statische Methode. privater statischer
Tag-Punkt-Identifikator des Typs Block in diesem Fall ein Tag erstellen, um
sicherzustellen, dass wir hier einen
Net-Mikrowellenblock auswählen würde
in diesem Fall ein Tag erstellen, um
sicherzustellen, dass wir hier einen
Net-Mikrowellenblock auswählen. Und das wird genau hier
einen
String-Name-Parameter haben . Und das wird die Tag-Fabrik
zurückgeben
, die diese Erstellung kaputt gemacht hat. Und dann eine neue Kennung
mit EMC Kursmod, Mod ID und dem Namen
des Parameters. Dann können wir
dieses einfach über n kopieren. Dies ist jetzt ein Create
Harmon-Tag wie dieses. Und anstatt unsere alte Modell-ID zu übergeben, werden
wir
nur ein Kleinbuchstaben c übergeben, da dies ein
Namespace ist, unter
dem die gemeinsamen Tags im Grunde
gesetzt werden. Und was wir dann tun können, ist,
dass wir diese
beiden Methoden einfach in
die Items-Klasse aufnehmen können . Und im Grunde genommen
ersetzen Sie dies einfach durch den Artikel aus dem
nettoitem hier. Und dann natürlich eine Reihe
von Blöcken, das ist Item. Und statt zu blockieren ist
dies auch ein Gegenstand. Dieser Artikel auch. Und dann ist
der Rest tatsächlich völlig in Ordnung. Wie Sie sehen können, ist das
alles, was wir hier tun müssen. Und jetzt können wir diese Steuer definieren. Es gibt also im Grunde zwei
Dinge, die Sie tun können. Sie können, Nummer eins, Ihre Tags in dieser Klasse
definieren, und das ist in Ordnung. Und Sie könnten sie auch
in Ihrem Testament definieren , in Ihren Daten für. Und was sehr wichtig ist
, ist , dass wir im Grunde ein benutzerdefiniertes
Tag erstellen werden, das für uns spezifisch ist. Und dann werden wir
auch
vier gemeinsame Tags haben , die
wir verwenden werden. Wir
brauchen eigentlich immer die Tags hier drin. Die Daten JSON-Dateien brauchen
wir immer, aber wir
müssen diese Klasse nicht unbedingt hier haben. Dies ist nur so
, dass wir auf
unsere benutzerdefinierten Tags
innerhalb des Codes zugreifen können . Das erste Beispiel dafür
ist ein öffentlicher statischer finaler Tag-Punkt-Identifikator
des Blocktyps
, den wir als unterstrichener Unterstrich als nachweisbar bezeichnen den wir als unterstrichener Unterstrich werden
unterstrichen Blöcke. Dies wird im Grunde
die boolesche Methode innerhalb
der Dowsing Rute ersetzen , bei der wir derzeit genau hier einen
wertvollen Gegenstand
fest codiert haben . Und wir werden dies mit dem Tag
erweiterbar machen, das es beispielsweise
anderen Modi oder mehr
Packmachern ermöglicht, anderen Modi oder mehr
Packmachern ermöglicht diesem Tag auch verschiedene Dinge
hinzuzufügen. Und das ist das Schöne daran. Wir werden also sagen, dass
Sie in Kleinbuchstaben ein Tag mit
genau dem gleichen
Namen erstellen . Also dowsing, Rutenunterstrich, die Tech-Blase, schützbare
Unterstreichblöcke. Und lasst uns das eigentlich
ein bisschen anders formatieren. Also vor einem Tag. Und was wir dann tun werden, ist dass
wir hier auch
zwei weitere Block-Tags hinzufügen werden. Einer von ihnen wird die
OriC-Ergebnis-Unterstrich-Blöcke sein. Und der andere wird
der Oracle-Unterstrich sein . Und was Sie erraten
hätten, ist sich tatsächlich um Aman-Tags
handelt. Nun, lass es uns einfach so
machen. Und das werden
die
Orakel-come-Unterstrich-Blöcke sein. Und dann lassen Sie uns das einfach zum Schlimmen kopieren
. Nun, der Grund, warum
wir diese haben ist, wenn auch ein anderer MOD, Anzeigen oder ein Kalzium, dann könnten sie das teilen, dass sie dies teilen können. Und wir
werden das in
nur einem Moment mit
den Gegenständen sehen , weil die Gegenstände tatsächlich sehr
häufig, nützlich und cool sind. Was wir also haben werden
, ist eine öffentliche statische endgültige Tag-ID. Noch einmal vom Typ Item
hier in diesem Fall, und dies ist
Neukalk-Unterstriche, die einem neuen gemeinsamen
Tag oder Ergebnis
entsprechen. Unterstreiche Englands. Lassen Sie uns das einfach mit Control D duplizieren
, und das sind die Nuggets. Und dann auch hier
drin. Erinnern Sie sich, kommen Nuggets. Und wir werden es
benutzen, dass wir diese Barren auch hier benutzen werden. Jetzt noch einmal. Dies in dieser Klasse macht
einfach alle diese Tags innerhalb des Codes
zugänglich,
ist nicht unbedingt erforderlich. Wo es notwendig
ist, ist nur in einem Moment ,
denn jetzt in der
Dowsing Rute Item werden wir eigentlich tun
, anstatt diese
fest codiert zu haben, wir werden
Folgendes zurückgeben. Wir werden
Mod-Tags sagen, die blockiert werden. Und dann importieren Sie dies mit alten Enter Dowsing Rod
detektierbare Blöcke die Block enthalten, Block
enthalten. Da gehst du. Und das wird
wahr zurückgeben, wenn sich der hier
übergebene Block innerhalb dieses Tags befindet. Jetzt unser eigenes Tag. Wir müssen im MC-Kurs hinzufügen, mit der rechten Maustaste
auf neues Verzeichnis namens Tags und dann mit der rechten Maustaste
auf neues Verzeichnis namens Blöcke klicken. Dann drinnen da drin. Oder ich werde es tun, dass ich
tatsächlich
hierher gehe und
den Namen hier kopiere. Steuern Sie also C oder
klicken Sie mit der rechten Maustaste auf neue Datei, Control V, um
sie in Punkt JSON einzufügen. Und dann haben wir das, ich werde tatsächlich den Inhalt
kopieren weil es tatsächlich
ziemlich viel drin ist. Dies
steht Ihnen natürlich im GitHub Repository
oder in einem genauso gut zur Verfügung. Das ist also im Grunde
alles, was ich dort hineingelegt habe, einschließlich meiner eigenen Oracle
Com oder natürlich. Und was wir danach oder als nächstes
tun können ,
ist, dass wir jetzt auch die
Harmon-Tags hinzufügen können. Und wir werden
das tun, indem wir zu Daten gehen, mit der rechten Maustaste auf ein neues
Verzeichnis namens C klicken, nur Kleinbuchstaben
c sehen, sonst nichts. Und ich kopiere tatsächlich
den gesamten Ordner hier. Das sind also wieder
nur Tags, Blöcke, Items. Also alles normal
und die Namen hier müssen eigentlich auch nur mit
den Namen übereinstimmen. Und was wir
tun werden, ist, dass wir tatsächlich eines dieser Tags verwenden werden. Genau genommen die
Orakelbarren markieren innen. Und das wird verrückt sein. Unser Rezept, das ist genau etwas
, das wirklich cool ist. Denn was passieren kann, ist,
dass wir dies tatsächlich zu einem Tag machen können,
wenn wir zum Beispiel etwas wie das
Orakel von
Barren blockieren können,
anstatt einen Artikel hier zu haben. Und dann wird das
natürlich c sein, denn dies ist ein anderer Namensraum und anstelle von England sind es Barren. So können wir ein Tag angeben und dann normalerweise nur das
Tag, wo es sich befindet,
auf See und es ist ein Gegenstand. Das ist übrigens sehr
wichtig, dass dies hier nur
Artikel-Tags enthält. Es sucht also im Grunde nur nach einem Artikel-Tag oder Neukalk-Ingots. Und dann wäre alles, was hier drin
ist als
mögliches
Rafting-Rezept praktikabel. Das Coole
ist also, dass, wenn es
drei verschiedene Massen gibt , die
Oracle
vermischt , theoretisch unser Block mit
einem von ihnen hergestellt
werden könnte . Das ist also eine Art
allgemeine Idee dort. Und ermöglicht es auch mehr
Herzschrittmachern, unser Modell nur
ein wenig kompatibler
mit anderen Mathematik zu machen . Das ist also sehr wichtig. Und natürlich dieses Jahr, oder? Dies ermöglicht es uns nur,
dies viel einfacher und
erweiterbarer zu machen und uns
auch mehr
Friedensstiftern zu ermöglichen, dieses
Ausmaß auch erweiterbar zu machen. Weil wir
in unserem Fall natürlich etwas wie 10 oder Titan oder
oder
ähnliches nicht hinzugefügt haben . Wenn ein anderes Modell hinzufügen würde, dass ein mehr Pack-Maker oder sogar
dieser Mod einfach sagen könnte, hey, wenn das, wenn die
MC-Kursmodelle, fügen
sie das auch einfach hinzu. Das ist also echt verdammt cool. Aber das ist eigentlich alles,
was wir für unsere Panzer tun müssen. Also Nummer eins, mal sehen,
ob die Rute mit der neuen ist wertvolle
Blockmethode funktioniert. Und mal sehen, ob wir in Minecraft
noch
Kalziumblöcke aus Barren oder
Schlussfolgerungen herstellen können . Mal sehen, klicken Sie mit der rechten Maustaste. Und da haben wir es. Dort haben wir
etwas Kupfererz. Und lass uns einfach weitermachen. Vielleicht werden wir auch
etwas tiefe Schiefer finden, Kupfer oder Eisen oder ich bin sicher, dass wir
irgendwann etwas finden werden, natürlich sinkt die Haltbarkeit
nicht. Oh, Lapislazuli, damit wir das vorher
definitiv nicht
hatten. Mal sehen, ob
wir hier irgendwo etwas
anderes finden könnten ,
keine Wertsachen gefunden. Die Haltbarkeit sinkt nicht
, da wir uns derzeit im
Kreativmodus befinden. Das berücksichtigt auch
andere Bereiche. Tiefschlaf, Lapis, Lazuli
Rate oder ist es da? Da ist es. Also los geht's. Das ist eigentlich echt
verdammt genial. Und lass uns einfach sehen. Erinnern Sie sich
also daran, dass sie gut geworden sind und sie gehen, wir können immer noch bauen, dass
der RCA blockieren kann, wäre hier nichts passiert. Das ist also ziemlich
häufig, cool, seriös oder EBIT für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und es lernt das Neue. Der gesamte Code
steht Ihnen
im GitHub-Repository oder im
Einzelnen genauso zur Verfügung. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
54. (Grundlagen) Hinzufügen von Treppen und Platten: Oder ich begrüße zurück beim
Stoffpferd für eine 118. Und in dieser Vorlesung beginnen
wir unsere oder Vortragsreihe über das, was ich normalerweise als Nicht-Block bezeichnete
. Blöcke. Natürlich ergibt das nicht viel
Sinn. Was wir jedoch
im Grunde hinzufügen möchten, sind Treppen,
Platten, Knöpfe, Druckplatten, Zäune, Zäune, Tore, Wände, Türen
und Falltüren. Und das werden wir
in den nächsten vier Vorträgen machen. Sie haben alle einige Ähnlichkeiten, aber es gibt einige wichtige, wichtige Schritte, die Sie bei einigen von ihnen unternehmen müssen
. Also lasst uns einfach anfangen. Und die Nummer eins, die ich anfangs geben
möchte, ist, dass ich auf jeden Fall
alle JSON-Dateien hier kopieren
werde. Sie
müssen also definitiv
das GitHub-Repository oder
die Juristen öffnen das GitHub-Repository oder und
diese auch kopieren. Ich habe dringend empfohlen, diese
auszuschreiben. Sie werden sehen, dass es in einem Moment nicht wirklich möglich
ist. Nun, es ist möglich, aber du könntest eine halbe
Stunde damit verbringen, etwas Besseres zu machen. Also werden wir
das sehen, überhaupt keine Sorgen. Und was wir tun werden, ist, dass
wir
den SPD-Block zweimal kopieren werden. Und die erste wird die
OriC-Kalzium-Unterstrichen-Treppe sein . Und das wird die 40.000
Ergebnisstufen sein. Und das wird das
Oracle-Einkommensunterstrichen-Labor sein. Und das wird
auch die
Orakel-Come-Unterstrich-Platte sein. Jetzt sind natürlich
keines davon schnelle Blöcke. So
steuert die Orakel com-Treppe Block und die Platte
soll Platte sein. Jetzt werden Sie sehen
, dass das Plattenschloss absolut gut
funktioniert. Keine Roy's überhaupt
schon oben mit dem neuen
Treppenblock neu zu alken funktioniert nicht weil er einen geschützten Zugang hat. Was heißt das? Nun, wenn wir mit der mittleren
Maustaste darauf klicken, können
wir sehen, dass der Beweis dafür, dass der Konstruktor hier tatsächlich geschützt
ist. Was wir also tun
müssen, ist, dass wir
daraus eine benutzerdefinierte Klasse erstellen müssen , was irgendwie seltsam ist. Ich persönlich bin mir nicht
hundertprozentig sicher. Breiter das ist der Fall. Es ist jedoch, was es
ist, also müssen wir es tun. Lassen Sie uns
dieses Material auch hier in
Metall umwandeln , denn am Ende
des Tages ist dies ein Kalzium. Und nachdem wir das getan haben, gehen Sie zum benutzerdefinierten Paket und klicken Sie mit der rechten Maustaste auf neue Java-Klasse. Dies ist der Mustertreppenblock. Und wir werden das vom Treppenblock aus erweitern
. Lassen Sie uns den Mauszeiger darüber bewegen und einen Konstruktor erstellen, der super
passt. Und dann ändern wir dies
von geschützt zu öffentlich. Und jetzt sind wir fertig. Und wir werden uns im Grunde
nie wieder die mehr
Treppenblockklasse ansehen müssen. Aber jedes Mal, wenn
wir einen neuen Block bauen, das ist ein Treppenblock, werden
wir diesen stattdessen benutzen. Und Sie können sehen, dass
der erste Parameter tatsächlich ein Blockstatus
ist. Was wir hier also
übergeben müssen, sind
nur die Modusblöcke oder -block. Dies ist also im Grunde genommen
Punkt-Git-Standardstatus. Was wir also hier reingehen
müssen, ist der Block, aus dem die
Treppe besteht. Aber das ist die allgemeine Idee. Aber dafür
sind Ihre Bücher registriert und
wären bereit zu gehen. Natürlich
kann es nie so einfach sein. Denn wirklich wie die
Kicker-Sache für alle Nicht-Block-Blöcke
werden die JSON-Dateien sein. Nun, wie ich schon sagte, ich
werde sie alle für
immer kopieren und werde
es natürlich auch erklären. Wir werden die Platte
kopieren
und den Block lenken sagt Jason, und bitte fallen Sie nicht
von Ihrem Sitz, wenn Sie das
sehen, denn
das ist ziemlich viel. Fangen wir also tatsächlich mit einer Platte an ,
denn das ist überhaupt nicht so
schlimm. Was Sie also sehen können, ist, dass
wir jetzt tatsächlich eine andere
Varianz haben, oder? Wir haben drei verschiedene
Arten von Platten, unten, doppelt und oben. Und jeder von ihnen zeigt auf eine
andere Jason-Datei. Dies deutet auf die Platte Jason hin, dies deutet darauf hin, dass das Orakel
blockieren kann , denn
wenn Sie zwei Platten haben, sieht
es natürlich wie
ein normaler Block aus. Und dann
zeigt dieser auf die Platte, aber auf den oberen Teil oder die obere Hälfte
des eigentlichen Blocks. Das ist die allgemeine Idee. Dieser Typ wird
hier als Blockstatuseigenschaft bezeichnet . Wir werden uns diese
in einer zukünftigen Vorlesung vorerst
viel genauer ansehen ,
wir können uns
diese Variablen nur so vorstellen, dass sie eine Art von Werten
haben
, die sie annehmen können. Und abhängig von ihrem Wert ändern
wir das Modell, auf das der
Block Punkte auswählt. Das ist so ziemlich
alles, was es dazu gibt. Jetzt für die Treppe haben
wir tatsächlich mehrere verschiedene
Blöcke und Eigenschaften. Und deswegen
sieht es so aus. Und ich werde weiter scrollen und du wirst sagen,
das ist Wahnsinn. Ja, das hat 209 Zeilen. Das ist der Grund, warum Sie dies zu 100% kopieren
sollten, unter keinen Umständen
sollten Sie dies aufschreiben, denn das ist absoluter Wahnsinn. Ein schneller Trick, den ich mit dir teilen
möchte, ist, dass du hier eine
andere Modus-ID verwenden würdest. Sie können dies auswählen und Strg R drücken, um
dies zu ersetzen und diese dann
durch Ihre MOD-ID zu ersetzen. Im Grunde genommen hat dieser Treffer Alle ersetzen. Und Sie können sehen, dass es
plötzlich überall das eigentliche Ding durch
die
Melodie ersetzt hat , die wir hier hineingelegt haben. Das ist Control Z
, um hierher zurückzukehren. Und das Gleiche
gilt natürlich für das Kalzium. Wenn Sie zum Beispiel Arnold
Titan verwenden, könnten
Sie
sie einfach alle ersetzen und dann
würde das auch funktionieren. Wo vergessen Sie nicht,
die JSON-Dateien auch umzubenennen. Aber das macht tatsächlich
alles viel einfacher. Und
das können Sie übrigens auch tun,
wenn Sie den Ordner hier auswählen und Control Shift R
drücken, dann erscheint
die, diese Ersetzungsdatei und Sie können sehen, dass ich
jetzt ein Kalzium ersetzen könnte oder ein Kalzium in
allen diese Akten hier. Gleiches und ersetzen Sie
es dann grundsätzlich durch Titan,
sagen Sie Alle ersetzen. Und das würde auch funktionieren. Aber das ist ein sehr
wichtiger Tipp und ich
empfehle dies dringend,
wenn es benötigt wird. Jetzt müssen wir
die Blockmodelldateien kopieren und hier
wird es ziemlich verrückt. Und das ist auch, Sie werden jetzt
sehen, warum ich sage: Nun, wir werden
alles kopieren,
weil es
fünf verschiedene Dateien sein werden. Das ist eigentlich immer noch nicht so
schlimm Alles in Betracht gezogen, aber es sind immer noch einige. Öffnen wir einfach
zuerst die Platten , damit Sie
sehen können, dass das,
was hier drin geschrieben ist,
eigentlich nicht zu verrückt ist. Wir haben im Grunde nur drei verschiedene Texturen, auf
die wir hinweisen, wo auch immer, sowohl für den Laptop
als auch für
die Platte, die dieselben Texturen sein werden, was auch immer der Fall sein mag, weil wir immer wollen, dass dies wie der Orakelblock
aussieht. Und der einzige
Unterschied zwischen den
beiden, die auf Dateien basieren,
ist das übergeordnete Element hier. Entweder ist ein Slab Horse
Laptop, das ist es wirklich. Und wenn es um die Treppe geht, während sie ein
bisschen anders,
aber auch sehr ähnlich aussehen , haben
wir drei verschiedene
Texturen, auf die wir hingewiesen haben. Und das
einzige, sich hier ändert, sind Blicke, Innentreppen und Außentreppen, oder der Elternteil sind so
ziemlich
alle Änderungen oder alle Unterschiede
im Artikelmodell Jason? Nun, das sind glücklicherweise eigentlich nur ein normales Gegenstandsmodell
Jasons vier Blöcke. Dies deutet
hier auf die normale Platte hin und dies deutet auf die normale oder eine Telekommunikationstreppe
JSON-Datei genau hier hin. Es gibt also überhaupt keine Sorgen. Und das Verrückte ist, dass
wir
keine Texturen hinzufügen müssen , weil die Treppen und der Brammen Wolf einfach
die Orakelblock-Textur verwenden. Das ist also echt cool. Das einzige, was wir hinzufügen
müssen, ist eine Übersetzung. Was wir natürlich tun
werden, ist, dass wir das
einfach hier kopieren
werden. Ich sage, oder ein Kuheinkommen. Unterstrichentreppen werden
das Orakel Malcolm sein. Es gibt und dann wird
das die neu alc sie Platte
sein. Bramme. Bitte beachten Sie auch, dass
diese Treppen mit einem S, also Plural und Slab Singular, das auch
hier sehr wichtig ist. Aber eigentlich weiß ich, du
mir nicht glauben wirst, aber das war's. Das Verrückte wird
definitiv hier sein. Die JSON-Akten für den
Block States Jason. Und das wird im Grunde
für alle
unsere verschiedenen Nicht-Block-Blöcke fortgesetzt unsere verschiedenen Nicht-Block-Blöcke , die wir hinzufügen werden. Daher empfehle ich dringend,
sich die
im GitHub-Repository anzusehen und zu kopieren die sind vorbei. Und dann wird
es viel einfacher. Aber jetzt schauen wir mal, ob es funktioniert. Oder ich funktioniere wieder in Mikrofinanzierung, kann
sehen, wie das Orakel starrt und die Sklaven zum Spiel hinzugefügt
wurden. Und wir können
sie aufstellen und einfach ein nettes
machen, Nun, ich meine, im Grunde was
wir mit ihnen wollen, wir können sie einfach aufstellen und alles hier
funktioniert auch, oder? Wir können die innere und
die äußere Treppe sehen oder arbeiten. Sie können dies oben und auch unten
hier abstellen und zusammenfügen , um einen normalen Block zu bilden. Wie Sie sehen können, funktioniert hier
alles. Das ist also ziemlich cool, 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, und wir sehen uns in
der nächsten Vorlesung. Also ja.
55. (Grundlagen) Hinzufügen von Buttons und Druckplatten: Alles klar, willkommen zurück
zum Stoffkurs für 118. In dieser Vorlesung
werden wir benutzerdefinierte Schaltflächen und
Druckplatten hinzufügen und mit den Nicht-Block-Blöcken fortfahren. Gehen wir also in unsere
Mort Blöcke Klasse und kopieren wir einfach zweimal die
OriC-Telekommunikationsplatte. Und fangen wir einfach
sofort an. Das wird also
der Oracle-Kommen-Button sein. Und das ist natürlich
wieder hier der Fall. Und dann der andere,
das wird die unterstrichene Platte
des
Telekommunikationsunterstrichs sein . Und noch einmal das Gleiche
in Kleinbuchstaben genau hier. Druck unterstreicht spät. Jetzt wird der Calc-Button
hier natürlich ein Button-Block sein
, der uns auch einen Fehler
gibt. Und die Platte ein Block
wird ein Druck sein oder vielmehr das Vergnügen
gespielt Brock
wird ein
Druckplattenblock sein
, der natürlich auch einen Fehler haben
wird. Dies bedeutet, dass wir hier
zwei neue benutzerdefinierte Klassen erstellen müssen . Also in unserem benutzerdefinierten Paket der Modus-Tastenblock, der
die
Stone-Button-Block-Klasse erweitern wird. Wir werden den Mauszeiger über
diesen Creed-Konstruktor super
passt. Möchtest du das hier
in öffentlich ändern. also keine Sorgen. Und dann müssen wir uns diesen Kurs nie wieder
ansehen. Und dann noch einmal im benutzerdefinierten
Paket. Der
Modus-Druckplattenblock genau hier. Man erweitert dies durch den
Druckplattenblock. Und wir werden den
Mauszeiger noch einmal darüber bewegen und dies auch öffentlich machen. Jetzt benutzt es die
normalen Vanille-Klassen. Wir benutzen den Mod
Stone Button Block genau hier. Und dann werden wir hier
den Mod des Drucks
gespielt Block benutzen . Jetzt wird der erste
Parameter davon tatsächlich
eine Aktivierungsregel sein. Das wird der Akt sein. Sie meiden alles. Im Grunde genommen wird
alles, was
über diese
Druckplatte geht , es aktivieren. Lassen Sie uns tatsächlich die mittlere
Maustaste darauf klicken und der mittleren Maustaste auf
den Druckplattenblock klicken . Und Sie können sehen, dass wir die Redstone-Ausgabe
haben. Dies ist im Grunde
die Methode, die
verantwortlich ist oder prüft, um
welchen tatsächlichen Typ es sich handelt. Sie können also sehen, dass dies.tab hier gewechselt
wird. Also als
Switch-Anweisung und Sie haben alles oder Mütter,
wenn Sie Ihren
eigenen benutzerdefinierten Aktivierungstyp erstellen möchten, empfehlen Sie es jedoch noch
einmal. Sie benötigen etwas
Java-Wissen, um dies tatsächlich zu tun. Aber es ist nicht zu verrückt. Was Sie tun können, ist, dass Sie machen können, im Grunde müssen Sie nicht einmal Ihre eigene
Aktivierung
machen,
da die Aktivierung von
allem, was Sie sehen können, eine Aufzählung ist. Du musst das nicht mal tun. Was Sie tun können, ist, dass Sie diese Methode
einfach in
Ihrer benutzerdefinierten
Druckplattenblockklasse überschreiben können Ihrer benutzerdefinierten
Druckplattenblockklasse und dann hier
Folgendes haben. Aber Sie können sehen, dass die
nicht zuschauenden Entitäten, und Sie bestehen im Grunde eine
bestimmte Klasse hier. Was ist die Klasse dessen
, was wir bekommen werden? Und das ist eine Liste
bestimmter Tiere oder bestimmter Mobs
, die wir dann durchmachen. Und das ist die allgemeine Idee. Also in diesem Fall
alles, was ein
Lebewesen ist, oder? Also mobs alles
, was ein Lebewesen ist, dann werden wir 15 zurückgeben. Wenn die Entität, die über
dieser Lebewesen liegt, können wir
sonst auch hier
etwas anderes eingeben. Das ist also etwas
, das Sie beachten sollten,
wenn Sie das nicht wollen,
das ist völlig in Ordnung. Aber ich empfehle definitiv
etwas Java-Wissen dafür. Sonst
wirst du wahrscheinlich ziemlich viel
damit zu kämpfen haben . Nun, die Blöcke
sind jetzt registriert. Aber natürlich sind die
Drazen-Akten
leider wieder die Sache
, die das verrückte Zeug sein wird. Und in diesem Fall die Button-JSON-Datei wird
die Button-JSON-Datei
für den Blockstatus
tatsächlich das Verrückte sein. Du siehst es. Die
Druckplatte hat nur eine Powered entweder falsch oder wahr. Und dann haben wir entweder
die Druckplatte oder die Druckplatte unten. Das ist ziemlich einfach. Der Knopf ist, wie Sie sehen
können, verrückt. Noch einmal, da wir es
entweder auf den
Boden oder die Wand stützen können. Wir können es nach Osten, Westen, Süden oder Norden richten. Und es kann entweder ein- oder ausgeschaltet sein. Das ist also im Grunde das, was
all diese Verrücktheit bewirkt, ist es tatsächlich ziemlich verrückt. Insgesamt dreht sich dieses Jahr im Grunde
nur den Block und dieses Jahr macht es
so, dass
sich die Textur auch mit dem Block dreht ,
so dass sie
sich nicht unabhängig dreht. Das ist der allgemeine
Kern von all dem. Aber wieder einmal ist es
ziemlich verrückt. Tippe das nicht aus. Dies steht Ihnen
im GitHub Repository oder
im Einzelnen genauso gut zur Verfügung. Dies wird natürlich
auch
in den externen
Bibliotheken hier unten verfügbar sein , die wir bereits
zuvor gesehen haben. Daher empfehle ich dringend, dies bei Bedarf einfach zu
kopieren. Und Sie können natürlich immer den Trick
verwenden, um
dies auszuwählen , und drücken Sie Control
R, um etwas zu ersetzen. Und dann können Sie
beispielsweise das MOD-ID-Jahr ersetzen . Und du musst es
nicht oft einzeln machen. Aber lasst uns tatsächlich
sofort zur
EN Unterstrich uns JSON-Datei gehen , weil
ich das manchmal
vergesse. Machen wir es uns also nicht zur Gewohnheit. Wir sagen den
Oracle-Komma-Button und das Orakel kann
Druck auf den Teller setzen. Und das wird
die Neukalk und der Knopf sein und das Perikard des Drucks auf nicht unterstreichen,
sondern eine normale Platte, das Ego und dann die
Blockmodelle, die wir gesehen haben, natürlich
gibt es wieder ein weniger, mehr, aber zum Glück für den
Knopf und die Retro-Platte gibt es
wieder fünf. Werfen wir einen kurzen
Blick auf die, denn wieder einmal sind
sie eigentlich nicht
so interessant. Alles in Betracht gezogen. Sie können sehen, dass der
Button hier jedes
Mal einen anderen Elternteil
hat und die Textur immer auf den
bereits Kalikimaka-Block zeigt. Das ist also so ziemlich
alles, was es dazu gibt. Gleiche gilt dafür. Punkte auf das Orakel
können die Textur blockieren. Und es hat im Grunde nur die Druckplatte nach oben oder Druckplatte unten als Elternteil. Das ist wirklich der
einzige Unterschied hier. Und für die Artikelmodelle gibt es etwas ganz
Besonderes für den Button. Aber das ist auch nicht allzu
verrückt, weil wir
ein bestimmtes
Button-Inventarblockmodell haben , auf
das dies hinweist, aber auch nichts zu beenden ist. Aber insgesamt ist das
eigentlich nicht allzu verrückt. Und noch einmal
müssen wir
hier keine Texturen hinzufügen, da die Texturen
immer sein werden, das Oracle kann für einen dieser
Blöcke blockieren. Aber jetzt mal
sehen, ob es funktioniert. Oder Apotheker zurück in
Mikrofinanzierung kann beides sehen. Die Druckplatte sowie
der Knopf wurden hinzugefügt. Und klicken wir einfach auf den Button. Natürlich funktioniert es und
hier genau das Gleiche. Und weil wir alles,
sogar die Item-Entitäten, hier
abgelegt haben sogar die Item-Entitäten, hier , wird es immer noch funktionieren. Das ist also ziemlich
häufig, cool. Und
so einfach ist es eigentlich einen
dieser Blöcke
hinzuzufügen, wo ich, aber das wird es
für diese Vorlesung schon hier sein. Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Denken Sie natürlich daran, dass
der gesamte Code
im GitHub-Repository oder einer
Einzelperson genauso gut verfügbar ist . Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
56. (Grundlagen) Hinzufügen von Adding Zäunen und Mauern: Fabric-Kurs für 118. Und in diesem Vortrag werden
wir benutzerdefinierte Zäune,
Zäune, Tore und
benutzerdefinierte Mauern
hinzufügen , Minecraft. Das wird also im Grunde mit
den Nicht-Block-Blöcken
fortgesetzt , wie
ich sie gerne nenne. Nun, lasst uns in unsere Klasse „
Mehr Blöcke“ gehen und lassen dreimal die benutzerdefinierte
Platte hier
kopieren. Also werden wir natürlich ein
orales Kalzium-Ende haben. Und das wird
auch ein Orakel
sein , das sich hier biegt. Und dann werden wir
ein Zaun-Unterstrich-Gate haben. Und hier natürlich auch, oder ein CalcSum unterstrich
Flossen UND Gate. Und genau hier haben
wir eine orale Kalziumwand hier
eine orale Kalziumwand
und auch eine Kaliko-männliche
Wand. Da gehst du. Das wird also der Block eines Freundes
sein und es funktioniert tatsächlich. Und das wird ein guter Zaunblock
sein. Und es funktioniert tatsächlich. Trauer oder drei beenden? Ja, ein Mauerblock. Und es funktioniert auch tatsächlich. Das ist also wirklich gut. müssen wir
hier
keine benutzerdefinierten Klassen In diesem Fall müssen wir
hier
keine benutzerdefinierten Klassen erstellen. Also können wir im Grunde einfach mit den JSON-Dateien
fortfahren, die wieder ziemlich häufig verrückt werden, aber überhaupt keine Sorgen machen werden. Wir werden das durchstehen. Also drei Blöcke
States, JSON-Dateien, und Sie können bereits sehen dass
die Dinge
absolut verrückt werden. Zuallererst
hat das
Zauntor, wie Sie sehen können, hier drei verschiedene
Blockzustandseigenschaften, in die Wand
gerichtet und offen sind. Und abhängig davon wir uns im Grunde wieder für
ein anderes Glücksmodell entscheiden . Und dann
drehen
wir es natürlich und der
UV sperrt es auch. Nichts zu Verrücktes hier. Wieder einmal
ist ein sehr guter Tipp, die Steuerverschiebung zu drücken, oder wenn Sie
ein anderes oder ein Kalzium haben , wenn Sie keine Zusammenfassung verwenden
, sondern Titan, oder wenn Sie eine
andere Modus-ID haben, können
Sie einfach die
mara DMC Kurs hier und tippe deine eigene Melodie ein
und ersetze sie so. Noch einmal, Control Shift und sind, wenn Sie sich in einem Ordner befinden. Und natürlich
stehen Ihnen alle Dateien
im
GitHub-Repository
oder im Einzelnen genauso zum Download zur Verfügung. Und die Mauer und der Zaun hier sind eigentlich ein
bisschen anders. Diese sind mehrteilig
, wie Sie sehen können. Und da
ist die Idee, dass Sie
einen bestimmten Teil des Modells anwenden , wenn etwas passiert. Sie können also sehen, dass wir,
wenn
es hier etwas gibt , eine Seite in einer bestimmten Richtung hinzufügen. Dann fügen wir auch das
zusätzliche Modell hinzu. Lassen Sie uns also in die
UN-Unterstriche uns
JSON-Datei eingehen und lassen Sie uns einfach
alle sofort hinzufügen. Also wird
es den Zaun geben. Und dann werden wir den Oracle-Einkommensunterstrich, den
Unterstrich, den Unterstrich, das Tor zu diesem Zaun hier und das Tor hier haben. Dies wird auch die
Malcolm-Mauer sein. Willkommen Wand. Da gehst du. Jetzt haben wir all das hinzugefügt. Das wird
also auch gut werden. Und fügen wir jetzt
die JSON-Dateien des Modells hinzu, die reichlich sein werden. Eigentlich haben wir
vier für das Tor, wir haben drei für den Zaun, und dann haben wir noch
vier oder die Mauer. Wie ich schon sagte, viele Akten, davon insgesamt
11. Insgesamt sehen
sie alle ziemlich
genau gleich aus. Wir haben auf eine Textur hingewiesen, nämlich auf die Blocktextur. Und nur die Eltern
sind anders. Man sieht also, dass hier wirklich
nichts Verrücktes vor sich geht. Es geht nur darum,
den richtigen Elternteil zu haben und dann auf die richtige Textur
zu verweisen. Das ist alles, was es dazu gibt. Ich glaube nicht, dass es wirklich notwendig ist, jeden von ihnen
durchzugehen. Es sieht alles gleich aus. Manchmal ist der Name,
das Jahr der Textur ein
bisschen anders. Aber insgesamt ist
das die meiste Zeit
der Unterschied. Und Sie können
natürlich auch immer zu den
externen Bibliotheken
gehen, rot zu dieser hier in
Minecraft, Minecraft-Projekt. Im Ordner „Assets“ blockiert
Minecraft States. Wir haben die Modelle, die Modelle und dann auch hier auch alle
Modelle oder auch. Sie können zum Beispiel die
Enscape-Wand hier sehen. Und das ist auch verfügbar, also gibt es überhaupt keine Sorgen. Sie können sich
das immer ansehen und diese auch benutzen. Und kopiere sie im Grunde. Lassen Sie uns nun auch über die Mauer,
das Zauntor und die
Zaunelementmodelle kopieren . Um diese Punkte
dem Wandinventarmodell zuzugeben, deutet
dies auf das
Zauninventar hin, und dies zeigt auf das Endtor. Also nichts zu verrückt. In einer weiteren Zeit müssen
wir keine Textur
hinzufügen was wir
zum Hinzufügen unserer Tags benötigen. In unserem Datenordner, Minecraft-Tags Blöcke, klicken Sie mit der rechten Maustaste auf eine neue Datei
namens Zäune Daten JSON. Und dann werden wir
den Inhalt
dieses Jahres
nur für einen Moment kopieren den Inhalt
dieses Jahres
nur für , damit wir
die richtige Formatierung
für die Tags haben . Und dann
werden dies MC-Kerne für den Neukalk-Unterstrich-Zaun sein. Und dann ziehen wir das einfach
in denselben Ordner, während wir
die
Kontrolle halten, um es zu duplizieren. Und wir nennen
das das „walls-Tag“. Und dann wird
das die Neukalk-Wand sein. Dies wird benötigt, damit die Verteidigung tatsächlich miteinander
verbunden ist. Das ist sehr wichtig, oder? Und nachdem wir all das
hinzugefügt haben, schauen
wir mal, ob es funktioniert. In Ordnung, wir haben
festgestellt dass verhindert werden können, dass alle drei Blöcke
hinzugefügt wurden und sie alle völlig
in Ordnung sind. Das ist also genau das, was Sie hier sehen
möchten. Lassen Sie uns
das auch einfach aufstellen. Da gehst du. Also
funktioniert alles völlig gut. Und nun, ich meine,
sie sind alle hinzugefügt und so einfach
ist es eigentlich, die Zauntore,
die Zäune und die
Wände zum Spiel hinzuzufügen . Kautschuk Das wäre es schon 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.
57. (Grundlagen) Türen und Türen hinzufügen: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
eine benutzerdefinierte Tür und eine benutzerdefinierte
Falltür hinzufügen . Diese werden
tatsächlich sehr interessant sein. Lasst uns einfach in unsere
Mottoblock-Klasse eingehen. Und damit
schließen Sie im Grunde die Nicht-Block-Blöcke ab. Was
hier interessant sein wird, ist, dass diese
eigentlich nicht aus Kalzium bestehen , sondern aus Kirschblüten
bestehen werden. Jetzt ist Kirschblüte
natürlich das eigentliche Holz. Also werden wir in einem späteren Vortrag einen
Brauch haben, aber wir
werden schon die Tür sehen. Kirschblüten
unterstreichen die Tür genau hier. Und dann gilt das Gleiche für die Sheri-Unterstrich-Blüte,
unterstrichen Falltür. Kopieren Sie
das einfach hier drüben, machen Sie es ein bisschen einfacher
für die Ego-Falltür. Und jetzt müssen wir tatsächlich
einen Motortürblock und einen
Mod-Falltürblock bauen. Nun, lassen Sie uns einfach
diesen Türblock erstellen
, der den Türblock erweitert. Lassen Sie uns den Mauszeiger über diesen
Creed-Konstruktor bewegen, der super passt, und machen Sie dies auch öffentlich. Und jetzt müssen
wir uns die Klasse nie ansehen. Schon wieder. Das Gleiche gilt für
das Modell Falltürblock. Wir werden
natürlich nur den Falltürblock erweitern . auch den Mauszeiger über den
Ratenkonstruktor, der
super passt und den
Konstruktor hier öffentlich macht. Und dann geht's uns gut. Die Tür wird
natürlich ein Motto-Türblock sein. Und das wird
ein Modell-Falltürblock sein. Und wir müssen tatsächlich einen anderen
nennen, naja, ich denke, die
Fabric-Einstellungen und das wird hier nicht undurchsichtig sein. Da dies tatsächlich der ist, sowohl die Tür als auch die Falltür enthalten
sowohl die Tür als auch die Falltür Alpha-Werte
in ihrer Textur. Das bedeutet, dass Sie
im Grunde ein Portal haben , das
im eigentlichen Buch durchsichtig ist. Und wenn Sie das haben,
müssen Sie dieses nicht
undurchsichtige hier hinzufügen. Das ist sehr wichtig. Und es gibt noch eine andere Sache , die wir dafür tun müssen. Und das wird
sein, wir werden
eine neue Klasse im
MC-Kurspaket machen . Klicken Sie also mit der rechten Maustaste auf
die neue Java-Klasse
namens MC-Kursclient ,
die den
Client-Mod-Initialisierer genau hier implementieren wird . Wir bewegen den Mauszeiger darüber
und implementieren die Methode, die nicht initialisierte Client-Methode. Und dies wird nicht enthalten, wo wir
den Renderer-Layer festlegen. Wir sagen also
Block-Render-Layer-Map. Diese Instanz. Instanz-Dotplot-Block. Welche Blöcke? Punkttür, genau die
Kirschblüten-Tür mit dem
späteren Renderpunkt wird ausgeschnitten. Dann werden wir das
einfach duplizieren und die Falltür hier reinlegen. Und was wir auch
tun müssen, und das ist sehr, sehr wichtig, dass
Sie dem folgen, wir müssen in unseren Stoff eingehen. Punkt neben hier und unter dem
Haupteinstiegspunkt genau hier, oder? Das ist sehr wichtig. Wir
müssen dies im Grunde kopieren. Nun, der CIA-Klient. Dann müssen wir den
MC-Kurs sagen und dann
sicherstellen , dass dies so
geschrieben wird. Also MC-Kurs, Kunde, das ist sehr wichtig und das muss
definitiv anders
passieren, der Kunde wird letztes Jahr nicht
erkannt und wir
werden einen Brunnen haben,
einen Pfeil, wie das
ist wird angezeigt. Aber nachdem das hinzugefügt wurde,
war das in Ordnung und der Code ist fertig. Jetzt müssen wir einfach mit den JSON-Dateien fortfahren
. Natürlich stehen
Ihnen alle JSON-Dateien
wieder entweder im
GitHub-Repository oder als einzelne Gists zur Verfügung. Nachdem wir all
diese blockfreien Blöcke gemacht haben, haben
wir gesehen, dass diese
mehrfache Rate einfach auf
verschiedene Modelle genau hier in
der Falltür
oder auch in der Tür hinweist verschiedene Modelle genau hier in . Nichts zu spektakuläres
um ehrlich zu sein. Lassen Sie uns also auch die
Übersetzung hier hinzufügen. Das ist also nicht schon Kalzium, aber das ist Sherry Unterstrich
Blüte unterstrichen Tür. Und dann machen wir
die Kirschblüten-Tür. Und das Gleiche gilt
hier für die Falltür. Wir werden einfach
die Falle an der Grenze hinzufügen. Und dann gilt das Gleiche für
diese eine Falltür, oder? Das Ziel, und was wir
dann
tun können , ist, dass wir
die Modelldateien hinzufügen können. Jetzt gibt es tatsächlich
einige davon. Lassen Sie uns die kopieren. Man sieht, dass es sieben von ihnen
gibt. Aber obwohl
es
insgesamt sieben gibt, sind sie
ziemlich einfach. Du kannst sehen, dass es wieder einmal nur der Elternteil
ist, der hier anders ist. Und das Gleiche
gilt im Grunde für die Falltür. Das einzige andere
Interessante ist, dass
wir, weil die Tür
aus zwei Blöcken besteht, im Grunde eine obere und eine
untere Textur haben, die darauf
hinweist weil die Tür
aus zwei Blöcken besteht, im Grunde eine obere und eine
untere Textur haben, die darauf
hinweist, was so ziemlich das einzig , was so ziemlich das Interessante
ist Sache. Jetzt ist das Artikelmodell, insbesondere für die Tür, eigentlich sehr interessant. Denn wenn Sie das
sehen werden, ist
dies tatsächlich ein
normales Artikelmodell. Oder a, für einen Artikel kein Block. Das liegt daran, dass die
Tür tatsächlich hat, nicht im
Inventar als Block angezeigt wird, sondern als tatsächlicher Gegenstand. Die Falltür jedoch, dieser Punkt belastet hier
normale Falltür. Für diesen müssen
wir
es also tatsächlich zu verschiedenen Texturen hinzufügen. Wird tatsächlich drei
verschiedene
Blocktexturen und eine Elementstruktur sein. Diese stehen Ihnen natürlich
auch zur Verfügung. Sie haben den
Türboden, wir haben die Tür oben und die Falltür. Dann haben
wir im Artikel auch die
Tür genau hier, also werden wir das auch einfach
kopieren. Also das Ego, die
Ribosomentür für den Gegenstand. Und jetzt
wurde alles hinzugefügt. Nachdem wir all dies
hinzugefügt haben, Mal sehen, ob es funktioniert oder wenn ja, wir befinden uns in der
Mikrolinse können sehen, dass
sowohl die Tür als auch die Falltür
erfolgreich zum Spiel hinzugefügt wurden . Wenn ich jetzt mit der rechten Maustaste auf
dich klicke und sehe, dass es tatsächlich nicht
funktioniert, diese zu öffnen. Das ist sehr neugierig und
ich kann sie tatsächlich öffnen. Nun, ich meine, machen wir es
einfach richtig. Hier. Da gehst du. Ich kann sie
tatsächlich mit einem Redstone öffnen, wenn ich vor allem
richtig geleitet habe. Das ist also etwas, das
wir noch ändern müssen. Und ich zeige Ihnen, wie Sie
grundsätzlich feststellen können ,
ob
es nur mit Redstone geöffnet oder auch
mit der Hand zu öffnen ist oder nicht. Aber es ist eigentlich eine
sehr, sehr einfache Lösung. Anstatt
das Material Metall einzulegen, legen
wir einfach Material Holz ein. Und das ist alles, was wir tun
müssen, um sie
hier zu ändern , um sie jetzt mit dem Ende zu
öffnen. Es gibt also überhaupt keine Sorgen. Dies schließt jedoch ziemlich den blockfreien Teil
der Vortragsreihe ab, und dies würde auch
den ersten Abschnitt hier abschließen. Hoffentlich fanden Sie das nützlich und lernen
etwas Neues. Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
58. (Tools) Erstellen eines neuen Werkzeugsatzes: Oder ein Willkommen zurück zum
Stoffkurs für 118. Und in dieser Vorlesung werden
wir
ein benutzerdefiniertes Toolset erstellen. Und was ich meine, ich schätze, lasst uns einfach anfangen hier in unsere
Modell-Items Klasse
zu gehen. Und wir werden
eine Pick Axt und Axt als Ganzes machen, eine Schaufel und ein Schwert. Und es wird
tatsächlich in dieser Reihenfolge sein. Erstens, was wir finden werden
, ist, wenn ich einfach den ganzen Splitter hier
kopiere, wir werden einfach
anfangen, das zu machen, es ist eigentlich auch cool, hier benennen
zu können weil ich
nicht tippen muss raus oder es kann jedes
Mal kommen, wenn
der Code Ihnen im
GitHub Repository oder einer
Einzelperson genauso gut zur Verfügung steht . Aber wenn ich anfange
, ein Bohrloch zu machen, kann
x hier wählen und wir werden es zu einem neuen Spitzhacke
machen. Natürlich werden wir wieder
finden, Nun,
harte Liebe, es wird noch einmal
geschützter Zugang sein. In unserem benutzerdefinierten
Artikelpaket hier werden
wir
einen Mod Big Acts Item erstellen
, der den Höhepunkt des nächsten Artikels erweitern wird. Lesen Sie den Konstruktor, der super passt. Und ich werde das in die Öffentlichkeit
umwandeln. Und dann
werden wir sofort dasselbe
für den Mod Acts Item tun , der X item erweitert. auch den Mauszeiger über
Periodenkonstruktor, der super passt, und machen Sie dies auch öffentlich Und dann brauchen wir auch
den ganzen Mod-Gegenstand. Verlängert das ganze Objekt. erneut den Mauszeiger über einen
Schnelllese-Konstruktor, der
super passt und dies öffentlich macht. Und dann müssen
wir
diese Klassen nie wieder sehen. Das ist sehr sinnvoll, was auch immer der Fall sein mag. Und Sie werden sehen, dass es tatsächlich
vier Parameter aufnimmt. Das erste, das ein Werkzeugmaterial
ist, das ist eigentlich etwas, das
wir auch erstellen müssen. Das mache ich
in unserem Artikelpaket. Klicken Sie also mit der rechten Maustaste
darauf, eine neue Java-Klasse oder ein neues Mod-Werkzeugmaterial. Und dies wird
die Werkzeugmaterial-Schnittstelle
von net Minecraft item implementieren . Und wir
werden eigentlich nicht darüber schweben. Das erste, was wir tun
werden, ist, dass wir dies in eine
Enum ändern werden. Das ist sehr wichtig. Wir werden tatsächlich
tun, wenn wir darauf klicken und dann
Strg H drücken , um die Hierarchie
aufzurufen. Und du wirst
sehen, dass wir hier
Werkzeugmaterialien haben . Doppelklicken wir darauf. Und Sie können jetzt sehen, dass dies
die beiden Materialien aus Vanille sind . Und es gibt einen sehr lustigen oder es gibt eigentlich einen
sehr einfachen Trick. Und das wird
sein, wir werden hier ganz
unten gehen ,
nicht davor, die nicht davor letzte geschweifte Klammer, sondern die vorletzte
geschweifte Klammer. Dann halten wir die
Umschalttaste gedrückt und klicken hier. Und dann
drücken wir zum Kopieren Control C und dann Control V zum Einfügen. Und dann gibt es eine Sache
, die wir ändern müssen, und das ist der Name hier. Also werden wir
einfach diesen Namen kopieren, ihn hier einfügen und dann sollten
wir
keine weiteren Fehler mehr bekommen. Der Grund, warum wir das
tun, liegt darin das eigentliche Werkzeugmaterial
so ziemlich genau das Gleiche
sein wird ,
egal was Sie tun. Deshalb
kopiere ich es normalerweise
einfach aus der
Werkzeugmaterialklasse. Das ergibt einfach
viel Sinn. Und dann ist der zusätzliche
Vorteil hier auch, dass Sie
sofortigen Zugriff auf all
die verschiedenen Werte haben , die
die Materialien hier zur Hälfte haben. Das ist also auch richtig cool. Sie können also einfach sofort
sehen , was los ist. Das ist ziemlich gut. Was
wir also tun werden, ist, dass wir
nur ein paar Dinge
loswerden. Also
machen wir einfach
so etwas und dann so
etwas. Also geben wir
hier einen Namen für dieses Rot, natürlich werden
sie alle in diesem Fall neu berechnet. Und dann können wir das
sogar
auf andere Weise tun. Bergbauniveau oder
Bergbauniveaus,
die sie vor Eisen haben , die gerade die Röhre
zurückgegeben hatten, aber hier ist es ein bisschen
einfacher zu lesen. Dann ändern wir
die Haltbarkeit auf 450. Natürlich sollte die
Haltbarkeit
ziemlich selbsterklärend sein . Das ist nur die Grundhaltbarkeit
der tatsächlichen Gegenstände, dann die Bergbaugeschwindigkeit. Du siehst also, dass das 64. Dafür werden wir
einfach so etwas wie 4.5 machen. Und vielleicht wird der Schaden
tatsächlich
3,5 betragen und dann ist die
Unfassbarkeit noch mehr. Vielleicht ist es so etwas wie 25. Und hier
brauchen wir eigentlich nicht all diesen Jazz nur einen Lieferanten
von Zutaten brauchen. Also
machen wir es einfach damit. Und dann
sagen wir Zutat des Artikels. Ich werde Mod-Items sagen,
mehr Gegenstände, die
Kalziumbarren sind , und schließe
diese dann richtig. Da gehst du. Wenn wir jetzt
noch einen hinzufügen würden, könnte
ich das einfach kopieren
und Sie werden sehen, dass dies nicht ganz funktioniert, da das letzte immer mit einem Semikolon enden
muss, während jedes einzeln muss durch ein Komma getrennt
werden. Das ist also sehr
wichtig hier zu beachten. Dies ist im Grunde nur
eine erweiterte Enum. Wenn Sie sich die
Java-Einführung angesehen haben und erkennen sollten , dass das Problem hier mit den Faulen eigentlich
nicht so schlimm sein sollte. Das wird also immer noch von Minecraft an sich selbst
benutzt. Also bin ich eigentlich. Okay. Wenn ich es auch benutze, glaube ich, dass die
Abwertung dort
völlig in Ordnung sein sollte , wie diese zu verwenden. Und wenn sich
hier irgendwann etwas ändert, können wir, wissen
Sie, immer noch einen
Blick auf die Modusmaterialklasse werfen
und wie das funktioniert. So vollkommen in Ordnung. Aber das ist so ziemlich so, als müssten wir hier nichts tun. Wir definieren einfach diese Felder. Und diese Felder sind sozusagen
grundsätzlich für jede
der verschiedenen
Materialebenen definiert . Wenn du also etwas
ändern willst, änderst du es im Grunde einfach hier drin. Und dann
überträgt sich das auf all die verschiedenen Tools, die Sie möglicherweise in
Ihrem Modell haben, oder? Und dann können wir folgendes
tun. Wir können sagen mod tool
material.org Calcium. Und der zweite Parameter wird der
Angriffsschaden sein. Ich glaube, das ist eine ganze Zahl. Und dann ist der dritte Parameter die Angriffsgeschwindigkeit,
die ein Schwimmer ist. Und dann noch einmal nur die normalen
Stoffartikeleinstellungen. Da es sich hier um einen
MOD-Gegenstand handelt, müssen wir in diesem Fall das Risiko,
die Zahlen ein wenig zu ändern, das Risiko,
die Zahlen ein wenig zu ändern,
die Zahlen hier,
auf irgendeine Weise optimieren. Wenn Sie
Ihren tatsächlichen Modus haben, werden
Sie
wahrscheinlich
die Zahlen ziemlich optimieren , weil es natürlich nicht
so einfach ist, alles
auszugleichen, wie Sie vielleicht denken. Aber sonst
müssen
wir eigentlich nichts anderes hinzufügen. Was wir also einfach tun können, ist, dass wir
das hier einfach
fünfmal einfügen und dann einfach
anfangen, Sachen zu ändern. Also handelt es sich hier, handelt auch. Also wird die XP wahrscheinlich
so etwas wie 1 sein. Dies ist eine zusätzliche Geschwindigkeit, das ist übrigens
nicht die tatsächliche Geschwindigkeit, hinzugefügt wird, sondern hier mehr Schaden
für den Gegenstand mehr Acts. Und dann werden wir
den ganzen Unterstrich WHO haben und dann auch hier
ein Loch unterstreichen. Dies ist der Modus alle Item. Wieder einmal bin ich
eigentlich nicht, es sei denn
natürlich Nullen oder ich bin mir nicht
hundertprozentig sicher warum. Einige von ihnen
benötigen Sie das Modus-Element und einige von ihnen nicht. Es scheint sehr inkonsistent zu sein,
aber es ist was es ist. Dies ist ein Schaufelartikel mit
dem Namen oder einer Katkoschaufel. Und natürlich auch hier oder eine Telekommunikationsschaufel. Sehr wichtig, dass Sie hier überall
die Namen ändern, seien Sie sich dessen bewusst. Und dann das Schwert hier. Und nicht zuletzt kommt
das Orakel Schwert. Und hier ist das ein Sortierelement. Und vielleicht
ist dieser Angriffsschaden ein bisschen mehr. Und die Geschwindigkeit ist auch drei,
das wird gut sein. Jetzt sind die Artikel
ordnungsgemäß registriert, aber jetzt brauchen wir natürlich
die JSON-Dateien, die eine winzige Sache
haben, die
sich bei ihnen unterscheidet, aber jetzt
sollte es nicht zu verrückt sein. Lassen Sie uns also die
Modelldateien kopieren. Und insgesamt ist das
alles ziemlich Standard. Das einzige, worum Sie sich kümmern
müssen, und das ist hier sehr wichtig,
ist, dass der Elternteil tatsächlich
Item Slash Handheld ist. Und der Grund dafür
ist, dass Sie
einen 3D-Look erhalten , wenn Sie
in einer dritten Person sind. Wenn
du also das Schwert in der
Hand hast und jemand anderes es auf einem Server
anschaut, dann
sieht es natürlich so aus, als wäre es 3D. Das ist es, was du dort brauchst, das ist hier sehr wichtig. Und dann lasst uns auch
zur Unterstrich uns JSON-Datei gehen. Und ich werde hier nur noch
einmal
die Übersetzungen kopieren , natürlich
alles, was Ihnen im
GitHub Repository zur Verfügung steht oder auch eine
Einzelperson passt sich an. Gleiche natürlich mit
den Texturen hier. Das sind also die fünf Artikeltexturen, die
wir benötigen werden. Wirkt insgesamt, Das Schwein wirkt, die
Schaufel und das Schwert. Lassen Sie uns diese einfach vor
über einem Jahr kopieren. Und das sollte so ziemlich alles
sein, was wir tun müssen. Es gibt tatsächlich noch eine Sache , die sehr wichtig ist hinzuzufügen, und das
werden die Tool-Tags sein. Unter Daten erstellen wir
also ein neues Verzeichnis namens Hambrick. Und dann erstellen
wir dort ein neues Verzeichnis namens Tags. Und dann erstellen
wir dort neue Verzeichnis-Port-Elemente. Und dann
brauchen wir grundsätzlich Zugang zu Jason. Und lassen Sie uns das einfach auf
diese angrenzende Gamete-große Achse kopieren . Und wir werden
nur ein Jahr kopieren. Wir werden
das in einem Moment ausfüllen. Wir haben diese große Achse. Das werden Schaufeln sein. Und dann werden wir OS
haben und dann sortieren. An dieser Stelle in 118 glaube
ich, dass
diese nicht mehr
unbedingt erforderlich oder jemals erforderlich sind . Ich glaube, dass es immer noch eine
kluge Idee ist, es hinzuzufügen. Fügen Sie im Grunde nur
die bestimmte Achse, Schaufeln und all das hinzu. Mit diesen Markierungen. Es gibt wirklich
keinen Grund , es am
Ende des Tages nicht zu tun. Dies ist ein
ziemlich einfacher Prozess. Sobald Sie
es getan haben, ist ein einziges Ihrer beiden Materialien,
als es für
die anderen Materialien hinzuzufügen Ihrer beiden Materialien,
als es für
die anderen Materialien hinzuzufügen,
ziemlich auch nur ein sehr
einfacher Prozess und es wird dringend empfohlen,
nur diese hinzuzufügen. Also im Stoff,
Namensraum, Tags, Items und dann im Grunde genommen auf Löcher zugreifen, Achsen, Schaufeln und Sortierungen
wählen. Das ist also eine sehr kluge Idee, das
im Grunde zu tun
und dort hinzuzufügen. Aber das ist so ziemlich
alles, was wir tun müssen. Also mal sehen, ob es funktioniert. Oder Francis zurück und Mikrofon. Wie Sie sehen können,
wurden alle Tools dem Spiel hinzugefügt. Aber mal sehen,
das funktioniert alles, also ist das sehr gut. Mal sehen, ob ich damit überhaupt mit
der rechten Maustaste klicken kann. Und das kann ich tatsächlich. Das ist also auch hier ein großartiges
Zeichen. Und überspringe das auch. Das funktioniert auch alles. Ich kann damit auch
mit der rechten Maustaste klicken, ich gehe davon aus, dass ich es natürlich kann. Und dann
haben wir eigentlich kein Holz raus. Man schaut sich das an,
so schnell würde es erscheinen. Ich klicke mit der rechten Maustaste
darauf und ich kann es
auch richtig abbauen. Also
sollte alles hier einwandfrei funktionieren. Und alles
war erfolgreich. Das meine
ich übrigens mit dem Handheld. Damit es im Grunde so
aussieht, als würdest du
das Werkzeug tatsächlich in der Hand halten das Werkzeug tatsächlich in der Hand ,
anstatt
den Gegenstand nur so zu haben. Und deshalb brauchen Sie
den Handheld-Elternteil oder einen Bot, der
bereits
für diese Vorlesung hier wäre . Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung. Also ja.
59. (Tools) Erstellen eines benutzerdefinierten Multi-Tools (Paxel): Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir dem Spiel einen
benutzerdefinierten Paxil-Gegenstand hinzufügen. Das ist natürlich
etwas, das
völlig benutzerdefiniert ist und tatsächlich nur
ein bisschen zusätzliche Arbeit erfordert, aber es ist eigentlich ziemlich
einfach, alles in Betracht gezogen. Was wir also tun werden, ist, dass
wir eine neue Klasse in unserem benutzerdefinierten Artikelpaket
namens Mod Packs oder Item erstellen. Und das wird sich tatsächlich ausdehnen, weil es natürlich kein
Paxil-Gegenstand gibt. Dies wird den Gegenstand
des Mining-Tools erweitern. Und wir
werden einfach den Mauszeiger über diesen Create-Konstruktor bewegen, der super
passt. Und wir werden das öffentlich
machen, wir werden hier
nicht die effektiven Blöcke brauchen,
der Parameter und wir
werden auch entscheiden,
den Werkzeugmaterialparameter zu nehmen den Werkzeugmaterialparameter und ihn nach vorne zu
verschieben hier. Und dann die Wirkung
von Blöcken, oder? Wenn wir zum Beispiel hier Strg H
drücken und uns zum Beispiel den
Spitzhacke ansehen, können
Sie sehen, uns zum Beispiel den
Spitzhacke ansehen, können
Sie sehen, dass dies die abbaubaren Block-Tags
der Spitzhacke enthält, was genau das ist, was wir
waren genau hier, oder? Also haben wir im Grunde
unsere Blöcke hinzugefügt, um dies zu beenden. Jetzt, Paxil,
wollten wir in der Lage sein, bei Travel
Acts
effektiv zu sein und X-Blöcke auszuwählen. Wie würden wir das machen? Nun, wir werden ein benutzerdefiniertes Tag
erstellen. In unserer Modellsteuerklasse werden
wir also hier oben
ein neues Tag erstellen . Das wird also eigentlich eine eigene
Steuer sein. Ein normales erstellt also ein Tag hier. Und das wird der
Paxil-Unterstrich abbaubar sein. Und dann packt hier tatsächlich
abbaubar, Paxil, Paxil. Und dann
wird dieses eigentliche Tag genau hier kalt. Wir werden also moderate Tags
sagen, Punktblöcke, nicht Paxil Unterkiefer. Und jetzt können wir
diese Klasse grundsätzlich benutzen und es sollte völlig gut
funktionieren. müssen wir natürlich immer noch zu unseren MC-Kurs-Tags hinzufügen . also in unserem Ordner „Blöcke“ im Ordner „Tanks“ rechten Maustaste auf ein neues Verzeichnis
namens mineable. Dann drinnen klicken Sie mit der rechten Maustaste auf neue Datei, Paxil dark trace. Lassen Sie mich
das einfach schnell hier drüben kopieren. Also von der Pick X1 und dann wird
das sehr
interessant sein , weil wir hier sogar verschiedene Tags
einsetzen können , also müssen wir nicht
alles auflisten also müssen wir nicht
alles auflisten, was in den abbaubaren Tags enthalten
ist. Oder wir können es einfach tun, dass
wir Hashtag sagen können. Und das bedeutet, dass
dies tatsächlich ein
anderes Tag ist, das wir hier einsetzen
möchten. Dann sagen wir Minecraft,
minable, lash x. Und das, kopiere das einfach
und sag danke und kaufe ein. Was das Packungs-Element nicht
haben wird , ist die
Rechtsklickfunktionalität. Das ist jedoch etwas,
wenn du das wirklich willst,
dass er sich natürlich auch
hinzufügen könnte . verrückt sollte es nicht
sein. Im Grunde sehen Sie
sich den Schaufelartikel hier an, sehen
Sie, dass es hier
ein paar Sachen gibt. Und auch der Gegenstand, es gibt einige Dinge
, die nicht zu verrückt sind. Wir werden jedoch dabei
bleiben. Vorerst. Wir werden nur
über das Orakel kommt Schwert kopieren und wir werden es in das Orakel komm Paxil umbenennen. Dann auch hier auch hier. Paxil, der Schaden und die Geschwindigkeit
werden nur ein wenig reduziert. Und dann wird
das ein Mod Packs-Gegenstand sein. Wie Sie sehen können, funktioniert alles. Sehr wichtig ist
, dass Sie
die Parameter hier so ändern , dass sie genau so sind, dann sollte es völlig gut
funktionieren. Und dann
brauchen wir nur die JSON-Datei, auch
eine Übersetzung. Lassen Sie uns also zuerst
die Übersetzung machen. Das wird
sehr einfach sein. Da gehst du. So stehen Ihnen natürlich auch
die Übersetzung und alle Dateien
zur Verfügung, individuelle Interessen oder
das GitHub-Repository. Und lassen Sie uns den
kompakten Boden des Orakels rüberholen. Und die Textur auch. Dann haben wir so ziemlich
alles, was wir brauchen. Also sie vor, jetzt
wurde alles hinzugefügt 0. Mal sehen, ob es funktioniert. Oder ich habe das wieder in
Minecraft gefunden und wie Sie sehen
können, ist es da. Der Paxil wurde
dem Spiel hinzugefügt und es
sieht nicht gut aus. So können wir hier grundsätzlich sehen, ich kann das leicht abbauen und das
kann ich auch leicht abbauen. Und wir haben noch etwas Stimmung, und das kann ich auch
leicht abbauen. Jetzt, wieder einmal mit der
rechten Maustaste klickend, arbeitet
er eigentlich weder für den Weg noch für das
Abziehen des Holzes. Wenn du das wirklich willst, dann sollte das eigentlich nicht zu verrückt
sein, um es hinzuzufügen. Wenn Sie etwas Java-Wissen haben, bin
ich mir sicher, dass Sie es schaffen werden. Und wenn es wirklich
sehr gefragt ist, füge
ich vielleicht auch eine
Folgevorlesung hinzu,
ob es tatsächlich
so einfach sein kann, dem Spiel
einen Paxil-Gegenstand hinzuzufügen . Ich hoffe, du hast das nützlich gefunden und du lernst etwas Neues. Und wir sehen uns allerdings in der
nächsten Vorlesung. Ja.
60. (Tools) Weapons die Effekte anwenden: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir uns ansehen, wie Sie einer Entität
einen Effekt hinzufügen können , wenn Sie ihn mit einem bestimmten Element
treffen. Und das ist eine sehr wortreue
Art zu sagen, dass
Sie einer Entität einen
Fusionseffekt hinzufügen werden. Und die Art und Weise, wie
wir das machen werden, ist, dass
wir hier eine
neue Klasse schaffen werden. Und das wird der
Mod-Lowing-gespeicherte Gegenstand sein. Als Beispiel hier werden
wir nur
die Sortierelementklasse erweitern. Ich werde nur den Mauszeiger
über dieses Erstellen bewegen, Konstruktor passt super. Und dann können wir
alles hier drin lassen. Und genau wie bei
einem normalen Gegenstand gibt es Methoden
zum Überschreiben, oder? Also kann ich eine Überschreibung setzen und man konnte sehen,
dass er auf Block war, benutze als Glitzern einen Stift-Werkzeugspitze. Es gibt eine Menge
Sachen, die ich
überschreiben kann , und es gibt keine Sorgen. Und es gibt eine bestimmte Methode, die wir überschreiben werden
, und die ist cool wie die Post-Hit-Methode, die aufgerufen wird,
nachdem wir
einen Feind getroffen haben oder besser gesagt nachdem der Schaden
hinzugefügt wurde zu einem Feind. Und was wir tun können, ist, dass der Zielpunktstatus neue
Statuseffektinstanz
beeinflusst. Nehmen wir an, der Status
beeinflusst diese Langsamkeit. Sagen wir vier
Sekunden auf Stufe zwei. Und dann geben wir auch den Angreifer weiter Das wird
im Grunde die Quelle
sein, weil wir
der Angreifer sind und das
Ziel natürlich das ist,
was
wie die Entität getroffen wird,
die es ist hier getroffen zu werden. Und jetzt können wir einfach zur
More Items Klasse gehen und dies
einfach hier in das
verlangsamende Sortierelement des MOD ändern. Zum Beispiel müssen Sie dies nicht
unbedingt tun. Sie können auch einen neuen Gegenstand herstellen, aber wir werden nur
die Kalziumquelle in diese umwandeln . Und ich meine, das ist so
ziemlich genau das. Das ist alles, was wir tun müssen. Wir müssen die
Betriebssystem-Treff-Methode überschreiben und dann
im Grunde diese,
den Statuseffekt, dem Ziel hinzufügen . Und
so einfach ist es, einen Effekt auf Treffer zu erzielen. Also nur um der Vollendung willen, Mal sehen, ob es in Minecraft funktioniert oder
schließt. Also mal sehen, ob ich
ein Schaf getroffen habe. Da gehst du. Das Schaf, das tatsächlich
versteckt war , hat jetzt Sloan
wie es angewendet wurde. Und derjenige, der
im Grunde
im Kreuzfeuer gefangen wurde , hat
es
tatsächlich nicht angewendet, weil es
nur auf
die direkte Entität angewendet wird , die Sie treffen, die einen Fisch
einschließen würde. Ich glaube, dass sie wahrscheinlich nach 100
sterben würden ja. Slt sie werden sterben. Aber du hast tatsächlich
gesehen, dass es auch die Langsamkeit
gab. Obwohl. Das ist
ziemlich cool, oder? Und das ist es schon 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.
61. (Armor) Ein neues Rüstungsset: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir Minecraft eine
benutzerdefinierte Rüstung hinzufügen. Dies ist eine Übung,
die dem Hinzufügen
der Werkzeuge zu Minecraft
sehr, sehr ähnlich sein wird Hinzufügen
der Werkzeuge zu Minecraft
sehr, sehr ähnlich da wir in
diesem Fall anstelle
eines Werkzeugmaterials ein Rüstungsmaterial benötigen in
diesem Fall anstelle
eines Werkzeugmaterials ein Rüstungsmaterial . Das wird das
erste sein, was wir anstelle des Artikelpakets tun
werden. Klicken Sie mit
der rechten Maustaste auf eine neue
Java-Klasse namens Mod, Mod-Rüstungsmaterialien eine 0. Und das wird genau hier
die
Schnittstelle für Rüstungsmaterial implementieren . Und noch einmal werden wir
nicht den Mauszeiger über die Methode bewegen und implementieren, aber wir klicken mit der mittleren
Maustaste darauf
oder klicken Sie einfach
darauf und drücken Sie Strg H, oder klicken Sie einfach
darauf und drücken Sie Strg H um in den Arm zu gelangen
Materialien einer anderen Klasse. Und dann werden
wir hier noch einmal ganz unten auswählen. Halten Sie dann die Umschalttaste gedrückt und
klicken Sie ganz oben, und dann steuern Sie einfach C
und Control V, um sie einzufügen. Und das wird es sein. Das einzige, was
wir
hier ändern müssen, ist die Klasse zu einer Aufzählung. Und dann nehmen wir
den Namen dieser Klasse an. Und es hat es auch
hier geändert, damit der Konstruktor tatsächlich richtig
funktioniert. Und wir werden das nur ein bisschen
anders
formatieren mit den
Parametern hier. Und dann
wird das gut werden. Sie können
dies auch ein bisschen
anders formatieren , damit wir dort
geschriebene Wörter lesen
können. Und hier. Wieder einmal
werden wir einfach alles löschen außer dem Bügeleisen genau hier. Und wir werden das natürlich
das ORE-Kalzium nennen. Und dann der Name auch Malcolm. Und dann können
wir noch einmal damit ein bisschen herumspielen. Wir können natürlich
die Nullwerte genau hier sehen . Das ist also die allgemeine Idee. Der Haltbarkeitsmultiplikator sollte ziemlich
selbsterklärend sein. Es ist nur der Multiplikator
für die Haltbarkeit. So können Sie zum Beispiel sehen,
dass die Kette 15 ist, Eisen 15 ist, Diamant 33, insgesamt 25 und 37. Also denke ich, dass das
irgendwie eine 18
für jedes Kalzium gut sein wird. Dann ist dies hier ein sehr
interessantes Int-Array. Dies sind die Schutzbeträge
für jedes Rüstungsstück. Jedes Rüstungsstück hat also eine andere Menge
, die Sie beschützt. Und das geht übrigens von unten nach oben. Das ist sehr wichtig. Aber das sind Stiefel,
Leggings, Brustplatte. Aber das ist sehr wichtig. Also könnten wir zum Beispiel so etwas wie drei
sagen, wir werden bei der
Fünf-Jahres-7 bleiben und wem geht es tatsächlich gut
, damit wir es
nur ein bisschen
anders machen als die anderen. Zum Beispiel ist Goal auch ein
bisschen ein Ausreißer. So können Sie sich das
natürlich vorstellen, wie Sie es wollen in der Agenda-Fähigkeit ist,
wie unveränderlich das ist. Ich werde
das bis zu D5 ankurbeln, was sogar mehr als Gold ist. Weil, weißt du,
oder ein Kalzium, Es ist eine sehr Fantasie wie oder so denke ich,
dass das Sinn ergibt. Und dann das Sound-Event,
wir werden
hier tatsächlich die Gold-Ausrüstung benutzen. Also Artikel Rüstung, Gold genau hier. Ist das in meinem Kopf etwas
sinnvoller, werden
wir
die Zähigkeit beibehalten und den BEC-Widerstand gleich
schlagen. Sie können dies einfach ändern und dann fügen Sie Ihrer Rüstung
Zähigkeit hinzu und wählen keinen Widerstand für Ihre
Rüstung, die einfach
funktionieren sollte und Sie nichts anderes tun
müssen. Und dann wollen
wir hier natürlich, anstatt
all das hier zu haben, anstatt
all das hier zu haben, nur mehr
items.org, Kalziumbarren. Und wir werden es
nur ein
bisschen einfacher zu lesen machen . Keine Sorge hier. Also machen wir das einfach. Und dann keine Rückkehr. Also los gehst du. Und
jetzt sieht es sehr nett aus. Und
wenn Sie
mehrere Rüstungsmaterialien haben möchten, müssen
diese natürlich wenn Sie
mehrere Rüstungsmaterialien haben möchten, durch
Kommas getrennt werden. Und dann natürlich auch anders
benannt und enden
dann mit einer Semikolonbreite. Der letzte, das ist
nur eine allgemeine Idee hier. Und wenn wir uns das nur
kurz ansehen, werden
Sie sehen, dass wir dieses
Untersuchungsjahr haben , die
Basishaltbarkeit. Dies ist die Grundhaltbarkeit
jedes der verschiedenen
Rüstungsteile. Und dann wird dies
mit dem Haltbarkeitsmultiplikator multipliziert . Das siehst du genau hier. Wir haben also den
Haltbarkeitsmultiplikator hier. Und wenn Sie die
Haltbarkeit erhalten, erhalten Sie nur die Haltbarkeit der Basis, basierend auf dem Schlitz und dann mal mit
dem Haltbarkeitsmultiplikator. Das ist die allgemeine Idee hier. Diese Zahlen könntest du
natürlich auch optimieren, wenn du
es wirklich wolltest. Wir werden vorerst
dabei bleiben. Das wird vollkommen in Ordnung
sein. Im Moment die eigentliche Klasse Ihr Ehemann eingerichtet hat, damit
wir zur
Klasse mehr Gegenstände wechseln können und
jetzt im Grunde genommen unsere Rüstung
erstellen können. Also werden wir ein
Orakel zuerst dazu bringen, Element zu kommen. Und dann auch hier
oder ein Kalziumhelm sind sie
natürlich schon her. Und das wird ein Rüstungsgegenstand
sein. Und du wirst sehen, dass der erste
Slot hier
der Mod Armor
materials.org Kalzium sein wird. Und dann
hat es eigentlich nur drei Parameter. Der zweite ist der Punktkopf des
Gerätesteckplatzes, und die Einstellungen hier sind in Ordnung. Kopieren wir das also viermal. Und dann
werden wir das,
eigentlich das Schulschachschild haben . Diese Platte und das ist
Ihr Ausrüstungsschlitz Truhe. Sehr wichtig, dass wir das auch
ändern. Andernfalls könnten
wir das natürlich dem falschen Slot hinzufügen, was wir nicht wollen. Wir werden auch hier
Leggings machen. Und wieder hier Beine. Vor und dann
nicht zuletzt sind die Stiefel. Und dann auch die Stiefel hier. Und das sind natürlich die Füße. Sie gehst du. Und jetzt wurden alle vier
Rüstungsstücke
korrekt mit
unserem mehr Material an Kalzium registriert . Und jetzt
müssen wir nur noch das Artikelmodell hinzufügen, Jason's und natürlich hier die Übersetzung sehr wichtig. Da ist es. Dies steht Ihnen natürlich
auch alles
im GitHub-Repository zur Verfügung oder auch eine
einzelne Anpassung, sodass Sie nicht alles
eingeben müssen. Sie können
das auch tatsächlich kopieren. Wieder einmal können Sie die meisten Dinge,
wenn Sie es einmal gemacht haben, eine Menge
davon auch in Ihr
eigenes Projekt kopieren ,
ich empfehle dringend, dies zu tun. Die meisten dieser Artikelmodelle werden sich
sehr, sehr ähnlich sein. Also zwischen diesen sind sie alle zu
einer Steuer orange , die buchstäblich
alles ist, was es dazu gibt. Wir werden auch die
Texturdateien hinzufügen. Da gehst du. Und dann noch eine Sache, die sehr wichtig ist, ist, dass
wir tatsächlich das 3D-Look der Textur
benötigen. Und das geschieht tatsächlich
im Minecraft-Ordner. Wir müssen
einen neuen Ordner in
unserem Assets-Ordner erstellen einen neuen Ordner in
unserem Assets-Ordner rechten Maustaste auf ein neues Verzeichnis
für das Minecraft. So kleines Spiel, vielleicht hast
du schon mal davon gehört. Das habe ich schon getan
, was auch immer fallen lassen. Rechtsklicken Sie auf
die Texturen des Mikrowell Und dann drinnen klicken Sie
wieder mit der
rechten Maustaste auf neues Verzeichnis
namens models. Und dann noch einmal
mit der rechten Maustaste auf das Verzeichnis namens armor. Dies wird nur mit einem OH geschrieben, also ist es die amerikanische Rechtschreibung. Und dann werden wir hier zwei
Akten einlegen, aber das sind die Rüstungsakten. So sehen wir die eigentliche
Rüstung in 3D aus und wir sollten
uns
das ansehen können , wenn wir
zu
den externen Bibliotheken gehen,
um hier in die Assets, Minecraft, Texturen
in den Modellen zu gehen , Rüstung. Und dann sieht man, wie
es so aussieht. Dies ist also die Schicht für Eisen, zum Beispiel Schicht
eins und Schicht zwei. Sie könnten diese übrigens auch
kopieren, ein
bisschen gelandet sind und dann auch diese
haben. Was
für diese sehr wichtig ist, ist, dass der Name hier
genau das Richtige sein muss. Das ist sehr wichtig. Wenn Sie also
den Namen haben , der hier in
Ihren Rüstungsmaterialien
angegeben ist , muss
dieser genau
mit diesem Namen übereinstimmen. Unterstrichenebene unterstrichen
einen und dann die andere, unterstrichen Ebene zwei, sehr wichtig, das kann keine Leerzeichen dazwischen
sein. Es kann keine Klammern 1 weil Sie
es kopiert haben und wir den gleichen Namen
haben
und nichts davon. Genau das muss es
unter dem Minecraft sein, Texturen, Modelle, Rüstungsverzeichnis,
sehr wichtig. Stellen Sie sicher, dass dies korrekt ist. Aber nachdem Sie sichergestellt haben
, dass alles in Ordnung ist, Mal sehen, ob es funktioniert oder sich in erstklassigen
Backend-Microgreens befindet. Du kannst sehen, dass die
Rüstung hinzugefügt wurde und sie sieht toll aus. Also lasst uns einfach sehen, wie es
aussieht, wenn ich es anziehe. Und los geht's, bereit zum Kampf zu gehen. Und so einfach ist
es eigentlich,
Minecraft die Rüstung hinzuzufügen , wo auch immer es für diese
Vorlesung genau hier sein wird .
Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Alles natürlich steht Ihnen im GitHub-Repository oder einer Einzelperson nur
einschließlich der Texturen zur Verfügung, bitte beachten Sie übrigens die
Gläubigerdatei, Sie sehen unter welcher Lizenz bzw. Texturen wurden verteilt. Vielen Dank, aber wie
auch immer der Fall sein
mag, wir sehen uns in der
nächsten Vorlesung. Also ja.
62. (Armor) Einen vollständigen Effekt von Armor erstellen: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir uns
ansehen, wie Sie
einen vollständigen Rüstungseffekt oder Ihre Map implementieren können . Was
bedeutet das, dass der volle
Rüstungseffekt im Grunde genommen
bedeutet, dass Sie
einen Statuseffekt erhalten, der
auf Ihren Charakter angewendet wird einen Statuseffekt erhalten, der
auf Ihren Charakter angewendet wenn Sie einen vollen Anzug aus
einem bestimmten Rüstungsmaterial tragen. Und so wie
dies funktioniert, ist im benutzerdefinierten Paket
genau hier. Ich
klicke mit
der rechten Maustaste auf eine
neue Java-Klasse. Und das wird Mod-Rüstungsobjekt
genannt. Und dies wird
den Rüstungsgegenstand plus verlängern. Und ich werde tatsächlich den
gesamten Kurs kopieren . Dies steht
Ihnen wieder im GitHub-Repository
oder im Gerechten zur Verfügung. Und wir werden das
durchstehen, würde ich alles
erklären, während wir das im Grunde durchmachen. Dann haben wir einfach die
mehr Rüstungsmaterialien, Ihre.org, Kalzium sie vor, und das sollte funktionieren, oder? Was passiert hier? Nun, das erste,
was Sie
sehen können, ist, dass wir ein Feld,
ein privates statisches Endfeld
oder das Material haben , das sich auf die Map auswirkt. Jetzt ordnet diese Map ein Rüstungsmaterial einem
bestimmten Statuseffekt zu. Okay, das ist fair genug. Das bedeutet also, dass
dieser Effekt auf Sie angewendet
wird,
wenn Sie diesen bestimmten Rüstungssatz
haben dieser Effekt auf Sie angewendet
wird,
wenn Sie diesen bestimmten Rüstungssatz , der dieses Material enthält . Der Grund, warum wir
eine
Statuseffektinstanz verwenden , liegt darin, dass die Instanz oder auch die Dauer
und den Verstärker
speichert. Und das können wir grundsätzlich individuell
ändern. Diese spezielle Instanz werden wir eigentlich nie verwenden. Hier unten erstellen wir
eine neue Instanz mit den gleichen Werten
dieser Instanz, da sie sonst nicht wirklich funktionieren
würde. Denn sobald eine Instanz
hier aufgebraucht ist, können
Sie sie nicht mehr verwenden. Aber das ist nur
für die Leute, die schon
gesprungen
wären und so gewesen wären, warte, das funktioniert nicht. Das ist vollkommen in Ordnung.
Es wird tatsächlich funktionieren. Sie werden sehen, und dieses Jahr hat natürlich nur ein
Rüstungselement drin, aber eigentlich sehr einfach
, einen weiteren hinzuzufügen. Wir werden
diesen Fuß einfach
hier nehmen und
ihn einfach noch einmal einlegen. Sie können also sehen,
dass es so einfach ist. Es Statuseffekt-Instanz Ich
empfehle dringend, hier immer
über 200 oder die
Tick-Dauer zu gehen . Denn wenn Sie
bei zehn Sekunden sind Ihr Satzeffekt
zu erschöpfen
beginnt, wird er
anfangen zu blinken. Und das
bedeutet im Grunde, weil dies jedes Mal
immer und immer wieder
angewendet wird , dass es ständig
in der oberen rechten Ecke blinkt und
das sehr nervig sein kann. Es gibt auch einen Punkt zu sagen, vielleicht
sollte
jeder Effekt
oder dieser
besondere Effekt weggenommen werden, sobald die Rüstung jeder Effekt
oder dieser
besondere Effekt abgezogen wurde. Es gibt einen Sinn, das zu tun. In diesem Beispiel werden wir
das nicht tun. Als ob es in diesem Beispiel
eine kleine Einschränkung gibt, aber ich bin mir sicher, dass das gut werden
wird. Was passiert dann? Nun, wir überschreiben die
Inventar-Tick-Methode, die jedes Häkchen genannt wird. Wenn sich dieser bestimmte
Artikel oder einer
dieser Artikel im
Inventar befindet, prüfen
wir zunächst, ob wir auf
dem Server sind oder nicht , weil wir dafür auf dem
Server sein
wollten. Und wir stellen sicher
, dass jede Entität das in seinem Inventar
hat, tatsächlich ein Spieler
ist. Das ist der Fall, dann
können wir sicher sein, dass wir die Entität an einen Spieler
werfen können . Und dann werden wir
nachsehen, hey, hat dieser Spieler eine
volle Rüstung an? Dies ist also eine Methode
, die ich
genau hier gemacht habe , wo wir
im Grunde nur
alle verschiedenen
Rüstungsstapel bekommen alle verschiedenen
Rüstungsstapel und sicherstellen, dass
keiner von ihnen leer ist. Also im Grunde gesagt: Hey, wenn der Spieler eine
volle Rüstung hat, in diesem
Moment suchen
wir in diesem
Moment nicht nach dem Material, sondern
nur, dass jeder der
Rüstungsschlitze tatsächlich gefüllt ist. Und wenn das der Fall ist,
werden wir mit der Methode „
Rüstungseffekte bewerten“ fortfahren . Und im Inneren von hier gehen wir
im Grunde das gesamte
Material
durch, um die Map zu beeinflussen und erhalten
im Grunde nur Instanz des
Rüstungsmaterial-Entitätsstatus-Effekts , die sich innerhalb der Map befindet. Und dann werden
wir prüfen, hey, ob der Spieler
tatsächlich den Rüstungseffekt
hat,
das heißt, jetzt, nach dem wir im Grunde suchen. Es gibt natürlich eine for-Schleife
, die durchlaufen wird. Wenn wir ungefähr acht von ihnen hatten, dann werden wir es durchmachen und es wird
so sein, wie: Hey,
hat der Spieler dieses
Rüstungsmaterial Besitzer
dieses Material an,
haben sie hast du dieses
Rüstungsmaterial? Und nur wenn das Material
für jeden Helmbrustpanzer,
der in Boots zurückbleibt, tatsächlich übereinstimmt. Erst dann werden wir
den Statuseffekt für die
jeweilige Rüstung genau hier hinzufügen ? Und nur damit wir es
haben, suchen wir
tatsächlich danach. Auch dies ist hier nicht unbedingt
notwendig. Was jedoch unbedingt
erforderlich ist , um dies zu
empfehlen, ist der Boolean Spielereffekt , den ich im Grunde genau hier
einsetze. Und die Idee hier ist
, dass dies grundsätzlich nur hinzugefügt
wird, wenn der Spieler
nicht wieder den Effekt hat. Andernfalls würde dies
jedes Häkchen 20 Mal pro Sekunde hinzugefügt . Und das alles
20 Mal pro
Sekunde zu durchlaufen , könnte das Spiel tatsächlich
erheblich
verlangsamen . Daher ist es eine sehr
kluge Idee, wer das im Grunde nicht tut und das hier absolut
stoppt. Fügen Sie den Effekt auch
mehrmals hinzu. Es ist einfach keine gute Idee. Und Sie können hier sehen, dass
wir tatsächlich
eine neue Effektinstanz mit dem
Effekttyp, der Dauer
und dem Verstärker
der tatsächlichen
Statuseffektinstanz erstellen eine neue Effektinstanz mit dem
Effekttyp, der Dauer und dem Verstärker
der tatsächlichen
Statuseffektinstanz , die wir hier definiert haben. Das sage ich also. Wir werden
diese Instanz eigentlich
niemals an und für sich verwenden . Wir bekommen im Grunde nur den Dauerverstärker
und den Effekt dort. Und dann gibt es
etwas, das
möglich ist , das Sie nicht unbedingt
implementieren müssen. Und das ist hier. Ich habe es, so dass es
eine 40-prozentige Chance gibt ,
die Rüstung jedes Mal zu beschädigen, wenn
ein Effekt im Grunde genommen angewendet wird. Jetzt musst du das nicht tun. Also kann ich auch alle drei
dieser Zeilen einfach
auskommentieren und dann
wird es uns auch gut gehen. Ich wollte das auch nur
hinzufügen, nur wenn sich einige Leute das
wundern, als sie können. Woher haben
wir diesen Code her? Nun, das meiste davon
ist so ziemlich nur Java-Wissen mit ein bisschen modernem
Wissen. Und das ist etwas
, das Sie
tun können , wenn Sie Java und
Modellierung intuitiver verstanden haben und dann beide
kombinieren und dann etwas
Benutzerdefiniertes wie dieses
erstellen. Ich würde es nicht ganz einfach sagen, aber ohne zu viel Ärger. Das läuft also wirklich
darauf hinaus, Java zu kennen. Das ist also ein weiterer
Appell für Sie, dass wir, wissen
Sie, besonders in
den kommenden Vorträgen, besonders wenn wir grundsätzlich
vom Bereich Werkzeuge und Rüstungen
zu den Zwischenkonzepten
übergehen , wissen
Sie, besonders in
den kommenden Vorträgen,
besonders wenn wir grundsätzlich
vom Bereich Werkzeuge und Rüstungen
zu den Zwischenkonzepten
übergehen,
wird
wirklich mit dem inhärenten Verständnis aufgreifen, das
Sie für Java benötigen werden. Aber lasst uns nicht zu verrückt werden
mit dieser Präambel hier. Lasst uns diese beiden Importe tatsächlich loswerden
. Und was ich dann
tun werde, ist, dass ich zur Klasse für mehr Gegenstände gehe . Und normalerweise
mache ich nur den Helm,
den Modus-Rüstungsgegenstand. Sie
müssen nicht alles
in mehr Rüstungsgegenstand in einem
Mod-Ehren-Material-Set stecken. Du musst nur einen setzen. Ich persönlich wähle den Helm weil ich denke, dass
der Helm am sinnvollsten ist, um
im Grunde auf den Rest der Brust aufzupassen. Aber es mag auch sinnvoll sein, aber was auch immer Sie bevorzugen, aber nur eine
für jedes Materialset. Sehr wichtig, oder? Und das ist eigentlich
alles, was wir tun müssen. Mal sehen, ob es funktioniert oder als Minecraft bezeichnet wird
. Und wie Sie sehen können,
habe ich schon den Dunstflug zu mir, weil ich
natürlich die volle Rüstung trage. Und das ist ziemlich cool. Das ist also auch Haze, weil
wir den Verstärker auf einen setzen. Lassen Sie mich einfach schnell
den Helm aufstellen, damit wir sehen können , dass dies
im Grunde genommen weg sein wird. Vor ihnen ist es weg. Und dieser Dunst, denn der Verstärker ist
im Grunde ein, ein Additivverstärker, oder? Wenn ich also
nichts drin hätte ,
wäre es Eile eins, Verstärker von eins, Phase zwei und ein Arbeitgeberfeuer der heutigen drei, ziemlich einfach. Und du siehst, obwohl
ich den Rest hier habe, solange ich den Helm nicht
anhabe, solange ich den Helm nicht
anhabe, funktioniert
es nicht und
sobald ich ihn auf das Ego setze, passiert es
natürlich, sobald ich
den Rüstung aus, die
Eile bleibt bestehen. Dies ist etwas
, das Sie
zum Beispiel hinzufügen könnten ,
wenn Sie möchten. Dies ist eine Funktionalität
, die Sie tun könnten, oder? Eine schnelle Sache, die sehr wichtig
ist. Dieses Ziel hier
wird eigentlich nicht funktionieren, aber das ist eine weitere Einschränkung ist, dass dies natürlich nicht
funktioniert, weil wir in diesem Moment kein
MOD-Rüstungsmaterial
drin haben . Das wird also eigentlich
nicht funktionieren. Das
funktioniert also vorerst nur mit Rüstungsmaterialien
im
benutzerdefinierten Modus, wer auch immer, vielleicht werde
ich diese Klasse in Zukunft aktualisieren und dann könnte es
auch
diese Funktionalität haben . Wer weiß es, oder? 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 hast
etwas Neues gelernt. Wir sehen uns in der
nächsten Vorlesung. Also ja.
63. (Armor) Erstellen einer benutzerdefinierten a: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir
benutzerdefinierte Pferderüstungen hinzufügen , Minecraft
haben. Jetzt ist
eine benutzerdefinierte Pferderüstung eine sehr
interessante Sache denn es gibt
eine kleine Wendung , die wir im Hinterkopf behalten
müssen. Lasst uns also die Klasse „
Mehr Items“ öffnen und lassen Sie uns einfach
die Oracle-Gum-Stiefel kopieren. Und das wird umbenannt
werden, um
Cal come horse,
unterstreicht Rüstung. Und dann das Gleiche
im Namen hier oder unterstreicht Rüstung, und
das ist ein Pferde-Rüstungsgegenstand. Jetzt nimmt
dies auch drei Parameter an. Der erste ist der Bonus, also ist dies der arabische Bonus
, den das Pferd erhält. Und die zweite ist eine Schnur. Das ist der Name der
eigentlichen Pferderüstung, die
wichtig sein wird, da dieser Name mit dem
Namen der Datei übereinstimmen
muss. Wenn wir also tatsächlich die mittlere
Maustaste drücken, klicken Sie darauf. Sie können sehen, dass dies
nach
der Textur unter Texturen sucht Entity, Pferderüstungen, Unterstriche,
Rüstungsunterstriche, Rüstungsunterstrich,
unabhängig vom Namen, den wir hier als Parameter angegeben haben. Jetzt muss das
noch einmal
unter den Minecraft-Namespace gestellt werden , aber keine Sorge,
wir werden das tun. Wir werden
das in nur einem Moment sehen. Und wenn ich mit der mittleren Maustaste darauf
klicke, rechts. Das ist also die allgemeine Idee hier. Und das ist so ziemlich alles
, was Sie wirklich wissen müssen. Was also sehr wichtig
ist, ist der Bonus hier. Nur damit Sie
einige Vergleichswerte haben, das Eisen hat fünf Bonus, die Goldene Pferde-Rüstung
hat sieben Bonus und die Diamant-Pferde-Rüstung
hat 11 Brett mit 15. Die Calcium-Pferde-Rüstung ist
eigentlich sehr, sehr stark. Aber natürlich können
die Zahlen wieder auf
beliebige Weise optimiert werden. Gehen wir zunächst in
das E ein und unterstreichen uns die angrenzende Datei und fügen die
Übersetzung hinzu. Da gehst du. Alle JSON-Dateien und all das stehen
Ihnen
natürlich auch im
GitHub-Repository oder einzelnen Interessen zur Verfügung. Da wir
das
Elementmodell noch einmal kopieren werden, zeigt
es natürlich einfach auf eine normale Textur
im Texturordner. Also nichts verrücktes Jahr, das ist der eigentliche Gegenstand. Es wird
im Inventar angezeigt. Und dann muss die 3D-Rüstung wieder in
den Minecraft-Ordner gehen, aber überhaupt keine Sorgen. Im Texturen-Ordner erstellen
wir einen neuen Ordner
oder ein neues Verzeichnis mit dem Namen Entität. Und dann drin klicken Sie mit der
rechten Maustaste auf
neues Verzeichnis für Pferd. Im Inneren klicken Sie mit der rechten Maustaste auf ein
neues Verzeichnis namens armor, noch
einmal nur mit einem O, also die amerikanische Schreibweise. Und dann kopieren wir die
Akte hier, oder es ist eine Unterstreichungsrüstung
unter Schraube oder Kalzium. Wieder einmal
muss der Name hier mit
diesem Namen übereinstimmen, und dann wird er richtig
angezeigt 0. Nun, mal sehen Für Arbeiten oder ich habe festgestellt, wie ein
Mikrotrends sehen kann, wurde
die Pferderüstung
erfolgreich in das Spiel aufgenommen, wie es der Zufall wollte. Wir haben ein gezähmtes Pferd
direkt neben uns. Also lasst uns sehen. Und da ist es, die Pferderüstung in ihrer
ganzen Schönheit, das Orakel kommt Pferderüstung. Das ist also ziemlich genial,
wenn ich es selbst sage. Rubber, 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.
64. (Armor) Hinzufügen einer benutzerdefinierten Verzauberung: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir uns ansehen, wie Sie
benutzerdefinierte Verzauberungen hinzufügen können ,
wer Minecraft. Dafür gehen wir also
in unser MC-Kurspaket ein. Rechtsklick auf ein neues Paket
namens Verzauberung. Und da drin brauchen wir
zwei verschiedene Klassen. Der erste
wird die Modus-Verzauberungen sein. Und der zweite
wird die Verzauberung
des
Blitzstürmers sein . Dies ist die eigentliche Verzauberung , die wir umsetzen werden. Und der andere besteht im Grunde
darin , die Verzauberungen zu registrieren. Aber was wir tun werden, ist, dass
wir dies hier um
die Chen-Klasse erweitern ,
Rekonstruktor passt Supra. Und wir werden das in die Öffentlichkeit
umwandeln. Und dann sehr wichtig
, dass wir
das Array genau hier ändern ,
die drei Punkte. Dies ermöglicht es uns einfach, am
Ende
mehrere Ausrüstungsschlitze
einzugeben am
Ende
mehrere Ausrüstungsschlitze und sie werden
dann
im Grunde automatisch in Bereiche umgewandelt . Jetzt hat
die
Verzauberungsklasse tatsächlich einige Methoden, mit denen Sie jeden für uns überschreiben
können Die Nummer eins
ist vor allem die GetMax-Level-Methode, die sehr
wichtig ist, weil wir muss tatsächlich wieder hierher zurückkehren. Die GetMax Level Methode
gibt also zurück, wie viele Bücher generiert
werden und wie viele Ebenen dieser
Verzauberung existieren. Dies ist also sehr wichtig, um die Bücher übrigens zu überschreiben, Sie werden automatisch generiert, sodass Sie nichts dafür
tun müssen. Diese Stufe
bedeutet im Grunde, dass diese Stufe im Grunde definiert,
wie viele generiert werden. Und was wird diese
Verzauberung jetzt bewirken? Nun, wenn wir diese
Verzauberung bei uns haben, an einer Waffe. Was wir dann
tun werden, ist, dass wir einen Blitz
spawnen, wenn es sich um einen Blitz
spawnen, wenn es Blitze der
Stufe 1 und 2 handelt,
wenn es Level 2 ist. Die Methode zum
Überschreiben dafür ist also die beschädigte Zielmethode. Und was wir zuerst sagen werden ist, dass wir sagen werden, wenn User Dot World Kunde ist, sehr wichtig hier mit einem Ausrufezeichen in der Front, dass wir auf dem Server sein wollten
. Dann können wir Serverwelt sagen. Die Welt ist gleich der
User-Punkt-Welt, die besetzt ist. Und normalerweise, wenn Sie für die Serverwelt
abgeschlossen bestellen , dies normalerweise darauf hin, dass
Sie das im Grunde auch haben, deutet
dies normalerweise darauf hin, dass
Sie das im Grunde auch haben, dass N bereits
drin ist. Und dann können wir auch sagen Spieler-Entitätsschicht der Benutzerpunkt-Besetzung
entspricht. erneut die Tabulatortaste, um sie
automatisch zu vervollständigen, und setzen Sie dann die Spieler-Entität genau hier ein. Und dann ist das in Ordnung. Wir werden auch die Blockpfade
erhalten, die Position
entspricht dem Zielpunkt, blockierte Position
oder Blogposts. Klicken wir darauf und drücken
Alt und Enter, um es zu importieren. Und dann müssen wir das Level
überprüfen. Sie können sehen, dass die Ebene
hier als Parameter angegeben wird. Dies ist also das Niveau
der eigentlichen Verzauberung. Und eine andere große Frage ist,
wie spawnt man eine Aufhellung? Es ist eigentlich ziemlich einfach. Wir werden sagen, Punktblitze
vom Typ Entity , die mit der Welt spawnen. Null hier und null für den
Namen, den Spielerparameter, die Position, dann spawnen Grund,
der Regel und wahr ausgelöst hat. Und das ist so ziemlich
alles, was wir
hier tun müssen , um
eine Aufhellung zu erzeugen. Dies funktioniert übrigens
für jeden Entitätstyp. Sie könnten
diesen Blitz also grundsätzlich durch ein Schwein ersetzen , und es sollte in diesem
Moment noch spawnen. Das
wäre natürlich sehr interessant. Das wäre die Verzauberung des
Schweinestürmers. Aber das werden wir
jetzt natürlich umsetzen. Wir wollten den
Blitzeinschlag oder die Verzauberung. Dann werden wir nur
sagen, ob Level gleich
zwei ist und wir werden nur
auf Auskleidungen spawnen. Das ist also so ziemlich alles, was wir hier wirklich tun müssen. Und das ist im Grunde genommen die
Verzauberungsklasse. Lasst uns nun zur
modernen Champions-Klasse übergehen. Und drinnen von hier werden
wir
zwei Methoden haben , die
wir definieren müssen. Einer von ihnen ist die öffentliche
statische Leere, die
als Registermodus Shetlands bezeichnet wird . Und dies wird später
in der MC-Kurse-Mod-Klasse aufgerufen. Dies wird wieder einmal einfach
die Druckzeile heraus die Mod-Verzauberungen,
Mod-Verzauberungen registriert. Für MC-Kerne mod, Mod ID. Dann brauchen wir eine private
statische Verzauberung, die
sich mit einem String-Namen und
einer Verzauberung in Shetland registrieren wird sich mit einem String-Namen und
einer Verzauberung in Shetland registrieren . Und dies wird einfach
die Registrierungsdaten zurückgeben, registrieren, Registry Dot Pentland mit einer neuen Kennung der
MC-Kurs-Mod-ID, einen Namen. Und dann nach den
ersten Klammern, wie in den Verzauberungen, Umfang und dem Ego, wird dies die Verzauberung
registrieren. Dies ist sehr ähnlich
wie wir
es im Grunde in den More Items oder
der Motorblöcke Klasse gemacht haben. Und dann machen wir
die Verzauberungen. Dies ist also ein öffentlicher
statischer Verzauberungs - oder
Aufhellungsunterstrichen-Stürmer
, der der Registermethode entspricht. Der Name hier ist eine aufhellende
Unterstrich-Stürmer-Munition und dann ein neuer
Blitzschlag oder Verzauberung. Also dieser hier. Und dann können wir
in der Verzauberung
diese Seltenheit, die ungewöhnlich ist, weitergeben . Zum Beispiel
wird das
Komma-Verzauberungsziel genau diese Waffe sein. Und dann
wird der Ausrüstungsschlitz Haupthand sein. Und dann beenden Sie das
und da ist es. Das ist also alles, was es dazu gibt. Eine der Ecken, die Ihnen
natürlich
im GitHub-Repository oder in
einzelnen Anpassungen zur Verfügung stehen . Und das ist eigentlich die
Verzauberung bereits gemacht. Wir müssen uns jetzt nur noch
im MC-Kurs Multi-Class anrufen . Also genau hier noch mehr Verzauberungen , die moderne Sendungen registrieren. Das ist eigentlich sehr
wichtig, wenn dies
nicht hinzugefügt wird ,
es funktioniert nicht. Das ist sehr, sehr wichtig. Und dann gibt es
noch eine Sache im Ohr und unterstreicht uns JSON-Datei. Wir werden hier auch ganz
unten
die Übersetzung hinzufügen . Das ist also Verzauberung und MC-Kurse Blitz
unterstreichen Stryker. Und das ist natürlich ein Blitzbrecher,
sehr wichtig. Wir brauchen hier nur eine
dieser Übersetzungen. Sie könnten also sehen, dass
dies und das für jede der Levels, wir
müssen dies eigentlich nur einmal übersetzen. Und dann wird es für
jedes Level der Verzauberungen übersetzt . Aber
nachdem wir all das hinzugefügt haben , Mal sehen, ob es funktioniert. Oder sind wir Fans wieder
in der Mikrofinanzierung, Sie können sehen, dass der Blitzeinschlag oder der Vorsitzende
erfolgreich hinzugefügt wurde. Fügen wir es einfach
dem Orakel oder hier hinzu. Eine für den ersten und
dann für den zweiten. Richtig, also probieren wir es an diesen Schafen
aus. Also lass uns sehen. Und da gehst du. Es hat tatsächlich funktioniert. Und lass uns das andere machen. Aber das wird im Grunde
auf Blitze weitergehen. Es ist nicht allzu auffällig,
aber es funktioniert. Du kannst sehen, dass du
hineingehst und das andere machst, es schadet ein bisschen mehr. Aber zum Beispiel werden
sie für die Schafe in
fast einem Schlag sterben. So auffällt es also nicht. Nun, ja, die Behandlung funktioniert. Das ist also ziemlich cool, oder? Und das ist schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du hast etwas Neues gelernt. Wenn er es täte, würde ich mich sehr über eine Bewertung von Ihnen freuen. Ansonsten sehe ich
dich in der nächsten Vorlesung. Also ja.
65. (Zwischenlagen) Blockstate: Oder ich begrüße zurück zum
Stoffkurs für 118. Und in dieser Vorlesung werden
wir uns die Eigenschaften von Blockzuständen
ansehen . Will Block State
Properties sind etwas das
wir bereits zuvor gesehen haben. Und das war in der
Tür, der Treppe und all diesen
Blockblockblöcken, nämlich in den JSON-Akten
für die Blockzustände hier. Wenn wir uns
zum Beispiel die Tür ansehen, waren dies hier
die
Blockzustands-Eigenschaften in. Jetzt schauen wir uns
ein Beispiel an. Aber zuallererst werden
wir ein
bisschen von der Theorie
durchgehen . Und dafür brechen
wir aus
den PowerPoint-Folien aus. Natürlich. Der erste Unterschied, den
wir machen müssen, ist zwischen einem Block
- und einem Blockstatus. Dies ist sehr
wichtig, da Block tatsächlich eine
Art Singleton-Muster ist. Das bedeutet also, dass in
unserer Postfachklasse oder für Vanille in
der Block-Klasse jedes Blockfeld
einmal für jeden der Blöcke erstellt wird. Daher ist dies eine
Art Singleton-Muster. Ihre Frage ergibt
sich,
wie wir zum Beispiel einen Block
innerhalb der Welt retten? Nun, das machen wir
mit Bloc-Staaten. Und dies sind
im Grunde Fälle
eines bestimmten Blocks
innerhalb der Welt. Sie sagen beispielsweise die Blockposition,
die Blockeigenschaft. Das wäre also das
Verhalten, das wir in den Block,
den wir erstellt haben, und auch in
die
Blockstatuseigenschaften übergehen Block,
den wir erstellt haben, und . Aber das ist die
Hauptsache, die wir
uns in den
folgenden Folien ansehen werden. Und die Idee ist, dass
Blockstaaten im Grunde von
der Welt gerettet werden und sie auch
nur von der Welt verändert werden können. Und das geschieht beispielsweise,
indem man den Weltpunkt-Punkt-Punkt-Punkt-Block-Status durchführt und dann einige Parameter übergibt
. Gehen wir jetzt
zur Idee des Blocks, beispielsweise Eigenschaften oder
zum Speichern von Daten in Blöcken über. Nun ist eine Art zweite Überschrift
hier nicht ganz richtig, aber es ist richtig genug. Also haben wir hier ein Beispiel für die öffentliche Klasse,
Redstone oder Block. Und Sie können sehen, dass es
eine boolesche Eigenschaft namens lit hat . Und dieses Jahr ist genau
der Block, sagen wir Eigentum. Das definieren wir in
der Blockklasse. Also könntest du zuerst so sein, das ist irgendwie komisch, oder? Dies ist jedoch eine
spezifische Rendite hier. diesem Grund können wir nicht
nur einen booleschen Wert innerhalb
der Blockklasse verwenden . Existiert die Blockklasse
nur einmal? Das boolesche Feld, wenn Sie dort nur ein
boolesches Feld haben, würde
es tatsächlich für
jeden Blockstatus innerhalb
der Welt für diesen Block geändert . Und natürlich ist das
nicht ganz richtig, denn ob ein
bestimmter Block oder ein Block
innerhalb der Welt beleuchtet
ist oder nicht , ist unabhängig von jedem anderen oder Block,
außer wenn sie nebeneinander sind. Das ist eine ganz andere Sache. Sie können also sehen, dass
wir
die Methode append properties aufrufen müssen und diese grundsätzlich überschreiben und alle
unsere Eigenschaften dem
Builder direkt hier hinzufügen müssen. Und das
macht dann im Grunde das ganze schwere
Heben für uns. Die Immobilie hat immer einen
Wert, der sehr wichtig ist. Es kann also nicht null sein. Block kann mehrere
verschiedene Eigenschaften haben. Das haben wir zum Beispiel auch in der
Tür gesehen. Dann hat die
Blockstaateneigenschaft, mit der ich mich auf verschiedene Modelle innerhalb
des Blocks bezogen habe, States
Jason oder einen Block, wie der Treppenblock Jason
bleibt oder wie wir auch die Tür Brock
Situation
gesehen haben . Und dann ist das der
Unterschied hier. Wenn LET also falsch ist, dann sieht es so aus
und ich habe angezündet ist wahr, dann sieht es so aus. Und wir ändern den Blockstatus. Nun, wir können einfach das
nennen, naja, wir müssen hier einfach irgendwo die
Weltvariable haben. Und dann setzen wir den Blockstatus an einer bestimmten Position
mit dem neuen Staat. Und dann
ist dieses Jahr nur eine Flagge, die
im Grunde alle
Nachbarn auf alle Arten
benachrichtigt , dass sie für n. benachrichtigt
werden müssen. Ja, das ist so ziemlich
die Idee, dass wir eine Box
ändern passiert
auf der Welt, oder? Und das
passiert auch auf dem Server. Das ist also auch sehr wichtig. Und wir übergeben die Position, dies ist die Position
des tatsächlichen Blockstatus und Socket-Parameters ist der neue
Status oder diese Blockposition. Und dann
ist der dritte
Parameter, wie gesagt, nur das verzögerte Verhalten,
das im Grunde genommen
die Nachbarn und so aktualisiert. Diese Präsentation
und der Spickzettel
stehen Ihnen natürlich auch zum Download zur Verfügung. Aber jetzt gehen wir
zweimal zur
Intelligenz und zur Druckverschiebung zurück und fangen an, einen Redstone oder Block einzutippen
. Und wenn Sie das haben, können wir
dieses Jahr und dann in den eigentlichen Block
selbst
gehen und Sie werden sehen , dass es so ziemlich
genau hier ist, oder? Also öffentliche statische, endgültige
boolesche Eigenschaft namens lit. Und das ist genau richtig. Und wenn wir hierher gehen, können
wir sehen, dass die Welt in
diesem Jahr
Blockstaatspfade festgelegt hat und
dann im Grunde genommen der Staat beleuchtet
ist. Und jetzt wird wahr. Diese drei hier sind
ziemlich genau das Gleiche, was wir über das
Verhalten informieren, das wir gesehen haben. Du kannst entweder drei oder
etwas anderes machen. Wir werden uns für unsere Zwecke keine
Sorgen um das Aktualisierungsverhalten machen. 3, wir werden
immer drei benutzen, oder? Daher empfehle ich dringend, einen
Blick auf den Redstone oder die Klasse
zu werfen,
da dies
wahrscheinlich eines der
einfachsten Beispiele ist wahrscheinlich eines der
einfachsten Beispiele , die man sich tatsächlich ansehen sollte. Aber vorerst werden wir jetzt tatsächlich
unseren eigenen benutzerdefinierten Block erstellen. Also mit einem Kunden
blockieren Staatseigentum. Und dafür
gehen wir in unser benutzerdefiniertes Paket rechten Maustaste auf neue Java-Klasse. Und es wird der
Oracle-com-Lampenblock
sein, dass
wir eine Lampe machen werden . Und das wird die Blockklasse
erweitern. Natürlich meine ich, lassen Sie uns den Mauszeiger über create bewegen, Konstruktor
passt super. Und dann werden
wir ganz oben
eine öffentliche statische endgültige
boolesche Eigenschaft
aus Nettomikrostatteigenschaft hinzufügen eine öffentliche statische endgültige
boolesche Eigenschaft . Und wir werden das angeklickt
aufrufen, was der
booleschen Eigenschaft entspricht. Und dann klickte ein und dann auf einen
String-Parameter. Also nenne ich das geklickt. Dies ist nicht das Gleiche wie LET. Wir könnten natürlich
auch den Schlitz
oder On oder so ähnlich nennen . Aber geklickt wird gut. Denn was wir tun können, ist,
dass wir mit der rechten Maustaste auf
diesen Block klicken und ihn dann im Grunde
ein- und ausschalten können . Das ist also die allgemeine Idee hier. Und natürlich müssen wir zuerst
die append
properties-Methode aufrufen oder diese überschreiben. Und das ist eigentlich so einfach
wie das Hinzufügen von
Builder-Dot-Add und das Hinzufügen der
Click-Eigenschaft dazu. Wenn Sie mehrere Eigenschaften haben, können
Sie sie einfach durch
Kommas trennen und dann auch
hinzufügen. Das ergibt also natürlich keinen
Sinn, da das
zweifache
Hinzufügen derselben Eigenschaft keinen Sinn macht. Aber wenn du noch einen hättest, dann könntest du
das auch dort hinzufügen. Eine andere Sache, die wir
tun werden, ist, dass wir
diesen
Punktsatz-Standardblockstatus sagen werden , dieser Punkt erhält den
Standardblockstatus mit geleckten Löchern. Und das, was dies bedeutet, ist, dass unabhängig vom
Standardblockstatus dieses tatsächlichen Blocks wir, sobald wir ihn
zum ersten Mal festgelegt
haben, sicherstellen,
dass die Clip-Eigenschaft bei immer falsch
ist dieses Mal. Das ist also nur die allgemeine Idee. Und dann überschreiben wir
die eigene Verwendungsmethode genau hier. Wir werden
den tatsächlichen
Ergebnispass als einen mit diesem
etwas schöner zurückgeben . Und dann
prüfen wir zuerst
, ob wir nicht beim Kunden sind. Dies
stellt also wieder sicher, dass
die Formationsmarke hier
so oder nicht auf dem Kunden ist. Und wir wollen, dass die Hand und
die Haupthänder sind. Das heißt also nur einmal. Lassen Sie uns einen Booleschen Wert in
New York anklicken lassen. Und das wird State
Dot Get sein und dann so
geklickt. Und hier sieht man natürlich , dass wir den Status bereits
bekommen. Dies ist also der tatsächliche
Blockstatus, auf den wir mit der rechten Maustaste geklickt haben, und wir erhalten
nur den Wert der
booleschen Eigenschaft , auf den
wir gerade mit der rechten Maustaste klicken. Aber das ist die allgemeine Idee. Und dann sagen wir
den World Set Blockstatus an der Position, auf die
wir geklickt haben, wobei die Statuspunktbreite geleckt wurde. Und dann machen wir
im Grunde einfach einen VAP. Also dann ein Komma-Helden-Kurs , der eigentlich sehr wichtig ist. Also los gehst du. Stellen Sie also
erneut den Sperrstatus an dieser an einer bestimmten Position ein. Dann mit dem Status, wobei die angeklickte Variable das Gegenteil von dem ist,
was sie vorher war. Und dann aktualisieren wir auch
alle Nachbarn. Und das heißt, ich weiß eigentlich
ziemlich verrückt, alles was wir hier tun müssen. Wenn Sie
Blöcke und Blöcke
komplizierter haben, wollten Sie
dies natürlich Blöcke und Blöcke
komplizierter haben, implementieren. Nun, es geht auf jeden Fall nur darum , ein paar
Sachen
auszuprobieren. Und dann hilft hier auch ein Haufen Java-Wissen
definitiv. Wenn wir also tatsächlich die
mittlere Maustaste
klicken, klicken Sie auf die Boolesche
Eigenschaft und gehen Sie
dann hier zur Eigenschaft, drücken Sie Control H. Wir
können sehen, dass es
boolesche Eigenschaften in den Eigenschaften gibt boolesche Eigenschaften in den Eigenschaften und auch Eigenschaften aufzeichnen. Dies sind also im Grunde die drei Eigenschaftswerte
oder Typen des
großen Blockstaates , die Sie in einen Block
einfügen können. Ich empfehle dringend,
auch einen
Blick auf andere Vanilleblöcke zu werfen
und wie sie es machen. Aber lasst uns fortfahren
und
den Block tatsächlich dafür registrieren lassen. Nehmen wir einfach den Stock
im Zaun auf. Und das wird natürlich die
Calciumlampe sein. Und, oder Kalkaneus
Lampe auch hier. Und das ist ein neuer
oder ein Lampenblock. Das Ego. Und der Rest davon kann
tatsächlich bleiben. Aber ich wollte
noch eine Sache hinzufügen. Und das wird im Grunde nach den
erforderlichen Werkzeugen hier sein, ich möchte hier die
Leuchtdichte hinzufügen. Und das ist im Grunde eine und C, eine to Int-Funktion
mit einem Blockstatus. Was ist das jetzt? Das
klingt sehr kompliziert. ist es eigentlich nicht. Also werden wir
das einfach nehmen und ich werde
es so formatieren. Und die allgemeine Idee ist, dass
dies nur ein Hype von ist, man kann es sich
als Lieferanten vorstellen, oder? Denken Sie also daran, das Angebot war dies
und geben Sie dann etwas zurück. In diesem Fall schreiben wir jedoch
tatsächlich etwas in die Klammern und das
ist nur der Staat hier. Und dann können wir State Dot machen, das Ergebnis
bekommen,
Ergebnis Lampe Block. Und wir haben tatsächlich einen
Tippfehler hier drin, keine Sorge. Wenn Sie also jemals einen Tippfehler haben, können
Sie im Grunde einfach die
Umschalttaste F6 drücken und dann
ändern. Und dann ändern wir das einfach
in schon Kalziumlampe. Glück, da gehst du. Und dann können wir
es auch hier weitergeben, oder es kann blockiert landen. Und dann sagen wir
Fragezeichen 15, Polen 0. Was macht das jetzt? Was ist hier los? Einige von euch könnten sagen
, dass das absolut verrückt ist. Das ist eigentlich nicht so verrückt. Luminanz nimmt also eine Int-Funktion des
Blockstatus an, wie Sie sehen können. Und die allgemeine Idee hier ist , dass die zwei int
Funktion, oder? Genau hier
kriegen wir nichts. Also was ist das? Nun, es ist einfach ein, es erfordert, dass eine Ganzzahl
zurückgegeben wird , und wir übergeben
hier einen Blockstatus. Das ist so ziemlich alles, was wir wirklich ein Jahr wissen müssen. Wir haben also einen
Blockstatus, den wir verwenden können, und dann
müssen wir irgendwie eine ganze Zahl zurückgeben. Es ist also ziemlich dasselbe wenn ich so
etwas schreiben würde, oder? Also, und dann sage ich Blockzustand, das ist so ziemlich dasselbe. Wir geben eine ganze Zahl zurück und
wir übergeben einen Block Sit. Nun, das ist einfach
viel einfacher, alles in einer Zeile. In der Idee hier ist, dass
also mit der eigentlichen Funktion, die
wir hier schreiben, nur ein ist, wir erhalten den Wert von
Clicked dieses Zustands. Und wenn es stimmt,
werden wir 15 zurückgeben. Also schalten wir im Grunde die Leuchtdichte ein, also versuchen
wir es hell zu sein. Und dann geben
wir sonst eine 0 zurück. Das ist also alles, was wir hier machen. Wenn du nur etwas
ausprobieren willst und du kannst das auch einfach
tun und 15
zurückgeben, und dann wird der Block im Moment immer ein Licht abgeben die anderen interessanten
Dinge
werden natürlich die
blockiere States Jason. Also werde ich das noch
einmal kopieren, aber das
steht Ihnen natürlich im GitHub-Repository
oder in einzelnen GIS zur Verfügung. Und du wirst sehen, dass es
eigentlich nicht so verrückt ist. Wir haben einfach gleich
false geklickt oder gleich true angeklickt. Und je nachdem, deutet
es auf zwei
verschiedene Glücksmodelle hin. Das ist also so ziemlich genau das. Die Längendatei. Ich meine, das wird
auch sehr einfach sein. Es ist nur ein
Block-Recalc unter
eine Lampe kommen und dann
hier sitzen oder einen Unterstrich,
keine Unterstrichlampe. Das passiert manchmal dort, Ihre Oracle
VM-Lampe, noch ist es. Und dann lassen Sie uns
die Blockmodelldateien kopieren,
ebenso wie die Lampe
an und für die Lampe ausgeschaltet ist. Und beide
bezeichneten nur zwei verschiedene
Texturen, wie Sie sehen können, entweder Lampe an oder Lampe aus. Also nichts zu verrückt. Und dann lasst uns das Modell
des Lampen-Items auch holen. Nichts zu verrückt,
bezieht sich nur auf die Lampe hier aus. Und dann holen wir uns
die Blocktexturen. Und dann, und dann sind wir damit
ziemlich fertig. Und jetzt schauen wir mal, ob es funktioniert. Oder offensiver Angriff
und Mikrovesikel sehen das Orakel landen kann, dem Spiel hinzugefügt
wurde. Und wenn ich mit der rechten Maustaste
darauf klicke, gehen sie, es schaltet sich ein und es schaltet sich aus,
denn das ist ziemlich cool. Der Grund, warum
wir keine bekommen, wie die
Rechtsklick-Funktionalität, im Grunde
darin, dass wir
den Rechtsklick-Pass einsetzen. Und das ist natürlich,
damit wir mehr, im Grunde
besser platzierte
Blöcke hinzugefügt werden können . Denn wenn wir den Pass nicht da drin
haben, dann
ist das ein bisschen komisch. Sie können also natürlich auch
das tatsächliche Ergebnis ändern , das Sie in der unbenutzten Methode
zurückgeben. Das ist auch immer
etwas, das Sie einfach
ausprobieren und sehen können , was die
verschiedenen Funktionalitäten sind. Aber wie Sie sehen können,
funktioniert es völlig gut. Und ich kann
das Extra einfach ändern und
natürlich einschalten. Also wenn ich einfach mal
nachts mache , damit wir
das haben und bumm sehen,
bumm , bumm, da ist es. Ich kann das
Licht einfach einschalten oder ausschalten. Das ist also ziemlich cool. Rubber, das wird es schon für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden und du lernst etwas von dem Neuen. Und wir sehen uns aber in der
nächsten Vorlesung. Ja.
66. (Intermediate) Wie funktioniert NBT: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir einen vorläufigen Blick auf NB TY-Daten werfen. Genau wie die
Blockstatuseigenschaften im Grunde Daten
sind, die Sie in einem Blockstatus speichern
können. In BT sind Daten, die Sie auf Artikelstapeln speichern
können. Item-Stacks sind also zwei Elemente da Bloc-Status zwei Blöcke sind. Der Artikel stapelt also
den eigentlichen Snack , den Sie in Ihrem Inventar haben, während ein Artikel die
allgemeine Idee dieses Artikels ist. Aber wieder einmal ein einziges
Muster in gewisser Weise. Und die Art und Weise, wie wir uns das ansehen werden, ist wir einen neuen
Artikel namens Datentablet erstellen werden. Und das wird
das letzte Ergebnis
der Werbetruten sparen . Das ist die allgemeine
Idee dafür, dass
wir eine Reihe von Code kopieren werden. Dies steht Ihnen im GitHub Repository oder einer
Einzelperson genauso gut zur Verfügung. Werfen Sie einen
Blick auf die Ressourcen. Ich empfehle
dringend, sie sich anzusehen und ihnen bei
mir
zu helfen, während wir weitermachen. Und zuallererst
brauchen
wir dafür den neuen Artikel. also mit der rechten Maustaste in das
benutzerdefinierte Paket und dies ist das Datentablet-Element. Dies wird die Item-Klasse
erweitern. Natürlich war dies der Mauszeiger über diesen Create-Konstruktor, der hier super
passt. Und dieser ist eigentlich
ziemlich einfach. Die Dinge, die
wir tun wollen, ist, dass wir diesen
Blick pro Woche werfen wollen, im Grunde genommen einen zu
diesem glänzenden Effekt wenn dies tatsächlich in VT-Daten enthalten
ist. So können wir
die has-glint-Methode überschreiben. Und was wir dann hierher zurückkehren
werden, können
Sie sehen, dass wir den Stapel hier tatsächlich
bekommen. Und das ist großartig, denn was wir tun können, ist, dass wir einfach
Stack Dot hat MBT zurückgeben können ,
genau richtig? Jedes Mal, wenn auf einem Datentablet
NVT-Daten hinzugefügt
werden, werden wir dies zum
Leuchten bringen. Was ich dann auch tun möchte, ist, dass ich mit der
rechten Maustaste auf diesen Staub in die Luft klicken und die angebotenen Daten gelöscht
habe. Wie Sie sehen können, werden
wir hier die US-Methode verwenden. Und was wir nur
überprüfen werden , ist, dass wir sagen
werden, hey, wenn user.name mit der
Hand, auf die gerade geklickt
wurde, gestapelt wird, oder? Wenn dieser Stack als NVT ist als das, was wir gerade
tun werden , werden wir ihn im Grunde
nur zurücksetzen. Was wir sagen werden, ist, dass
wir User dot,
Stack und End mit der Hand sagen werden. Wir sagen einfach „Set in VT“. Wir wussten es in BT-Verbindung. Und das ist so ziemlich
die allgemeine Idee. Der hat NVT im Set und VT. Und dann
werden wir in nur einer Sekunde auch das sehen, im Grunde bekommen sie NVT. Dies sind die drei
großen Methoden, die Sie im Grunde beachten
müssen. Also werden wir hier auch einen Tooltip
erstellen, und dieser wird
angezeigt wenn der eigentliche
Stack MVT-Daten enthält. Stapeln Sie also nochmal Punkt als MVT. Und erst dann
möchten wir eine Zeichenfolge hinzufügen. Sagen wir einfach, nenne
das die aktuelle oder hier. Und wir werden sagen
Stack Dot-Dot-Dot-Dot-Dot, diesmal NVT. Und so wie wir
hier verschiedene Werte
erhalten , können Sie sehen
, um in C zu kommen, kann
ich hier ein paar verschiedene
Arten von Daten bekommen, und ich muss immer einen Schlüssel
bekommen. Ich
benutze nur den MC Course Dot. Oder so nenne
ich diesen Schlüssel. Was ich sehr
empfehle, ist, immer mit Ihrer Marr-ID zu
beginnen
und dann mit einem Punkt und dann was auch immer der tatsächliche Name dieser gespeicherten Variablen sein
soll. Und dann können wir einfach einen
QuickInfo-Punkt hinzufügen. Und dann sagen wir
neuen Literaltext, in diesem Fall wörtlicher Text mit dem aktuellen oder als
String und sie gehen, und das ist so ziemlich die
Datentablet-Artikelklasse. Lasst uns
dieses Jahr sofort lesen , denn das
wird dies
ein bisschen einfacher machen ,
damit
die neue Pferderüstung entkommen kann. Und das wird das
Datenunterstrichen-Tablet sein. Und hier
unterstreicht das gleiche Daten-Tablet. Und dann ist hier das
Datentablet-Element genau richtig. Und wir brauchen hier natürlich nur die
normalen Einstellungen, die sie vor sich haben. Und wir werden
hier auch die maximale Anzahl hinzufügen , damit wir diesen Stapel nur zu einem
haben können. Dies wird also die
Max Stack-Größe von eins sein. Das ist sehr wichtig. Und jetzt müssen
wir natürlich irgendwie definieren, was etwas Zeug ist, die NVT-Daten zu
unserem Dowsing Rod Artikel
hinzufügen. Und dafür
werden wir tatsächlich eine Util-Klasse erstellen ,
weil das unser Leben in einem Util-Paket ein wenig
einfacher
macht .
Wir klicken mit der rechten Maustaste auf eine neue Java-Klasse. Und das wird das Inventar Util
sein. Und ich kopiere
beide Methoden hier drüben. Und das ist nur, um im Grunde Zeit zu sparen,
denn diese
werden wahrscheinlich
einige Male wiederverwendet, die Sie als
Spielerstapel und Inventar sehen können.
Dies prüft, ob
dieser bestimmte Spieler oder nicht hat diesen bestimmten
Artikel in seinem Inventar. Und dann erhalten sie erste
Inventarindexprüfungen durch das Inventar dieses Spielers den ersten Index innerhalb des Inventars
, in dem
dieser Gegenstand vorhanden ist. Das ist die allgemeine Idee hier. Und wir werden
beide tatsächlich benutzen. Also lasst uns hier zur Dowsing
Rute Item Masse gehen. Und was wir
tun werden, ist, dass wir eine bestimmte Sache
hinzufügen werden. Und das ist im Grunde innerhalb
der USA auf einer Blockmethode, oder? Was wir tun wollen, ist, dass
wir sagen wollen: Hey, wenn der Layer das
Datentablet im Inventar hat, dann möchten wir im Grunde NVT-Daten
hinzufügen. Also werden wir sagen ob. Und dann können wir Inventar sagen, util dot als Spieler im Inventar
stapeln, wir können Spieler sagen, und dann ist der Gegenstand nur
mehr Gegenstände, Punkt-Datentablet. Wenn sich das also im Inventar befindet, möchten wir
die NVT-Daten hinzufügen. Nun,
denken wir einfach darüber nach. Ich werde die Methode
dafür kopieren , weil ich dafür tatsächlich
eine Methode habe. Und das ist eine
private Methode namens Add vt to
datentablet. Du siehst es. Und was das bewirkt, ist eigentlich
ziemlich einfach. Es ist eigentlich nicht zu verrückt. Zunächst einmal holen Sie
sich den
Datentablet-Stack hier. Indem Sie den Stapel abrufen
und den ersten Inventarindex
der David-Tabelle erhalten. Also erhalten wir das
erste Datentablet, das sich
im Inventar befindet ,
als sehr wichtig. Wenn wir also zwei Daten im Inventar
mitteilen würden, würden
wir die
ersten in VT-Daten überschreiben. Das ist sehr wichtig. Wie legen wir nun die NVT-Daten fest? Sie können genau
hier sehen, dass wir neue Verbindungen
schaffen werden. NVT-Verbindung ist also das, was
wir schaffen müssen. Ich lege dort eine Schnur
mit dem Schlüssel rein. einmal unterstrichen
MC-Kurspunkt-Unterstrich bzw. Und dann ist hier die Zeichenfolge. Das ist also so ziemlich genau
die gleiche Zeichenfolge , die wir hier
in der Ausgabe hatten. Und dann sagen wir
Datentablet bei festgelegten NVT-Daten. Und wenn wir diese NVT-Verbindung übergeben hätten, hätten
wir einfach eine Schnur
angezogen. Und dann werden
wir innerhalb
der if-Anweisung einfach
NVT-Daten hinzufügen
mit dem Player auf das Datentablet aufrufen . Und ich werde sagen, dass die
Position geklickt auf Punkt 0 minus 0
hinzufügt. Und dann ist der Block unten sehr ähnlich dem, was wir in den Ausgabekoordinaten
hatten. Aber vorerst wird
das gut werden. Und das ist so ziemlich
alles, was wir tun müssen. Das ist also im Grunde
alles, was es dazu gibt. Bei dieser speziellen
Methode ist das privat, bei der wir diese Daten und
dann das Inventar
hinzufügen , indem wir auch in einem anderen Bereich
nützlich werden. Das ist also auch eine
sehr häufige Coolness. Und ja, das ist so
ziemlich die Idee. Wiederum sind
NVT-Daten im Gegensatz zu diesen die wichtigsten Methoden die Set- und
VT-Daten auf dem Stack. Sie erhalten NVT-Daten auf dem Stack, und der hat
NVT-Daten auf dem Stack. Das sind also die
drei Hauptmethoden. Und dann kann
man in der
NVT-Verbindung selbst im Grunde sehen, dass ich
auch andere Sachen
wie einsetzen kann und
das sind
im Grunde alle Datentypen, die ich dort speichern
kann. Und die sind normalerweise
viel mehr als genug. Oh, das ist so ziemlich alles, was wir dort wirklich wissen müssen. Und dann, und wir
werden es tun, ist, dass wir zuerst die Lang hier
hinzufügen werden. Nun, lassen Sie uns einfach
den Gegenstand kopieren oder nehmen wir diesen. Das Datenunterstrichen-Tablet ist
natürlich das Datentablet. Und dann brauchen wir
ein Artikelmodell. Und das ist natürlich nur ein normales Artikelmodell hier. Datentablet zeigt also einfach
auf das Datentablet auf. Das ist also eine sehr interessante
Sache hier, warum ist das so? Nun, gibt es auch ein Off? Ja. Etwas, das wir
uns in
der nächsten Vorlesung tatsächlich ansehen werden, weil sie alle die tatsächliche Textur
ändern werden je nachdem, ob es
MVT-Daten hat
oder nicht und tatsächlich
nicht darüber erfordert ein
interessantes Setup. Sagen wir mal. Jetzt
wurde das Datentablet dem Spiel hinzugefügt. Mal sehen, ob es funktioniert
oder ob Rückprallungen in Mikrofinanzierung
sehen können, dass das Datentablet erfolgreich zum Spiel
hinzugefügt
wurde. Und lass uns einfach einen einzigen nehmen. Das stimmt.
67. (Fortgeschrittene) Item: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir
einen Blick auf einen
Modalprädikatanbieter werfen. Wenn das also etwas ist, von dem Sie einfach keine Ahnung haben,
was das bedeutet, keine Sorge. Wir werden das im Detail
durchgehen. Also
drücken wir
zweimal die Umschalttaste und wir werden eine modelladäquate
Anbieterregistrierung einführen, genau diese. Klicken wir einfach darauf
und Sie können sehen, dass dies einige interessante
Dinge
hat. Nämlich zum Beispiel
für den Bot, den Pol und
das
Ziehen nach innen, was sehr interessant ist,
da dies
zwei Prädikate sind , die der Bot benötigt um
die Artikeltextur zu ändern innerhalb
des Inventars. Und das stimmt genau. Wir müssen also unser
eigenes benutzerdefiniertes registrieren, damit unser Datentablet die Textur
verändern kann. Wir möchten grundsätzlich eine tabellarische
Daten, die ausgeschaltet werden, wenn keine NVT-Daten vorhanden
sind, und sie einschalten, wenn BT-Daten darauf enthalten sind. Das ist die allgemeine Idee. Und was ich auch sagen kann,
ist, dass wir die
Umschalttaste erneut drücken und
einen Bowl-Unterstrich eintippen lassen. Sie werden sehen, dass
einige JSON-Dateien
damit verknüpft sind . Und dies können
Sie beispielsweise sehen, dass sich auf den Artikel
zurückbezieht. Dieser
Bowl-Unterstrich, der 0 zieht wird in der
Bot-Daten-JSON-Datei referenziert, die von der sein wird, die fett gedruckte
JSON-Datei genau hier ist. Aber Sie können auch immer
zu den externen Bibliotheken in
Assets gehen zu den externen Bibliotheken in als unter Models Item, und dann einfach
zum Bug gehen, genau hier. Da gehst du.
Das ist also das Boot, das genau das
angrenzt, das wir geöffnet haben. Und Sie können hier unten sehen, Überschreibungen
gibt und ob
ein bestimmtes Prädikat ist, also sind das die
Modalprodukte, die wir gerade gesehen haben. Wenn sie einen bestimmten Wert
haben, schauen wir uns
tatsächlich
ein anderes Modell als dieses an . Dieser zeigt nur
die normale Schüssel. Wenn das Ziehen jedoch eins ist
, werden wir
dieses Modell zeigen. Wenn das Ziehen seines einen
Endes der Stange
bei 65 Prozent liegt , wird dies zeigen. Und wenn wir ziehen
und ziehen, ist es bei 0,9, dann zeigen wir
diese. Das ist die allgemeine Idee, Jahr. Und deshalb können wir
die Texturen
grundsätzlich verändern. Und das ist eigentlich alles
ziemlich einfach. Was ich tun werde, ist, dass
ich eine neue Util-Klasse erstellen werde, die ich den
Modmodell-Prädikatanbieter nenne . Und da drinnen
werden wir eine öffentliche Leere machen. Registrieren Sie Modelle, Modelle,
Kühler, ja, Mod-Modelle. Und dies wird die Registry
des
Fabric-Modal-Prädikat-Anbieters aufrufen Registry
des
Fabric-Modal-Prädikat-Anbieters , die sich beim
Mod-Items
Dot-Datentablet im neuen
Bezeichner-MC-Kursmod, Mod ID, registriert. Und dann rufen wir
das an. Und dann nach der ersten
Klammer ein Komma. Und was wir dann wollen, ist eine Meile in nicht beanspruchten
Modellanbietern. Sie können sehen, ob ich hier
anfangen zu schreiben und zu
stapeln, wir können das
einfach machen. Also werden wir es so
automatisch vervollständigen. Und was wir dann sagen werden
ist, dass Stack Dot MBT hat. Noch einmal eine Frage, markieren Sie eins, f Doppelpunkt 0, f. Die Idee ist
also, dass
wir eine 1 4 zurückgeben werden, wenn die Aktie MVT-Daten hat
und wir eine 0
zurückgeben, wenn sie
keine MET-Daten hat. Und das ist so ziemlich
alles, was wir tun müssen. Jetzt. Wir müssen auch das Ego richtig
registrieren, und dann erinnern wir uns, dass dies hier
im Kunden ist. Das ist also sehr wichtig, dass
wir dies im Kunden nennen, dass wir Mod sagen wollen,
Modalprädikatanbieter ,
die Modelle registrieren. Und das ist, ich meine,
das ist es so ziemlich. Das ist alles, was wir tun
müssen, damit dieses Modell registriert wird,
oder nehmen wir an, dass das Prädikat
hier registriert ist. Natürlich müssen wir jetzt die Modelldateien
im Datentablet
ändern ,
richtig, also genau hier. Also habe ich
das tatsächlich vorbereitet. Ich werde das
kopieren und ich werde es erklären und ich
werde es natürlich auch tun, Ihnen
das alles im Repository oder einer
Einzelperson genauso gut zur Verfügung steht . Und die Idee ist, dass dieser hier jetzt auf ein anderes Modell
hinweist. Was wir also einfach
tun werden, ist, dass wir einfach das andere Modell hier
nehmen werden. Wir brauchen also zwei Modelle. Einer von ihnen ist das normale Datentablet
und ich bin einer von ihnen ist das Datentablet auf
diesem. Und tut mir leid,
das wird so aussehen, also okay, keine Sorge. Lasst uns das einfach durchgehen. Das normale Datenziel
wird ausgeschaltet sein, wenn
es keine NVT-Daten enthält. Wenn MC-Kerne einer sind
, schalten wir die Datentablets ein. Also werden wir uns
dieses Modell
jetzt genau hier ansehen, bei dieses Modell
jetzt genau hier ansehen, dem das
Datentablet eingeschaltet ist. Aber jetzt
müssen wir nur noch
das Off für den Artikel
extra hier abgeben . Lassen Sie uns
das auch einfach kopieren. Das Ego, weil es
standardmäßig so
aussehen wird, als wäre es aus. Und wenn das Prädikat aktiviert ist, werden wir dieses Prädikat verwenden,
das sich auf die On-Textur bezieht. Das ist die allgemeine Idee hier. Das ist es auch nicht. Das ist
etwas verwirrend. verrückt sollte es eigentlich nicht
sein. Wir weisen im Grunde nur
auf eine andere Textur hin. Wenn etwas anders ist, so
ziemlich genau das
Gleiche wie ein Blockstatus nur im
Artikelmodell die Zeit angibt. Und das ist eigentlich so
ziemlich alles, was wir tun
müssen, um
die Artikelstruktur
eines Artikels zu ändern die Artikelstruktur
eines Artikels , je nachdem,
ob etwas passiert. Also mal sehen, ob es funktioniert. Oder ich, also wenn ich SoftBank bin
und microRNAS sehen kann, dass das normale Datentablet jetzt ausgeschaltet
ist. Und wenn ich
etwas finde, das du
sehen kannst , ist es jetzt eingeschaltet. Das ist eigentlich
ein wirklich cooler Effekt. Und wenn ich mit
der rechten Maustaste
darauf klicke und es lösche , werden die NVT-Daten auch angezeigt
. Das ist also etwas
, das ziemlich häufig ist, cool wenn ich es selbst sage, das gefällt mir wirklich. Dies ist etwas,
das im Grunde genommen einfacher ist, als Sie vielleicht denken. Natürlich
könnten die
besonderen Details für dich etwas
verrückt aussehen. Aber wieder einmal sollte
es mit
etwas Java-Wissen nicht zu verrückt aussehen. Aber das ist eigentlich
sehr, sehr cool. Denken Sie daran, dass es für
diese Vorlesung
schon hier wäre. Ich hoffe, du hast das nützlich gefunden
und er erfährt von dem Neuen. Wie immer ist der gesamte
Code
im GitHub-Repository und in
einer Einzelperson genauso verfügbar . Wir sehen uns aber in der nächsten
Vorlesung. Ja.
68. AUFGABE 7: Blockstate und NBT: Diese Übung für den
Stoffkurs für 118. Und nun, ich
werde dir nur
eine allgemeine Vorstellung oder
Erklärung geben eine allgemeine Vorstellung oder , was
du tun solltest. Diesmal gibt es also
wirklich keine Lösung, denn im Grunde genommen wird Ihre
Kreativität gefragt und Sie sollten einfach nur wild damit
laufen. Sollten Sie das
tun, ist, dass sie einen neuen Block und
ein neues Element erstellen
sollen , das irgendwie beide
Blockstatus-Eigenschaften
enthält. Also ein bestimmter Block, Block sagen Eigenschaft und
dann ein NVT-Datenbeispiel. Es kann wirklich
alles sein, was du willst. Es kann so einfach oder so
kompliziert sein, wie Sie möchten. Du musst das nicht unbedingt
tun. Das ist etwas, das du nur
ausprobieren kannst. Das ist also wirklich nur
eine optionale Aufgabe, aber ich
empfehle dringend, das immer noch
durchzuziehen und einfach
etwas zu machen ,
das Symbol ist
und nicht zu kompliziert , denke nicht, hey, ich gehe
einfach eine verrückte Anlage wie
eine Schaffenkonstruktion zu machen. Werde nicht zu verrückt. Machen Sie etwas sehr Einfaches, das funktioniert und
sich wie immer nach oben arbeitet, eine großartige Idee. Also viel Glück bei der Aufgabe.
69. (Fortgeschrittene) Hinzufügen eines benutzerdefinierten Schnittes: Oder ich komme für 118 zurück zum
Stoffkurs. Und in diesem Vortrag werden
wir Minecraft unsere eigene
benutzerdefinierte Ernte hinzufügen . Das Hinzufügen einer benutzerdefinierten Ernte ist also
eine sehr interessante Sache. Glücklicherweise haben
wir natürlich
die Walk-State-Eigenschaften durchgegangen ,
weil
wir das in unserem benutzerdefinierten Blockpaket benötigen werden . Wir klicken mit der rechten Maustaste auf eine
neue Java-Klasse die
als Modus-Rübenblock bezeichnet wird. Jetzt starten Sie
unsere Blockklassen einfach mit dem Namensmodus. Nicht immer, aber es ist in Ordnung. Und dies wird
die Crop-Block-Klasse erweitern. Und wir werden einfach den Mauszeiger darüber bewegen,
um Konstruktor zu
erstellen, der genau hier super
passt. Und was ich tun werde, ist, dass ich auf das Zuschneideprotokoll
klicke und
dann auf Control H drücke Und Sie können im Grunde alle Blöcke sehen , von denen sich
dies erstreckt. Und wir werden
nur den Inhalt,
den gesamten Inhalt aus
den Rübenwurzeln blockieren, genau hier nehmen den gesamten Inhalt aus
den . Aber das ist so ziemlich alles
, was wir tun werden. Und dann werden wir den Namen hier
ändern. Wir brauchen dieses erste Feld nicht. Und was wir dann
auch ändern wollen, ist, dass es beides hier kann. Und
anstatt sie unten in einem statischen Block zu
haben, wollen wir dies sofort tun. Und dann das Gleiche
für die Form hier. Machen wir das einfach und kopieren es
dann genau hier. H ist gleich h. Nun, nicht ganz das Ego. Dann werde ich das auch ein bisschen anders machen, damit
wir tatsächlich
lesen können , was hier vor sich geht. Weil die
Voxel-Form etwas ist , das sehr interessant
und sehr besonders ist. Das ist also etwas, worüber
wir reden müssen. Ansonsten
wird der ganze Rest einfach so
bleiben wie er ist. Ich meine, diese zum Beispiel müssen
wir eigentlich nicht. Wir können das H auch einfach so
addieren. Und dann wird
es für diesen Zustand auch
so gut gehen. Der gesamte richtige
Code steht Ihnen natürlich auch
zur Verfügung. Hier
müssen wir natürlich bei
der tatsächlich einen anderen Gegenstand
zurückgeben, aber das werden wir auch
in einem Moment tun. Und obwohl wir hier
nicht wirklich die Add-Override zu
allem
hinzugefügt die Add-Override zu
allem
hinzugefügt haben, damit wir wissen, dass hier alles außer Kraft gesetzt
wurde. Und insgesamt ist dies so ziemlich alles, was wir in dieser Klasse brauchen, außer natürlich
dem Samen, den
wir zurückgeben müssen. Und Sie können sehen, dass die tatsächlichen
Altersschutzrechte, dass wir hier in
Alterseigentum
eine H-Armut haben , das ist h3. Wir können darauf eingehen und wir können das
Altersobjekt hier sehen. Die allgemeinen Ideen, dass
dies von 0 auf drei geht, aber es gibt vier Phasen
dieses speziellen Blocks. Und deshalb
gibt es auch vier Quaderformen. Die Voxel-Form, wenn
Sie den Mauszeiger über einen Block , wird das als die
Umrisse
des Blocks
angezeigt . Und das ist sehr wichtig. Und das wird hier grundsätzlich nur je nach Alter
geändert. Obwohl Sie sehen können, dass
eine gute Umrissform das
Alter zum Shape-Array zurückgibt. Und dann bekommt es im Grunde
nur eine andere Form,
abhängig von der Alterseigenschaft davon. Das ist die allgemeine Idee hier. Wenn Sie also eine andere Ernte
mit unterschiedlichem Alter haben , können
Sie entweder das jedes Jahr
ändern. Manchmal gibt es hier einige
Agenten. Wie Sie sehen können,
gibt es 123571520. Habe ich auch. Oder Sie können auch, wie
wir es im Orakel getan haben, Ihre neue,
eigene neue Immobilie
diskret landen . Das funktioniert auch völlig gut. Aber lassen Sie uns auch den
Block in der Schlammblock-Klasse erstellen. Und dafür brauchen wir
tatsächlich eine völlig neue Methode. Also werden wir die
Registerblock-Methode kopieren, oder? Ausgewählt Control C,
Control V. Ich lösche die Gruppe hier und den
Aufruf des Registerblock-Elements. Wir werden dies
den
Registerblock ohne Block-Item-Methode nennen , da wir
genau das tun wollen. Lass uns einfach über die
Kirschblüten-Falltür kopieren. Dies wird die
Rübenunterstrich-Ernte sein. Normalerweise
rufe ich meine Requisiten gerne gut an, mit der Endernte, der
Rübe und der Unterstrichenernte. Und das ist kein
Registerblock, aber dies ist ein
Registerblock ohne Blockelement, sehr wichtig. So können wir
den Kurs-Tab hier
ganz hinten löschen . Und dann werden wir es auch tun, dass wir uns
mit all dem befassen werden. Anstatt es zu erledigen, werden
wir tatsächlich einen bestimmten Block
kopieren. Und das sind die Blöcke, die
die Rübenwurzeln natürlich haben. Und kein Schlammfall-Türblock, sondern eine Mod-Rübe, OK, direkt am Satz. Warum registrieren wir damit
kein Blockelement? Nun, die allgemeine Idee ist, dass die Rübenernte nicht wirklich
einen Gegenstand hat. Wir brauchen einen Samen für diesen
platzlosen Block Down, und das ist genau richtig. Aber wir müssen tatsächlich in
zwei oder mehr Gegenständen gehen zwei oder mehr Gegenständen und dann auch einen
Rübensamen herstellen. Also werden wir einfach
über das Datentablet kopieren und dies wird ein
Rübenunterstrich sein. Dafür nennen
wir es unter
Unterstrichensamen
verbrannt. Und das ist ein neues
Alias-Blockelement. Das könnte also sein, was ist das? Nun, zuerst werden wir die weiteren Blöcke
einsetzen, die den Zuschnitt auftauchen
, und dann den maximalen Zähler
löschen. Eigentlich sehr wichtig. Ice Block Item ist
ein Blockelement mit einem anderen Namen als der
Block, den es hat, oder? Das Rübensamen
oder das Saatgut ist also natürlich ein anderer Name als die Rübenernte hier. Und was auch sehr wichtig ist, Gehen wir zurück zur
mütterlichen Blockklasse und geben dann Mod-Items dot zurück, drehen Sie es genau hier. Das ist sehr wichtig, sonst stimmen
die Samen nicht. Das ist also sehr
wichtig, dass wir
dies tun und der Code
im Grunde genommen gemacht wird. Was wir auch tun müssen, ist
, dass wir auch hierfür die
Render-Layer-Map
aufrufen müssen . Das ist auf der
Rübenernte genau hier, auch ausgeschnitten. Und dann wird der Code tatsächlich vollständig gemacht,
was wir jetzt nur noch tun
müssen, ist, die
Übersetzung und dann die
Blockzustände und die
Blockmodelldateien hinzuzufügen . Fügen wir einfach die
Rübenernte hier hinzu. Sie können also sehen, dass wir im Grunde nach verschiedenen suchen,
die beispielsweise
Eigenschaftswerte
von 0 bis drei blockieren Eigenschaftswerte
von 0 bis drei und dann einfach auf
verschiedene Modelldateien zeigen. Alle Dinge, die
wir bereits gesehen haben,
sollten also keine allzu große
Überraschung sein, oder? Fügen wir den Artikel hier hinzu. Sagen wir einfach so etwas wie der Rübenunterstrich
Samen werden
natürlich das Auftauchen sein, nicht die Samen unterstreichen,
noch einmal mit dem Unterstrich. Und dann sehr
wichtig, um die Rübenernte auch hier
hinzuzufügen, tauchen Sie die Unterstrichenernte auf. Und dann sind
wir auch hier in einem engen,
es gibt einen MOD, bei dem Sie den Mauszeiger über Blöcke bewegen
können und es wird tatsächlich
den eigentlichen Block hier anzeigen. Und dies wird auf eine Weise
angezeigt, die nicht übersetzt
wird. Also übersetze das auch. Ich empfehle dies nur wärmstens. Es ist nur eine Zeile, wirklich keine große
Sache, oder? Lassen Sie uns zunächst die
vier verschiedenen Blockmodelle
hier für die Rübenernte addieren , Sie können sehen, dass sie nur die Unterstriche Stufe 0 oder 2, 1
auftauchen . Stellen Sie sicher, dass
hier alles richtig geschrieben ist. Wenn du an den Jason
zurückdenkst, die Idee, wie
sind sie verwandt? Dies ist
der Name dieser Datei hier, und dann ist dies der Name
der Textur, die
auf die Blockmodelle
verweist ,
sind alle die übergeordneten Blockzuschneidungen. Und dann ist die Textur hier
auch eine Ernte, die sehr wichtig ist. Und dass wir das Artikelmodell eigentlich
nicht brauchen würden. Wir brauchen nur ein Artikelmodell
für die Rüben Aedes, und das ist nur ein normales
Artikelmodell, wie Sie sehen können. Und dann lassen Sie uns
die vier
Blocktexturen der Rübe kopieren . Diese, alles hier steht Ihnen
natürlich zur Verfügung. Also lassen Sie uns
diese auch einfach kopieren. Und C 0 bis drei, und dann der Gegenstand, die Samen auch hier. Also Term Seeds
im Ordner „Objekte“. Nun, im
Item-Ordner, los geht's, und das ist so ziemlich
alles, was wir tun müssen. Nun ist eine der
wichtigsten Dinge, was fällt dieser Block ab? Weil die Klo Tische, die
wir bisher gesehen haben, sind
wir alle sehr einfach. Der einzig verrückte Lu
Tisch war wirklich die Umlaufbahn, auch wenn es
nicht zu verrückt war. Aber was ist mit
den eigentlichen Kulturen? Müssen sie nicht spezifisch sein
? Ja. Wir können noch einmal zu
den externen Bibliotheken
hier unten zu Microsoft Project gehen , und dann die ganze
Reihe von Sachen hier. Und dann ging Minecraft anstelle
des Assets-Ordners
in den Datenordner, plünderte
Minecraft Tabellen, Blöcke. Und dann werfen wir uns nur einen
Blick auf Rübenwurzeln. Und Sie können sehen, dass die Rübenwurzeltabelle
so aussieht und tragen Sie diese einfach vorbei oder wir können auch einfach
die eigentliche Datei hier kopieren. Also gehen wir einfach zu
Control C, diese Datei, und gehen dann in unseren eigenen
MC-Kurs-Routentabellen, Blockordner. Ist es hier drin? Dies ist natürlich der Wrapper der
Rübe unterstrichen. Und dann gibt es einige
Änderungen, die wir vornehmen müssen. Das ist sehr wichtig. Überspringe das nicht. Sieh dir das mal an. Also Nummer 1, r maximales Alter Eigenschaft
ist genau hier definiert. Wenn wir einen Stein haben würden, der das Höchstalter von fünf
Jahren
hat, müssten
wir fünf Jahre
einbauen, weil die tatsächlichen Dinge nur gesunken sind, wenn dieses Alter erreicht
wurde. Das ist also sehr wichtig. Und das ist das Gleiche
, was hier unten geht. Jetzt in diesem Jahr, wo der
Block hier der Block ist. Das muss also
MC-Kurs Doppelpunkt,
Rübe, Unterstrichenernte sein. Dies bezieht sich auf den Block, wir in unserer
Mod-Block-Klasse erstellt haben
, der in diesem Jahr grundsätzlich
überprüft
wird, das eigentliche Produkt ist. Das wird also
die MC-Kurs-Rübe sein. Das heißt, das wäre der Weizen, wenn es
Weizen wäre und so weiter. Und dann sind das hier die Samen. Das ist also MC Course Colon, unterstrichen Sie Sitze. Das ist also sehr wichtig. Diese drei Dinge
müssen geändert werden. Stellen Sie also sicher, dass
Sie sie
hier und dann auch
hier ändern . Weil
wir hier unten
im Grunde genommen
zusätzliche Plätze fallen lassen, oder? Das ist also sehr wichtig, dass
Sie dies richtig ändern. Bitte stellen Sie sicher, dass die
Modell-ID immer korrekt ist , da
dies im Grunde sehr
leicht zu überwachen ist. Das ist also etwas, das man sehr leicht einfach
nicht erkennt, besonders, weißt du,
Armada D beginnt mit einem M. Minecraft auch mit einem M. Manchmal kann es etwas sein,
das du vielleicht vermissen aber das ist so ziemlich
alles, was wir hinzufügen müssen. Also mal sehen, ob es funktioniert. Oder Francis zurück in der Mikrofinanzierung kann sehen, dass die
Rübensitze hinzugefügt wurden, also schauen wir mal, ob ich sie niederlegen
kann. Und natürlich
kann ich sie niederlegen. Genau
das möchte ich sehen. Und lassen Sie es uns einfach
so machen, dass die Spielregel, Zufalls-Tics Geschwindigkeit,
um 100 erhöht wird. Und dann gehen sie
dorthin, sie wachsen. Und
das ist eigentlich das alte Wachstum hier. Lass uns das einfach zurücksetzen. Wenden wir uns dem
Überlebensmodus zu. Sehr wichtig. Wenn du sie einbrechst, musst
du
sie im
Überlebensmodus und im Ego brechen , sie lassen sogar Rüben fallen, aber nur auf der vollen Größe. Sie können sehen, ob sie nicht in
voller Größe sind und nur
auf einen Samen fallen gelassen werden, ist so ziemlich
alles, was sie tun müssen. Und natürlich können
Sie in
der eigentlichen Lu-Tabelle auch
die Zahlen ändern, oder? Wenn Sie also wie Nein sind, sind das nicht genug Rüben, die fallen, das ist auch völlig in Ordnung. Das kann man immer
in den Klo Table Js ändern,
richtig, aber das
ist so ziemlich für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt. Wieder einmal ist der gesamte Code in den letzten Dateien natürlich im
GitHub-Repository
oder einer Einzelperson
verfügbar auch im
GitHub-Repository
oder einer Einzelperson
verfügbar. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
70. (Intermediate) Wie du Objekte zu einem Composter hinzufügst.: Alles klar, willkommen zurück
zum Stoffkurs für 118. In diesem kurzen Vortrag werden
wir
sehen, wie Sie dem
Komposterblock
benutzerdefinierte Elemente hinzufügen können . Aber das
bedeutet im Grunde, dass wenn Sie mit der rechten Maustaste auf den Komposterblock klicken, eine Chance,
das Niveau zu erhöhen , auf dem sich der
Komposter befindet. Das ist eigentlich alles
sehr einfach. In unserer Klasse mehr Registers werden
wir also einen
neuen privaten statischen
Void-Register-MOD-Komposter erstellen ,
Chancen-Klasse. Und das wird hier
kurz nach dem
Register der Brennstoffe,
Registermodus Verbrennungschancen genannt kurz nach dem
Register der Brennstoffe, . Und die Art und Weise, wie wir
diese hinzufügen, ist ziemlich verrückt. Wir werden sagen,
Komposterblock, DOD Item zwei Level hat die
Chance erhöht , dass PUT und dann
einfach die mehr Gegenstände,
Punkt-Punkt-Rüben,
Sitze, zum Beispiel
durch eine Chance von 35 Prozent eingelegt Punkt-Punkt-Rüben,
Sitze, zum Beispiel werden. Und wir werden das einfach mit Control D
duplizieren und ich werde
auch die Rübe einsetzen , damit Sie nur
an der Reihe essen können. Und das wird
eine Chance von 65 Prozent sein. Wenn wir mit der mittleren
Maustaste darauf klicken. Wir können auch sehen, dass die
Trends genau hier sind. Sie können also im Grunde alle Chancen sehen , dass es einige Samen
gibt, die Setzlinge und Blätter und im Grunde die Chancen , die
mit uns verbunden sind, oder? Ich meine, das ist
so ziemlich alles, was Sie
tun müssen, wenn Sie nicht die
Modus-Register-Klasse haben, Sie können diese auch nehmen und diese einfach in der
initialisierten Methode
aufrufen. Da wir jedoch hier
die modernen Register erstellt haben , macht dies alles ein
bisschen einfacher und ein bisschen getrennter und ein
bisschen schöner zu lesen. Und nur um der Vollendung willen, lass uns sehen, ob es funktioniert
oder ob es wieder in
Minecraft war und lass uns
einfach sehen, da gehst du. Ich kann mit der rechten Maustaste darauf klicken und
es funktioniert tatsächlich. Und die Samen funktionieren auch. Sie haben eine Chance von 35
Prozent, während die Rüben eine Chance von
65 Prozent haben. Und da gehst du. Jetzt hab ich ein bisschen Blase. Nun, aber das ist 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.
71. (Fortgeschrittene) Mischungen: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir uns Mixin ansehen. Mixin ist ein Thema, das mit großer Sorgfalt behandelt werden muss. Deshalb bitte ich dich irgendwie , damit nicht absolut
verrückt zu werden. Selbst wenn Sie
dies nach dieser Vorlesung verstehen, sollten Mixins sparsam
verwendet werden und nicht nur
für alles, wo
es einfacher ist, Mixin zu
verwenden. Mixin, die allgemeine Idee ist,
dass Sie
die Klassen von Minecraft im Grunde ändern können die Klassen von Minecraft , um sie auf alles zu setzen
, was Sie wollen. Im Grunde könnten wir zum Beispiel Methoden ändern. Sie könnten, Sie könnten die Zugriffsebene,
bestimmte Methoden oder
bestimmte Felder
ändern , und wir könnten sie dann einfach aus einer Laune heraus
ändern. Und das wird normalerweise als ein sehr kompliziertes
und komplexes,
komplexes Thema angesehen als ein sehr kompliziertes
und komplexes,
komplexes , wo es
eigentlich nicht so verrückt ist. Also wenn
du zu diesem Zeitpunkt nur Sachen
kopiert hast und nicht wirklich mit dem Java
folgst. Du
verstehst also nicht wirklich viel von dem Java-Zeug dahinter. Ich
empfehle es nur sehr, noch einmal einen
Blick auf die
Java-Einführung zu werfen, denn Mixin ist ein Tool , bei dem
Sie Java nicht
verstehen, völlig verloren gehen werden. Ich werde nicht allzu sehr
darauf eingehen, wie es tatsächlich funktioniert. Ich werde nur
eine Sache erwähnen und das ist
das GitHub-Repository hier
von Sponge powered Mixin, dem Wiki dort speziell. Und dies war ein
unglaublich nützliches Tool, um im Grunde genommen einen Blick darauf zu werfen und einfach die
Mixin-Architektur
zu verstehen. Und wenn ich hier runter gehe, sieht
man, dass es im Grunde alles
sehr detailliert
erklärt sehr detailliert wie es funktioniert, wie
wir das nutzen können, wie man dann
auf etwas zugreifen kann und wie man
kann grundsätzlich etwas auf eine bestimmte
Schnittstelle umwandeln und dann grundsätzlich auch die Felder und
Methoden darin verwenden. Das ist also wirklich
cool und sehr nützlich und ich
empfehle nur wärmstens, das durchzugehen. Also noch einmal, wenn
du Java nicht kennst, dann weiß ich nicht, wie ich dir dabei helfen
soll weil du definitiv etwas wissen
musst, würde
ich sagen, zumindest
fortgeschrittenes Wissen in Java zu verstehe das wirklich. Der allgemeine Kern hier
ist genau das, naja, es ist ein ziemlich verrücktes Werkzeug und benutze
es wieder mit Vorsicht. Was wir also tun werden,
ist in unserem Mixin-Paket, wir klicken mit der rechten Maustaste auf neue Java-Klasse und nennen dies die
Modus-Entität Data Saver. Dies ist nur der Name
, den ich gebe. Das wird hier
völlig in Ordnung sein. Und das erste, was ich
tun möchte, ist, dass ich das abstrakt
machen möchte. Und der Grund, warum ich diese Abstracts
machen werde ,
denn jede Klasse, die wir in diesem Mixin
haben , die
wir wirklich nicht verwenden sollten oder zumindest diese
Klasse, sollten
wir wirklich
nirgendwo im Code verwenden. Und jetzt, wie machen wir
das zu einem Mixin, ist
eigentlich ziemlich einfach. Wir bei Mixin genau hier. Und dann in die Klasse legen, wollen
wir uns ändern, und dies wird die
Entity, Entitätspunktklasse sein. Was jetzt sehr wichtig ist, ist, dass
wir nur
die Klasse importieren und
sicherstellen, dass wir uns eine Netto-Mikrowellen-Entität
entscheiden. Was wir tun werden,
ist, dass wir der Entitätsklasse
einen MVT hinzufügen . Jeder Entität
wird dann auch ein MVT-Feld zugeordnet,
damit wir
MBT-Daten darauf speichern können. Und die allgemeine Idee ist, dass
wir das in
der nächsten Vorlesung verwenden werden, um benutzerdefinierte Befehle
hinzuzufügen. Aber was hier sehr
wichtig ist, dass
dies zwar eine Voraussetzung
für die nächste Vorlesung ist, aber die spezifischen Befehle, die
wir in der nächsten
Vorlesung machen werden , im Wesentlichen
verlangen, dass wir dies tun. Und deshalb
empfehle ich dringend,
beides gleichzeitig zu beobachten . Also Rücken an Rücken, nun, das
wird tun, ist , dass dies
eine
private BT-Verbindung haben wird , die
als persistente Daten bezeichnet wird. Und dann wollen wir dies
im Grunde mit
einer guten persistenten
Datenmethode gleich hier öffnen . Und was wir
tun werden, ist, dass
wir nur persistente Daten zurückgeben werden, aber es könnte auch null sein. Und wenn das der Fall ist, wenn persistente
Daten
also null sind, wollen wir diese persistenten Daten nur auf eine neue NVT-Verbindung
setzen. Im Grunde genommen, dass wir in
dieser Methode
keine leeren,
gut persistenten Daten zurückgeben in
dieser Methode
keine leeren,
gut persistenten Daten und dieses Feld zu dieser Klasse hinzugefügt
wird. Also zur
Entitätsklasse genau hier. Das wird also einfach hinzugefügt, aber irgendwo wissen wir
nicht wo, aber das ist völlig in Ordnung. Wir arbeiten damit. Diese beiden
werden einfach hinzugefügt. Und dann möchten wir auch bestimmte
Funktionen
in zwei Methoden eingreifen. Öffnen wir also die Entitätsklasse
erneut und lassen Sie uns suchen. Also kontrolliere F, und dann können
wir genau hier nach
der
richtigen NVT-Methode suchen . Und was wir tun wollen, ist, dass
wir hier injizieren möchten, dass wir im Grunde alle Daten
in diese NVT stecken,
denn dieser
ist diejenige, die gespeichert wird nachdem die Welt
im Grunde genommen
gespeichert hat. Wir möchten also, dass dies auch
unsere benutzerdefinierten Daten enthält. Und dann gilt das Gleiche für die Lese- und
BT-Methode genau hier, wo wir das tatsächlich
rausbringen wollen. Das ist also der allgemeine Kern hier. Was wir also wollen, ist eine geschützte Lücke und das wird
einfach injiziert werden, richtig? Methode. Der erste
Umfang davon ist Umfang
der tatsächlichen
Methode, die wir wollen. Die richtige MDT-Methode hatte eine nb t-Verbindung
als Parameter. Wir werden sagen, dass MVT diesen MBT tatsächlich auch
nennt. Wir können uns das noch einmal
anschauen, oder? Also richtig, MET, MET Verbindung. Und weil es auch eine MVT-Verbindung
zurückgibt. Was wir verwenden müssen,
ist, dass wir
die Rückrufinformationen zurückgeben müssen , diese Informationen
unterstreichen, das ist in Ordnung. Wir werden diesen sowieso überhaupt nicht
benutzen. Und dann werden wir es tun,
wir werden nur sagen ob die persistenten Daten sind, also
verweist dies noch einmal auf das Feld hier. Wenn das nicht null ist, aber wenn Daten vorhanden sind, werden wir einfach
die tatsächlichen Daten dort hineinlegen. Also nicht als String, sondern nur als Daten. Und wir nennen das nur die MCQ, MC gröbere
Baumwollunterstrich-Daten. Das wird gut werden. Und dann wollen wir hier
tiefere Systemdaten einbringen. Wenn also etwas
in den persistenten Daten enthalten ist, werden wir dies hier
in dieser NDT-Verbindung speichern, was es dann im Grunde so macht , dass dies auch in
der Welt gespeichert wird. Jetzt müssen wir
hier ein Attribut oben auf der Methode hinzufügen , und es gibt das
Objektattribut mit dem Methodennamen. Das ist also richtig NVT. Dann müssen wir angeben,
an welcher Position wir das machen werden, und
wir werden das bei, bei und dann
bei allen Obergrenzen tun . Dies bedeutet also, dass dieses Jahr zu
Beginn ausgeführt
wird, nachdem die Methode
begonnen hat auszuführen , sozusagen in der
ersten Zeile ausgeführt
wird. Das heißt, das ist
die allgemeine Idee. Und dann den anderen werde ich
tatsächlich kopieren. Das ist nichts zu verrückt. Die
Inject-Lese-Methode hat hier nur die Read- und B-Tier
auch den Kopf, auch NVT, da dies der
Parameter der Methode ist. Und anstatt einen
Rückruf für die Rückgabe zu haben , hat
dies eine normale
Rückrufinformationen und dann ändern Sie
tatsächlich auch
das Schlüsseljahr. Das ist also eigentlich
sehr wichtig. Und im Grunde nur sagen: Hey, wenn dieser Schlüssel existiert, dann werden wir
die persistenten Daten auf das setzen , was
wir unter dem Schlüssel finden. Da gehst du.
Das ist also eigentlich alles , was wir hier wirklich tun müssen. Und es gibt noch eine wichtige
Sache, die wichtig ist. Und das ist, dass wir eine Schnittstelle implementieren
müssen . Denn im Moment können
wir, weil es sich um eine
abstrakte Klasse handelt, weil es sich um eine
abstrakte Klasse handelt, nichts
an diese Klasse bitten. Was wir wollen, ist, dass wir
ein Interface wollen, da jede Klasse in Java auf jede Schnittstelle
umgewandelt werden kann. Also werden wir sagen, dass ich
Entity Data Saver habe. Und das wird buchstäblich nur eine einfache Sache haben. Und das ist eine NBC-Verbindung, die persistente Datenmethode
erhält. Das ist es, was
die Schnittstelle hat. Und dann werden wir nur sagen, dass Implementierungen I Entity
Data Saver
hier
auch die Add-Override hinzufügen wird , nur damit wir wissen, dass wir diese Methode
überschrieben haben, aber das ist so ziemlich
alles, was wir brauchen zu tun. Also diesen hier brauchen wir,
damit wir dies tatsächlich auf eine
bestimmte Entität
bezeichnen können . Denn
wenn wir während der Entwicklung nur
eine Entitätsklasse haben,
hat dies natürlich während der Entwicklung nur
eine Entitätsklasse haben, nicht die persistenten Daten, so dass das nicht funktionieren würde. Jetzt gibt es noch einen weiteren
Schritt, den wir tun müssen, und das heißt, wir müssen in
den
Ordner „Assets sind Resources“ genau hier gehen , tatsächlich in den
McQs Mixin Jason, und den Namen der Klasse
hier hinzufügen in den Mixins. Dies ist jedoch der
Modus-Entitäts-Datensparer. Und das ist so ziemlich alles
, was wir hier wirklich tun müssen um in diesem Fall einen
Ein-Mixin herzustellen. Also
ändern wir im Grunde die Klasse, die wir hier definiert haben, und fügen
all diesen Jazz hinzu. Nun werden wir noch nichts
sehen
, obwohl das,
was passiert, im Grunde in der nächsten Vorlesung gezeigt
wird. Ich wollte
dies jedoch trennen, weil es manchmal, weißt
du, so
ist es speziell Mixin. Und dann
wird der nächste Befehle geben und es wird Dinge geben , die spezifisch für Befehle sind. Wir müssen dies auch
nutzen. Im Grunde genommen wird
die Demonstration in der nächsten Vorlesung
gezeigt. Also sollte das Mischen auf jeden Fall vorsichtig gehandhabt werden, besonders wenn Sie Anfänger oder
Fortgeschrittene in
einem Java sind , empfehle
ich dringend, es langsam zu
nehmen. Geh nicht in den Verrückten damit. Es gibt immer
Beispiele auf GitHub und ich kann das Wiki
auch wirklich nur
wärmstens empfehlen. Es ist eigentlich richtig gut. Du musst dir nur
Zeit nehmen, es durchlesen. Nehmen Sie sich im Grunde einfach Zeit. Das ist die beste Idee hier. Und mach auch nicht verrückt damit weil es ein
sehr mächtiges Werkzeug ist, aber es könnte auch
theoretisch, ich meine,
ziemlich die Gesamtheit
von Minecraft brechen ziemlich die Gesamtheit , wenn du deinen Mod
hinzufügst. Sei also auf jeden Fall
vorsichtig damit, oder? Aber das wäre es für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt. Wenn etwas unklar ist, zögern
Sie bitte nicht, in den Fragen und Antworten
zu fragen ,
sonst sehe ich
Sie in der nächsten Vorlesung. Also ja.
72. (Zwischen) Erstellen Benutzerdefinierte Befehle: Alles klar, willkommen zurück
beim Stoffpferd für 118. In dieser Vorlesung
werden wir Minecraft benutzerdefinierte Befehle
hinzufügen . Das ist sehr wichtig. Die letzte Vorlesung, in der
wir über Mixins sprechen ist eigentlich Voraussetzung
für diese Vorlesung. Wenn Sie es also nicht gesehen haben, schauen Sie es sich
bitte an und legen Sie
grundsätzlich alles in ihre Kohle,
das
natürlich auch im GitHub-Repository oder einer
Einzelperson verfügbar ist . Oder Sie müssen das Mixin im
Grunde auch Ihrem Modell hinzufügen. Andernfalls können Sie dieser Vorlesung nicht folgen. Um also benutzerdefinierte Befehle hinzuzufügen. Wenn wir
in unser IMC-Kurspaket gehen,
klicken Sie zunächst mit der rechten Maustaste auf ein neues Paket
namens Befehl. Und drinnen werden
wir
zwei neue Klassen erstellen, die als Return Home-Befehl bezeichnet werden. Und dann auch das auf Kommando. Jetzt
siehst du vielleicht schon, wo das hinführt. Wir werden
im Grunde zwei Befehle machen. Eine für Sie, um Ihr
Zuhause einzurichten und eine für Sie , um im Grunde zu
dieser Heimatposition zurückzukehren. Jetzt werde ich tatsächlich den Inhalt
beider Klassen kopieren , weil
dies
dies ein bisschen
einfacher machen wird und ich es erklären werde , während wir weitermachen. Nun,
lasst uns zuerst den Befehl set home ausführen. Und ich
kopiere das einfach hier rein. Und der gesamte Code ist
natürlich wieder nur wieder verfügbar und
GitHub Repository. Und so haben wir eine
Registermethode, eine öffentliche statische
Void-Register-Methode und ein öffentliches statisches
int, eine Run-Methode. Diese Run-Methode wird
genau hier in dieser Ausführung aufgerufen. Und dann sieht man, dass
wir hier zwei Literale haben. Das ist also im Grunde das
, was glücklich ist, was hier
passiert. Also muss
man im Grunde genommen einen Schrägstrich eingeben und dann den
ersten hier zu Hause. Dann fügen wir ein hinzu , dann müssen wir das hier als zweites Wort
hinzufügen. Dies ist also im Grunde der
Befehl, den wir in Ohm Slash Home Set setzen müssen. Und dann wird es das
alles genau hier ausführen. Das ist der allgemeine Kern von
diesem und der Befehl run. Sie können sehen, dass der Spieler aus
dem Kontext bekommen
hat . Der Quellplayer wird in einen Entitätsdatensparer umgewandelt. Aber das ist die Schnittstelle, die wir in der letzten Vorlesung erstellt haben. Und das
ermöglicht es uns im Grunde,
die Methode get persistente Daten aufzurufen ,
die Methode get persistente Daten dann ein int-Array mit
dem Namen home pass dort zu platzieren. Und es wird
im Grunde nur
in die Heimposition
des Spielers bringen . Und am Ende
wird hier auch sagen,
Feedback mit literarischen Texten zu
Hause an dieser
speziellen Position zu senden Feedback mit literarischen Texten . Das ist so ziemlich alles
, was es wirklich tut. Der Befehl set home ist
wirklich nicht so kompliziert. Alles in Betracht gezogen. Sicher, wir haben diese
Befehlssyntaxausnahme ausgelöst. Dies ist nur der Fall. Wir brauchen das nur
im Grunde,
da dies ein Befehl ausführen für
einen well Befehl ist .
Ich schlage auch dringend vor, Ich schlage auch dringend vor einen
Blick auf den
Command Manager genau hier zu werfen. Wenn ich also mit der mittleren
Maustaste darauf klicke, siehst du hier
alle
Vanilla-Befehle . Wie Sie sehen können,
gibt es viele von ihnen. Und wenn Sie
eine bestimmte Sache haben , die Sie mit Befehlen machen
möchten. Wenn Sie also
einen benutzerdefinierten Befehl haben
möchten, können Sie
sich diese im Grunde ansehen. Und
schauen Sie sich zuerst an, wie sie es machen. Also im Grunde, okay, wie funktioniert der Schleifenbefehl eigentlich? Nun, das ist es, was ausgeführt
wird. Sie können also ausführen,
einfügen, einfügen, block
ausführen sehen , dass
es eine Menge Dinge gibt die Sie
im Grunde sehen können, wie es funktioniert. Eigentlich gibt es eine Menge Sachen. Und das hier ist die
Registrierung dafür. Und das
wird natürlich die Sache sein, bei der die meisten Menschen so sind, oh mein Lord, dass das
eigentlich verrückt ist . Und
das ist der Fall. Wenn Sie
wirklich, sehr komplexe Befehle haben möchten ,
wird es sehr komplex sein. Es wird einfach der Fall sein. Eine Sache, die ich sagen werde
, ist, dass ich nur unter bestimmten
Umständen helfe ,
wenn Sie
einen benutzerdefinierten Befehl haben und
im Q und a fragen, weil sie so kompliziert werden, es sehr, sehr schwer ist, wirklich
zu graben. Es ist einfach das, was es ist. Aber lassen Sie uns einfach
mit unserem Beispiel hier fortfahren. Die Command Manager-Klasse kann
ich also wärmstens empfehlen. Und dann gehen wir auch
zum Return Home-Befehl. Und lassen Sie uns
das auch einfach kopieren. Also lasst uns einfach
den Inhalt hier holen. Und wieder einmal
ist das auch nicht allzu verrückt. Es ist nur so, dass Sie in diesem Fall nach Hause schneiden und dann zurückkehren.
Und dann läuft es wieder. Es führt den
Befehl run genau hier aus, der den Spieler erneut auf das Auge podcastt Entity Data Saver erhält
hier
die Home-Position und die Länge
hier ist ungleich null. Dann wissen wir, hey,
das bedeutet, dass das etwas anderes enthält. Wir werden nur sagen, dass
keine Heimatposition
festgelegt wurde , dies oder jenes war
absolut sicher. Dann kriegen wir hier die
Heimatposition und sagen, dass wir den Teleport zu
genau dieser Position
bitten. Und ich sage, dass der
Spieler nach Hause zurückgekehrt ist. Das ist alles, was wir hier
wirklich machen, ist nichts zu verrückt. Und jetzt gibt es zwei Dinge
, die wir brauchen, nämlich Ereignisse. Jetzt wird eines der Ereignisse
wirklich sehr einfach sein. Also werden wir in
unsere weiteren Register gehen. Dies hier ist
spezifisch für jeden Befehl, also
müssen Sie dies
für jeden Befehl tun , den Sie hinzufügen. Wir wollen im Grunde
eine neue private statische Lücke machen, eine Registerbefehlsmethode
ausfüllen. Und so wie wir
das tun, sagen
wir
Befehlsregistrierung, Rückruf,
dieses sagen
wir
Befehlsregistrierung, Rückruf, Ereignisregister, sagte Home, Befehl Doppelpunkt, Doppelpunkt Register. Und wir werden das einfach mit Control D
duplizieren. Ich sage zurück nach
Hause Befehl, registriere dich. Und dann
rufen wir das hier auf. Also registriere Befehle, und
dann ist alles in Ordnung, aber das muss grundsätzlich für
jeden Befehl getan werden. Und jetzt werden wir auch ein bestimmtes Ereignis
hinzufügen, nämlich die
Serverplayer-Event-Kopie von, denn die Idee ist, dass
wir,
wenn der Spieler stirbt, tatsächlich
die NVT-Daten vom
toten Spieler kopieren müssen , sozusagen an die neue Entität. Das ist jedoch die allgemeine
Idee. Dies ist auch ein sehr
lockerer Einblick in Ereignisse. also in unserem MC-Kurspaket mit der rechten Maustaste auf ein neues
Paket namens event. Und dann werden wir innerhalb der
Erde eine neue Java-Klasse
machen. Und wann könnte dies die
Mod-Layer-Ereigniskopie von einem langen Namen nennen, aber das wird in Ordnung sein. Und dann funktioniert
das im Grunde genommen
eine bestimmte Schnittstelle. In diesem Fall das
Server-Player-Ereignis , das von genau diesem kopiert wird. Und dann werden wir die Methode hier einfach
implementieren. Und jetzt wird diese Methode
jetzt aufgerufen oder sie wird aufgerufen, sobald wir
sie registriert haben, wenn dieses Ereignis ausgelöst wird. Das ist also das Wichtigste. Und du kannst sehen, dass
es einen alten Spieler, einen neuen Spieler und einen Lebenden gibt, wir eigentlich nicht brauchen
werden. Ich
kopiere das einfach vorbei. Wieder einmal gibt es
wirklich nur drei Zeilen, aber wir werden
nur den alten Spieler bekommen und der neue Spieler wirft beide in den Datensparer der
Entität. Und dann erhalten wir den
neuen Spielern nur dauerhafte Daten, indem wir die alten Ebenen
oder die ursprünglichen Spieler im Vergleich zu neuen Daten einfügen. Das ist buchstäblich
alles, was wir hier machen. Und wie
wir uns
wieder in den
Mod-Registern registriert haben . Und so registrieren Sie sich im Grunde genommen alle Ereignisse, privat, statisch,
nichtig, registrieren Ereignisse. Und das ist ziemlich genau das Gleiche,
da
das Callback-Ereignis zur Befehlsregistrierung sozusagen auch ein
Ereignis
ist. Wir werden sagen,
Server-Spieler-Events Punktkopie aus dieser Zeit, das Ereignis hier, das
sehr wichtig ist, nicht die Klasse was das
Ereignis oder die Schnittstelle, das Ereignis Registrieren, Neuer Modus Spielerereignisse
kopieren von, und das war's. Wir könnten das auch
alles in der Reihe machen. Ich empfehle einfach
, es so zu machen. Ich denke, das ist
ein bisschen sauberer. Es wird gut werden. Ich denke, dass es Ihnen völlig gut
gehen wird, aber das ist eigentlich
so ziemlich alles, was Sie tun müssen. Natürlich muss man das auch genau hier
nennen. Also registriere dich,
registriere jetzt Befehle, aber Registry Fence sie
vor nur genug, das ist eigentlich alles davon. Jetzt ist dies definitiv ein
engagierterer Prozess, insbesondere das zu schreiben, oder? Also das noch einmal, viel Java-Wissen, nur über diese Summe nachdenkst, okay, wo bekommst du
die Spielerposition? Wie kann man es
richtig speichern, in einem int-Array? Solche Sachen sind
definitiv komplizierter. Und wenn Sie
kompliziertere Ideen
für benutzerdefinierte Befehle haben , es
zwar nicht einfacher, aber es wird in Ordnung sein. Ich bin mir dessen sicher. Aber mal sehen wir
vorerst, ob es
funktioniert oder ob es in Minecraft
wieder aufprallt. Also lasst uns zuerst Slash
Home sehen und wir bekommen, dass es darauf hindeutet
, dass das wirklich gut ist. Rufen wir zuerst zurück. wurde keine Heimposition gesagt Das ist sehr gut,
dass wir
keine Fehler oder irgendetwas bekommen , das grundsätzlich kaputt geht. Und lasst es uns genau hier einstellen. Oppositionshaus bei dieser
Gelegenheit scheint in Ordnung zu sein. Lasst uns einfach von dort weggehen. Und sagen wir einfach nach Hause, zurück und wir sind zurückgekehrt,
das ist ziemlich gut. Lasst uns eigentlich
den Spieler hier haben. Lass uns einfach aufspielen und sie gehen. Das ist Antwort. Jetzt sind wir im Grunde weit
davon entfernt und dann können
wir Home Return sagen,
und es funktioniert immer noch. Und jetzt nicht zuletzt fliegen
wir einfach ein bisschen
den ganzen Ozean. Lasst uns schließen und das speichern. Lasst uns wieder in die Welt eintreten. Und mal sehen
, ob das auch mit
dem Slash Home Return nach Hause funktioniert, ist dem Slash Home Return nach Hause im Grunde
wieder auf der Welt zurück. Und das tut es, alles
funktioniert gut, oder? Aber das wird es schon
für diese Vorlesung genau hier sein. Ich hoffe, du hast das nützlich gefunden
und erfährt vom Neuen. Wenn Fragen
bestehen bleiben, können Sie natürlich gerne in den Fragen und Antworten stellen. Ich werde wahrscheinlich
nicht zu sehr detailliert helfen, wenn Sie einen
bestimmten Befehl haben , den
Sie implementieren möchten, Sie müssen einfach eine Menge Sachen
ausprobieren und hoffentlich können Sie
es verstehen,
richtig, aber das wäre es
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.
73. (Fortgeschrittene) Hinzufügen benutzerdefinierte Blumen: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir
Minecraft
eine benutzerdefinierte Blume hinzufügen , oder? Also navigieren wir
zu unserer Modell-OCS-Klasse. Und da drinnen werden
wir einfach
über die Rübenernte kopieren. Nun sehr wichtig,
da dies den Registerblock
ohne Blockelement
verwendet hat . Wir müssen das ändern. Das ist sehr wichtig. Sonst werden wir auf ein Problem
stoßen und
das wird hier
die rosa Rose
mit einem Namen sein . Denken Sie an Zeilen und unterstrichen Sie Zeilen. Und dann
müssen wir natürlich auch die Modusgruppe hinzufügen, mehr Artikelgruppe Startpferd, damit wir dies in
der richtigen Artikelgruppe haben. Dann ist dies
kein mütterlicher Block, sondern ein Blumenblock. Und der Blumenblock nimmt
drei verschiedene Parameter auf. Der erste ist
ein Statuseffekt. Wir werden also
sagen, dass dies Auswirkungen , die sagen wir glühend
und eine Defekt-Ration. Interessanterweise ist
dies in Sekunden. Wir müssen tatsächlich
etwas angeben, das nicht zu groß
ist, nichts wie 200 oder
ähnliches. Und dann
werden
wir die rosa Tulpe kopieren . Warum nicht? Richtig, und das ist
eigentlich der Block erledigt. Lasst uns nun
zu den JSON-Dateien übergehen. sind also interessant. Die eigentliche Blocksituation
ist damit nicht allzu verrückt. Kopieren Sie das übrigens auch irgendwie haha, lassen Sie uns dies auch
der initialisierten Methode hier
im MOOC-Kurs-Client hinzufügen . Dies wird die rosa Rose
sein, sehr wichtig, die wir auch dazu
hinzufügen. Man sieht, dass der Block
sagt, dass Jason nicht so verrückt ist. Und dann natürlich
wird die Übersetzung hier nur
rosa Unterstrich-Zeilen sein. Und dann hier rosa Rose
ohne Unterstrich, rosa Rose, los geht's. Aber das Blockmodell ist hier ein
bisschen anders. Das wird also
das Interessante
in diesem Tutorial sein ,
Sie können sehen, dass dies hier
das Elternkreuz hat, und dann sind die Texturen
auch kreuzt, und dann zeigt es auf die rosa Rose außergewöhnlicher Blockordner. Und das ist auch sehr
interessant, weil das Artikelmodell hier genau
die gleiche Textur erreicht. Anstatt ein
normales Elementmodell zu haben , das mit einem
Block verknüpft ist, in dem es kurz ist, zeigt den Block
irgendwie in 3D an. Dieses Mal nehmen wir eigentlich einfach die gleiche Textur an, verwenden
sie aber als Artikeltextur. Und dann werden wir das auch
kopieren, wird dem Ordner „
Block-Extras“ hinzugefügt. Und das ist so ziemlich alles
, was wir wirklich tun müssen. Also mal sehen, ob es funktioniert
oder ob es zurückspringt und Minecraft-Dichte
sehen kann, dass die rosa Rose dem
Spiel hinzugefügt
wurde, und ich denke nach unten. Und es sieht echt,
echt verdammt cool aus. Das ist also wirklich erstaunlich. Nun, aber das war es
schon für diesen sehr kurzen Vortrag hier. In der nächsten Vorlesung
werden
wir uns tatsächlich ansehen, wie Sie
die rosa Rose oder den Blumenblock auch
zu einem Topf hinzufügen können die rosa Rose oder . Und ich schätze, wir sehen uns in der
nächsten Vorlesung. Oh, ja.
74. (Fortgeschrittene) Blumen: Alles klar, willkommen zurück
beim Stoffpferd für 118. Und in dieser Vorlesung werden
wir uns ansehen, wie Sie Minecraft
eine
benutzerdefinierte Palette hinzufügen können . Das ist eigentlich sehr einfach und was wir
tun werden, ist, dass wir die ewige
Ernte hier tatsächlich kopieren werden, weil
wir den Block
ohne kaputten Gegenstand wieder verwenden müssen. Und das werden die rosa Unterstrich-Reihen der
Töpfer sein. Und dann der gleiche Name hier, getopfter Unterstrich,
pink, unterstrichen Zeilen. Und das
wird ein Blumentopfblock sein. Jetzt wird der erste Parameter hier tatsächlich mehr Blöcke sein , die das Ego wachsen und wachsen lassen. Und dann werden die Einstellungen von dem Teil
übernommen , dass Allium die Sets unser
Leben in diesem Fall ein wenig
einfacher machen werden . Was dann
im Kunden hier sehr wichtig ist, müssen
wir
diesen Render später auch für das
Produkt Pink Rose nennen . Und das ist so ziemlich
der gesamte Code, den wir brauchen. Jetzt müssen wir nur noch einen Block
hinzufügen, bleibt Jason zuerst,
um das zu kopieren. Eigentlich nicht zu verrückt. Dies deutet einfach
auf ein Blockmodell hin. Lassen Sie uns auch den Teil hinzufügen
, der grob ist. Jetzt sollte dieser
nur noch nötig sein. Die eigentliche Übersetzung hier, wenn Sie auch ein modernes
ins Stocken geraten haben
, prüft im Grunde genommen die Namen und zeigt
sie oben an. Das ist also nicht immer notwendig. Und dann ist das
Blockmodell eigentlich das wirklich Interessante
für den Audit-Landblock. Und das wird
das sein, denn zuerst ist
der Elternteil ein
Blumentopfkreuz. Und dann deutet es
auf eine Pflanzentextur hin. Und das deutet einfach auf die tatsächliche Textur
in Ihrem Block hin, die Ihre Pflanze oder Ihr Mehl in diesem Fall verwendet
, damit diese hier genau hier ist. Und das ist
natürlich sehr
interessant, weil wir es nicht tun, wir brauchen hier kein
Artikelmodell, weil ,
nun, damit
kein Gegenstand verbunden ist, damit
kein Gegenstand verbunden weil wir
es bekommen werden
diesen Block indem rechten Maustaste auf den Blumentopf
mit diesen bestimmten Reihen klicken. Und was auch
wichtig ist,
Werfen wir auch einen Blick auf den
Beutentisch. Also werde ich das über
alles kopieren , was
dir hier
natürlich im GitHub Repository
oder einer Einzelperson zur Verfügung steht dir hier
natürlich im GitHub Repository . Und Sie können sehen, dass
wir hier im Grunde nur eine rosa Rose
fallen lassen sowie den
Blumenblock, eine Blumenteile. Das ist also sehr wichtig. habe ich im Grunde gerade
über die Rennrodeltische hier gesammelt . Oder wir können einfach
hier reingehen und wir können
das IT-Zeug genau hier sehen . Und es ist im Grunde
genau das Gleiche. Also keine Sorge, es ist eigentlich
ziemlich einfach, oder? Und jetzt, um der Fertigstellung willen,
schauen wir mal, ob es in
Minecraft funktioniert
oder finanziert , und ich habe bereits ein paar Pots
aufgestellt
und mal sehen. Da gehst du. Ich kann die Reihen dort hineinlegen und es sieht
absolut atemberaubend aus. Und lass uns einfach sehen, ob ich wieder zu unserem Überleben
wechsle. Dass du beide Topfende
des eigentlichen Blumentropfens gehst. Das ist sehr, sehr nett. Rep, 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 allerdings in der
nächsten Vorlesung. Ja.
75. (Fortgeschrittene) Hinzufügen benutzerdefinierte Sounds: Alles klar, willkommen zurück
zum Stoffkurs für 118. In diesem Vortrag werden
wir Minecraft benutzerdefinierte Sounds
hinzufügen. Hinzufügen benutzerdefinierter
Sounds ist also
ein ziemlich einfacher
Prozess an und für sich. Dieses Geräusch zu verlegen
ist auch sehr einfach. Denken Sie jedoch, dass das
Schwierigste oder Herausforderndste das Erhalten
der richtigen Sounddateien sein
könnte. Zuallererst brauchen wir dafür ein
paar JSON-Dateien. Was wir
brauchen werden, ist eine JSON-Datei
im MC-Kurs. Älter genau hier. Klicken Sie also mit der rechten Maustaste auf eine neue Datei namens
Sounds dot-dot-dot Jason. Und dann erstellen
wir im selben Ordner einen neuen
Ordner namens Sounds. So sehr wichtig, dass beide Sounds und Sounds genannt werden. Das ist also sehr wichtig. Und ich werde tatsächlich schon einen dieser
Sounds kopieren . Dies wird die Sounddatei
sein. Wie Sie sehen können,
fand der Unterstrich der
Dowsing Rute einen Unterstrich oder das OGG. Es ist sehr wichtig ist, dass alle Ihre Sounddateien OGG
sein müssen und sicherstellen, dass
sie alle auf Mono eingestellt sind. Aber sie können nur
den Mono-Beispieltyp oder den
Modalkanal haben , sonst werden
sie Ihnen
Probleme damit nicht mögen, denken Sie daran. Und sie müssen OGG-Dateien sein und nicht nur
MP3-Dateien nehmen und umbenennen. Sie müssen einen Konverter besorgen
, um sie richtig zu konvertieren. Denken Sie also daran und in den Klängen Jason müssen
wir sie definieren. Lasst uns also einfach
geschweifte Klammern einsetzen und dann schreiben wir
im Grunde in den Namen. Das ist also eigentlich der Name. Wir werden dies unter dem Unterstrich der
Dowsing Rod
registrieren , Unterstrich
gefunden. Oder jetzt
nehme ich diesen Namen normalerweise gerne an und lasse ihn genauso wie die Datei
sein. Es macht es einfach viel einfacher. Dann
fügen wir hier einen Untertitel hinzu. Dies wird
der Untertitel Doppelpunkt und ein
MC-Kurs-Doppelpunkt oder Dowsing sein, wir
werden denselben Namen annehmen. So streng werden sie vermarkten, kopieren, C
steuern und dann V steuern und dann Komma. Dann
haben wir eine Liste von Sounds. Also das wird eine
Liste sein, also Klammern hier. Und dann werden
wir von hier drinnen den
MC Coors Colon
Dowsing Rod finden lassen . Und das muss
der Name dieser Datei sein. Dies ist natürlich
nur Ihre Modell-ID. Abhängig von Ihrer
Melodie ändert sich dies, dann ist der Untertitel
tatsächlich etwas , das Sie in
den Lang-Ordner legen können, wie jede JSON-Datei, die angezeigt wird, wenn Sie
Untertitel haben und
dieser Klangort ,
dann wird dieser angezeigt. Das ist also etwas
, das Sie
jetzt auch hinzufügen können , um die Sounds grundsätzlich
zu registrieren. Was brauchen wir? Nun, in unserem
MC-Kurspaket hier klicken Sie mit der rechten Maustaste auf ein neues
Paket namens sound. Und dann werden
wir drinnen
eine neue Java-Klasse
namens Modus Sounds erstellen . Und das wird eigentlich
ziemlich einfach sein. Wir benötigen nur ein
privates statisches Sound-Ereignis, altes Register-Sound-Ereignis mit einem
String-Parameter namens name. Und dann machen
wir einfach folgendes. Wir werden nur
eine Kennung, eine Board-ID, erstellen, die eine neue Kennung mit dem MOOC-Kursmod
meine ID und den Namen ist. Und dann geben wir
die Registrierung zurück,
die sich mit einem
Registry-Punkt-Sound-Ereignis die sich mit einem
Registry-Punkt-Sound-Ereignis mit der ID und dem
neuen Sound-Event registriert. Du tötest Ereignis und
gibst die ID ein. Auch hier
erstellen wir eine ID, weil wir sie zweimal weitergeben
müssen, einmal zur Registrierung und einmal
für das eigentliche Sound-Event. Und wie sieht das aus? Nun, öffentliches statisches
Sound-Ereignis namens Dowsing, Rod-Unterstrich, gefundener Unterstrich oder gleich einem Registerlösungsmittel. Jetzt unter Unterstrich, fand der Stab
Unterstrich einen Unterstrich. Und dann stellt sicher
, dass dies genau hier, was hier drin geschrieben ist,
genau das Gleiche ist wie dieses. Und das ist es. Und dann sollte
es in Ordnung sein. Und das ist so ziemlich
alles, was wir
tun müssen, um den Sound zu registrieren. Jetzt müssen
wir es natürlich irgendwie spielen. Und was wir tun
werden, ist, wenn wir eine oder in der Dowsing Rute
finden, dann werden
wir diesen Sound spielen. Oh, lass uns einfach hier reingehen. Wir wissen also, dass dies gefunden
wird, Block wahr. Wir wissen also, dass dies der
Moment ist, in dem dies passiert. Und was wir brauchen, ist die Welt, wie die Welt hier. Und wir können einfach sagen,
Ton abspielen und es dem Spieler übergeben, eine geklickte Position,
in der wir uns befinden. Das Geräusch von ihm klingt
etwas, Dowsing Rod gefunden hat oder
die Sound-Kategorie, wir werden einfach
Blöcke nehmen Das ist in Ordnung. Volume 1 und Pitch eins auch. Es gibt auch eine andere Möglichkeit
, wie das zu platzieren, das ist über den Spieler. Das sollte also auch funktionieren, damit Sie den Spieler sehen können,
um Sounds abzuspielen. Es gibt verschiedene Möglichkeiten,
aber das ist auch in Ordnung. Das sollte hier in diesem Fall völlig in
Ordnung sein. Und das sollte dann im Grunde diesen Sound hier
spielen. Also schätze ich, um der Vollendung
willen, mal sehen, ob es funktioniert. Alles klar, Francis
zurück in Minecraft, lass uns einfach sehen und versuchen,
ob wir ein ODER finden können. Und sie
ließen mich einfach schnell das Geräusch ein wenig
mehr aufheben. Da ist es. Und ich kann es natürlich spammen. Ich kann es einfach gedrückt halten. Und irgendwann wird
es nervig. Und das wirklich
Coole ist das, weil wir es unter
die Kategorie „Blöcke“ stellen. Jetzt spielt es nicht
mehr, weil wir
die Blocksounds ausgeschaltet haben, also ist das wirklich cool. Das ist etwas, worüber man
grundsätzlich nachdenken sollte. Und
so einfach ist es eigentlich,
Minecraft
einen benutzerdefinierten Sound hinzuzufügen , oder? Und ich höre
dich schon schreien, nun, was ist mit dem Hinzufügen
zu einem Block, oder? Was kann ich
das brechende Geräusch eines
Blocks und ähnliches nicht ändern ? Natürlich. Und
genau das werden wir in der nächsten Vorlesung
sehen,
in der wir im Grunde genommen das Brechen, Platzieren
und Steppen hinzufügen werden. Es gibt noch ein paar mehr, aber das wird
im Grunde in der nächsten Vorlesung
geschehen. Das wäre also für
diesen 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.
76. (Fortgeschrittene) Benutzerdefinierte Block: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir dem Spiel eine
Bullock-Soundgruppe des
Kunden hinzufügen . Und was ist eine Block-Sound-Gruppe? Nun, eine
Block-Song-Gruppe
besteht aus fünf verschiedenen Städten, und das sind die Pause, der Schritt, der Ort des
Hits und der volle Klang. Und das werden wir
im Grunde hinzufügen, um einen benutzerdefinierten Sound oder unsere
Neuberechnungslampe zu erzeugen. Aber das ist die allgemeine Idee. Zuallererst kopiere
ich
die fünf verschiedenen OGG-Dateien. Also die Geräusche genau hier, und wir werden
diese einfach kopieren. Diese stehen
Ihnen natürlich
auch zum Download zur Verfügung . Und dann
gehen wir auf unsere Sounds ein, Jason und ich werden auch die Inhalte kopieren , die
wir brauchen werden. Das ist so ziemlich
genau das Gleiche wie das, nur mit anderen Werten hier. Wir haben gerade die
Telekommunikationslampe kaputt. Dann für die Untertitel so
ziemlich die gleiche
Rate oder MOD-ID und
punkten Sie dann , wie immer der Name hier ist, wenn der Sound
genau wie der
Sound genau hier benannt wird . Das ist so ziemlich
alles, was es dazu gibt. Das sollte also insgesamt nicht
zu verrückt sein. Und was wir dann in
unserem Modus tun müssen ,
klingt genau hier. Wir werden das nur duplizieren und wir
werden dies
die Nachzählung kommen
Unterstrichenlampe nennen , Unterstrich Pause. Das ist also die
erste, Ergebnis, Unterstrichenlampe,
Unterstrich Pause. Und dann können wir
das fünfmal duplizieren. Der zweite
wird dann das Schrittgeräusch sein. Extra, ändere den Namen
auch hier und vergewissere dich, dass er richtig
geschrieben ist. Das ist auch sehr wichtig. Und das wird der
Ort sein, an dem hier klingt, an diesem Ort, dieser Serie klingt und auch dort getroffen wird. Letzt haben
wir dann den vollen Sound. Und dann hier, ALLES auch. Richtig, das sind also die fünf Sound-Events, die
wir brauchen werden. Sie könnten auch darüber nachdenken, sie auf andere Weise zu
retten, besonders wenn Sie
viele verschiedene haben, aber das wird in Ordnung sein. Das ist eigentlich in Ordnung. Und jetzt brauchen wir natürlich auch eine Block-Sound-Gruppe. Nun, weißt du, wir könnten das
entweder in
einer separaten Klasse machen oder wir können es
einfach in diese Klasse schreiben. Das wird
auch klappen. Es wird also eine öffentliche statische,
letzte Block-Soundgruppe
oder ein Cout
Come-Unterstrichen-Sounds sein letzte Block-Soundgruppe . Und das ist gleich einer neuen
Sound-Gruppe mit einem F1,
F. Das ist also nur die
Tonhöhe und die Lautstärke. Und dann haben
wir im Grunde alle
fünf dieser
Sounds Modus-Sounds, DOT, Bremse. Modus-Sounds, Punkt, Schritt, Modus-Sounds, Punkt, Lays. Der Modus klingt Holländisch. Alles. Eigentlich
glaube ich, dass es zuerst getroffen wird und dann klingt sein
Modus dot o, ja, in dieser Reihenfolge. Aber lasst uns einfach mal nachsehen. also mit der mittleren Maustaste
auf die S-Block-Soundgruppe. Und doch
ist ein voller Sound der letzte. Das sollte hier stimmen. Und dann wird diese
Soundblock-Gruppe, wie werden wir sie benutzen? Wir gehen einfach in die
Schlammblock-Klasse. Und dann können
wir für unsere
Telekommunikationslampe genau hier einfach
einen weiteren Parameter zu
den Blockeinstellungen hinzufügen einen weiteren Parameter zu , und das
werden diese Geräusche sein. Und dann sagen wir hier einfach, Modus klingt das oder ein Kalzium klingt. Formatieren wir das einfach ein bisschen
anders,
das Ego, und das wäre es. Das ist so ziemlich alles
, was wir tun müssen. Natürlich brauchen wir
die Geräusche, Jason. Definiere alles hier drin, mache die Sounds genau hier, die Dateien in unserem Sounds
Ordner nochmal bewerten, korrekte OGG ist korrekt
formatiert oder konvertiert. Und auch in Mono,
sehr wichtig. Und dann füge einfach die
weiteren Sounds hinzu. vorerst sehen, ob es funktioniert, um der Fertigstellung willen Lassen Sie uns vorerst sehen, ob es funktioniert, um der Fertigstellung willen. Ich habe bereits Verdächtige
in Minecraft gefunden. Und lasst uns zuerst die Lautstärke nur ein bisschen nach
oben verschieben , damit wir das tatsächlich haben. Mal sehen wir das Set, den
eigentlichen Platzierungston. Das stimmt genau. Das ist vollkommen Brauch. Lass uns das brechende Geräusch sehen. Das ist erstaunlich. Das funktioniert also auch. Das setzt sich aus, setze ein paar
hier unten und lasst uns darauf gehen. Sie gehen. Und das sollte auch funktionieren, wenn ich der folgenden Folie
gefolgt bin, ich bin mir eigentlich nicht hundertprozentig sicher, warum das nicht funktioniert. Das ist sehr wütend. Ich glaube, dass es so funktionieren
sollte. Und dann
wäre der Hit-Sound das. Ich glaube. Abgesehen von dem Hit
im vollen Sound scheint hier
alles völlig gut zu
funktionieren. Also bin ich mir auch nicht hundertprozentig sicher, wo diese genannt werden, um ehrlich zu sein, denn normalerweise sollte
es die Kraft dafür sein. Stimmt das? Also wenn du drauf fällst, aber es
ist definitiv nichts da. Und dann scheint es auch
nicht ganz zu funktionieren. Also lasst uns einfach herausnehmen
wie ein Pick x, y. Also mal sehen, was das, okay, das Breaking definitiv funktioniert. Aber es scheint nur das
Herbstgeräusch zu sein , das nicht funktioniert. Aber manchmal passieren diese
Dinge. Also los gehst du. Alles klar. Nachdem ich es mir noch einmal angesehen
habe, bin ich mir immer noch nicht
hundertprozentig sicher, warum sie hier
fallen, aus irgendeinem Grund nicht funktioniert
, das heißt einfach nie. Aber was auch immer der Fall sein mag, der volle Klang ist
wirklich nicht etwas , das zu verrückt
oder zu wichtig ist. Ich würde sagen, Oh, das wird wahrscheinlich völlig
in Ordnung sein. Wie auch immer der Fall sein mag. Die anderen
arbeiten natürlich, die in diesem
Fall viel wichtiger sind . Also sollte alles in Ordnung sein und das wäre es schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und er hat etwas Neues gelernt. Wir sehen uns aber in der
nächsten Vorlesung. Ja.
77. (Fortgeschrittene) Hinzufügen von benutzerdefinierten Music: Alles klar, willkommen zurück
zum Stoffkurs für 118. In dieser Vorlesung
werden wir Minecraft
eine benutzerdefinierte
Musikdiskette hinzufügen . Eine benutzerdefinierte Musikdiskette,
schlimmer noch, erfordert auch ein benutzerdefiniertes
Sound-Event. Was wir tun werden,
ist, dass wir
das noch einmal kopieren werden . Es wird tatsächlich
sehr einfach zu verstehen sein. Du siehst, dass wir hier einfach den Namen
haben. Dies ist wieder der Name
, den wir in nur einem Moment in der
Modell-Sound-Klasse geben werden. Und dann bezieht sich der Name hier
natürlich auf eine Sounddatei, wieder auf eine OGG-Datei. Und in diesem Fall ist
es umso
wichtiger, dass dies in Mono ist, denn wenn es in Stereo ist, dann werden Sie dies
im Grunde auf der ganzen Welt hören , dem gesamten Server. Ansonsten
muss es Mono sein, sehr wichtig, in diesem Fall sehr, sehr
wichtig. Und lass uns gleich hier zum
Modell Sounds gehen. Und lassen Sie uns das einfach
kopieren und diese D-Leisten-Unterstrich-Schlägerei
nennen. Und natürlich auch hier, Bar Brawl, um sicherzustellen, dass
alles richtig geschrieben ist. Sehr wichtig. Und dann werden
wir in der Klasse „Mehr Items “ einen neuen Gegenstand erstellen. Was wir jedoch brauchen, ist vor allem ein
MOD-Musik-Disk-Element
, denn
der Konstruktor hier ist für uns wieder einmal nicht zugänglich. Also bewegen Sie den Mauszeiger über, erstellen Sie den Konstruktor, der super
passt. Und dann werden wir einfach die Öffentlichkeit
kopieren, die sie sind. Und dann
müssen wir uns
das nie wieder ansehen, im Grunde genommen. Und dann werden wir einfach die Rübensamen hier
kopieren. Und wir werden
das nur zum Barunterstrich machen Berle, unterstreichen Musik,
Unterstrich Disk. Dann auch im selben Jahr unterstrichen
Taktunterstrich Rollmusik
Disk. Und das ist natürlich
ein MOD-Musik-Disk-Element. Der erste Parameter ist die
Komparatorausgabe. Was wird ausgegeben, wenn Sie einen Komparator daneben
stellen? Und dann werden wir
sagen, klingt nicht Barbara. Jetzt ist eine weitere sehr
wichtige Sache hier, da Sie sehen können, dass
dies Stream wahr ist. Das muss also stimmen, denn die Rolle des Widerhakens ist
natürlich ein Strom. Deshalb liebst du, dass die
Musikdiskette ein Stream ist, also ist das sehr wichtig. Und dann werden wir auch
die maximale Anzahl von eins angeben, damit wir nur eine davon
stapeln können. Und was dann auch
sehr wichtig ist, ist die Übersetzung der E und
unterstreichen uns JSON-Datei. Ich werde
beide tatsächlich kopieren, weil es
tatsächlich zwei gibt. Es gibt die Barb
Roll Musikdiskette, die nur der
Name der Diskette ist. Und dann
ist die Beschreibung im Grunde das, was passiert. Weißt du, wenn du den Mauszeiger darüber fährst. Und das sagt normalerweise nur
von wem Das Lied stammt und dann der Name des Liedes. Und ich habe
die Lizenz auch hier hinzugefügt. Dies ist also knapp unter CC
0 oder gemeinfrei. Theoretisch könntest du
diese Widerhakenrolle auch
in deinem alten Modell benutzen , könnte damit im Grunde
alles machen, was du willst. Aber deswegen habe ich
das auch hinzugefügt. Stimmt's? Das ist so ziemlich alles, was
wir brauchen, außer natürlich für ein Artikelmodell und
eine Textur dafür. Aber das ist etwas, das wir jetzt so oft
gesehen haben , dass es diesem Zeitpunkt
eigentlich nicht zu
verrückt wäre. Dies deutet auf die Textur des Friseurs oder der
Musikdiskette
im Item-Ordner hin, oder natürlich auch auf das
Kopieren, das übergegangen ist. Also Barbaro Musikdiskette. Da gehst du. Und damit sind wir
ziemlich bereit zu gehen. Und lass uns einfach hören, ob es funktioniert. Oder ich zum Beispiel zurück in
Minecraft und sie können sehen die Musik dort
erfolgreich hinzugefügt wurde. Und lass es uns einfach reinziehen. Und da ist es. Es ist ziemlich laut, aber es liegt
auch daran, dass ich meine Musik habe. Das ist also in Ordnung. Und dieser Ort fliegt normalerweise
nur ein FI davon. Man kann hören, dass es immer weniger
wird . Und dann ist
es komplett verschwunden. Und wenn wir zurück sind, gehen wir los, es geht weiter. Also absolut großartig. Und wir werden aminieren, es
funktioniert alles völlig gut,
genau wie wir es erwartet hatten. Gummi 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.
78. (Fortgeschrittene) Hinzufügen von benutzerdefinierten Blockmodellen in Minecraft mit Blockbench: Alles klar, willkommen zurück
zum Stoffkurs für 118. In diesem Vortrag werfen
wir einen
Blick auf benutzerdefinierte
3D-Blockmodelle. Und wie werden Sie diese Blockmodelle
herstellen? Nun, wir werden
sie mit Blockbank machen. Dies ist ein Programm
, das verfügbar ist. Ich verbinde es irgendwo in den
Ressourcen. Und das
ermöglicht es Ihnen im Grunde,
sehr cool aussehende 3D-Modelle
für Ihre Blöcke zu erstellen , da es eigentlich nicht so
schwer ist, hier bereits
ein vorbereitetes Blockmodell für
mich zu haben hier bereits
ein vorbereitetes Blockmodell für , da das Oracle blaster kann. Es wird also im Grunde wie ein Hochofen
sein, der
speziell aus oder
einem Kattun hergestellt wird, in diesem Fall n. Für dieses
spezielle Beispiel
gibt es
zwei Dinge, die wir beachten
müssen. Das erste ist also
, dass Sie natürlich auch Zugriff auf
diese Block Bench-Datei haben werden. Und was Sie
dann tun werden, ist, dass Sie zu
Dateiexport wechseln und dann
Block-Schrägstrich-Elementmodell exportieren. Dies wird eine
JSON-Datei exportieren, wie Sie sehen können. Und du kannst das einfach machen. Das kann ich außer Kraft setzen. Und dann
wird die JSON-Datei so aussehen. Also öffne es einfach
hier und du kannst sehen,
wie es aussieht. Du hast die Textur hier und dann eine ganze Reihe von Elementen. sind also im Grunde
die 3D-Elemente. Und dann gibt es auch Dinge , die hier im Display sind. Wir können uns auch das Display
ansehen, wenn Sie hier
in die obere rechte
Ecke gehen , anzeigen. Und im Grunde
hat sich geändert, wie es aussieht,
vielleicht bist du so, Oh, das ist vielleicht ein
bisschen zu groß. Du kannst so sein, Yeah,
lass uns das einfach verkleinern, bis Mai 2.5 wie 0.25.25.25 oder
so ähnlich ist. Vielleicht ist das die
Größe, die besser ist. Und dann kannst du es
auch auf
der anderen Seite ändern .
So etwas. Und in der ersten Person wird
das vielleicht bei mir in Ordnung
sein. Das wird auch gut werden. Wenn du es auf dem Kopf trägst. Es sieht sehr seltsam aus,
aber sicher genug. Aber wenn es vor Ort ist, ist das
vielleicht
auch etwas zu groß. Vielleicht möchten Sie
diesen Pilotpunkt für wann,
für und wann ändern , damit Sie ihn
so im Artikelrahmen haben. Vielleicht willst du
das umdrehen, oder? Vielleicht sollte die Rotation
so
etwas sein und so
etwas. Vielleicht ist das ein
besserer Weg, dies zu tun. Und dann denke in der
GUI tatsächlich, dass die GUI perfekt aussieht. Und hier kann man grundsätzlich eine Menge Sachen
in der Blockbank
ändern. Dies wird kein rein
Block-Bank-Space-Tutorial sein , sondern vielmehr, wie man hier grundsätzlich Sachen aus der
Blockbank
holen kann . Wenn ich das auch als Modell speichere
, ist
das Glossar bitte. Und dann wurde es bereits als JSON-Dateien
gespeichert. Wir sollten diesen
Nachladen haben. Da gehst du. Und dann ändert es sich
auch hier drin , damit alles in Ordnung ist. Und das ist
im Grunde alles, was Sie brauchen. Also brauchen wir im Grunde
diese JSON-Datei. Ich kopiere das
als Blockmodell, oder? Also werden wir das
als Blockmodell kopieren, in dem
das 3D-Zeug schon drin ist. Was wir jetzt brauchen, ist, dass wir
natürlich auch die Textur brauchen . Also lege ich das hier
in die Brock-Texturen ein. Was ich jedoch
tun werde, ist, dass ich auch
einen neuen Ordner im
Texturen-Ordner namens machines erstellen werde, und das werden wir dort
hineinlegen. Dies ist natürlich nicht unbedingt
notwendig, denn diese Textur
wäre auch eine Blocktextur, aber ich finde es nur
ein bisschen schöner. Und was wir dann tun müssen,
ist, dass wir natürlich hier MC-Kerne
angeben müssen und dann Maschinen den Namen schneiden. Das ist sehr wichtig
, dass wir
unsere Modell-ID und
dann den Namen
der älteren Wörter im
Grunde hier hinzufügen unsere Modell-ID und
dann den Namen
der , und dann ist der Rest
hier völlig in Ordnung. Natürlich
brauchen wir immer noch ein Artikelmodell dafür. Das werden wir auch machen. Lasst uns die einfachen Dinge in
erster Linie hier ausschalten , oder? Das Orakel kann also
blaster, das ist in Ordnung. Das bezieht sich nur auf
das Blockmodell genau hier. Und dann
sagt der Block Jason,
nun , vorerst werden
wir einfach einen normalen
machen. Die Explosionstür. Und das
bezieht sich nur auf die letzte Zeichenfolge. Das wird gut werden. Und für den Block werden
wir hier einfach einen
ganz normalen Block machen. Wir werden einfach überschreiben, sagen
wir die rosa
Rose, denn das ist ein Registerblock und das ist der Orakel Malcolm
Unterstrich Blaster. Dann das Gleiche hier oder es kann nicht
kommen Unterstrich Blaster. Und im Moment wird
es ein normaler Block sein. Aber wir werden uns das
in einem Augenblick ansehen. Lassen Sie das wir hier tatsächlich ein
paar Dinge ändern
müssen. Wir materiellen Metall in
der Mod-Item-Gruppe, Pferd, das wird völlig
in Ordnung sein. Vollendung willen, fügen
wir auch die Übersetzung hier hinzu oder einen
Count come unterstrichen Blaster. Natürlich unterstreicht das Ergebnis keine
Explosion oder sie vor. Und jetzt, genau wie ein normaler
Block, haben wir ihn hinzugefügt. Jetzt fügen wir hier auch das
tatsächliche nicht undurchsichtige hinzu. Das ist sehr wichtig. Und dann fügen wir
es auch zum Ausschneiden hinzu. Dies sind also alle Schritte , die Sie ausführen
müssen ,
damit diese ebenfalls richtig
angezeigt werden können. Und dann werden wir im Grunde zwei Einschränkungen bei
der verdienten Art und Weise
sehen , wie dies
eingerichtet wird , und dann werden wir auch
sehen, wie wir diese beheben können. Gehen wir also in
Minecraft und sehen wir uns das benutzerdefinierte 3D-Modell
zum ersten Mal an. Oder wenn ich sagt, dass eine
Mikrofinanzierung
die Neukalk sehen kann ,
wurde eine Blastula zum Spiel hinzugefügt. Und wenn ich es aufstelle, sieht
man, dass es zwei
Dinge gibt , die
sehr interessant sind. Zunächst einmal, nun, es geht nicht wirklich in die richtige
Richtung, oder? Wie Sie sehen können, ist es immer in die gleiche Richtung
gerichtet, die tatsächlich nach Norden
sein wird, wie Sie sehen können. Aber das ist sehr interessant. Und wir haben
auch, im Grunde genommen eine sehr seltsame
Begrenzungsbox, die definitiv nicht
ganz das ist, was Sie wollen. Das ist also, das ist eine
andere, die gut ist, irgendwie repariert werden
muss. Aber das sind die beiden
Einschränkungen vorerst. Aber diese können beide
ziemlich einfach behoben werden , oder? Um beide zu reparieren, benötigen
wir dafür tatsächlich eine benutzerdefinierte
Blockklasse. also in Ihrem benutzerdefinierten Paket rechten Maustaste auf die neue Java-Klasse, die als Recalc
bezeichnet wird, nicht unterstrichen, tatsächlich
Blasts oder Blockieren, sie gehen. Und dies wird den
horizontalen Verblendblock verlängern. Sehr wichtig, dass
wir uns für diesen entscheiden. Und wir werden einen
Konstruktor erstellen, der super passt. Und der Grund, warum wir uns
dafür entscheiden, ist, dass wenn ich nach dem Klicken auf Control H
drücke, sehen
Sie, dass es
einige andere Blöcke gibt , die dies
auch von hier aus übernehmen. Zum Beispiel, einige davon wie
der Bettblock, wo es ein
starkes Tor ist. Das ist sehr interessant. Und normalerweise habe ich tatsächlich erwartet der abstrakte Ernest-Block
auch davon erstrecken würde. Nein, eigentlich okay. Das ist
mit Entitätsblöcken. Fair genug. Aber es hat auch die gegenüberliegende Immobilie genau hier. Das ist die allgemeine Idee , denn wenn Sie den Ofen
abstellen, schaut er immer
in Ihre Richtung. Was wir also tun werden, ist, dass
ich die
Richtung hier
schnell kopieren werde . Das ist also nichts zu verrücktes, nur eine große Immobilie, die dem Eigentum
entspricht, beginnt zu sehen. Und ich werde noch ein
paar Dinge kopieren, die
Ihnen
natürlich auch im Repository,
GitHub Repository oder
Einzelpersonen zur Verfügung stehen . Wir benötigen die Methode „Append
Properties“. Wir haben das bereits gesehen
und wir werden den Spiegel und
die Rotate-Methode
verwenden. Sie haben
diese Drehung im Grunde richtig und dann
erhalten sie
die Platzierungszustands-Methode im Grunde so
, dass die Verkleidung immer in eine Weise
verwandelt wird , wie
der Block Ihnen zugewandt wird. Jetzt, wenn wir
die gegenüberliegenden Blöcke eine Immobilie haben, müssen
wir natürlich auch den Block States JSON
ändern. Es gibt auch etwas, das
ich kopieren werde, aber das ist eigentlich
ziemlich einfach. Sie können sehen, dass es nach
Norden ausgerichtet ist, ist nur das
normale Blockmodell. Und ansonsten haben wir uns
einfach um 90, 180 und 270 Grad gedreht. Und Sie können immer auch
die externen Bibliotheken
unten
rechts im Assets-Ordner überprüfen die externen Bibliotheken
unten , so
Minecraft-Blöcke. Und dann schauen Sie sich zum Beispiel den Hochofen
an , es ist sicher. Und das wird
ziemlich genau das Gleiche sein. Das einzige, was ist, dass dies
auch eine Deckeleigenschaft hat, aber das wird völlig in Ordnung
sein. Dies ist also etwas, bei dem
man sich das im Grunde noch einmal ansehen kann und
wie man es drehen muss. Und da habe ich
diese Zahlen im Grunde genommen bekommen. Nun, wir werden nicht
sofort wieder
in Minecraft springen , denn
wie wäre es jetzt mit der Begrenzungsbox? Wird der Begrenzungsrahmen
eine sogenannte Voxelform sein? Und das ist die eine
Sache, die in der Blockbank wirklich
nur nervig ist , besonders bei diesem Modell. Es ist einfach sehr nervig, denn normalerweise würden
Sie
wollen, den Pivot zentrieren wollen, oder? Zuerst
werden Sie sehen, dass wenn ich den Pivot richtig zentriere, es
sehr seltsame Werte hat. zu empfehlen, entweder ein bisschen oben,
rechts oder ein bisschen unten zu
gehen rechts oder ein bisschen unten im Grunde auf oder ab zu runden. Sonst wirst du
eine schlechte Zeit mit dem
Drehen haben . Denn was wir tun
müssen, ist, dass wir dies tatsächlich
dreimal drehen
müssen dies tatsächlich
dreimal drehen
müssen , damit wir in jede Richtung eine neue Voxel-Form erhalten. So wird es einfach sein und es ist sehr nervig. Aber das ist der
beste Weg, wie ich es bisher
gefunden habe zu arbeiten. Wenn es andere
Möglichkeiten gibt, wenden Sie sich natürlich immer an das Q und a und
erzählen Sie mir davon. also keine Sorgen. Was wir tun werden, ist,
dass wir zuerst zu File
und dann zu Plugins gehen und das
Mod-Utils-Plug-In genau hier
holen. Dies ist von JDK zwei zu zwei. Und ob das, das
sehr wichtig ist , es ist
nur, weißt du, du kannst einfach zur verfügbaren
Suche nach Mod-Utils gehen, oder? Ich
habe es bereits installiert. Deshalb
kommt es nicht hier hoch. Klicken Sie auf die
Schaltfläche Installieren und installieren Sie diese auf Ihrer Blockbank. Und was Sie dann haben werden, ist dass
Sie alle Würfel und all
die Dinge, die Sie
haben, nehmen und sie unter
eine Gruppe stellen müssen Würfel und all
die Dinge, die Sie , Gruppen- oder Voxel-Formen, genau wie geschrieben das. Keine Leerzeichen, nichts genau so
geschrieben. Und wenn Sie das haben,
können Sie alle auswählen, zu Datei, Export
gehen und dann Voxel-Shape exportieren. Jetzt sind wir natürlich in
Garn, wir verwenden Rubrik, also wollten wir
die Garnzuordnungen exportieren. Wir werden bestätigen sagen, und wir werden
dies als Voxel-Form N speichern. Wie Sie sehen können, habe ich das
bereits gespeichert und wir können uns das auch
ansehen. Also werde ich dieses
Inhärent einfach verschieben , damit wir uns das ansehen können
. Aber so sieht es aus. Manchmal bekommst du
diese verrückten Zahlen, was du tun musst,
ist, dass du
sie auf die nächste ganze Zahl runden musst. Das wird also nur ein manueller Prozess sein. Also ist diese zum Beispiel eigentlich
nur eine 0, oder? Weil es drei negativ
auf die Macht von negativen 15 ist, also sind es 15 Nullen. Und dann ist ein Negativ, wie
ein 0,3, es ist wie das 0. Also müssen wir das manuell machen. Manchmal ist es einfach die Art und Weise, wie Block Bench manchmal exportiert wird. Es ist sehr seltsam. Das wird also einfach sein, und das ist nur
die Voxel-Form. Wenn dies so ist, wie
nach Norden zu schauen, müssen wir jetzt tun
, wenn Sie dies um 90 Grad
drehen müssen . Und das erste
, was Sie in
diesem Beispiel bemerken werden , ist , dass es ein wenig versetzt ist. So können Sie sehen, dass die
Genauigkeit aus irgendwelchen Gründen auch immer versetzt wird, wir müssen sie tatsächlich wieder in die Mitte
verschieben. Und dann wird das
Norden, Ost, Süden, Westen sein. Das ist jetzt nach Westen ausgerichtet. Jetzt müssen wir wieder exportieren. Das ist
wieder nach Westen ausgerichtet, oder? Also wenn ich das W ersetze und dann können wir uns das hier
ansehen. Das wird auch sehr
interessant sein weil wir das noch einmal
machen müssen, also 0. Und dann wird das eine
14 sein und das wird 13 sein. Und was Sie sehen werden,
ist, dass sich die Zahlen nur ein wenig verschieben. Und wenn Sie
genug Zeit und
genug Gehirnleistung haben , können
Sie wahrscheinlich selbst herausfinden, wie Sie diese
Zahlen ändern können. Aber das ist natürlich
Wahnsinn, denn wir haben so viele Dinge hier drin. Und je komplizierter
der Block wird, desto komplizierter wird
das auch sein. Wir drehen es
einfach noch einmal
und
setzen es dann natürlich noch einmal zurück, damit es gut funktioniert. Also das ist es, worüber Sie
wirklich vorsichtig sein müssen ,
ist nicht die Nummer hier geändert, aber Sie müssen
es wie mit den Pfeilen ändern, wenn Sie die Nummer ändern als jeder dieser
Würfel funktioniert einfach. Einfach, einfach reinzuziehen und von sich selbst ist ein sehr
seltsamer Block, was ein sehr seltsames Programm ist. Aber es ist derzeit zumindest meines Wissens
das Beste, was wir haben. Leider wird dies natürlich
nach Süden ausgerichtet sein. Und dann lassen Sie uns einfach sofort nach
Osten
drehen, was dies einfach tun kann
und das dann tun. Und da gehst du. Jetzt sollten wir alles hier drin
haben. Wir sagen also
Exportbox oder -form oder auch den Osten. Das ist großartig. Und was wir jetzt
tun werden, ist, dass wir
den Norden und den Westen nehmen und ihn
sofort benutzen. Also werden wir
dieses Steuerelement C übernehmen, um es zu kopieren. Und was wir dann wollen, ist, dass wir eine private statische endgültige Voxel
Form oder Shape-Unterstrich n. Dies ist
also nach Norden geformt. Und dann importieren wir
nur die Stream-Klasse, die Voxel Shapes-Klasse und die Boolean nach
Funktionsklasse. Und was ich dann
mache, ist, dass ich das nur vier Mal kopieren werde . Darüber haben wir Nord-, Ost-, Süd- und Westjahr. Stellen Sie sicher, dass Sie hier
die richtigen Namen kopieren . Das ist sehr, sehr wichtig. Es gab
Leute, die, weißt du, einen von
ihnen mit dem anderen
verwechselt haben. Das ist also sehr wichtig. Und hier müssen wir das noch einmal
aufräumen ,
das ist völlig in Ordnung. Das sind einige Erdungspfeile, Fließkomma-Rundungsfehler. Manchmal kann es passieren. Es ist einfach das, was es ist. Aber das ist nicht zu verrückt. Es wird den
Süden geben. Da gehst du. Dann wird das Osten sein. Und dann haben wir alle vier
Voxel-Formen hier drin. Wie ich schon sagte, dies ist ein
sehr mühsamer Prozess, aber Sie müssen ihn nur einmal
einrichten und dann wird
es funktionieren. Wenn Sie das Modell natürlich
geändert haben, müssen Sie auch
die Voxel-Shapes ändern. Ja, das ist also, es ist
einfach das, was es ist. Wir können damit wirklich
nichts anderes machen. Dann wollen wir die
gute Gliederungsform überschreiben, diese genau hier. Und ich
kopiere auch den Inhalt. Wie ich schon sagte, alles
steht dir zur Verfügung, aber das sollte
ziemlich selbsterklärend sein. Wir haben nur eine
Switch-Aussage, dass es sich um
das zugewandte Grundstück schaut und
es wird nur sagen, hey, wenn die Ausrichtung nach Norden ist, dann werden wir die Form nach Norden
zurückgeben. Wenn es nach Süden ausgerichtet ist, kehren
wir nach Süden zurück
und so weiter und so weiter. Das ist also wirklich alles
,
was diese Methode wirklich kompliziert ist, da die Voxel Formen sind. Und wie gesagt, es gibt
leider keine andere
Möglichkeit, dies richtig
oder einfacher zu tun,
diese stehen Ihnen natürlich
alle zur Verfügung. Gleiche natürlich mit
dem Modell hier. Drehen wir es einfach zurück
und dann wirst du sehen, dass es aus
welchem Grund auch immer
rot ist und da es Mac ist. Das ist also total in Ordnung. Das ist wie gesagt,
auch für Sie verfügbar, die JSON-Datei, all
das Sie herunterladen können. Und dann müssen wir nur tun
, anstatt einen Block zu machen, wollen
wir diesen einen oder
E Calciumblaster Block machen. Und dann, oh,
natürlich müssen wir das auch öffentlich
machen und dann funktioniert
alles, oder? Das sollte also eigentlich
alles sein, was wir brauchen. Wie ich schon sagte, es
ist ziemlich mühsam, aber ich bin mir sicher, dass
wir es schaffen werden. Oder hängt natürlich auch davon ab wie viele Blöcke mit verschiedenen verrückten Formen
du hinzufügen möchtest. Das ist also auch der Fall. Aber vorerst, schauen
wir uns For works an oder warum wir uns als Minecraft
befinden. Also lasst uns das niederlegen. Das letzte Kalzium
kann sehen, wie du gehst. Die Umrisse stimmen perfekt und wenn ich sie in
eine andere Richtung setze, steht
es mir immer gegenüber. Da gehst du. So funktioniert
alles und die
Begrenzungsboxen völlig in Ordnung. Was ich jetzt sagen muss,
ist, dass wenn Sie wirklich,
wirklich komplexe Bounding
Bounding Bounds wie diese haben , natürlich alles noch blockig
ist, nicht
hat, es hat
keine diagonalen Sachen
und Dinge wie das. Wenn Sie wie
diagonale Dinge haben, empfehle
ich dringend,
Ihr Modell in R2
etwas einfacher
zu machen ,
kompliziert, da sich verrückte,
komplizierte Voxel-Formen tatsächlich
verlangsamen das Spiel ist ziemlich deutlich
ausgefallen. Aber das ist nur etwas
, das man beachten sollte. Aber
so einfach ist es die benutzerdefinierten
Blockmodelle zu Minecraft
hinzuzufügen. Für vollständige
Transparenz
wurde
das Oracle letzte Zeile jedoch von Platin G 17 ausgeführt. Durch das einfache Optimieren der
Textur ist es ein bisschen, aber ansonsten steht sie im Grunde unter der
Creative Commons-Lizenz. Wenn Sie also diesen oder
Ihren tatsächlich veröffentlichten MOD verwenden möchten , dann beachten Sie bitte die Lizenz, wenn Sie
sie nur gut verwenden, im Grunde genommen werden private
Testzwecke sei vollkommen in Ordnung. Aber das wäre 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.
79. (Fortgeschrittene) Hinzufügen von benutzerdefinierten Item mit Blockbench: Alles klar, willkommen zurück
beim Stoffkurs für 118. Und in dieser Vorlesung werden
wir einen
Blick auf benutzerdefinierte Artikelmodelle werfen. Wen haben wir das letzte Mal
benutzerdefinierte Blockmodelle gesehen? Jetzt ist es jedoch Zeit für die
Kundenartikelmodelle. Vorerst werden
wir hier nur
einen neuen Artikel erstellen hier nur
einen neuen Artikel und dann das Artikelmodell hinzufügen. Dies wird also die Mitarbeiter von Oracle
Malcolm
sein . Und das ist
natürlich auch
Oracle-Unterstrichen-Pfad , den Sie gehen. Dies wird
vorerst nur ein normaler Gegenstand sein. Und die maximale Anzahl von eins
ist eigentlich großartig. Wir müssen hier keine
benutzerdefinierten Artikelklassen erstellen. Wir brauchen nur das
Artikelmodell dafür. Und dann wird
es uns tatsächlich gut gehen. Lassen Sie uns also zuerst die
Übersetzung hinzufügen, oder ein Kalisko-Unterstrich-Personal. Und dann auch hier,
erzähle komm Stab, das Ego. Und jetzt
ist das Item-Model das Verrückte. Dafür. Wir
werden wieder eine verschlossene Bank öffnen. Und da ist es, die Schönheit
des Kalziumstabs. Und wie Sie sehen können, verwenden wir
tatsächlich einige
der kleinen Texturen und das Oracle kann Textur blockieren. Und insgesamt ist das
so ziemlich alles, was Sie brauchen. Es ist also nur ein Beispiel hier. So
sieht es im Grunde aus, wenn du es hältst. Alle anderen
Display-Sachen sind ebenfalls fertig. Sie können es auch
selbst malen, wenn Sie möchten. Aber vorerst geht es mir
tatsächlich gut damit. Wir gehen zu Export, Blockartikelmodell
exportieren oder zu einem Kalziumstab, den ich dieses Jahr
bereits habe. Das wird in Ordnung sein. Und dann kopieren
wir einfach die JSON-Datei wie in
den Ordner „Elementmodelle“. Und dann sind die einzigen
Dinge, die wir hier
ändern müssen ,
im Grunde der Name. Das wird also
Minecraft oder Plank sein. Das, nicht wahr? Natürlich mit Blöcken Slash gehen sie
hin, denn das
sind alles Blocktexturen. Und dann das Gleiche auch für unsere
Recalc und Block. Also blockieren MC-Kerne genau dort, und dann wird der Rest hier einfach
völlig in Ordnung für uns sein. Und ich weiß, dass
du dachtest, du würdest das vielleicht sagen, nun, das kann es noch nicht sein. Das ist eigentlich, das ist
alles, was wir tun müssen. Wir brauchen nur diese
JSON-Datei zuerst, die Modellierung des
tatsächlichen Artikelmodells. Nun, das ist etwas
, das Sie einfach selbst ausprobieren
müssen , wie ich schon sagte, eine Link-Blogbank. Auch hier ist es wirklich
nicht so schwierig. Du kannst hier einfach
Würfel hinzufügen, sie
bewegen und sie
dann so größer
oder kleiner machen. Du solltest also nicht zu verrückt
sein. Ich denke, dass
Sie
vielleicht mit
einer Stunde, anderthalb Stunden, ein
bisschen herumspielen, sehr schnell den Dreh
raus haben werden. Es ist ziemlich
genau wie Minecraft, aber Modelle mit Blöcken zu machen. Es ist also sehr ähnlich, was auch immer der Fall sein mag, Mal sehen, ob es funktioniert. Oder wir haben Verdächtige
und Minecraft gefunden. Und wie Sie sehen können, wurde das
Aura-Kalzium-Personal hinzugefügt und es sieht verdammt toll aus, sogar in 3D oder
in der dritten Person sieht
es wirklich verdammt cool aus. Und ich mag
den kleinen Goldblock ganz
oben dort sehr. Das ist nur ein anderes Nein, ich mag
einfach die Tatsache dass es im Grunde die
ganze Blocktextur ist, nur in diesem winzigen
kleinen Block dort. Mag ich, das tue ich, ich mag es
wirklich. So einfach ist es also,
die benutzerdefinierten Artikelmodelle
Minecraft hinzuzufügen , oder? Und das ist es schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden
und du lernst etwas Neues. Der gesamte Code und all das steht Ihnen natürlich im
GitHub-Repository zur Verfügung , wo
eine Person genauso gut ist. Und wenn dir
das gefallen würde, würde ich mich sehr über eine Bewertung von dir freuen. Ansonsten sehe ich
dich in der nächsten Folie. Also ja.
80. (Fortgeschrittene) Hinzufügen eines benutzerdefinierten Bogens: Alles klar, willkommen zurück
beim Stoffpferd für 118. Und in diesem Vortrag werden
wir Minecraft einen benutzerdefinierten
Bowl
hinzufügen. Der Kunde ist tatsächlich ein ziemlich unkomplizierter
Prozess. Wir nehmen nur
das orale Calcium-Personal und wir werden diesen T
- oder Capcom-Bot-Namen
mit dem Namen hier
natürlich sehr wichtig machen - oder Capcom-Bot-Namen
mit dem Namen hier
natürlich . Also oder eine Killer-Kombination. Und dann wird
dies ein neuer Bot-Item sein. Und die Registrierung ist abgeschlossen. Was wir natürlich tun
müssen, ist, dass wir genau hier das
Modalprädikat
hinzufügen müssen . Das ist die Hauptsache. Und was wir einfach
tun werden, ist, dass ich tatsächlich eine Methode
kopieren werde , die ich erstellt habe. Und das ist die
registrierbare Methode. Sie können sehen, dass es den Bot im Grunde
registriert. Der ganze Jazz. Dies ist von wenn ich mit der mittleren Maustaste darauf klicke,
und dann klicke ich darauf. Dies wird eher der oder
mittlere
Maustaste sein . Und das ist das Modell
prognostizierte
Anbieterregistrierung von Minecraft
oder von Vanilla. Und wenn ich hier runter gehe, solltest
du in der Lage sein, die Stange
und das Ziehen genau hier
zu finden . Wir haben diese beiden Register für den Bot, den Bot im Grunde genommen, und ich habe diese im Grunde genommen nur
kopiert den Anbieter durch
unsere
Fabric-Modal-Prädikat-Anbieterregistrierung
ersetzt . Aber dies ist eine separate Methode nur weil es ein
bisschen einfacher ist, besonders wenn Sie mehrere Bögen
wollen, können
Sie dies einfach nennen. Und dann mit deinem Bot. Also im Grunde Mod-Items, Dot-Oracle-Combo, und dann ist
das so ziemlich genau das. Wenn Sie also eine weitere
Schüssel haben, die Sie hinzufügen möchten, fügen
Sie diese auch hinzu. Und dann ist das so ziemlich, das ist es so ziemlich,
das ist so ziemlich erledigt. Das ist wirklich die Idee hier. Das ist also so ziemlich
alles, was du brauchst. Und dann
brauchst du natürlich zuerst
die Übersetzung, die hier
sehr wichtig ist, oder eine Kuh kommt unter
Kritzeln, oder? Also, und vergessen wir
das oder einen Kaliko nicht. Und dann
sind die Artikelmodelle gut der Kicker. Aber wieder einmal sind sie
eigentlich nicht so verrückt. Vier von ihnen, ich
kopiere sie rüber. Diese stehen Ihnen natürlich
alle
im GitHub-Repository oder im
Einzelnen genauso zur Verfügung. Dieser zeigt hier nur auf
den Orakel Gumball. Und dann verweist
es unter den Prädikaten auf die verschiedenen
Artikelmodelle , die auf dieses,
dieses oder dieses hinweisen . Und sie sind alle hier offensichtlich. Sehr wichtig ist
eigentlich unsere eigene Recalc, eine Schüssel. Und dann wird die Ebene wieder eine andere Textur haben. Das ist also wirklich
alles, was es dazu gibt. Es ist eigentlich nicht so
verrückt vor einem Kunden Sie machen müssen
oder andere Texturen, eine der normalen Bälle und dann drei von ihnen, die im Grunde
ziehen. Aber ich meine, das ist so
ziemlich alles, was es dazu gibt. Ich bin eigentlich, wie einfach es sein kann, denn wir haben
hier schon die Prädikate für die Modelle gesehen . Es ist nicht nichts
zu verrückt Eigentlich sollte
es etwas, das zu verrückt für dich
sein sollte. Es sind nur ein paar Werte, die
wir im
Modell grundsätzlich verwenden können , um zu bestimmen , welches Extra für diesen Artikel
angezeigt werden soll. Das ist
im Grunde genommen alles, was es
dazu gibt , um der
Vollendung willen. Mal sehen, ob es funktioniert oder
wir uns wieder in der
Mikrofinanzierung befinden , können sehen, dass
die Oracle-Kombination erfolgreich zum Spiel
hinzugefügt
wurde. Und wenn ich es schieße, dass du gehst, ändert sich auch
die Textur. Also
funktioniert alles völlig gut, genau wie wir es
erwarten würden, oder? Aber das war es schon für
diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden. Du lernst das Neue und wir sehen uns
in der nächsten Vorlesung. Also ja.
81. (Intermediate) Flüssigkeiten: Alles klar, willkommen zurück
zum Stoffkurs. Und in diesem Vortrag werden
wir Minecraft
eine benutzerdefinierte Flüssigkeit hinzufügen . Das Hinzufügen einer benutzerdefinierten Flüssigkeit würde
ich also etwas pikelig sagen. Es gibt wie ein
bisschen Verrücktheit dort. Aber insgesamt bin ich mir sicher, dass wir es schaffen werden
, zunächst
im MC-Kurspaket, mit der rechten Maustaste auf ein neues
Paket namens Fluid zu klicken. Und da drin brauchen wir
zwei neue Klassen, die Modusflüssigkeitsklasse und
die Ani-Flüssigkeitsklasse. Und wir beginnen jedoch mit der Honigflüssigkeitsklasse. Dies wird
das Fließfähige erweitern, und wir werden die Methoden nicht
implementieren. Was wir
zuerst machen werden, ist, wo ich diese Zusammenfassung tatsächlich
mache. Und dann werde
ich folgendes tun. Ich klicke
auf fließbare Flüssigkeit, drücke Strg H und
doppelklicke hier auf das Wasser. Und dann möchte
ich alles hier
reinbringen , im Grunde alles außer dem Konstruktor
und der Kopie das. Und ich
füge es hier ein. Und wir könnten verstehen, dass wir eigentlich
keine Fehler bekommen, das ist eigentlich noch besser. Und was wir brauchen ist, dass wir
immer noch ganz unten hören. Wir brauchen keinen
dieser Konstrukteure,
aber wir brauchen es, das
muss Honigflüssigkeit sein, und das muss Honigflüssigkeit
sein. Es gibt natürlich etwas
, das Sie jedes Mal tun müssen, wenn Sie eine neue Flüssigkeit hinzufügen. So können wir dies auch auf eine Weise
vereinfachen. Und dann glaube ich insgesamt,
dass dies in Ordnung sein sollte. Wir können das einfach
ein bisschen anders formatieren ,
damit wir es tatsächlich richtig
lesen können. Dies ist für die Partikel. Und das ist das Geräusch. Ich werde den Ton tatsächlich auf, sagen
wir den Block,
Honey Block Slide
ändern . Weil wir natürlich
ein paar Honigblöcke drin haben. Wir haben in diesem Fall einfach keine
Honigflüssigkeit. Und dann werden
wir diese
Flüssigkeiten nur einen Moment ändern. Aber jetzt haben wir die
Honigflüssigkeit zusammen mit den stillen und den fließenden Klassen drin und in den Mod-Flüssigkeiten, was wir brauchen
werden, sind nur zwei Dinge. Und das wird zuallererst
ein privates
sein Das ist eine niedrigere
BAL-Flüssigkeit wird sich registrieren. Dies ist also die
Registermethode, wenn globale Flüssigkeit der Rückgabetyp, ein Zeichenfolgenname und eine
fließbare Flüssigkeit oder Flüssigkeit oder Strömungsflüssigkeit ist, ist das in Ordnung. Dies wird
das Registerregister zurückgeben. Registrieren Sie diese Flüssigkeit,
ein neuer Bezeichner, MC-Kurs-Mod,
Mod-ID und ein Name. Und nach den ersten Klammern, globaler Flüssigkeit, wird dies
natürlich die Flüssigkeit
registrieren. Und dann werden wir
sagen, öffentliche statische, endgültige globale Flüssigkeit oder einen Honig-Unterstrich, der immer noch dem
Unterstrich des Registers entspricht. Dann ist eine neue
Honigflüssigkeit, die immer noch ist. Und dann werde ich das mit Control D
duplizieren. Ich werde sagen, dass Honig fließt. Und das Gleiche auch hier im
Namen. Wenn es fließt. Und anstatt
immer noch fließend zu nennen. Und das ist alles großartig.
Das funktioniert nicht. Und was wir hier oben in der
Honigflüssigkeitsklasse tun können, werden
wir zurückgeben, welche
Flüssigkeiten und er fließt. Und hier, wenn ich einen Mod zurückgebe, Flüssigkeiten und Honig noch, müssen
wir dafür immer noch
einen Eimer machen. Überhaupt keine Sorgen. Eigentlich
ziemlich einfach. Und ich gehe in die
Item-Klasse und wir erscheinen
einfach
über dem Regenbogen. Und das wird der
Honig-Unterstrich-Eimer sein. Und hier ist das Gleiche,
Honig-Unterstrich-Eimer. Dies ist natürlich ein Bucket-Item. Und das erste nehmen
wir
die Mod-Flüssigkeiten auf , die der Honig noch hat. Aber normalerweise willst du den Honig noch
wählen. Wenn nach einer Flüssigkeit gefragt wird, ist
das der General, wie ich meine, ich würde sagen, dass es
fast Kern davon ist. Wir wollten auch einen Mot-Block
brauchen, denn dies wird ein Block
ohne Blockgegenstand sein. Das wird
der Honigflüssigkeitsblock sein. Das ist etwas, das
wir brauchen einen nebligen
Honigunterstrich, flüssig. Unterstrich. Ok. Dies
wird wieder für
jedes Ihrer verschiedenen Flüssigkeiten benötigt . Und das
wird eine, eigentlich das,
wir werden dafür eine Menge
Fluidblock-Klasse brauchen. Dies wird also der BOD
Lewis-Block
sein , weil
wir wieder keinen Zugriff
auf den Konstruktor haben. Dies ist ein
Fluidblock-Mauszeiger über diese großartigen
Konstruktor-Metriken Super. Und dann werden wir das auch öffentlich
machen. Und es sei denn, es wird
ein Fluidblock sein, und der erste Parameter
wird Flüssigkeiten sein, nicht Geld, immer noch sehr wichtig. Und dann werden
wir hier tatsächlich Material
der Stoffeinstellungen vorüber sagen . Und dann werden wir das von Wasser
materiell machen. Nur um sicherzustellen,
dass dies funktioniert, werden
wir
keine Kollision und nicht
undurchsichtig sagen , so dass wir nichts haben und
fallen lassen, weil,
naja, tatsächlich Wasser oder in
diesem Fall
Honigflüssigkeitstropfen naja, tatsächlich Wasser oder in , Block-Requisiten nichts. Das ist also das. Und dann in
der Honigflüssigkeitsklasse, vor allem
der Eimer, sehr einfach. Mehr Gegenstände, die auf dem
Eimer stehen. Sehr nett. Und dann hier unten können wir zum Beispiel sehen, dass wir hier einige Partikel
haben, die wir in diesem Moment
nicht ändern werden, aber Sie könnten Ihre eigenen
Partikeltypen herstellen und zum Beispiel habe tropfenden Honig dort. So etwas. Habe das hier Übereinstimmungen, die wir durch Mod-Flüssigkeiten,
Honig noch und Flüssigkeiten ersetzen
müssen . Auf den Schlag. Dann hier der Zwei-Block-Status. Und wichtig, dass
die Blöcke Wasser durch mehr
Blöcke ersetzt werden, diese Honigflüssigkeit. Das sollte in Ordnung sein, denn dies ist natürlich auch ein Fluidblock. Daher wird es
die
Block-States-Eigenschaften davon erben. Und ich glaube tatsächlich
, dass dies all
die Änderungen sind, die wir hier vornehmen
müssen. Wir haben auf den Block,
die Flüssigkeiten und den Gegenstand verwiesen . Das ist so ziemlich genau das. Und jetzt müssen
wir den Fluid Handler
und den Fluid-Renderhandler
registrieren. Jetzt mache ich das
wirklich hier drin. Sie könnten wahrscheinlich machen, wenn
Sie mehrere Flüssigkeiten haben, schlage
ich dringend vor, eine benutzerdefinierte Klasse zu erstellen , die
im Grunde genommen OLS es ist. Und wie wir es tun
werden, ist folgendes. Wir werden Fluid
oder render Helper Registry sagen, genau diese Instanz
bei Register. Und dann wird das noch
mehr Flüssigkeit auf ISS sein. Was wir also damit
zu tun haben, dass dieses vier noch geweihte Geweih auch weht. Und dann
werden wir einen neuen
einfachen Fluid-Renderhandler erstellen . Sehr schön, weil dies
grundsätzlich von uns
oder durch Stoff oder
diese tatsächliche oder 118 zur Verfügung gestellt wurde. Und ich sage
einfach Fluid Handler und wir werden immer noch Wasser sagen. Und was ich tun werde,
ist, dass ich ein Komma
mache und das kopiere. Wir müssen drei verschiedene
einsetzen,
also werden wir hier dreimal Wasser
bleiben und dann dieses
in fließendes Wasser umstellen. Und dann
wird der letzte Wasserüberlagerung sein. Sehr wichtig, dass Sie sich für
das Wasser-Overlay entscheiden, da die im Grunde
auf die Wasserstruktur hinweisen, aber die Wasserstruktur tatsächlich grau
ist. Und dies ermöglicht es uns, hier einen
vierten Parameter hinzuzufügen. Und das wird der Farbton sein. Ich nehme das einfach,
das ist im Grunde die Tönung des Honigs,
den ich gewählt habe, und das ist im Grunde die Farbe , die die eigentliche Flüssigkeit haben wird. Dies ist also nur ein
RGB-Wert in Hex. Wäre also nicht zu verrückt. Und ich
sage
hier dasselbe für den fließenden Honig. Und dann ist
das Letzte, was wir brauchen, zuerst die Übersetzung für den Bucket. Also unterstreicht Honig Eimer
und den Honigeimer dort. Und dann ein Blockmodell. Jetzt wird das eigentlich
so einfach sein. Dann
kopiere ich einfach das hier. Ich sage Honey
Underscore Bucket. Und das bezieht sich einfach auf eine
Honig-Unterstrich-Eimer-Textur, die auch sehr leicht
kopiert werden kann. Genau hier. Da gehst du. Dann gibt es noch eine Sache , die sehr wichtig ist,
die wir tun müssen, und das unter dem
Datenordner oder den Minecraft-Tags müssen
Sie
ein neues Directory Hold-Fluids erstellen. Und statt dass
sie
ein neues Tag machen, das als
bewässert angrenzend bezeichnet wird. Und wir werden einfach
den Inhalt der
Wände kopieren , Jason hier. Und wir werden das auf MC-Kurs ändern
. Und das muss immer noch
beides Honig einschließen , oder? Honig-Unterstrich immer noch,
sowie auf dem Unterstrich fließend. Dies stellt
also sozusagen im Grunde die Physik der ganzen
Tortur dar. Es wird also
dieselbe Physik haben wie Wasser. Das ist das Beste, womit ich vorerst
anfangen kann. Das ist jedoch alles, was
wir dafür brauchen werden, obwohl es ziemlich kompliziert ist. Es gibt viele Dinge
und es gibt natürlich auch noch Dinge, die
Sie vielleicht ändern möchten. Die Partikeltypen
hier zum Beispiel gibt es eine Reihe von
Dingen, die man theoretisch
noch tun könnte . Aber insgesamt wollte ich Ihnen
zunächst nur zeigen, wie
Sie es tatsächlich schaffen können. Und das
sollte hoffentlich ziemlich einfach sein. Um der Vollendung willen,
schauen wir mal, ob es funktioniert. Ordnung, die Finanzen
im Hinterkopf, wie Sie sehen können, wurde
der Honigeimer dem Spiel hinzugefügt. Mal sehen, ob es funktioniert. Und das tut es, es
funktioniert tatsächlich und war
sehr interessant , dass ich das vorerst tatsächlich
unendlich gemacht habe. Aber wir können
das sehr, sehr leicht ändern. Dies ist eigentlich eine
sehr einfache Änderung. Und du kannst auch sehen
, dass ich es fließe. Zum Beispiel kann man sehen, dass die Partikel hier immer noch
die normalen Wasserpartikel sind. Das ist so ziemlich genau das, was
ich gesagt habe, dass es
vielleicht
in einer kleinen Kapazität geändert wird, aber insgesamt
wird es in Ordnung sein. Und auch wenn Sie darauf eingehen, können
Sie sehen, dass das
Overlay hier auch blau ist. Es gibt im Moment wirklich nicht viel , was
wir
dagegen tun können. Zumindest habe ich nicht herausgefunden,
wie man das neu einfärben kann. Aber für die Zeit meine ich, es ist immer noch ein
völlig individuelles Fluid-Top , das eigentlich ziemlich cool ist. Und um der Vollendung
willen auch. Mal sehen,
wie wir das Unendliche hier loswerden können, oder? Es ist eigentlich sehr, sehr einfach. Dieser boolesche Wert hier ist unendlich, ist gleich falsch, und das ist buchstäblich
alles, was es daran gibt. Das ist also alles was es gibt. Und es gibt natürlich noch
ein paar andere Dinge wie die Git Flussgeschwindigkeit, man muss einen
Levelabfall pro Block, ein Häkchen, Tick-Rate und Europa letzten
Widerstand erreichen. Das Niveau des noch flüssigen es, es gibt eine Menge Sachen,
die du tun kannst und du, ich empfehle
es noch einmal wärmstens, spielt ein bisschen mit
den Zahlen herum probiert ein paar Sachen
aus, weißt du, sei offen für Experimente
damit, dann bin ich mir sicher, dass
du sozusagen
die Flüssigkeit deiner
Träume umsetzen kannst . Aber 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.
82. (Fortgeschrittene) Bearbeite Vanilla: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir uns ansehen, wie Sie Lautentabellen
ändern können . Zunächst einmal
könnte man sagen, Warte, wir haben bereits zu Beginn
des Kurses einen unzüchtigen Tisch
gemacht . Wir wissen, wie man LW-Tabellen hinzufügt. Ja. Aber was Sie nicht wissen,
ist, wie Sie zwei
unzüchtige Blöcke hinzufügen können , die
bereits in Vanille existieren. Und genau das
werden wir uns
in dieser Vorlesung genau hier ansehen . dazu im util-Paket rechten Maustaste auf neue Java-Klasse. Dies wird der
Mod, Loot-Tabellen-Modifikatoren sein. Und ich werde tatsächlich
den gesamten Inhalt kopieren und wir werden
es erklären, während wir weitermachen. Jetzt gibt es natürlich
alles im
GitHub-Repository oder im
Einzelnen genauso gut zur Verfügung . Und die allgemeine Idee hier
ist, dass
wir zunächst keine Pfeffersamen
hinzufügen werden, sondern natürlich
Rübensamen genau hier. Und dann ist die allgemeine
Idee, dass wir
drei
Identifikationsserum haben , die auf eine bestimmte Rodeltabelle verweisen. Also die Lu-Tabelle, wenn wir zu den externen Bibliotheken
gehen , diese rechts, Net
Minecraft-Projekt und so weiter. In Sicht des Datenordners,
Rodeltabellen, blockiert es das Glücksspiel von
Trust-Entitäten. Und das kannst du im Grunde
so sagen, wie du siehst und
dann kann ich sehen, okay. Ist da eine Iglu-Truhe drin? Genau das
ist hier drin, dass man
den Namen grundsätzlich ohne den JSON nimmt. Sehr wichtig. Und
man kann es auch hier
zum Beispiel in den Häusern haben. Und solche Sachen. Sie können also grundsätzlich
jede dieser Tabellen ändern. Theoretisch glaube ich, dass
er es wegnehmen könnte. Ich empfehle dringend, das nicht zu tun. Empfehlen Sie dringend,
nur Sachen hinzuzufügen. Wie fügst du jetzt Sachen mit
diesem Fabric Loop-Pool-Builder hinzu. Das ist die Sache
, die am kompliziertesten
sein wird . Die Sache daran ist, dass
ich
hier ein Beispiel dafür habe , wo Sie im Grunde
eine besondere Chance haben , dass etwas fällt. Sie können dies auch auf
eins setzen und dann haben Sie eine 100% ige Chance, es fallen zu lassen. Und dann hier mit
dieser Breitenfunktion, mit der setCount Load Funktion und einem einheitlichen
Lastnummer-Anbieter. Wir können im Grunde sagen, dass
dies zwischen dieser Zahl
und dieser Anzahl von Artikeln sinkt. Aber wie Sie deutlich sehen können,
wird
über die Werbetrute innerhalb
der Iglutruhe sowie die Kohlleber vom Kriechgang die Kohlleber vom Kriechgang immer nur einen fallen lassen, während die Rübensamen aus
dem Gras ein oder zwei fallen. Und nur als 35
Prozent Chance tatsächlich zu fallen, wenn wir hier zum
Loop-Pool-Builder gehen , können Sie nicht wirklich
sehen, was hier vor sich geht. Es ist jedoch sehr kompliziert. Also musst du im Grunde einfach ein paar
Sachen
ausprobieren. Siehst du zum Beispiel
ein bedingt, okay, was steckt
irgendwie hier rein? Nun, ich kann den Baumeister hier
reinbringen. Okay, fair genug. Wenn wir uns das also ansehen
könnten, muss
ich diesen Loop-Condition-Builder nehmen. Sie können also sehen, dass dies ein
Loop-Condition-Builder ist. Und ich könnte zum Beispiel
persönlich sagen, Loop-Bedingung
und drücken Sie Control H und sehen Sie alle verschiedenen
Lastbedingungen, die es gibt. Das ist also eines dieser
Dinge Das ist ziemlich cool, wo die Hierarchie hier
unglaublich nützlich ist. Zum Beispiel haben Sie
die Zeitprüfschleife,
Loop-Bedingung , die
wirklich verdammt cool ist. Wir haben die
Match-to-Loop-Bedingung. Wir haben die
Kilobyte-Spieler-Loop-Bedingung und all diesen Jazz. Es gibt also eine
Menge Sachen, die Sie hier im Grunde hineinlegen
können. Es geht nur darum dass du ein paar Sachen
ausprobieren musst. Und im Grunde ist es
irgendwie und ich gebe zu, das irgendwie mit dem Kopf gegen
die Wand
läuft ,
bis dass
das irgendwie mit dem Kopf gegen
die Wand
läuft,
bis es im Grunde funktioniert. Es gibt also eine Menge Ausprobieren. Aber wenn Sie wollten, wenn Sie etwas
wirklich Kompliziertes haben wo Sie es etwas
hinzufügen möchten, dann wird
es einfach so sein. Aber was auch immer der Fall sein mag. Wie Sie hier sehen können,
rufen
wir im Grunde das Loot-Table
Loading Callback-Ereignis auf. Und dann sagst du:
hey, wenn das ID-Jahr der Idee
entspricht, die
wir hier angegeben haben, wenn die Grasblock-ID hier
gleich der ID ist, dann fügen wir sie hinzu, dann werden wir alle hinzufügen
davon zum Klo Tisch. Das ist also die allgemeine Idee. Und dann werden
wir das Gleiche machen. Und das Iglu und dann auch
der Kriecher, wo wir hier den
Kohlesplitter hinzufügen, die Dowsing Rute und
hier die Rübensamen. Und das einzige, was wir dann tun
müssen,
ist in unseren MSE-Kurs-Mod As zu gehen und dann einfach
die
Mod-Beutetabellen-Modifikatoren aufzurufen , die für andere Tabellen wichtig sind. Und das war's. Das ist alles, was es dazu gibt. Und wenn wir etwas hinzufügen wollen, kopieren
wir es einfach, erstellen einen neuen Bezeichner, fügen eine weitere
if-Anweisung in eine Reihe von Sachen hinzu.
Und das war's. Das ist alles, was wir tun müssen. Obwohl. Ich schätze, das hat
die Arbeiten erhalten , denn findet
uns ein Minecraft. Also lasst uns zuerst einen Creeper NSC
töten. Da ist es. Ein Kohlesplitter
ist vom Kriechgang gefallen. Und dann lass
uns zuerst diesen Kriecher töten, denn sonst werden wir
eine schlechte Zeit haben. Lassen Sie uns auch
die Lautstärke ein wenig verringern. Es ist ein bisschen laut für mich. Also gehen sie und lassen uns einen Überlebensmodus setzen
und lassen uns dort reingehen. Du siehst, dass wir beim ersten Mal schon
Glück hatten. Die Rübensitze fallen
tatsächlich ab. Und weiß einfach, dass
wir es überhaupt haben. Lasst uns auch schnell nach
einem Iglu suchen. Nun, würdest du dir das ansehen? Es gibt eine Dowsing Rute. So
einfach ist es also, die
Anspielten zu bereits vorhandenen
Beutentischen hinzuzufügen , oder? Der gesamte Code ist natürlich auch
wieder
im GitHub-Repository oder einer
Einzelperson verfügbar . Und das ist es auch schon
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 Sie jedoch in der nächsten Vorlesung. Ja.
83. (Fortgeschrittene): Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir uns die Fortschritte ansehen. So werden Fortschritte über JSON-Dateien
vorgenommen. Was wir also tun werden, ist, dass
wir in
unseren Datenordner im MC-Kursordner gehen ,
mit
der rechten Maustaste auf ein neues Verzeichnis
und kalte Fortschritte klicken, sicherzustellen, dass wir dies richtig
lesen. Die Ziele, die sehr wichtig sind. Und ich
werde tatsächlich
die beiden grundlegenden Dateien kopieren , die
bereits vorbereitet sind , und ich
werde es erklären, richtig. So können Sie sehen, dass ich den
MC-Kurs JSON-Datei weiterentwickelt und die Dowsing Rute
Advancement erweitert habe. Und die beiden sind ein
bisschen anders. Aber was
hier passiert, ist, dass wir einen Fortschritt haben. sind wir, was
im Grunde der Tab ist. Dadurch wird eine
neue Registerkarte „Weiterentwicklung“ erstellt. Wenn der Fortschritt
keinen Elternteil hat, können
Sie sehen, dass dies offensichtlich ist. Mc-Kurs. Mc-Kurs.
Okay, Sicher genug. Und dann hat dieser
kein Elternteil, sondern dass es einen Hintergrund hat. Und der Hintergrund
muss tatsächlich so spezifisch sein. Es ist sehr seltsam, aber
es muss sein, dass sie Ihre ID eingeben
müssen
und dann Texturen blockieren müssen, und dann welchen
Block zum Beispiel auch immer Sie nicht im Hintergrund waren, oder Sie könnten natürlich auch setzen es in einem anderen Ordner, in
einem anderen Ordner, im Texturen-Ordner, der auch funktionieren
würde, aber der Rest sollte
ziemlich selbsterklärend sein. Du hast einen Gegenstand, bekommst einen Titel, das ist nur der Titel
des eigentlichen Fortschritts. Und dann haben wir hier eine
kleine Beschreibung. Was ist der Rahmen bei einer Aufgabe? Jetzt glaube ich, dass du
wirklich einfach hier reingehen kannst. Es gibt
auch eine Herausforderung und dergleichen. Es gibt also eine andere
Sichtweise, verschiedene Dinge. Also Toasters, also
wird es sein, ob der Toast oben rechts auf
dem Bildschirm angezeigt wird
oder nicht der Toast oben rechts auf
dem , dann wird geschlossen. Nun, das sollte
ziemlich selbsterklärend sein. Und jetzt sind sie wirklich
schwierig,
sagen wir mal, es sind die Kriterien. Denn hier
gehen wir
jedoch auf die Anforderungen , die Auslöser
und die Bedingungen ein, werden wir uns das im Allgemeinen nur ansehen. Wir werden
keine benutzerdefinierten Bedingungen
oder Auslöser machen , weil
das viel,
viel schwieriger sein wird und
das ist im Moment viel komplexer. Aber vorerst werden wir uns nur den
Auslöser für die
Bestandsänderung ansehen . Das heißt, wenn ich
ein Orakel
hereinkomme, in mein Inventar komme, dann wird es passieren , dass ich
diesen Fortschritt bekomme. Und dann das Gleiche mit der
Dowsing Rute, oder? Wenn ich eine Dowsing Rute in meinem Inventar bekomme
, bekomme ich diesen Fortschritt. Das ist also das allgemeine Ideenjahr. Und wieder einmal habe ich eine
großartige Ressource für Sie, die
natürlich wieder einmal Miss old GitHub IO ist, wo Sie hier grundsätzlich die JSON-Dateien
für die Fortschritte
generieren können , das ist eigentlich genau
wie wahnsinnig großartig. Wir könnten zum
Beispiel Bedingungen sehen. Und dann gibt es ein
paar verschiedene Bedingungen. Wir können sagen, was ist
die Voraussetzung hier? Und Sie können sehen, dass es mehrere
verschiedene Anforderungen gibt. Zum Beispiel, wenn man
Gegenstand verwendet, gibt es möglicherweise einige kanalisierte
Aufhellung Brottier. Wie Sie sehen können, gibt es
eine Menge Sachen, die Sie hier grundsätzlich hineinlegen können. Kreuzen Sie an, nehmen Sie sogar
Listen, schauen Sie sich Tics an, oder es gibt viele Dinge
, die Sie einer Entität tun können. Ich empfehle wärmstens damit ein bisschen
herumzuspielen. Und dann gibt es natürlich auch immer auf GitHub Repositories beliebter Modi, in denen
Sie
sich auch nur
ihre Fortschritte ansehen können . Sehr empfehlenswert,
dass
man manchmal nur ein bisschen
darüber nachdenken muss. Nun, obwohl Fortschritte nicht das
Wichtigste sind, können sie immer noch eine ziemlich
coole Ergänzung für Ihre Matte sein. Und nur um der Fertigstellung willen, schauen wir mal, ob es funktioniert, aber stellen Sie sicher, dass Sie eine neue
Welt zuerst machen, denn wenn Sie jemals einen dieser
Artikel in Ihrem Inventar hatten, werden
Sie sofort die
Fortschritte erzielen. Am besten, um eine neue Welt zu erschaffen. Das ist eine sehr kluge Idee, oder wir befinden uns
in Minecraft. Also mal sehen, und lasst uns einfach die Barren hier
herausnehmen. Also lass uns einfach gehen
und da ist es, damit wir den
Fortschritt genau hier bekommen, unsere Lügen in der Telekommunikation. Und wenn wir auf
die Fortschritte eingehen, können
Sie sehen, dass wir hier bereits
den
Fortschritt der Werbetrute haben , wie sozusagen auf uns zu warten. Ich bekomme nur einen weiteren Fortschritt. Wenn ich zum Beispiel nur
das eiserne England bekomme , bekommen
wir einen anderen Tab. Und Sie können die Registerkarte
Minecraft sehen und hier, da die
Registerkarte MC-Kursmodell für
den Namen der Registerkarte immer
der Name des
ersten Fortschritts sein wird . Aber das ist im Grunde
die allgemeine Idee hier. Abgesehen davon
nehmen wir auch die Dowsing Rute heraus, und das
kriegen wir auch. Aber es funktioniert nicht. Sie sind Autorinnen wie du. Das habe ich wenigstens gehört. Und lass uns einfach sehen, genau hier. Da gehst du. Also alles, was dort
drüben völlig gut
funktioniert , 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.
84. (Fortgeschrittene) Wie du Partikel spawn: Alles klar, willkommen zurück
beim Stoffpferd für 118. Und in diesem Vortrag werden
wir einen
Blick darauf werfen, wie man Partikel
in die Welt spawnen
kann. Das Besondere, was
wir uns ansehen werden, ist im Grunde genommen, die
Partikel im SPD-Block zu besitzen. Also im Grunde
genommen, wie man
Partikel in einem Block spawnen kann. Und dann, zum Beispiel
für Entitäten oder Mobs, sollte
dies normalerweise für Entitäten oder Mobs, sehr
ähnlich sein. Insgesamt brauchen Sie also
nur eine World-Variable und Sie
müssen auf dem Kunden sein. Und dafür überschreiben
wir es die zufällige Anzeige-Tick-Methode. Und dieser wird im Grunde nur an den Kunden
berufen und wir
haben eine Welt variabler. Das ist also so ziemlich
genau das, was wir brauchen. Und was ich tun werde,
ist, dass ich tatsächlich den Inhalt
davon
kopieren werde den Inhalt
davon
kopieren der Ihnen im GitHub-Repository
oder einer Einzelperson
zur Verfügung steht , naja. Und du wirst hier sehen, du hast im Grunde eine Chance. Aber wir haben eine Chance von 35 Prozent , dass diese Partikel im Grunde
spawnen, und wir
machen immer einen neuen Schwimmer. Manchmal haben wir alle vier klein und manchmal haben wir
keinen von ihnen spawnen. Das ist irgendwie die allgemeine Idee. Und Sie können sehen, dass
der Weg,
ein Teilchen zu spawnen , darin besteht,
Weltpunkt-Punkt-Punkt-Partikel zu nennen. Und wir müssen
einen Partikeltyp liefern. Es benutzt die mittlere
Maustaste. Klicken Sie hier an. gibt es eine Reihe
von
Partikeltypen Hier gibt es eine Reihe
von
Partikeltypen,
Standardpartikeltypen. Theoretisch könntest du
auch deine eigenen lesen. Das werden
wir uns in dieser Vorlesung nicht ansehen. Wo auch immer wir uns das in einer zukünftigen Vorlesung
ansehen mögen , sind sich noch nicht hundertprozentig
sicher. Und wir müssen die Position
liefern. Also x, y und z positionieren. Sie können sehen, dass ich hier immer
ein bisschen
Zufälligkeit hinzufüge , damit wir nicht jedes Mal an
derselben Position antworten. Und dann ist die Geschwindigkeit, naja, das ist nur die
Geschwindigkeit, mit der sich das bewegt. Und ich wollte nach oben gehen. Und man sieht, dass
es sich hier im Grunde nach oben bewegt. Aber wir können entweder rauchen, es gibt noch ein paar andere Sachen
wie Asche, es gibt Explosion. Es gibt also viele
verschiedene Partikeltypen. Aber wir werden vorerst
dabei bleiben. Und wenn Sie dies nur
viermal nennen , ist es nur so
, dass es ein bisschen
mehr von diesen Teilchen gibt , überall dort
gehören, wo Sie eine Welt-Variable
haben Sie können einfach
eine if-Aussage abgeben. Wenn Welt Kunde ist
und Sie dann
das Teilchen aufrufen können , wird
das nur auf der Clientseite funktionieren.
Das ist sehr wichtig. Das ist etwas im Hinterkopf. Aber ansonsten, um der
Fertigstellung willen, schauen wir einfach, ob es funktioniert. Oder Firmen haben wieder in
Minecraft angekündigt und mal
sehen Da sind sie. Diese kleinen Partikel
steigen bereits aus dem SPD-Block auf. Sie können sehen, ob ich es absetze und
sehen, dass einige von ihnen aufsteigen. Und es ist definitiv nur ein Zufall, während er im Grunde anruft. Und natürlich
könntest du immer
mehr oder weniger anrufen ,
je nachdem, was du willst, aber das ist immer
möglich. Aber das ist die allgemeine Idee. Laichen der Partikel, naja,
speziell auf Blöcken, aber so ziemlich bei
allem anderen
nennt man die Welt bei unserer
Partikelmethode, oder? Aber das wäre es schon
für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich
und lernen im Neuen, und wir sehen uns jedoch in der
nächsten Vorlesung. Ja.
85. (Fortgeschrittene): Alles klar, willkommen zurück
zum Stoffkurs für 118. In diesem Vortrag werden
wir Minecraft benutzerdefinierte Gemälde
hinzufügen. Und in benutzerdefinierten Gemälden
ist eigentlich ein sehr, sehr einfacher Prozess
im MC-Kurspaket,
klicken Sie mit der rechten Maustaste auf ein neues Paket
namens Malerei. Anstatt dort klicken
wir dann mit der rechten Maustaste auf neue Bilder im Java-Klassenmodus. Und dann
brauchen
wir da drinnen nur ein paar Dinge , um genau zu sein. Ein privates statisches
Gemälde, ein Motiv, Registermalung mit
einem String-Namensparameter und einem
Malmotiv, Endmotiv. Das ist in Ordnung. Lassen Sie uns
Registrierungsdatenregister, Registry Dot Painting Motiv
mit einem neuen Bezeichner, MC-Kurs Mod n Mod-ID-Namen zurückgeben. Nach den
ersten Klammern geben
wir dann das Malmotiv beenden es
dann mit einem Semikolon. Power ist auch sehr wichtig. Wir brauchen eine öffentliche statische
nicht-Register-Malerei-Methode genau hier
wird nur die Druckzeile, die
Gemälde für ungerade ID registriert. Nur damit wir
das haben, weil wir das hier tatsächlich neben der
MC-Kurs-Mod-Methode aufrufen
müssen . In der on initialisierten Methode wir das einfach direkt
nach den modalen Registern tun . Also auf Gemälden, die Gemälde
registrieren. Und jetzt werden wir die Bilder tatsächlich
hinzufügen. Nun, wie wird das gemacht? Nun, eigentlich ist es auch
sehr einfach. Öffentliches statisches finales
Malmotiv bei Sonnenuntergang hier. Und wir werden nur sagen
,
Registermalerei mit dem Namen Sunset. Und dann ist ein neues Malmotiv, das nur zwei ganze Zahlen aufnimmt
, die Breite des
Bildes und die Höhe dieser Werte hier
im Grunde genommen in Pixeln. Ja, solange sie übereinstimmen, sollte
alles gut sein. Also lasst uns
dieses Mal einfach mit Control D duplizieren und wir
werden auch den geplanten
und den Wanderer hinzufügen . Und dann stellen Sie sicher, dass
wir den Namen ändern , sagt gut geplant und wundert sich. Und dann planten die Größen
auch eine 16 mal 16, und diese wird
tatsächlich um 32 erweitert. Dies so dass Sie wie
ein paar Beispiele haben. Und dann
ist die Frage, naja, aber woher bekommen wir die Bilder? Nun, zuallererst werden die
Bilder, die ich habe auch von Platin G.711
gemacht. Wenn Sie sie verwenden möchten, beachten
Sie bitte die Lizenz. Wenn Sie sie
in Ihrem ähnlichen öffentlichen MOD verwenden möchten, beachten Sie
diese die Lizenz. Ansonsten
kopieren wir die einfach vorbei. Diese werden also
genau hier
in Ihren Texturordner gehen , oder? Also in den Assets MC grobe
Texturen und dann malen. Und dann sind sie da. Die drei Bilder, die Namen hier müssen natürlich mit
dem Namen übereinstimmen. Es wird zu diesem
Zeitpunkt ziemlich selbsterklärend sein. Und während der Rest sich im Grunde nur um sich selbst kümmern
wird. Das ist also alles was du brauchst. Sie brauchen die Bilder in dieser Klasse und sehr wichtig, dass Sie diese Methode hier
aufrufen. Sonst wird es nicht funktionieren. Naja. Lass uns einfach nach Arbeiten schauen. Ordnung, wir befinden
uns wieder in Minecraft und ich
habe die Bilder bereits. Lass es uns einfach ablegen
und mal sehen, ob wir Block haben
können, um
unser Pitting dort zu bekommen. Es gibt den ersten. Aber mal sehen, was
das nein ist, das ist nicht. Es wird nicht unser Sonnenuntergang oder
wir kriegen es irgendwann. Ich bin mir sehr sicher, wie Sie sehen können, im Grunde sind
sie da. Es gibt den nächsten. Und
mal sehen wir mal, schauen wir uns an. Nun, das wird nicht funktionieren, aber dieser wird funktionieren. Also lasst uns das einfach machen. Und mal sehen, ob wir auch den
kleinen der 16
von 16 bekommen können . Die allgemeine Idee ist also, wie Sie dort deutlich
sagen können. So werden die
Bilder grundsätzlich zur Rotation
des normalen Gemäldes
hinzugefügt. Aber das ist eigentlich
wirklich cool und gut, du könntest jetzt im Grunde jedes Bild
hinzufügen und ja, du kannst sie so
groß und so schön machen und wie was auch immer du
im Grunde willst 0. Es kann alles sein
, was Sie möchten, solange sie sich an
die normalen Zentren halten und sich in
Ihrem Texturordner eine PNG-Datei befindet. So
einfach kann es eigentlich sein, 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. Oh, ja.
86. (Fortgeschrittene) Benutzerdefinierte Block-Einheit: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
eine benutzerdefinierte
Block-Entität hinzufügen . Nun, da Sie dies wahrscheinlich als
einen längeren Vortrag gesehen
haben werden, da dies ein sehr komplexes Thema
ist. Und was ich eigentlich sehr
vorschlage, ist,
diese Vorlesung und
die nächste zurückgehende Vorlesung
gleichzeitig zu sehen diese Vorlesung und . Im Grunde genommen Mac-Tabak, weil die nächste Vorlesung sofort damit zusammenhängt und wir
die Blockentität
tatsächlich ein bisschen besser
funktionieren lassen . Das zweite, was ich erwähnen
wollte ,
ist, dass wenn ich jemals Kachelentität
sage, ich Blockentität meine, sie im Grunde in 117 umbenannt wurde. Und so habe ich immer noch, dass ich manchmal immer noch den Namen der Kacheleinheit verwende. Es ist nur das, was es ist, aber
dann meine ich Brock Entität. Und ich werde auch einen Großteil des
Codes
kopieren und dann werden wir im Grunde erklärt
, weil es unsinnig ist, all
das einfach auszuschreiben. Es ergibt jedoch
keinen Sinn. Bitte seien Sie sich dessen bewusst. Es gibt
das GitHub-Repository und es gibt einzelne wo Sie
im Grunde auch den
gesamten Code kopieren können. Sie müssen sich darüber überhaupt
keine Sorgen machen. Du hast alles
zur Verfügung, also keine Sorgen. Okay, also lass uns einfach anfangen. Das erste, was
wir brauchen werden,
ist, dass wir tatsächlich ein,
etwas im Artikelpaket benötigen , und das wird ein
neues Paket sein, altes Inventar. Dann werden
wir dort
eine neue Schnittstelle erstellen, aber genau hier eine
neue Java-Klassenschnittstelle. Dies ist das gesamte
implementierte Inventar. Und noch einmal, wie ich schon sagte, unser Kaviar, der
ganz
davon, der Ihnen natürlich alles
zur Verfügung steht, ist
in diesem eigentlich
nicht so interessant. Die allgemeine Idee ist
, dass vor allem
der Johannes von Juden und,
oder Gerechtigkeit, denke ich. Und das ist Public Domain. Also keine Sorgen, dass
wir es benutzen können. Aber immer noch
geht alles Kredit nur dafür, es ist eigentlich sehr nützlich das
implementierte Inventarjahr. Und die allgemeine Idee
ist, dass wir, wenn wir diese Schnittstelle in
unserer großartigen Brock-Entität
implementieren, grundsätzlich sehr einfach das Inventar
verwenden können , das damit verknüpft
ist. Aber das ist die allgemeine Idee. Wir werden
das einfach brauchen und werden uns das im Grunde nie
wieder ansehen , denn das ist fast
wie schon perfekt gemacht. Aber wir brauchen dort
nichts anderes bevor wir einfach in die Block-Entität
eintauchen, ich werde
Ihnen ein bisschen von der Theorie hinter
der Block-Entität zeigen . Und dafür werden wir
natürlich die PowerPoint-Folien
ausbrechen. Dies ist die allgemeine
Idee einer Block-Entität. Es gibt vier Teile. Es gibt die Blockklasse II, Block-Entitätsklasse, die
Screen-Handler-Klasse und die Bildschirmklasse. Was
hier sehr wichtig ist, ist, dass
die Blockklasse insgesamt wahrscheinlich
eine der einfachsten ist. Hier
klicken Sie mit der rechten Maustaste und dann passiert etwas in der Brock-Entität, weil die Block-Entität dann den Bildschirm-Handler
erstellt. Der Bildschirm-Handler
behandelt im Grunde den Bildschirm. Es klingt verrückt, aber die
Idee ist, dass hier
eine Trennung stattfindet,
weil die Bildschirmklasse, Lass uns hier anfangen nur Client ist. Okay, das bedeutet also, dass es buchstäblich nur dieses Bild
ist. Es gibt einige Nuancen. Natürlich können wir
die Fortschrittspfeile anzeigen. Wir können die Käufer
hier zeigen, solche Sachen. Ja. Aber es ist nur dieses Bild. Ich könnte das
Bild durch ein Bild
meines Gesichts oder ein Bild durch
einen Hund oder was auch immer ich will ersetzen . Und der Bildschirmhandler, wie die eigentlichen Slots hier, würden immer noch funktionieren. Sie müssen nicht so
aussehen. Das ist eine sehr wichtige Lektion , die Sie sehr brauchen, gut in Ihren Kopf kommen.
Es ist sehr wichtig. Dies ist nur der Bildschirm, das ist nur der Kunde,
nur dieses Bild. Jetzt
hat die
Bildschirmklasse hier jedoch einen Verweis auf
den Bildschirm-Handler. Und der Handler hat die
Slots im Inventar, wie Sie sehen können, indem Sie dies für das
Spielerinventar und die Hotbar
blau markieren können. Und dann, wie Violett
Pink, haben wir die, im Grunde genommen die benutzerdefinierten Slots mit dem Bildschirm
Handler auch, dass es Werte von
der Block-Entität, dem
Server und dem Client synchronisieren
kann . Das ist etwas, das
sehr wichtig ist und dass dies auch etwas ist, was
wir in der nächsten
Vorlesung
sehen werden, da dies sozusagen etwas
mehr Setup erfordert. Und wir werden es nur
speichern, indem wir zunächst eine normale
Blockeinheit
haben, die einige interessante Dinge tun wird . Aber das ist eine sehr,
sehr wichtige Sache. Und indem wir
diese Werte synchronisieren, können
wir sie dann
in der Screen-Klasse verwenden. Zeigen Sie beispielsweise den
Fortschrittspfeil hier richtig an. Das ist die allgemeine Idee. Jetzt die Block-Entität selbst, was diese enthält Daten und Funktionen für einen Block. Das ist die allgemeine Idee. Und dann kann es auch ein Inventar
haben. Denn dieses Inventar
wird, wie gesagt, vom Bildschirmhandler behandelt. Es gibt eine sehr enge Verbindung zwischen diesem und diesem. Und dann gibt es keine zu
enge Kopplung zwischen diesen beiden ist
im Grunde genommen eine Referenz. Dann hat es mit der Blockklasse
nur eine Referenz hier. Diese beiden
sind also definitiv enger verwandt. Es gibt eine etwas enge
Beziehung zwischen dem Bildschirm und
dem Bildschirm-Handler, da beide
Bildschirme im Namen
haben , um ein sehr guter Hinweis darauf zu sein , dass sie etwas miteinander
zu tun haben . Aber insgesamt ist das
die allgemeine Idee, das ist die allgemeine
Theorie dahinter. Es ist nichts zu verrückt, wenn irgendetwas hier ein bisschen
verwirrend ist , mach dir keine Sorgen darüber. Ich hoffe, dass ich es klären
kann, sobald wir das alles tatsächlich
programmieren. Aber wechseln wir einfach
zurück zur Intelligenz. Und jetzt machen wir die
eigentliche Block-Entität. also in unserem Blockpaket mit der rechten Maustaste auf ein neues
Paket namens Entity. Und dann müssen
wir drinnen die Klauseln kennen,
die Modussperre in dieser Klasse. Und dann auch das freie Kalzium. Gelächter Entität, oder?
Und da ist es. Dies wird also die Block-Entität
erweitern. Und es wird das mit dem benannte Screen-Handler Factory Komma
implementiert Inventar implementiert, das wir bereits gemacht haben. Lassen Sie uns den Mauszeiger darüber bewegen, sagen Sie Methoden
implementieren und sagen:
Okay, ich werde den
Mauszeiger noch einmal über den Mauszeiger
erstellen, der super
passt. Und jetzt
sollten wir damit zufrieden sein. Die GetItems hier können
Sie also null sehen. Nun, wir können dies
sehr einfach ändern , da wir
jetzt
eine private,
endgültige Standardliste mit Items hinzufügen eine private,
endgültige Standardliste mit Items ,
mit der Inventar
genannt wird. Und das entspricht
einem Standardwert,
einer Liste der Größe vier mit
Elementstapelpunkt AMD. Und das wird unser Inventar
sein. Das werden unsere vier Slots
sein. Es ergibt also Sinn. Und wir können
das einfach hier zurückgeben. Also Inventar, gib es einfach zurück. Und das sollte
für den Anzeigetext in Ordnung sein. Dies ist der Text, der oben auf der Benutzeroberfläche
angezeigt wird. Wir sparen
vorerst neuen wörtlichen Text. Oder es kann Blaster kommen,
das wird gut werden. Das ist total okay. Im Menü Erstellen müssen
wir also tatsächlich
einen Screen-Handler bereitstellen , wie Sie sehen können. Nun, was ich
tun werde, ist, dass ich das
absichtlich zu einem
Fehler machen werde, denn sonst
werde ich es wahrscheinlich vergessen,
denn wie gesagt, es gibt eine Menge Sachen,
die wir hier tun müssen. Obwohl. Deshalb mache ich das
gezielt und irrtümlich. Wir werden
den Kunden sowieso keine ganze
Weile betreiben , also Lärm dort. Was wir dann auch tun
mussten, ist, dass wir den
ersten Parameter
hier oder den anderen Konstruktor löschen
müssen . Und dann müssen wir den Rest
der MOD-Blockentitäten erledigen. Und was wir tun werden,
ist, dass wir
einen öffentlichen statischen Block, einen
Typ des
Entitäts oder eine Neukalk und eine
Explosionsmiete sagen einen öffentlichen statischen Block, einen Typ des
Entitäts oder eine Neukalk und . Wir
werden dies
den
Orakel-Einkommens-Unterstrich-Blaster nennen . Jetzt werden wir das nicht wirklich irgendetwas
zuweisen, denn was wir
tun werden, ist, dass wir
eine öffentliche statische, ungültige
Registrierung haben , alle Entitäten
wie diese genau. Was ich dann tun werde, ist, dass
ich das kopiere und ich bin bereit zu
erklären, während wir weitermachen. Also was ist das? Wir
rufen also die Registrierung auf, die sich für den
Blockentitätstyp registriert. Das sollte alles ziemlich
selbsterklärend sein mit einer neuen Kennung von Armada D
und das Orakel kann blaster. Okay, und dann werden
wir
den absoluten
Block-Entity-Typ-Builder bei
Creat aufrufen den absoluten
Block-Entity-Typ-Builder bei , mit dem Oracle kann
explodieren oder
Entity-Doppelpunkt, der Doppelpunkt wusste, nun, das
wird
einen neuen oder einen Pelikan erstellen blaster-Entität, und dann wird dies einem bestimmten Block zugewiesen
. Dieser Block ist der Block, dass
diese Entität ihm zugewiesen wird, wenn
Sie mit der rechten Maustaste darauf klicken. Und wir
müssen tatsächlich auch etwas
in der Blockklasse
selbst ändern . So kann das Orakel die Klasse
sprengen oder blockieren. Wir müssen auch da drin
ein paar Sachen ändern . Aber vorerst werden
wir damit einverstanden sein. Und ich
werde das eigentlich ein
bisschen anders machen .
Das ist okay, das ist in Ordnung. Und dann
muss diese
Register-All-Entitäts-Methode in der Modus MC-Kurse mod-Klasse aufgerufen werden . Aber das ist auch sehr wichtig. Wir werden das einfach hier
nennen. Also blockiere Entitäten, ich habe eine Entität registriert,
also ist es sehr wichtig, sonst bekommen wir
keinen Pfeil, aber es wird nicht in der Lage sein, die Daten richtig
zu speichern. Deshalb
werden wir das brauchen. Und statt des
Typs, den wir nicht haben, können
wir mehr Bucheinheiten sehen
, die Oracle blastern kann. Und jetzt sind alle Pfeile
außer dem , den ich haben möchte, weg. Und wir können im Grunde
damit fortfahren,
die breite Klasse zu öffnen , die das
Orakel explodieren oder blockieren kann. Jetzt haben wir hier bereits
Dinge gemacht, die völlig unabhängig
von allem sind, was wir haben. Im Grunde genommen ist die
Direction-Eigenschaft und all das, wir kümmern uns nicht wirklich
darum in dem Sinne, dass Sie
auch einen Block haben können , der diese Dinge nicht
hat, oder? Diese sind
unabhängig voneinander. Aber was wir
tun werden, ist, dass wir den Block
um die
Entitätsklasse erweitern und die Schnittstelle
des
Block-Entitäts-Anbieters implementieren . wir mit der Maus über diese
Implementierungsmethoden. Verwenden Sie die Create Block
Entity -Methode, die wir hier implementieren müssen. Und dann wird der Rest völlig
in Ordnung sein. Jetzt haben wir das, was wir
tatsächlich schon tun können, aber hier werden
wir einfach sagen, dass neu oder eine Kuh explodieren oder eine Entität mit
einer Position im Staat sprengen
kann. Und dann ist das schon genau hier
gemacht. So
einfach kann das eigentlich sein. Muss auch getan werden
, wenn wir eine API über den Rendertyp durchführen müssen . Also
kopiere ich einfach diese Methode. Sie müssen die Methode zum gerenderten Typ überschreiben. Denn wenn Sie diese Klasse
überschreiben, können
Sie sehen, dass sie unsichtbar ist. Ich bin mir nicht sicher, ob
es aus irgendeinem
Grund der Fall ist, dass wir dies nur außer Kraft setzen
müssen. Das ist okay. Was ich dann auch überschreiben
werde, ist die On-State-Ersetzungsmethode
mit einigen Dingen hier drin, wie ich bereits erwähnt habe, der
gesamte Code
steht Ihnen
im GitHub-Repository oder in zur Verfügung
genauso gut individuell. Keine Sorge, das kannst du auch
alles kopieren. Und diese Methode ist eigentlich
wirklich, wirklich verdammt cool. Es gibt, dies wird einfach alle Erkenntnisse, die das Orakel sprengen oder
die
Entität nur auf den Boden
werfen kann. Das ist also im Grunde das,
was das tut, ist wirklich
verdammt cool. Und ich empfehle
nur dringend, dies auch zu verwenden, denn das lässt
sofort das
gesamte Inventar fallen , wenn
Sie den Block zerstören. Und dann gibt es natürlich
noch eine Sache, und das sind die US-Methoden. Also wie die Rechtsklick-Methode , wenn ich das auch hier ablege. Sie können also sehen, dass ich im Grunde genommen sagen werde, hey, wenn ich auf dem Fluss bin, dann werde
ich sagen: Hey, erstelle eine neue
Bildschirmhandler-Fabrik. Und solange dies nicht null ist, kann ich den
behandelten Bildschirm öffnen. Und das bedeutet, dass Dinge in Bewegung
den Bildschirm-Handler über
die Block-Entität anheben den Bildschirm-Handler über
die und
so weiter und so weiter. Und dann öffnet
es im Grunde den Bildschirm, aber das sind die wichtigsten Methoden
, die wir brauchen werden. Dann gibt es noch eine weitere Methode
, die wir benötigen, und das ist die
Get Ticker-Methode. Aber das ist der
Ticker genau hier. Ich werde nur Ticker kriegen. Dann können Sie sehen, was
ich tatsächlich
zurückgeben werde , ist, dass ich den Prüftyp, den
Hype und die nicht markierten
Blockentitäten
zurückgeben werde, nicht den Neukalk-Blaster. Und dann werde ich sagen oder RCA Complex Entity
Colon, Doppelpunkt Häkchen. Nun, das
haben wir natürlich noch nicht , weil wir keine Tick-Methode in unserem
Oracle
haben kann explodieren oder Entität, aber das
werde ich auch hinzufügen. Dies ermöglicht also im Grunde die Tick-Fähigkeit für
Ihre Block-Entität. Nehmen Sie also, Sie haben wahrscheinlich
gehört, dass dies eine 125 Sekunden ist
und im Grunde genommen ständig
erledigt werden, oder? Also jedes Häkchen, also jede 125 Sekunde, kann
etwas passieren. Und
genau das wollen wir innerhalb unseres Unternehmens
tun. jedem Häkchen können wir
jetzt etwas tun. Und so wie
wir das machen werden, kopiere
ich
über 1234 Methoden. Das ist also einmal die öffentliche
statische Void-Tick-Methode und dann drei benutzerdefinierte
Methoden, die benötigt werden, um zu
demonstrieren, wie Sie
beispielsweise etwas herstellen können . Dies ist ein grobes Beispiel,
denn in der nächsten Vorlesung werden
wir benutzerdefinierte
Rezepturzivilisation
und Kunden zufriedene Typen machen, um und Kunden zufriedene Typen im Grunde zu
sagen, dass wir
JSON-Dateien für unsere
eigenen erstellen können wie Maschine, für unsere eigene Block-Entität, was wirklich cool ist. Aber vorerst werden
wir dies
nur nutzen, damit wir hier
irgendwelche Funktionen haben. Und Sie können jedoch sehen,
also hat die Tick-Methode hier vier Parameter, Weltposition, wir
haben den Staat und wir haben die Entität selbst. Was wirklich cool
ist, ist,
dass die Entität im Grunde genommen
Zugang dazu haben und
damit tun können , was wir wollen. Du kannst sehen, was ich mache
ist, dass ich sagen kann, Hey, hat
kein Rezept und
hat dieses Limit nicht erreicht. Und dann stelle ich hier
den Gegenstand her, der irgendwie die allgemeine Idee ist. Und was ich hier machen werde, können
Sie sehen,
dass ich einfach den ersten Stapel, den Stapel aus
dem Slot 0, von Stopps Los eins
und
von Slot zwei
entfernen werde ersten Stapel, den Stapel aus
dem Slot 0, von Stopps Los eins
und
von Slot zwei
entfernen aus
dem Slot 0, von . Und dann schicke ich
den Stapel in Slot 3 an das Oracle kann hier x auswählen und ich bekomme die gleiche Zählung. Also werde ich einfach die Zählung
erhöhen. Das ist eine allgemeine Idee.
Und dann müssen
wir hier eigentlich drei reinlegen. Das ist also genau dort sehr
interessant. Was ist dafür erforderlich? Nun, im ersten Slot
muss ich Splitter angerufen haben, und den zweiten Slot brauche
ich eine goldene Spitzhacke. Und im dritten Slot oder
im Slot mit Index zwei muss
ich einen Orakelbarren
haben. Das ist die allgemeine Idee. Und wenn all das stimmt
und der Stapel das Limit
nicht erreicht hat,
können wir den Gegenstand herstellen und
wir werden dann den Sparren herstellen,
der Gegenstand wird in Handarbeit hergestellt. Jetzt wird
das
in der nächsten Vorlesung ähnlich aussehen , aber
ein bisschen anders. Denn wieder einmal ist dies nur eine sehr grobe Art, alles
hart zu codieren. Und ich verspreche dir, dass du das
definitiv nicht machst. Dies ist
momentan nur ein Beispiel für diese Vorlesung, damit Sie jede Funktionalität
sehen können. nächsten Vorlesung
werden wir es richtig machen. Es gibt sehr schön mit der Rezeptserialisierung, die
ich wärmstens empfehlen kann. Deshalb sagte ich, schau dir beide Vorträge sofort
nacheinander an, denn es wird
viel besser sein, oder? Aber größtenteils wird
die Block-Entität
vom Screen-Handler gemacht , hier ist das Letzte, was
wir tun müssen. Dafür brauchen wir
tatsächlich den Bildschirmhandler
und den Bildschirm. also im MC-Kurspaket mit der rechten Maustaste auf neues
Paket namens screen. Und dann werden
wir da drinnen eine
ganze Reihe von Sachen erschaffen. Nun, die Modus-Bildschirm-Handler,
das ist der erste. Und dann wird der
zweite
der Recalc-Blaster-Bildschirm sein . Und dann wird es den Ergebnisblaster
im Handler
geben . Und das wird gut werden. Und wir werden
uns zuerst
den Bildschirm-Handler ansehen . Das wird
das wichtigste, eine der interessantesten sein. Noch einmal werde ich tatsächlich die gesamte Klasse
kopieren und wir werden es Stück für Stück
durchgehen. Keine Sorge da, oder?
Da haben wir es also. Und wir werden ein paar
Pfeilsatz haben, keine Sorge, denn natürlich müssen
wir
den Oracle-Bildschirmblaster setzen . Dies ist ziemlich
dasselbe, was
wir für
die Block-Entität tun mussten, genau dort, wo wir jetzt
auf diese verweisen, anstatt
nur den Typ
aus dem Parameter zu erhalten. Und was Sie auch sehen werden, ist dass es hier zwei Slots
gibt, die
aus irgendeinem Grund gut gelesen werden, sind benutzerdefinierte Slots. Ich werde die auch
kopieren. Obwohl. Es sind wirklich, sehr häufige Symbole,
wie Sie sehen können, dieses ist sehr einfach. Und dann sind die Ergebnisse dass der wenige Slot
auch sehr einfach ist. Und dann können wir
diese tatsächlich in das, ins Ego importieren . Und das werde ich auch
in einem Moment erklären. Aber was macht der
Bildschirm-Handler insgesamt? Nun, im Grunde überprüfen
wir die Größe
Hayes die Größe, richtig? Nun, es müssen tatsächlich
vier sein. Das ist also sehr interessant. Und wir sagen im Grunde: Hey, das hat all das Zeug
, das wir tun müssen. Stellen Sie einfach die Felder hier ein, das Inventar, die Welt. Wir brauchen die
Welt noch nicht. Vielleicht brauchen wir die
Welt in einem späteren Vortrag. Und dann fügen wir unsere eigenen Slots hinzu. Und so fügen wir sie hinzu,
diesen Punkt-Punkt-Punkt-Slot, und dann erstellen wir einen neuen Slot. Und Sie können sehen, dass ich
hier einen neuen Motorkraftstoffschlitz denn hier
möchte ich eigentlich nur , dass Kraftstoff eingelegt wird. Und dann ist es
mir in diesen Slots wichtig. Und dann ist dies
der Ergebnis-Slot. Ich möchte auch nicht, dass der Spieler
Dinge dort platziert, nur die Kacheleinheit oder der
Screen-Handler im Grunde genommen. Das ist sehr einfach.
Dies überschreibt nur die kanonische bestimmte Methode genau hier und den Mod-Brennstoffschlitz, ich habe eigentlich das meiste
davon aus dem Brennstoffschlitz
aus dem abstrakten Ofen
genommen . Aber du weißt, als
Idee oder im Grunde, aber das ist so ziemlich
alles, was du tun musst. Die Indizes zählen natürlich
einfach auf, oder? 0, 1, 2, 3. Es wird auch ziemlich
selbsterklärend sein. Und dann das x und y hier, das wird
etwas sein, das sehr interessant
ist, denn dies sind die Koordinaten von
der oberen linken Ecke 000 bis zum Ort, an dem der Slot befindet
wird auf der eigentlichen Benutzeroberfläche sein. Ich kopiere
die GUI, die
im Texturen-Ordner steht , eine GUI. Und dann ist dies das
Orakel kann explodieren oder GUI. Und ich öffne das. Und was ich im Grunde
erklären werde,
ist , dass es wie folgt funktioniert
. Wenn ich das zum Beispiel
mache, oder? Das siehst du. Das siehst du, oder?
Also hier ist 0, 0, wir zählen runter. Und dann werden wir
nach rechts kommen. Und dann
ist dieses Pixel genau hier das , was wir für diesen Slot brauchen. Und du siehst, dass es genau
18 nach rechts und 50 nach unten ist. Das ist die allgemeine Idee. Wenn Sie Photoshop haben oder GIMP oder Paint.net haben, können
Sie normalerweise das Auswahl-Tool verwenden, um zu sehen, wie weit das entfernt ist, und Sie
müssen es einfach zählen. Nur so funktioniert das wirklich, ist sehr nervig. Es kann sehr nervig sein,
aber es ist einfach was es ist. Und dann haben wir diese
beiden Hilfsmethoden, die auch
Inventar und
Spieler-Hotbar genannt werden . Nun, die sind einfach
schöner zu lesen, als dieses
Zeug
nur einmal da drin zu haben. weiß nicht, dass ich
verstehe, warum das nicht auch in Vanille
gemacht wird. Weil in Vanille nur dieses Zeug
ist. Genau wie in
den Konstruktor gesteckt. Ich bin wie, okay, das ist komisch. Dann
ist die transversale Lot-Methode etwas, das wir uns einfach überhaupt nicht ansehen
werden. Dies ermöglicht es uns nur, bei
gedrückter Umschalttaste auf einen Stapel in diese Blockentität
in unsere benutzerdefinierte
Entität zu klicken . Wann immer wir uns das
nicht ansehen werden, weil
das eigentlich verdammt verrückt ist. Dies ist die schlechteste
Methode, die ich je gesehen habe. Ich will einfach
nichts damit zu tun haben, also spielt es keine Rolle. Wir werden nur sagen,
danke, dass das funktioniert
und alles gut ist, wir können Methode verwenden, die
im Grunde nur sagt:
Hey, können wir das benutzen? Das ist so ziemlich genau das. Wenn der Spieler zu weit
weg ist, so etwas. Das ist alles, was
dies auch tut. Gehen wir nun zu
den Bildschirm-Handlern und legen wir das einfach hier rein. Es wird eigentlich
ziemlich einfach sein. Es ist nur ein öffentlicher statischer
Bildschirmhandler-Typ
vom Typ oder ein
Blast- oder Screen-Handler. Erzählen Sie den Unterstrich Blast oder Unterstriche Bildschirm
Unterstriche Handler. Handler. Da gehst du. Ist gleich mit einer
Screen-Handler-Registrierung, grünen Handler, einer Registrierung, einer
Registrierung sie vor. Und das wird
einfach sein, aber das ist sehr wichtig mit einer neuen Kennung von
C Corps Mod, Mod ID. Wieder einmal
kommen alle Recalc auf ihren Punkteblaster. Und nach den
ersten Klammern werden
wir Recalc und
Blaster Screen Handler,
Doppelpunkt, Doppelpunkt neu sagen und
das mit einem Semikolon beenden. Das ist alles, was wir hier brauchen. Wieder einmal ist
der Code natürlich auch verfügbar. Sie können dies auch überschreiben. Jetzt um nicht alles auszuschreiben. Hier im Screen-Handler können
wir sehen, dass sich die Ära gelöst hat. Jetzt in der Gips-Entität können
wir
diesen Pfeil auch hier endlich auflösen. Wir können einfach sagen, dass dies ein neuer Rekord sein
wird, der mit
der Sinken-ID, dem Inventar,
sprengen kann . Und dann das als Inventar, denn dies ist natürlich
ein implementiertes Inventar. Deshalb können wir
es einfach in unserer eigenen Blockeinheit übergeben. Und dann können wir
die Block-Entität schließen. Wir können das schließen. Wir können das schließen. Und dann
ist nur der Bildschirm übrig und der Bildschirm ist, wie gesagt,
so ziemlich genau das Bild. Jetzt ist es natürlich eine
kleine Übertreibung. Es ist ein
bisschen mehr dran. Ich kopiere das auch und erkläre
es dir. Insgesamt können Sie also
sehen, dass dies
ein Handle-Bildschirm von
Oracle ist ein Handle-Bildschirm von , der
ihren Bildschirm-Handler gesegnet hat, sehr wichtig, dass dies ein behandelter Bildschirm
ist. Es zeigt auch auf die
Textur, die Sie sehen können. Dies ist ein Bezeichner,
der auf die Textur-GUI oder eine
Calciumblaster GUI PNG verweist, die auch übereinstimmen muss. Und dann
zeichnen wir im Grunde die Textur genau hier und in den
Draw-Hintergrundmethoden. Im Grunde genommen zentriert dies
den Titel nur in der Mitte
der Block-Entität. Und dann rendert die Render-Methode
einfach den Hintergrund, auch
die Tooltips. Und diese Draw-Textur-Methode wird sehr interessant sein, besonders in der nächsten Vorlesung, in der wir
den Feuerfortschritt hinzufügen und der
Pfeilfortschrittsbalken dies tut. Dies ist es, was Sie im Grunde aufrufen müssen um dem Bild mehr Dinge
hinzuzufügen, um mehr auf das Bild zu zeichnen. Denn wenn wir uns
das ansehen, haben
Sie tatsächlich das Feuer hier und den Pfeil genau da. Und das müssen wir darüber
überlagern und die
Größe davon
im Grunde genommen erweitern, sagen
wir zum Beispiel den
Fortschritt. Das ist also die allgemeine Idee hier. Aber vorerst zieht
diese, richtig, die Zeichnungstextur mit x, y, 000 Hintergrundbreite,
Hintergrundhöhe
im Grunde nur die Zeichnungstextur mit x, y,
000 Hintergrundbreite,
Hintergrundhöhe
im Grunde nur das
gesamte Team des Goo hierher. Das ist die allgemeine Idee. Abgesehen davon müssen wir auch eine Sache im MC-Kurs
nennen, konforme Methode
oder vielmehr Klasse. Und das wird
die Bildschirm-Registry sein, die
Registrierung, die sich bei
den Modellen als Handler Dot oder Malcom
im letzten Jahr registriert Schweden-Handler und der
Calciumblaster-Bildschirm
Doppelpunkt, Doppelpunkt neu ist sehr wichtig, dass dies der Bildschirm im zweiten Parameter sein
wird und
die Modusbildschirm-Handler grundsätzlich
in der ersten referenzieren. Sehr wichtig
kann manchmal wieder etwas
verwirrend sein, aber das ist die grundlegende
Art und Weise, wie es sein muss. Und dann
sollte alles richtig eingerichtet sein. Und sie meinen diesen Punkt, Mal sehen, ob es funktioniert. Oder du findest uns
wieder in Minecraft. Und wie Sie sehen können, sehen wir
einfach, was passiert. Es gibt das
Recalc und Blaster, und Sie können sehen, dass alles
immer noch gut funktioniert. Wir können das sogar umschalten,
das ist noch besser. Das ist ziemlich cool. Nun, sagen wir einfach das, wenn wir versuchen,
etwas anderes hier reinzulegen , funktioniert
es nicht. Das Kursniveau
funktioniert jedoch, weil es verursacht Leber ein Brennstoff ist,
daher funktioniert es. Und dann
können wir hier auch nichts einfügen. Lassen Sie uns einfach
eine sehr einladende und unten eine
Spitzhacke oben setzen. Und dann könnte hier eine Zusammenfassung
auswählen x erscheinen. Und da ist es, es hat
tatsächlich funktioniert. Ich bin mir nicht
hundertprozentig sicher, ob sie immer noch ein Pfeil
damit sind. Nein, das gibt es nicht. Das funktioniert alles. Und das funktioniert
auch nicht, weil das Stack-Limit hier erreicht
wurde. Also können wir noch einen hinzufügen, und sobald ich es entferne, wird
der andere hinzugefügt. Obwohl. Das Orakel kann explodieren funktioniert
im Grunde schon. Natürlich
feuert es hier nicht und es gibt derzeit
keinen
Fortschrittsbalken. Das ist es, was ich sage. Grundsätzlich ist es
definitiv nicht ratsam,
alles hart codiert zu machen und solche Sachen zu machen. Es ist nur ein Weg, den man tatsächlich sehen
kann, hey, es funktioniert tatsächlich
und alles hier ist, naja, tolles Ende
funktioniert gut, oder? Eine weitere Sache, die wir der Explosion
oder Entität hinzufügen müssen , sind zwei
Methoden, die sehr
wichtig sind , um
das Inventar zu retten wenn die tatsächliche Welt gesund wird, wenn Sie die Welt verlassen und das wird
die richtige NVT und eine Read-NVT-Methode sein. Und Sie können sehen, dass
an den Vorräten richtig fleischig
sind als Vorräte lesen und
leer lesen. Da gehst du. Das wäre also
tödlich gewesen. Nun, da gehst du. Das ist also im Grunde
das Inventar, oder? Mit schreibt
hier nur die Standardlisten des
Inventars in die NVT-Daten und dann liest die rote sie
einfach aus. Das ist also die Grundidee hier. Und das ist sehr
wichtig, dass wir das auch nennen, da sonst, wenn wir die Welt schließen, das Inventar nicht spart. Das ist also die allgemeine
Idee dort, oder? So
habe ich zum Beispiel gerade 62 Anruflibern hier drin. Nun,
schließen wir einfach die Welt. Und lass uns einfach wieder da
rein gehen. Und mal sehen, ob
die Kohlesplitter bleiben und sie immer noch da sind. Und da sind sie
62 Verliebte, Los
geht's. Alles wurde gerettet. Wie ich schon sagte, dies ist ein
sehr verworrenes Thema und es gibt viele
bewegliche Teile hier drin. Der Spickzettel steht Ihnen als
Download
zur Verfügung, und
natürlich haben Sie das
GitHub-Repository und genau dort, wo Sie sich
im Grunde alles
ansehen können , was Sie gehen um hier hinzufügen
zu müssen. Und insgesamt wird
es einfach so sein,
es ist genau so, wie es ist. Die Entität
der
Blockentitäten ist also einfach sehr
kompliziert und Sie müssen
nur durchsetzen und einfach versuchen,
jeden Teil davon zu verstehen. Hoffentlich konnte ich das
grundsätzlich erleichtern,
was auch immer der Fall sein mag. Das ist es für diese
Vorlesung genau hier. Ich hoffe, Sie fanden dies nützlich
in den Erfahrungen des Neuen, wenn Sie
es sehr schätzen, bewerten Sie von Ihnen. Ansonsten sehe ich dich
in der nächsten Vorlesung. Oh ja.
87. (Fortgeschrittene) Benutzerdefinierte Recipe: Alles klar, willkommen zurück
beim Stoffkurs für 118. In dieser Vorlesung werden
wir einen Blick darauf werfen, wie
Sie einen angenommenen
Rezepttyp Minecraft a hinzufügen können. Früher haben wir
unsere Recalc und
Blaster kaputt gemacht . Und ich habe dir gesagt, dass es eine sehr
grobe Art ist, genau hier zu basteln. Denn was wir wollen, ist, dass
wir in der Lage sein wollen,
normale Rezept-JSON-Dateien oder
unsere Blaster-Entität zu verwenden . Dies wird es nicht nur besser
machen, weil wir hier nicht alles fest codieren
müssen. Und dann auch, und
das ist noch besser. Es ermöglicht beispielsweise mehr
Pack-Herstellern, benutzerdefinierte Rezepte für
unsere Lock-Entität und
solche Dinge hinzuzufügen . Also werde ich noch einmal einen
Großteil des Codes
kopieren. Das
steht Ihnen also alles
im GitHub-Repository oder auch
in den Juristen zur Verfügung. Sie haben also alles
zur Verfügung
und ich werde es Ihnen erklären,
während wir weitermachen. also im MC-Kurspaket mit der rechten Maustaste auf ein neues
Paket namens Rezept. Und dann brauchen
wir drinnen zwei Klassen, unsterbliche
Rezepte. Und dann
kommt auch die Nachzählung zuletzt oder Rezept. Und wir werden damit
beginnen, die Gesamtheit der
Blaster-Atemkosten zu kopieren . Jetzt werde ich das noch einmal durchgehen
und ich werde erklären, es hier keine
Fehler geben sollte. Zuallererst können
Sie sehen, dass dies das Rezept
des einfachen Inventars implementiert . Dies
ist einfach sinnvoll
, weil ein einfaches Inventar so ziemlich nur das einfache Inventar
ist. Sie können sehen, dass es drei Felder
gibt. Es gibt eine Ausgabe, es
gibt eine Standardliste
von Zutaten, die die Rezepturartikel sind. Dies sind die Eingaben und
es gibt auch einen Bezeichner. Dies ist im Grunde
der Name, den Sie in Ihrer JSON-Datei haben
können, aber
das werden wir in einem Moment sehen. Der Oracle kann also
rezeptkonstruktor explodieren, nimmt genau die drei
verschiedenen Parameter , die Sie als Felder haben. Das ist sehr wichtig.
Und dann gibt es eine sehr wichtige Methode und
das ist die Match-Methode. Nun
nimmt die Match-Methode,
wie Sie sehen können, in das Inventar und Sie können auch die Rezeptartikel abrufen. Also die Rezeptelemente, dies ist
die Liste, die aus der JSON-Datei eingelesen wurde , was
bedeutet, dass Sie
in jeder Liste
Zutaten oder Elemente
in Ihrer JSON-Datei haben . Diese werden hier drin gerettet. Und was das versucht ist,
dass
es sagen wird, hey, das ist die erste Zutat
in unserer Liste, wie aus der JSON-Datei, die
mit dem Stapel im
Inventar übereinstimmt. Wenn das der Fall ist, werden
wir fortfahren wenn dann der nächste mit dem
übereinstimmt, mit dem Stapel und dem
Inventar des zweiten Slots. Dafür werden wir
dies auch zurückgeben, was hoffentlich zutreffen wird
, dann
bestimmt im Grunde genommen, ob ein Rezept
im Inventar vorhanden ist oder nicht .
Das ist sehr wichtig. Dies ist also eine
der wichtigsten Methoden, die sehr wichtig
ist. Aber auch wenn Sie
ein größeres Inventar haben, wenn Sie mehr Slots haben, in die
Sie Dinge stecken müssen. Dies ist der Teil, in dem Sie die Funktionalität definieren müssen . Im Grunde wird dies
die Sache sein , die am Gewohnsten ist. Wenn Sie Ihre
benutzerdefinierten Rezepte
oder benutzerdefinierten Rock-Entitäten erstellen , wenn sie
im Grunde genommen
völlig anders aussehen, wenn sie vielleicht 12
verschiedene Slots haben und dann bestimmte Dinge setzen müssen in bestimmte Slots
und solche Sachen. Dies ist im Grunde
die Methode, bei der das
meiste davon das sein wird das die Funktionalität
programmiert ist , in
das die Funktionalität
programmiert ist,
wie implementiert. Und es ist sehr, es ist sehr
schwer, wirklich durchzustehen, okay, wie man alles
auf jede andere Weise machen muss . Wieder einmal, hier, an diesem
Punkt, Java-Wissen, wenn Sie
es nicht haben, werden Sie wahrscheinlich für immer verloren
sein. Ähm, das ist nicht, das ist sehr, sehr komplex und ich bin mir sicher, dass Sie das an
dieser Stelle schon
herausgefunden haben . Genau dies
wird hier sehr interessant sein. der Tat ist
der Rest der Methoden eigentlich nicht so interessant. Du für die
Handwerksmethode, wir nur, der Output Fitts stimmt einfach. Ausgabe abrufen ist nur eine Kopie
der Ausgabe, der Bezeichner. Wir kriegen einfach einen Ausweis, der das Edim dreht. Und dann kommen wir zu
interessanten Sachen und das ist der Rezept-Serializer
sowie der Rezepttyp. Weil wir sehen können, haben wir hier
zwei statische Klassen, die Typenklasse und
die Serializer-Klasse. Und das war eigentlich
nur
ungeheuer zu helfen, weil sie uns einfach
das Leben erleichtern. Weil wir hier
die Instanz des Typs
sowie den Serializer haben. Und wir können diese
beiden Methoden
hier einfach fragen , wo die Typklasse nicht so interessant
ist. Die Serializer-Klasse, die Sie sehen können hat
tatsächlich drei Methoden. Das ist die Read
-, Lese- und Schreibmethode. Also lasst uns
die auch durchgehen. Das erste, was hier ist,
diese Zeichenfolge genau hier, der Name, den sie in
der JSON-Datei geben
muss . Sehr wichtig. Das werden
wir in einem Moment sehen. Aber das ist sehr wichtig, dass dies natürlich dort übereinstimmt. Und dann haben wir die
Lese-Methode hier. Dies ist die Lese-Methode
aus einer JSON-Datei. Das wird also aus einer JSON-Datei eingelesen
, und Sie können das sehen. Das liest also zuerst
die Ausgabe hier. Und es wird in einem
angrenzenden Bereich
der Zutaten lesen . Und dann wird es
noch einmal
eine Standardliste von Größe 2 erstellen. Jetzt könnte man sagen, warte, aber
wir haben vier verschiedene Lose. Ja, aber wir haben nur
zwei Eingabesteckplätze. Wir haben einen Kraftstoffsteckplatz für
Eingangssteckplätze und einen Ausgangsschlitz. Und deshalb
gibt es nur zwei Jahre, denn die Eingaben
gibt es nur zwei Eingaben. Jeder irgendein, in jedem Rezept. Grundsätzlich werden
wir diese Eingaben einfach richtig einstellen. Und dann machen wir gleich hier
ein neues Rezept. Und das Gleiche
passiert ziemlich mit der anderen Lese- und Schreibmethode, die
wir am Paketpuffer verwenden. Das funktioniert also alles über
das Jahr des Netzwerks. Was hier sehr
wichtig ist
, ist , dass wenn wir Sachen schreiben, oder? Sie können sehen, was ich mache
ist, dass ich
eine ganze Zahl mit der Größe
unserer Zutatenliste schreibe . Dann schreibe ich jede
der Zutaten und schreibe dann die Ausgabe. Diese Reihenfolge muss hier
genau dieselbe sein. Sie können also sehen, dass ich eine ganze Zahl lese ,
die diese sein wird. Dann lese ich jede der
Zutaten und bin fertig. Und dann lese ich die Ausgabe, aber die Reihenfolge, in der
Sie sie für
den Paketpuffer schreiben , muss der Reihenfolge
entsprechen, in der
Sie sie gelesen haben. Du machst dort einen Fehler. In der Entwicklungsumgebung werden
Sie eigentlich
nichts sehen , was mit
Ihnen nicht stimmt, werden Sie sehen. Etwas, das nicht stimmt, ist,
sobald Sie es auf
den Server legen und
versuchen, dem Server beizutreten, wird dies nicht mehr funktionieren. Sehr wichtig, sehr wichtig dass man das im Hinterkopf behält, dass hier alles passt. Und das
ist so ziemlich der Rezeptbus für Ihr Kundenrezept. Es gibt natürlich eine Menge
Dinge, die du ändern könntest, oder? Wenn du sagst, Hey, habe ich tatsächlich
mehrere Ausgänge. Natürlich könntest du das ändern. Man kann sagen, Hey, ich habe
eigentlich nur eine Eingabe oder habe
noch mehr Eingaben, oder du kannst, das ist alles. Es gibt etwas, das wir sind. Wahrscheinlich ist Java das, was dich
zurückhält, weil meiste von diesem Zeug
so ziemlich nur normales Java-Zeug ist. Es gibt fast nichts
hier, was Minecraft sagt. Das einzige, was Minecraft
sagt, ist im Grunde Item Stack. Aber das ist etwas, das
Leute, die viel Java kennen, aber nicht viel Minecraft
wahrscheinlich immer noch sehr, sehr schnell
herausfinden könnten . Das ist also etwas, das ich
wirklich nach Hause fahren möchte. Im Grunde ist es vorbei, als wäre der Spielplatz zu diesem Zeitpunkt
nicht mehr. Wir sind wie Indeed und ja, es ist einfach das, was es sein wird, aber wir werden einfach
weitermachen und das wird in der Rezeptklasse sein. Und ich werde das auch
kopieren. Das ist eigentlich sehr
einfach. Sie haben nur eine Registrierungsmethode und Sie können zuerst
sehen, dass wir Schublade sind, wir registrieren den
Rezeptserializer mit der ID vom
Serializer und dann der Instanz und dann
dem Rezepttyp. Es gibt auch die Idee
des Typs und dann der
Instanz des Typs. Das ist also auch
ziemlich einfach. Und diesen müssen wir
tatsächlich
innerhalb der
MC-Kurse MOD-Klasse anrufen . Und wir werden das nennen. Lass es uns gleich hier machen. Mod-Rezepte, nicht registrieren, dass du dafür gehst, dass wir
das genannt haben, das ist sehr wichtig. Und dann können
wir beide Klassen tatsächlich schließen, weil
wir mit ihnen fertig sind. Und wir können dann fortfahren, mit dem Unternehmen
fortzufahren. Wir haben das schon hier geöffnet. Und jetzt wird
das sehr interessant sein, ob wir die Entität hier hauptsächlich
neu schreiben werden. Denn was wir
hinzufügen werden, ist, dass wir einen Eigenschaftsdelegaten hinzufügen werden. Also werde ich das noch einmal kopieren,
all
dies steht
Ihnen zur Verfügung und Sie können sehen, dass wir
einen geschützten endgültigen
Eigentumsdelegierten haben und dieser wird erstellt
oder sagen wir ja, erstellt innerhalb von
der Konstruktor. Also
kopiere ich das auch. Sie können sehen, dass dieser
Eigenschaftsdelegat einem neuen
Eigenschaftsdelegaten entspricht. Und dann haben wir
Switch-Anweisungen die sich auf
den Fortschritt, den maximalen Fortschritt, die Kraftstoffzeit
und die maximale Kraftstoffzeit beziehen den Fortschritt, den maximalen Fortschritt, die Kraftstoffzeit . Die allgemeine Idee ist, dass wir diese vier Ganzzahlen oder
diese vier Datenpunkte
haben , die wir an
den Screen-Handler weitergeben
möchten. Und dann später zum
Bildschirm, damit wir den Fortschritt
und auch den Treibstoff
anzeigen können . Nun, im Grunde genommen in der Menge an Kraftstoff, die noch brennt. Dies wird also noch einmal
etwas
komplizierter, da wir dies
in einem Eigenschaftsdelegaten tun müssen da dies
auf dem Server und dem Client gespeichert werden muss . Denn wieder einmal ist der
Bildschirm nur Client und der Rest ist im Grunde
sowohl Server als auch Client. Und wenn wir es einfach weitergeben, wird
es nicht funktionieren. Du
erreichst im Grunde die dortigen Barrieren, was du nicht tun solltest. Das ist also sehr wichtig. Und dann sollten wir auch
drei Dinge zur
Rate der GET-Methode hinzufügen . Das ist der Blaster-Fortschritt, die Kraftstoffzeit und
die maximale Brennstoffzeit mit der richtigen Methode, im Grunde genommen genau hier. Also lasst uns das einfach hierher stellen
. Das wird
gut, wo wir im Grunde den Fortschritt, die Feltzeit und
die maximale Feldezeit lesen . Das ist also jetzt auch alles
gerettet, die Hauptsache wird die Änderung
dieser vier Methoden
sein. Noch einmal werde ich alles
kopieren, aber ich werde es hoffentlich gut
erklären, auf eine
Weise, die zufriedenstellend sein wird
. Es gibt viele Methoden , die wir tatsächlich kopieren
müssen. Also lasst uns sie
einfach kopieren und mal sehen, ob hier
alles funktioniert. Es gibt also keine Pfeile,
was gut ist. Aber du kannst sehen, dass hier
eine Menge Sachen drin sind. Lassen Sie uns zuerst
die Tick-Methode durchgehen. Wieder einmal die Tick-Methode. Ich habe das auf
folgende Weise überarbeitet. Also habe ich hier eine Methode , die heißt, Treibstoff
verbraucht. Jetzt
bedeutet der Verbrauch von Kraftstoff im Grunde genommen, dass ich
einen Treibstoff hineingelegt habe und er brennt immer noch ,
damit
das Feuer immer noch brennt. Das weißt du aus
dem normalen Ofen, oder? Die Brände brennen. Und wenn ich
zum Beispiel einen Block
einsetzen würde, würde es
anfangen zu rochen. Das ist die Methode für den
Verbrauch von Brennstoffen. Das ist es, was das zurückgibt, oder? Wenn es stimmt, ist
immer noch etwas drin. Wenn es falsch ist, dann ist es das nicht. Solange wir also Treibstoff
verbrauchen, werden
wir nur sagen: Hey, Treibstoffzeit wird jedes Häkchen
verringern, oder? Genau das passiert. Okay, fair genug. Das sollte also ziemlich
selbsterklärend sein. Dann werden wir sagen
, hat Rezept. Jetzt hat sich die
Rezeptmethode zu diesem Zweck
komplett geändert . Ich werde schnell
erklären, was das ist. Zuallererst werden wir
einfach kriegen, die Welt nicht zu verrückt
sein sollte. Und dann erstellen wir eine
einfache Bestandsaufnahme der Größe
des Inventars der
Entitäten. Und dann setzen wir einfach jeden Stapel, den wir in
unserer Entität haben, auf das Inventar. Jetzt ist dies nur eine Kurzschrift, um
das Inventar hier
grundsätzlich zu bestätigen. Weil unser Unternehmen
kein einfaches Inventar ist, aber wir müssen ein einfaches
Inventar für unser Rezept haben, aber das ist die allgemeine Idee. Und dann können Sie hier
sehen, dass wir dieses optionale
Rezept bekommen ,
richtig, das Match genannt wird, und dann bekommen wir die
Welt aber Rezeptmanager beim ersten Spiel, wo
wir im Grunde sagen:
Hey, wir haben diesen Typ, lesen Sie den Rezepttyp, dieses Inventar und
diese Welt, oder? Und dann sagen wir einfach: Hey, gibt es eine Übereinstimmung für diesen Typ? Gibt es ein Rezept, das zu diesem Inventar
passt? Im Grunde gesagt: Hey, wenn die Match-Methode im
Rezept genau hier wahr zurückgibt. Das ist die allgemeine Idee, das
heißt im Grunde, wir sollten das tatsächlich auch sehen
können,
aber das ist definitiv
komplizierter, wie Sie sehen können,
dass die allgemeine Idee ist, dass
Sie den Typ Punktübereinstimmung sehen können. Die Match-Methode
heißt und das
hat im Grunde genommen die
Matratzenmethode im Rezept verursacht. Und wenn das stimmt
, werden wir hier etwas
haben. Und die anwesenden Streichhölzer sagen
im Grunde nur: Ja, wir haben ein Rezept gefunden
, das übereinstimmt oder das mitgelieferte Rezepttyp-Inventar .
Das stimmt also. Dann wissen wir, dass
wir ein Rezept gefunden haben und dann gibt es noch
ein paar Dinge, die
wir überprüfen müssen. So kann zum Beispiel
Betrag in den Ausgabe-Slot eingefügt werden, nur eine Hilfsmethode, die
im Grunde sagt: Hey, wenn die maximale Anzahl
größer ist als die tatsächliche
Anzahl, die wir bereits erhalten haben. Wir fügen nichts ein. Dies stellt nur sicher, dass zum Beispiel, wenn wir bereits eine Spitzhacke
haben,
keine weiteren Pick-Acts einfügen können, was es
im Grunde zu einem
Stapel von Achsen macht, was natürlich keine
macht Sinn. Und dann haben wir auch den Dose Item in den Ausgabe-Slot
, der im Grunde überprüft, Hey, ist es das gleiche Element oder
ist der Stapel leer? Also können wir da einfach
etwas eingeben. Aber das sind im Grunde die
Methoden, die es auch überprüft. Stellen wir einfach sicher
, dass alles in Ordnung ist und nichts im Grunde genommen
schlecht außer Kraft gesetzt wird. Nun, das ist die Methode „
hat Rezept“. Sobald das der Fall ist, werden
wir sehen, hey, ist es gerade? Hat keinen Treibstoff
in einem Kraftstoffschlitz. Das wird also
genau hier sein. Es heißt nur, hey, ist der
erste Slot im Grunde leer, weil wir wissen,
dass in unserem Slot
, der den Kraftstoff mit Index 0 hat, dies ein Kraftstoffschlitz ist, also wird tatsächlich nur
Kraftstoff hineingelegt. Das ist also sehr interessant. Also können wir im Grunde sagen: Hey, wenn das nicht leer ist, wissen
wir, dass Treibstoff drin ist. Und wenn wir momentan keinen
Treibstoff verbrauchen, verbrauchen
wir
einfach Treibstoff. Aber das
passiert nur, wenn wir
ein Rezept
da drin haben , Sachen drin. Und dann die Kegel
Zoom-Kraftstoffmethode, eigentlich auch
ziemlich einfach. Wir sind nur noch einmal
eine Vernunftsprüfung. Hey, um sicherzustellen, dass
das nicht leer
ist, ist, dass wir uns dessen absolut
sicher sind. Dann stellen wir die
Brennstoffzeit auf
die tatsächliche Zeit
des entfernten Stapels ein. Wenn ich mich also erkälte, werde
ich einhundert,
sechshundert
zurückgegeben, für die Zeit, in der es
die Zecken braucht. Und wenn es
was auch immer die Ursache gibt Leber, bekomme
ich 400
und so weiter und so weiter. Dies stellt also nur die Brennstoffzeit und stellt dann
die maximale Brennstoffzeit nach der Brennstoffzeit
auch selbst ein. Aus diesem Grund
müssen wir beide
grundsätzlich sicherstellen, dass
der Fortschritt richtig angezeigt wird. Wir brauchen das Maximum, du wirst
die aktuelle Feldzeit. Die Feldzeit ändert sich. Die maximale Feldzeit
bleibt im Grunde
gleich , sobald dies eingestellt ist, sobald der Kraftstoff verbraucht wurde, wo im Grunde gefragt
wird: Hey, verbraucht er Kraftstoff? Und wenn das der
Fall ist, können wir Fortschritte machen. Der Fortschritt hier ist also der Fortschritt der
Herstellung des Artikels. Dies wird auch im Fortschrittspfeil
angezeigt. Und dann können Sie hier
sehen, dass es Zeit ist, was ich eingerichtet habe, dass ich immer einen maximalen
Fortschritt von 72 habe. Nun, das ist etwas, das
man zum Beispiel
auch innerhalb des Rezepts ändern könnte und sagen:
Hey,
das dauert länger,
das dauert kürzer, was auch immer. Vorerst auch möglich
, ich habe es hart codiert. Das ist nur etwas
, wofür ich mich entschieden habe,
nichts, worüber ich mir Sorgen machen müsste. Und dann sagen wir im Grunde: Hey, wenn der Fortschritt
größer ist als der maximale Fortschritt, dann werden
wir den Gegenstand herstellen. Und dann noch einmal basteln Sie
den Gegenstand, nur für ihren Verstand, im Grunde genommen sagen beide durch:
Hey, das ist ein
Rezept gibt es hier. Wenn es vorhanden ist, entfernen wir
die Steckplätze 1 und 2. Also werden wir die
Rafting-Gegenstände entfernen, die wichtig sind. Wir werden das
Nullsalz nicht entfernen, weil das schon passiert, wenn
wir den Treibstoff bekommen. Wenn wir den
Treibstoff verbrauchen, können Sie sehen, wir sagen, Stapel von
hier entfernen und dann den
Artikel aus diesem Stapel holen. Im Grunde genommen macht das Treibstoff. Das ist sehr wichtig. Deshalb entfernen wir
nur von 12. Und dann sagen wir: Hey,
wir setzen den Dreierstapel mit einem neuen Gegenstand, Stapel dieses Elements, der genau
das Element ist,
das von der Ausgabe erhält. Das ist also, was
in der Ausgabe der
JSON-Datei unseres Rezepts oder
Kundenrezepts und Kontos gelesen in der Ausgabe der
JSON-Datei unseres Rezepts oder
Kundenrezepts und Kontos wird, werde ich nur um
eins erhöht. Wenn also nichts drin ist, wird
es auf eins eingestellt. Wenn da schon
etwas drin ist, werden
wir es einfach um eins
erhöhen. Das ist also die allgemeine Idee hier. Es gibt auch andere
Möglichkeiten, dies zu tun. So könnten wir es zum Beispiel so
gestalten, dass Sie angeben
können,
wie viele es gibt. Und anstatt es um eins zu
erhöhen, erhöhen
Sie es um diese
Zählung, so weiter und so weiter. Es gibt eine Menge Dinge,
die Sie tun können, aber insgesamt machen
wir es vorerst
auf diese Weise . All das
so ziemlich wie wir weitermachen, ist sehr viel mehr
und war variabel, oder man würde sagen anpassbar. So kannst du hier immer
mehr Sachen machen. Und dann rufen wir die Methode zum Zurücksetzen der
Entity Reset auf, die
den Fortschritt nur wieder
auf 0 setzt , damit wir wissen, dass alles im Grunde genommen
ihr Recht zurückgesetzt wird und leider
noch nicht fertig sind. Aber hoffentlich war dies
eine gute exemplarische Vorgehensweise und erklärt das
alles sehr gut, identisch hoffe, wenn noch
Fragen
übrig sind, benutze
bitte das Q und a, und ich werde es versuchen um
die Fragen bestmöglich zu beantworten. Ich empfehle auch dringend einfach offen für
Experimente zu sein, ein bisschen
damit
herumzuspielen einfach ein
paar Sachen auszuprobieren. Das ist immer das
Beste, was du tun kannst. Denn was wir tun
müssen, ist, dass wir
in den Bildschirm und die
Screen-Handler-Klassen gehen müssen . Wir müssen
hier tatsächlich einen neuen Parameter
hinzufügen , der die Delegierten
der ROM-Partei sein werden, also Immobiliendelegat,
alter Delegierter. Und es ist nur ein bisschen
anders zu formatieren als innerhalb
des anderen hier, wir werden nur jeden
Eigenschaftsdelegierten der Größe vier
neu sagen . Und dann möchten wir
dies auch als Feld hinzufügen. Wenn ich also privat, endgültiger Eigentumsdelegierter
oder Eigentumsdelegierter sage. Und dann setzen wir das nur ein, nachdem
das Inventar hier ziemlich
delegiert ist, Delegierter. Und dann werden
wir in der Entität einen Pfeil genau hier bekommen, denn jetzt müssen wir auch
diesen
Punkt-Eigenschaftsdelegaten übergeben . Und der Fehler hier verschwindet, die Entität sollte getan werden. Jetzt glaube ich, dass ich mir am Ende ziemlich
sicher bin, oder wir möchten hinzufügen,
dass wir
die Add-Eigenschaften hinzufügen und dann einfach den
Delegierten hier hinzugefügt haben. Das ist buchstäblich
alles, was wir tun. Und dort brauchen wir auch vier verschiedene Methoden
, mit denen wir vorbei sein wollen. Und das werde ich
natürlich auch erklären. Wir haben die Crafting-Methode. Das heißt nur, Hey,
haben wir im Moment Fortschritte? Wenn wir es mit ihnen machen, basteln
wir. Du hast irgendeinen Treibstoff. Das bedeutet nur, dass wir, wenn
der Treibstoff mehr als 0 ist, wissen
wir, dass wir etwas
Kraftstoff haben, der verbrannt wird. Und wir brauchen beide
den Skalenfortschritt sowie den skalierten
Brennstofffortschritt. Jetzt werden Sie sehen, dass diese Methoden ziemlich
häufig verrückt sind, oder? Nun, die Idee ist,
dass das nur die normalen
Dinge sind, die man berechnen muss ,
um den Fehler zu bekommen. Zum Beispiel, um zu schrumpfen oder den Fortschrittspfeil
zu erhöhen, oder? Das ist also Fortschrittspfeil hier ist natürlich nicht
ganz richtig, richtig. Dies ist die Größe des Kraftstofffortschritts, sagen
wir jemand
wie diesen, denn die Größe der wenigen Fortschritte. Wenn ich also die GUI hier
eröffne, sind
das 14 mal 14 und wir werden
im Grunde gehen, oder? Wir wollen also, dass dies 14 ist,
wenn der Treibstoff vollständig ist, und dann wollten wir einfach nur mit diesem
hinuntergehen. Das ist 26 quer. Deshalb ist dieser
Pfeil die Größe 26 groß. Dies ist also immer die Breite
der Pixel Ihres
Pfeils oder die Höhe,
je nachdem, ob Sie von oben nach unten, von
unten nach oben oder von rechts
nach links nach rechts wechseln möchten . Das ist die allgemeine Idee. Etwas ist
hier verwirrend. Keine Sorge. Probieren Sie eine Menge Sachen
anhand einiger Werte aus, sehen Sie, was reagiert, was passiert. Empfehlen Sie es immer, oder? Aber insgesamt sollte dies hier immer noch eine grundlegende Mathematik
sein. Das sollte jetzt nicht zu verrückt sein, aber wir benutzen das. Nun, wir benutzen das in
der grünen Box genau hier. Und ich werde
die letzten beiden Dinge kopieren , die wir
im Grunde brauchen werden. Und das sind die breiten
Texturen genau hier. Das wird also der Pfeil sein und das wird die Brennstoffstruktur
sein. Jetzt siehst du schon, dass hier ziemlich
verrücktes Zeug drin sind. Ja, das ist die Sache. Denn was passiert ist, dass
der Offset hier ist, oder? Der 8422 wird
dieser Ausgleich sein. Also zeige ich dir das. Dies ist also die Fehlerrate und der Pfeil beginnt genau hier, und das sind 84 Pixel
auf dieser Seite und dann 22 Pixel von
oben nach unten. Und da möchte ich diesen Pfeil
zeichnen, oder? Hier
möchte ich das zeichnen. Und was möchte ich dann
zeichnen? Nun, das ist das hier. So
stimmen die 176 und die 14 genau hier überein. Dann
ist die Frage, nun, wie groß ist die Größe dessen, was ich zeichnen möchte? Die Höhe
wird immer 36 Raten betragen, also
wird das immer da sein. Aber dann
wird der Skalenfortschritt zunehmen. Die Breite dessen, was ich
anzeigen möchte, wird also im Grunde angezeigt,
wenn der Fortschritt zunimmt. Und so wird der
Pfeil gezeichnet. Nun, für den Treibstoff,
wie Sie sehen können ist
das viel komplizierter denn was ich eigentlich von oben nach unten gehen möchte
, und weil die Werte hier mit 0000
beginnen, müssen
wir etwas
Mathematik machen Verrücktheit genau hier, wo wir das Zeug erhöhen
und verringern. Ich würde mir
darüber keine Sorgen machen. Dies wird ziemlich immer
die gleiche Idee sein, wenn Sie etwas verwenden, das Sie von oben nach unten erhöhen
möchten. Insgesamt wird
Ihnen
das Herumspielen zeigen, wie es funktioniert. Ich hoffe, dass die
allgemeine Einführung hier sinnvoll ist, oder? Woher Sie also im Grunde wissen,
woher diese Werte kommen, worauf sie zeigen
und warum wir im Grunde
das nennen, was wir hier nennen. Nun, das ergibt
hier einen Sinn. Aber ansonsten sind wir
tatsächlich mit einem Code fertig. Es war wieder ein
ziemlich verworrenes Ding. Eine Menge Sachen hier drin. Fügen wir jetzt auch ein
benutzerdefiniertes Rezept hinzu. Schlimmer noch, weil wir
ein Rezept haben müssen. Sonst können wir das nicht. Alles, was dies passiert,
wird in unserem Datenordner und
im Ordner „Rezepte“ sein. Und das wird der Recalc
sein und X von recalc und blaster
wählen. Das ist also im
MC-Kursrezept das
sie gehen und so sieht es aus. Typ ist MC-Kerne oder
eine Kuh kann blaster. Und es wird eine Warnung aussprechen ,
weil es das nicht gibt. Nein. Glaub mir, es existiert. Wir haben es gerade geschafft. Und dann sieht man, dass die
oberste eine goldene Spitzhacke sein wird. Der untere wird ein A- oder ein Kalziumbarren
sein, und dann
wird die Ausgabe ein
Orakel sein , das x auswählen kann und Sie können buchstäblich mehrere
JSON-Dateien hinzufügen, die so aussehen. Und sie werden alle einfach funktionieren. Das ist das Schöne daran. Das ist der Grund, warum die Zeit. Am Anfang scheint es
viel Arbeit zu sein. Sobald Sie
diese JSON-Dateien dort hinzufügen können, haben
Sie es viel
einfacher damit. Also nur um sicherzugehen, mal sehen, ob es funktioniert. Oder was wir finden
, ist das in Minecraft. Und das erste, was
ich sagen möchte, wenn Sie bereits
eine Block-Entität haben die Sie sich setzen, gelöscht haben, z. B. zerstören Sie sie, weil dies einige
nachteilige Auswirkungen haben
könnte als NVT , die dafür gespeichert wurden,
können sehr unterschiedlich sein. Wir müssen das tatsächlich
wieder
aufstellen und wir können es trotzdem völlig in Ordnung
öffnen. Das ist sehr gut. Aber lasst uns auch hier eine
goldene Schweinachse holen. Sie können also grundsätzlich sehen, ob
das funktionieren wird oder nicht. Also lasst uns die
Kohlen Leber hier reinlegen. Lasst uns das Orakel
nach unten setzen und
dann genau hier, und mal sehen, ob
etwas passiert. Und da ist es. Schau dir
an, wie der Fortschritt beginnt, das geht runter und bam, in Oracle kann x auswählen,
die beiden Elemente sind weg. Mal sehen, ob wir beide da drin
könnten. Das hat also nicht so,
als würde nichts passieren und
den Splitter herausziehen und Sie können jetzt sehen, dass es natürlich immer noch
funktioniert, weil dort
immer noch Treibstoff drin ist. Und bumm, wir haben einen, der Orca kommt rein,
komm her, bleibt. Und dann gibt es
ein großes X. Wenn wir keinen Treibstoff haben, passiert
nichts, weil
wir keinen Treibstoff haben. Und sobald ich Treibstoff
reingesteckt habe, wird es verbraucht. Und wir werden damit
fortfahren. Obwohl. Da ist es. Alles funktioniert immer noch ziemlich
besser als zuvor. Wir haben jetzt Fortschritte. Wir sehen,
wie viel Treibstoff noch übrig ist. Und das alles ist
absolut großartig. Also meine ich, es
könnte nicht besser sein. Alles funktioniert immer noch
und das ist großartig, oder? Dies
war also wieder einmal
ein weiteres Mal
komplexere Vorlesung. Aber das wird
so ziemlich
der Rest des Kurses
sein der Rest des Kurses denn jetzt werden wir zu anderen Dingen
übergehen. Und dann
wird die Weltgeneration hereinkommen, was auch sehr kompliziert
sein wird. Es ist also einfach das
, was es sein wird. Aber vorerst ist das so ziemlich genau das Richtige für
diese Vorlesung hier. Ich hoffe, du hast das nützlich
und Urine des Neuen gefunden, und wir sehen uns in
der nächsten Vorlesung. Also ja.
88. (Fortgeschrittene) Benutzerdefinierte Holz: Alles klar, willkommen zurück
zum Stoffkurs für 118. In diesem Vortrag werden
wir Minecraft benutzerdefinierte Walded
hinzufügen. Wir werden also ein
bisschen einfacher machen im Grunde in
dieser Vorlesung behandeln, damit wir uns grundsätzlich von den
letzten beiden Vorträgen
erholen können . Und danach werden
wir sofort
mit Verrücktheit weitermachen. Vorerst. Logo würde abgenommen, würde Blog und Planken
abziehen. All diese werden
genau hier hinzugefügt. Nehmen wir einfach die rosa
Rose und lassen Sie uns
dies zum Unterstrich der
Kirschunterstriche machen. Und dann natürlich
sehr wichtig, dass wir dies auch im Namen
ändern. Also Kirschblüten
unterstreichen Log, dann ist dies ein Säulenblock. Für Säulenblock genau hier. Es gibt nur einen Parameter. Und dann ist das so ziemlich
alles, was wir tun müssen. Das wird also
den Eichenstamm kopieren und dann kopieren
wir das fünf Mal dafür, dass
wir so etwas haben. Also Gruppierungen von zwei mal
zwei und dann eine einsame. Und dann werden wir es einfach
durchziehen. Das wird also die Kirschblüte wäre Kirschblütenholz. Und das einzige, was sich
hier ändert, ist, dass
dies es tatsächlich aus dem Eichenholz nimmt. Das ist jetzt nicht
unbedingt notwendig. Ich mache das jedoch gerne. Warum also nicht? Dies wird der
gestrippte Unterstrich Cherry Log sein. Und das Gleiche gilt für den Namen. Es fängt mit Stripped an. Und dann wird dies der abgestreifte Eichenholz
sein. Dieser ist der
gestrippte Unterstrich. Kirschblüte unterstreichen würde. Noch einmal das Gleiche hier. Unterstrich Cherry Blossom würde. Und dann wird es
das Gleiche hier abgenommen nehmen. Ok, würden sie schon her? Und dann wird
dies der Unterstrich sein. Planken sind wichtig,
das ist Plural. Oder Bretter sind normalerweise in Laurel. Und dann
wird das ein verrückter
Block sein , der normale Block. Und das wird die Bretter hierher
bringen. Das wird also der
Unterstrich Planks Ego sein. Und das sind alle registrierten
Blöcke. Nun, das war
ziemlich einfach, nicht wahr? Ja. Was wir hier also jetzt
brauchen, ist das, was wir brauchen, um sie überspringbar zu
machen. Wie machen wir das? Nun, das ist
in der modernen Register-Klasse
wirklich verdammt einfach . Wir werden nur eine
neue private statische Lücke für
die Methode „Register Strip
Bubbles“ hinzufügen . Und das wird die
Skriptblockregistrierung aufrufen. Dieses Register mit
dem
Maulwurfblock beginnt ein Ribosomen-Protokoll und blockiert
dann punktgestrippten
Kirschblütenstamm. Das ist also sehr wichtig.
Wir werden dies nur mit Control D
duplizieren. Wenn dies auch geändert
wird, dann
würde dies auch ändern. Da gehst du. Und vergiss nicht, das hier
zu nennen. Das ist also sehr wichtig. Registriere
Streifenblasen genau dort. Und dann ist sozusagen die Stripmobilität bereits erledigt. N ist schon kalt. Und jetzt gehen wir
zum Lieblingsteil von jedermanns Dateien,
der angrenzenden Datei. Oder eigentlich würde ich
sagen, dass sie
definitiv etwas komplizierter sind ,
als Sie vielleicht erwarten. Wir werden also
nur fünf Blöcke sind
Js-Dateien haben und wir werden
uns sie im Allgemeinen nur ansehen. Sie sehen also, dass ein Säulenblock
im Grunde so aussieht. Es hat hier
Blockzustandseigenschaften der Achse, der
X-Achse ,
der Y-Achse und die Werte, die es annehmen kann , und zeigt
dann einfach auf
dasselbe
oder würde es auf dasselbe Modell hinweisen, das jedoch nur in der log jedoch können
Sie sehen, dass dies auf
den horizontalen
und auch auf diesen hinweist . Und dieser weist auf
den normalen Blog hin. Das ist also so ziemlich der
einzige Unterschied zwischen diesen Brettern, die
absolut langweilig sind, nur normale Blockstaaten. Basiert auf Datei. Nichts Verrücktes ist da los. Lassen Sie uns
auch die Übersetzung hinzufügen , denn
das wird sein, und dann vergesse
ich es manchmal. Also lasst es uns auch hinzufügen. Stellen wir es einfach hier hin. Das ist also so etwas. Der Baumstamm, das Holz ein Baumstamm die oft abgestreift
Versionen und die Bretter. Und natürlich steht Ihnen der gesamte
Code, die JSON-Dateien, all
das im GitHub-Repository oder einer
Einzelperson genauso gut
zur Verfügung . Denn gerade
wenn wir jetzt zu
den
JSON-Dateien des Blockmodells kommen , fangen wir an, hier im Grunde
zu sagen, naja, weißt du,
wahrscheinlich zu kopieren. Ich kann jetzt verstehen, warum
das sinnvoll sein könnte. Weil
es irgendwann einfach viel ist. Das werden also wieder sieben Akten
sein. Oh, lass uns diese einfach hinzufügen, damit
wir das haben werden, lass uns einfach
ein paar Sachen
schließen , die du einloggen willst. Dies hat natürlich ein Schloss oben,
rechts, da oben und unten die Enden
anders aussehen als die Seiten. Dies ist auch die Cube-Säule. Und dann gilt das Gleiche
für die Horizontale, so
ziemlich dasselbe. Die Bretter sind normale Bretter. Ich meine, ich weiß nicht,
was ich dir sagen soll. Die Bretter sind eigentlich sehr
langweilig. Das Ende für das Holz ist das gleiche , weil das Holz
im Grunde nur die Rinde ist. Was ist also rundum? Das ist die Idee dort. Und dann haben wir das abgesteckte
Oberteil und das Streifenprotokoll. Wieder einmal das Gleiche. Es ist, es bleibt alles gleich, sehr ähnlich wie der Rest nicht so interessant
ist. Alles in Betracht gezogen, Es ist so
ziemlich alles, was es dazu gibt
, oder? Und dann sind die
Artikelmodelle
so ziemlich auch kaum Standard. Nun, das werden glücklicherweise nur
5 sein. Und auch immer noch alles
steht dir zur Verfügung. Sie weisen also nur auf
ein bestimmtes Elternteil hin, im Grunde
auf ein bestimmtes Blockmodell. Und dann
wollen wir natürlich auch alle Extras hier. Lasst uns das auch
alles hinter uns bringen. Vor ihnen sind das auch
nur fünf lustig genug. Und das sollte
so ziemlich genau dafür sein. Und was eine andere Sache, die wir tun wollen, ist
, dass wir sozusagen
schon etwas hinzufügen oder
zukunftssicher machen wollen . Im Datenordner
im Minecraft-Ordner fügen
wir also im Minecraft-Ordner einige Tags hinzu. Also Nummer eins:
Wir fügen die Protokollprotokolle und die
Protokolle hinzu, die Tags brennen. So können wir folgendes sehen. Sie können also sehen, dass wir hier Hashtag MC Kurs
verwenden,
Kirschblütenblöcke. Das ist faszinierend.
Was ist das? Nun, wir
werden tatsächlich auch
ein benutzerdefiniertes
Kirschblüten-Log-Tag haben . Also werden wir
dieses auch kopieren,
ist nur normale Tags, wie Sie sehen können. Das zeigt also nur auf alle
Protokolle und dann können wir all diese hier
als ein Tag wie dieses
referenzieren, was sehr interessant ist. Und dann machen
wir in den brennenden Protokollen im Grunde dasselbe. Also machen wir das einfach. Die Protokolle, die brennen. Wenn wir diese drin haben, können wir
die Protokolle grundsätzlich wie Artikel verwenden. Dadurch werden sie einfach
sofort zum Tanken von Gegenständen hinzugefügt. Dann noch eine Sache, die
wir in den Tags tun werden, Minecraft-Tags, Rechtsklick auf
neues Verzeichnis für Elemente. Und dann werden
wir
dort den Plankenstapel hinzufügen, aber wir werden das
einfach hinzufügen. Und wir werden
die MCQs,
Kirschblütenbretter drin haben ,
weil
wir dadurch bestimmte
Dinge mit unseren Brettern herstellen können. Also zum Beispiel ein Basteltisch oder ich denke, das ist wahrscheinlich fast
so. Ich denke, dass es nur eine begrenzte Anzahl von Dingen gibt, die wir mit Plancks Kolben herstellen
können beispielsweise mit Plancks Kolben herstellen
können, die auch funktionieren würden. Also so etwas. Und dann ist es
auch sehr wichtig , dass wir diese Protokolle bereits zu unserem Log-Tag
hinzugefügt haben. Sobald wir Blätter eingeführt haben, werden
sie nicht
neben unseren Protokollen angezeigt. Das ist also sehr wichtig, aber
das ist alles, was wir
tun müssen , um unsere Gewohnheit
hinzuzufügen. Mal sehen, ob es funktioniert. Alles klar, wir befinden uns
wieder in Minecraft. Wie Sie sehen können,
wurde alles hinzugefügt und ich kann es aufstellen und es
sieht absolut fantastisch aus. 0 noch einmal,
alles sieht gut aus. Und wir können es auch mit
der rechten Maustaste mit einer Axt entfernen. Du siehst, ich kann den ganzen Jazz ausziehen und alles
funktioniert gut. Also ich meine, das ist so
ziemlich alles, was es gibt,
um Custom hinzuzufügen, wäre
Minecraft, oder? Wieder einmal steht
Ihnen natürlich der
gesamte Code in einer Einzelperson genauso gut zur Verfügung der JSON-Datei im GitHub-Repository oder . 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.
89. (Fortgeschrittene) Benutzerdefinierte Zeichen: Alles klar, willkommen zurück
beim Stoffkurs für 118. In dieser Vorlesung werden
wir Minecraft ein benutzerdefiniertes
Zeichen
hinzufügen. Für das Hinzufügen eines benutzerdefinierten Zeichens, tatsächlich ziemlich einfach gemacht weil wir es verwenden werden, ist
dies das
Stoffzeichen-Beispiel aus neuen Umfrage ist ein sehr nützliches
Ball-Repository. Jetzt möchte ich sicherstellen, dass Sie wissen, dass
dies unter der GPL steht,
im Grunde der allgemeinen
öffentlichen Lizenz. Wenn Sie also genau denselben Code
in Ihrem eigenen Modell verwenden
möchten , stellen Sie sicher, dass Sie die Lizenz
befolgen und sicherstellen, dass
dies verstanden wird. Dies wird natürlich auch in den Ressourcen verknüpft
sein. Und lass uns einfach hier weitermachen. Also lasst uns einfach
mal einen Blick darauf werfen. Wir werden zwei Dinge brauchen. Zuallererst, und das
werden zwei Mixin sein. Interessant, nicht wahr? Nun, ich werde diese beiden Akten tatsächlich kopieren . Diese stehen Ihnen natürlich auch
alle zur Verfügung. Jetzt sind sie eigentlich
sehr, sehr einfach. verrückt sind sie nicht. Sie können also sehen, dass wir den
Block-Entitätstyp Mixin haben, wo es im Grunde auch
unser eigenes Zeichen unterstützt. Es ist also sehr, es ist
eigentlich nicht so verrückt, im Grunde stellt sicher,
dass es in Ordnung sein
wird,
solange ein Wandschild , ein Block oder
ein nd , ein Block oder
ein nd, ein Entitätszeichen genau hier
ist. Und der Sinus-Typ-Accessor macht es
im Grunde nur so , dass wir auf
den eigentlichen Vorzeichentyp zugreifen können. Da die
Zeichentypklasse hier genau hier ist, können
Sie sehen, dass sie geschützt ist. Wir können tatsächlich
einen neuen Zeichentyp erstellen. Und damit können wir das
im Grunde nicht. Was machen wir damit? Nun, zuerst werden
wir das tatsächlich dem Stoff
hinzufügen ,
dem eigentlichen
MC-Kurs-Mixins Jason, denn, oh Junge, wenn wir das vergessen, wäre
das nicht so gut. werden wir gleich
hier hinzufügen. Dies ist nur der Name 1
Sekunde dieser Dateien,
sehr wichtig, dass sie übereinstimmen. Und dann können wir
grundsätzlich fortfahren. Und fahre fort. Werden wir eigentlich in das
Indie-Block-Paket gehen, also werden wir die
Schilder im Blockpaket essen. Also werden wir
ein neues Modellzeichen-Typen erstellen. Sie werden also nur
einen öffentlichen statischen Endzeichentyp machen , alte Sherry-Unterstrich blühen. Dies entspricht dem Sinus-Accessor,
der einen neuen
Zeichentyp-Accessor registriert
, einen neuen Zeichentyp-Hold,
Sherry-Unterstrich, Blüte. Und das ist alles, was wir tun
müssen, um
einen neuen Mod-Zeichentyp
oder einen neuen Zeichentyp zu erstellen . Und dann können wir in
der eigentlichen Klasse mehr Blöcke fortfahren. Oder wir kopieren
einfach die Planken genau hier. Und was dann sehr wichtig
ist, ist, dass beide tatsächlich
ohne Blockelement registriert werden. Weil das
Interessante an den Schildern ist, dass wir ein
Wandschild und ein normales Zeichen haben. Und das wird sein, dass wir dieselben Gegenstände
damit verknüpft
haben. Also werden wir einen Gedankenblock
haben, und dann werden wir einen normalen Zeichenblock
haben. Dann
geht das Gleiche hier rein. Alle
Unterstreichungszeichen, normale Linie. Und dann ist dies ein
Wandzeichenblock
, der als zweiter Parameter tatsächlich die
Mod-Zeichen-Typen jede Blüte aufnimmt. Und dann braucht es
hier keine
Artikelgruppe , weil wir
natürlich nicht haben, wir haben kein
Blockelement als dieses. Derselbe Mod. Schildertypen sind großartig und ändern Sie
dies dann in einen Bürgersteig. Da gehst du. Jetzt sind das die beiden Blöcke im Grunde
rektal registriert sind. Das ist großartig. Und dann müssen
wir in der Klasse „
Mehr Items “ ein neues Element erstellen. Also holen
wir uns einfach Honigeimer hier. Kirschunterstrich
Blüte Unterstrich Zeichen. Und dann das Gleiche hier. Sehr unterstrichener
Blühunterstrich Zeichen. Und das wird
ein Zeichen für I und Item sein. Und dann
wird der Erste das sein. Die maximale Anzahl wird
tatsächlich 16 sein. Und dann werden wir mehr Blöcke Punktzeichen
haben. Und je mehr Blöcke
punktwandzeichen als
zweiter Parameter, das Ego oder der dritte, schätze ich. Dies ist also der Gegenstand, der
in Amin gemacht wurde, wurde zu diesem Zeitpunkt fast
vollständig gemacht. Es ist eigentlich ziemlich
verrückt, wie schnell das geht, aber mit den Mixins wird
es unser
Leben einfach wahnsinnig einfacher machen. Als wäre das eines der großartigen Dinge
,
die der Mixin im Grunde für uns
bietet. Aber das, was wir
jetzt hinzufügen müssen, sind immer noch einige Becken der Blockstaaten. Wir bräuchten immer noch ein Hi in
Block C, Jason genau hier. Das wird also
das Kirschblütenzeichen sein, das einfach auf
das Kirschblütenzeichen zeigt. Und dann brauchen wir auch das
Kirschblüten-Wandschild. Wir brauchen diese beiden Beiträge
jedoch, die auf dasselbe Blockmodell verweisen. Und dann werden wir in den Gegenständen
nur
einen Gegenstand haben, der die Kirschblütenbesitzer unterschreiben könnten. Und dann auch hier werden
die
Kirschblüten sein. Und dann haben wir in den Modellen, die wir
eigentlich nur gesagt
haben, hier ein Modell. Und das ist das normale Vorzeichenmodell , weil dies nur das Teilchen
definiert. Wie Sie sehen können, ist das alles es hier im Grunde braucht. In dem Artikel haben wir natürlich
auch nur einen Artikel. Nun, wir haben nur einen Gegenstand. Es gibt also einfach Punkte
auf die normale Textur. Das werden hier die
Artikeltexturen sein. Ich
kopiere das einfach vorbei. Sehr tolles Schild genau dort. Und wie wird es dann in 3D
angezeigt? Nun, das ist im Grunde
eine interessante Sache, aber wir müssen im Grunde wieder
in unseren Minecraft
Textures Ordner gehen . Und dann müssen
wir im Entitätsordner den Ordner „Schilder“ hinzufügen. Und dann muss der Name hier mit
dem Namen übereinstimmen , den wir
in der Sinustypenklasse erhalten. Das ist also sehr wichtig. Dies muss
im Grunde mit diesem übereinstimmen. Und dann
wird es so in 3 D angezeigt, oder? Und nachdem wir all
das hinzugefügt haben , schauen wir mal, ob es funktioniert. Alles klar, wir finden uns in
Minecraft und schauen uns das an. Nun, es
wird tatsächlich ein Block sein. Nun, ich meine, nicht das
Schlimmste überhaupt, aber mal sehen,
ob das Schild tatsächlich funktioniert und sie gehen, es funktioniert. Das ist großartig. Nun, ich bin schon wieder in
einem solchen Anzug und dann lasst es uns auch
auf den Boden legen. Es funktioniert auch und alles
funktioniert gut. Also bin ich, das
einzige, was wir wirklich beheben
müssen, ist die
Übersetzung hier. Aber das ist
natürlich keine einfache Lösung, indem Sie es
einfach ändern, um es zu blockieren. Und dann werden wir es auch nach unten
verschieben, damit wir es hier etwas
besser organisiert
haben. Aber das
fasst es ziemlich zusammen, oder? Und nachdem wir
die Übersetzung hier repariert haben , sind
wir im Grunde fertig. Und so können Sie Minecraft
ein benutzerdefiniertes Zeichen hinzufügen. Insgesamt mit Hilfe
des Repositorys. Wie ich schon sagte, es wird in den Ressourcen verknüpft
sein. Es ist eigentlich
ziemlich einfach, oder? Aber das wäre es 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.
90. (Fortgeschrittene) Minecraft und Stoff aktualisieren: Oder ich begrüße zurück zum
Stoffkurs für 118. Und in dieser Vorlesung
werden wir
sowohl Minecraft als auch Fabric
auf die neue Version 1181 aktualisieren . Richtig. Das Aktualisieren einer Version kann also
normalerweise sein, naja, ich würde nicht unbedingt
riskant sagen, aber es könnte
viele Änderungen zwischen den Versionen geben und einige
Dinge könnten sich ändern. Zum Glück für uns sind
die Änderungen hier
im Grunde nicht vorhanden. Es gibt also keine Änderungen an
allem, was in einem 1800er Jahre mit
der neuen Fabric-Version noch
funktionieren sollte . Was wir tun werden, ist, dass
wir unsere Gradle-Eigenschaftendatei öffnen. Und das sind das genau hier, die Abhängigkeiten und
die Fabric-Eigenschaften, andere Dinge, die
wir ändern werden. Und genau das ist die
Seite, die wir öffnen möchten. Ich habe das schon hier geöffnet
und Sie können sicherstellen, dass wir hier die richtige Version haben, 1181. Und dann möchten
wir das überschreiben, bevor wir eine
Botschaft aus der Zukunft fortsetzen. Da 1 1000th 2 so
ziemlich gerade veröffentlicht wurde, empfehle
ich wärmstens, dass
Sie es auf 100 1800s behalten. Wenn Sie
die Vorträge mit 118 verfolgt haben, empfehle
ich
Ihnen dringend, auf einem 1800er zu bleiben anstatt sofort auf
einhundertachthundertzwei
zu aktualisieren , denn ein 1800er Jahre für alle
bevorstehenden Die Weltgeneration wird
am Ende des Kurses nicht mit 172 arbeiten, es wird einen Abschnitt geben,
in dem wir zusehen können, wenn Sie durchmachen
möchten ein 1800er Jahre durchmachen
möchten, um das nur im Hinterkopf zu
behalten. Also wärmstens zu empfehlen, bei 181 zu
bleiben. Und dann können Sie ganz am
Ende des Kurses aktualisieren,
mit der rechten Maustaste auf Kopieren klicken, dann möchten
wir es
im Grunde nur hier einfügen und Sie können sehen, dass nicht wirklich
viel geändert hat. Also die Fabric-Version, wir sind
tatsächlich auf der
neuesten Stoffversion. Das ist großartig. Also
können wir das löschen. Wir können sehen, dass die
Loader-Version hier tatsächlich neu ist, also werden wir diese einfach
durch sie ersetzen. Und dann werden sowohl die Version für das Minecraft als auch das
Garn gewechselt. Wir werden auch beide
ersetzen. Und dann speichern Sie das im Grunde
einfach und laden Sie es dann
mit den Load
Gradle-Änderungen hier
neu, denn
jetzt wird das Projekt mit etwa
1.18.1 und der neuen Garnversion neu aufgebaut , genau wie die Lader. Er hätte wahrscheinlich auch
die Mod-Version hier ändern können, aber es wird uns gut gehen. Ich denke, dass das okay ist. Und los geht's,
bauen erfolgreich. Jetzt
wird alles hier kartiert. Und was wir dann tun
können, ist, dass wir es können, ich empfehle dringend, den
Debug zum ersten Mal durchzuführen. Also, als ich ersten Mal, als ich es zum
ersten Mal gekauft habe ,
startete
das Spiel nicht, aber sobald ich es zum zweiten
Mal lief, hat es angefangen. Es gibt also wahrscheinlich etwas
im Hintergrund, das beim ersten Mal heruntergeladen werden muss . Wenn Sie also einen
Fehler für einige bekommen, die es ausführen, führen Sie es
einfach erneut aus und sehen Sie,
ob es wieder funktioniert, weil das eine sehr seltsame Sache war, aber wir werden nur sehen, ob
es funktionieren wird oder nicht. Aber natürlich ist es
der erwartete Fehler , dass
Minecraft bereits
auf einem anderen Bildschirm gestartet hat, weil wir
nicht angemeldet sind. Also los gehst du. Einhundertachthundert schön, absolut großartig. Und da gehst du. Wir sind im
Spiel, im Grunde funktioniert es. Lasst uns einfach in
die Welt gehen, nur um sicherzustellen, dass alles zwischen den Versionen
funktioniert. Wenn es sich um
die gleiche Version handelt, also wenn es nur die letzten
digitalen Änderungen sind, werden
die Änderungen wahrscheinlich
nicht zu sehr beeinflussen. Manchmal gibt es
Dinge, die von einer
Fabric-Version zur nächsten
veraltet sind . Das könnte der Fall sein. Ich werde versuchen, im Grunde alles so
aktuell wie möglich zu
halten. Im Grunde
füge ich irgendwo einen Vortrag hinzu,
wo es so ist, hey, das hat sich geändert. Du musst es jetzt so machen. Aber insgesamt können Sie sehen, dass ich hier immer noch mit der rechten Maustaste klicken
kann. Sie sind immer noch, ich
bekomme immer noch die Geschwindigkeit hier. Insgesamt funktioniert normalerweise alles hier immer noch gut, oder? Und so
einfach ist es zu aktualisieren. Also lasst uns nur zur
Vollendung hier willen, machen wir etwas wie Lass uns an dieser Stelle
tun, wir sind in einer
Version wie 0.1.5 oder
so ähnlich. Ich glaube, ich fühle mich wie. Und
dann setzen wir dies auf 118 des Archivbasisnamens. Wir werden uns nicht ändern,
weil das natürlich immer noch Stoffkurs 118
ist
und das wird gut werden. Aber jetzt sind wir auf der
Micro-Version 1800s und der neuesten Garnversion
der niedrigeren Version. Und so ist es am einfachsten , Fabric zu aktualisieren, bereits für diese
Vorlesung hier ist. Ich hoffe, du hast das
nützlich gefunden und du hast
etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung.
91. (World Gen) Benutzerdefinierte Bäume: Oder ich komme für 118 zurück zum
Stoffkurs. Und in diesem Vortrag werden
wir Minecraft einen Baum
hinzufügen, oder? Das Hinzufügen eines Baumes beinhaltet also auch das Hinzufügen der
Blätter und eines Bäumchens. Und dies wird auch
beinhalten,
die Knochen des Bären der
Rollengeneration hinzuzufügen , da das eigentliche Laichen des Baumes
irgendwie wie ein bisschen mit der
Weltgeneration
vermischt ist des Baumes
irgendwie wie ein bisschen . Aber
vorerst gehen
wir zunächst zur
Postfachklasse und wir werden die Blätter
und die Setzlinge
erstellen. Wir werden
die Bretter direkt hier über
die
Kirschblütenbretter kopieren und
wir werden hier Blätter sagen und
dann gleich hier gehen. Und vielleicht blockieren Elifs. Und das wird die Eichenblätter
kopieren. Dann ist das Gleiche
hier,
Kirschblütenproben und dann auch hier
Bäumchen. Und das ist ein neuer
Taumelblock. Und dann werden
wir das Gleiche haben, was wir zuvor hatten. Die Achse hier ist geschützt. Deshalb müssen
wir
einen Mod dieser Bausteinklasse erstellen . Wir werden nur
die Setzling-Block-Klasse erweitern,
über diesen Create
Constructor Matching super. Und wir werden das
einfach öffentlich machen. Und anstelle des
Geschwisterblocks, in dem Sie das Mod-Sublingual verwenden, gibt es
jetzt tatsächlich zwei Parameter, die
wir benötigen werden. Sie können sehen, dass wir
einen Geschwistergenerator brauchen. Dies ist also etwas
, das wir innerhalb eines neuen Pakets
erstellen werden. Also MC Kurs,
Rechtsklick auf neues Paket. alte Welt wird das Weltpaket
schaffen. Und dann ein neues
Paket cooles Feature. Und drinnen
werden wir ein neues Paket
namens Tree and
Industry Package erstellen . Wir werden eine
neue Java-Klasse erstellen,
die als Cherry Blossom
Tackling Generator bezeichnet wird . Wir müssen
grundsätzlich neue für
jeden einzelnen Baum erstellen grundsätzlich neue für , den wir hinzufügen möchten. Dies ist gleich dem
Schössling, Setzling Generator. Und das implementiert im Grunde
nur eine Methode und das ist die Methode
get three Feature. Vorläufig werden
wir diese Null halten. Wir werden die konfigurierte
Funktion hier in nur einem Moment hinzufügen. Dann sagen wir hier nur einen neuen Generator zur
Verdoppelung der Blüte. Und das ist im Grunde
alles, was wir hier tun müssen. Aber beide sind fertig. Fügen wir
sie hier sofort zur richtigen
Renderebene hinzu, denn dann
müssen wir nicht mehr darüber nachdenken. Also auch die Blätter und die
Probenahme. Und dann auch hier stellen Sie sicher , dass dies übrigens den
Schössling kopiert, das ist auch vor Tag wichtig. Und dann
werden wir sofort alle JSON-Dateien hinzufügen , weil sie
dann fertig sind. Und dann können wir danach
grundsätzlich mit
dem Code fortfahren . Sie sind beide im Grunde
nur normale JSON-Dateien. Sie können
hier nur die Blätter und den Bäumchen sehen, oder den Block States Jason Lange. Übersetzung
wäre
zu diesem Zeitpunkt ziemlich
selbsterklärend. Hier gehen sie zu den Blättern und Bäumchen als mit
den Blockmodelldateien. Das einzig Interessante
hier ist, dass die Probenahme hier
einen übergreifenden Elternteil und eine
Kreuzstruktur hat , aber die Blätter sind rundum ein
normaler Block. Dies ist das einzig
Interessante hier. Und dann gibt es noch etwas
Interessantes in der Artikeltextur oder im Bäumchen. Und das ist, dass der
Bäumchen tatsächlich eine normale Textur
hat,
wie Sie sehen können. Es zeigt also tatsächlich auf
eine Blocktextur hier, denn der Bäumchen, der in der Welt
angezeigt wird im Kreuzmuster ist das
gleiche wie in, als Gegenstand. Im Grunde ist
das der Fall. Dann können wir einfach die Bäumchen
und die Blatttexturen hinzufügen . Da gehst du. Und dann
wurde alles hier
ziemlich hinzugefügt , damit wir uns darüber keine Sorgen mehr machen
müssen. Und jetzt müssen wir im Grunde
nur
das und gemusterte Feature
hier hinzufügen das und gemusterte Feature , das mit dem Baum
spawnt, zum Beispiel wenn
wir es knochen. Dies ist also der erste Teil
und dann die nächste Vorlesung, wir werden sehen, wie wir
den Baum als Weltgeneration spawnen können. Als Teil der
Weltgeneration werden
wir jedoch im Feature-Paket erstellen, klicken Sie mit
der rechten Maustaste auf neue Java-Klasse. Und das ist die im Modus
konfigurierte Feature-Klasse. Und dafür werden
wir tatsächlich ein paar Dinge brauchen. Nummer 1,
los, wir werden brauchen, ich werde diese Methoden kopieren
. Der gesamte Code steht Ihnen
natürlich im
GitHub-Repository
oder einer Einzelperson zur Verfügung ,
Sie können sehen, dass ich die
konfigurierte
Features-Methode hier registriert habe . Dies ist etwas, das
wir ganz oben auf
der
initialisierten Methode nennen werden, eigentlich ziemlich
erschöpft, aber hier
müssen wir es als
ein schwaches Bedürfnis bezeichnen,
es ganz oben zu nennen. Ansonsten funktioniert die Reihenfolge der
Initialisierung nicht ganz. Und dann haben wir auch
diese Registermethode, die Sie sehen können, dass sie
religiös registriert ist, eine Konfigurierfunktion unter
dem Namen, der hier angegeben wird. Und das ist so ziemlich
alles, was es dazu gibt. Und wir werden das brauchen, weil ich tatsächlich die
konfigurierte Funktion für Kirschblüten kopieren
werde . Und ich werde erklären, wenn
wir grundsätzlich weitermachen, was Sie sehen werden, dass wir es
im Grunde mit dem Namen Cherry
Blossom registrieren und es ist ein
Feature-Baum-Konfiguration. Das ist also die Idee. Wenn wir mit der mittleren Maustaste auf den Baum
klicken, können
Sie sehen, dass es sich um ein
Baum-Feature oder nur um ein Feature handelt. Und sobald
Sie konfiguriert aufrufen, wird
es zu einer
konfigurierten Funktion. Und wir geben einen, b. Feature-Konflikt-Builder weiter
, der dann
einige Dinge benötigt , damit wir auch mit der
mittleren Maustaste darauf
klicken können und Sie sehen können,
oh, das ist ein
Kofferraum-Anbieter, ein Trunk Placer, Laub Anbieter, ein vollständig zu platzieren und dann
eine Mindestgröße. Die allgemeine Idee hier ist also , dass wir einen
Block Say Provider haben. Dies, der erste ist, gibt an, wie das
Protokoll aussehen wird. Das wird also sein, was
auch immer der Kofferraum ist. Dann haben wir ein anderes, wir können verschiedene Kofferräume bauen. So kann ich mit der mittleren
Maustaste darauf klicken und
Strg H über den Placer drücken. Und Sie können sehen, dass es verschiedene
Arten von Stamm Placers gibt. Und ja, du kannst auch deine eigenen
machen, oder? Sie sind, wahrscheinlich ist viel
Java-Wissen erforderlich, weil
es tatsächlich ziemlich schwierig ist, sie zu machen. Dann sind der dritte Parameter die Blätter, die
Sie haben möchten. Und dann
ist der Blob All, jeder Ort oder in diesem Fall die Art und Weise, jeder Ort oder in diesem Fall die Art und Weise, wie die
Blätter angezeigt werden. Wieder einmal können Sie hier
reingehen und
einen Blick auf die
Laubplatzierungen werfen Control H. Und Sie können
im Grunde sehen, dass es dort auch eine Reihe von Optionen
gibt. Ich
empfehle also noch einmal nur wärmstens, damit ein bisschen herumzuspielen. Und dann können die beiden Layer Feature wieder zurückgehen. Dies war die Mindestgröße, also bin ich mir immer noch nicht hundertprozentig
sicher, was genau das ist. Was ich glaube, die allgemeine
Idee ist, dass
so viel Platz um den Baum herum
sein muss. Wenn ich mich nicht irre,
ist das etwas, aber die, insgesamt die Weltgeneration, gibt es so viele bewegliche
Teile, dass es verrückt ist. Und dann änderte es sich auch
von 1 16., 170 auf 180. Jetzt ändert sich alles
ziemlich regelmäßig. Normalerweise allerdings. Manchmal ist es schwer mitzuhalten. Aber das ist,
glaube ich, was das ist. Und das müssen wir hier
im Setzling
Generator zurückgeben . Also müssen wir sagen, mod konfigurierte Funktionen, die
Kirschblütenbaum. Dann werden wir das zurückgeben.
Alles sollte in Ordnung sein. Dann, jetzt theoretisch, sobald wir den Bäumchen
ablegen und wir Knochenmehlausweis oder die Zeit
vergeht, wird er zu einem Baum wachsen. Dies ist also im Grunde
der erste Teil davon. Also lasst uns einfach sehen, ob es funktioniert oder ob ich in
Minecraft zurückgesagt werde, wie Sie sehen können, der Bäumchen und die Blätter
wurden hinzugefügt. Siehen sie vorerst nicht gut aus, lassen Sie uns den Bäumchen und
weniger Knochenhirse niederlegen und
mal sehen, ob wir einen Baum
bekommen können und da ist er ein
Baum, der mächtig groß und stark ist. Das ist also echt cool. Und lasst uns auch einfach versuchen ein paar von ihnen hier unten zu setzen. Und mal sehen, ob sie tatsächlich wachsen
können. Wenn ich die IM-Regel einschalte, zufällige Tics die Geschwindigkeit und Abneigung erhöhen
zufällige Tics die Geschwindigkeit und Abneigung durch
Verrücktheit. Mal sehen. Da gehen sie hin. Lassen Sie das tatsächlich spawnen
, weil es zu nah ist. Es müssen wir
uns tatsächlich ein bisschen weglassen und dann wird
es
wahrscheinlich auch spawnen. Sie gehen dorthin,
es ist vollkommen in Ordnung. Also funktioniert alles
total gut, genau wie du es
erwarten würdest, oder? Um
für jeden neuen Baum, den Sie haben möchten
, zusammenzufassen, müssen
Sie erneut für jeden neuen Baum, den Sie haben möchten
, zusammenzufassen, eine
neue konfigurierte Funktion des bitteren Konflikts sowie einen benutzerdefinierten
Setzling-Generator und dann benötigen ein benutzerdefinierter Bäumchen. Und das sind im Grunde die
drei Dinge, die Sie brauchen
werden,
um im Grunde genommen einen Baum zu erleichtern, der
aus einem Bäumchen wächst , entweder wenn er
Knochenmehl zu oder im Laufe der Zeit hat. Warum? Aber das wäre es für
diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich
und er erfährt, dass das neue, wenn Sie es täten, ich eine Rezension von
Ihnen sehr schätzen würde . Ansonsten sehe ich Sie jedoch in der nächsten Vorlesung. Ja.
92. (World Gen) Baumgeneration: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag
werden
wir einen Blick darauf werfen, wie man einen Stängelbäume, die
Weltgeneration,
hinzufügen kann . Aber wir haben das
benutzerdefinierte Tray
beim letzten Mal erstellt und jetzt werden wir es der Weltgeneration
hinzufügen. Und insbesondere werden wir
auch sehen, wie Sie
ganz einfach filtern können , zu
welchem Biom es geht. Was wir also
tun werden, ist, dass wir dafür noch ein paar
Kurse
brauchen werden. Die erste ist in
der Feature-Klasse, Rechtsklick auf neue
Java-Klasse, die als Modell
platzierte Features bezeichnet wird, ist
sehr wichtig. Dies wird wahrscheinlich heute die Hauptklasse
sein. Und das wird sehr
interessant sein , denn dies hat zwei verschiedene Methoden
, die wir brauchen werden. Noch einmal
kopiere ich sie. Das Gericht steht
Ihnen natürlich im GitHub-Repository oder
einer Einzelperson genau dies zur Verfügung, der Methode Register
Place Feature und der Registrierungsschlüsselmethode. Nun, beide sind hier
sehr wichtig. Und der eine von ihnen erhält im Grunde den Registrierungsschlüssel für
einen bestimmten Ort Funktionen. Darauf müssen
wir uns also beziehen, wenn wir es
tatsächlich spawnen wollen. Und dies registriert
tatsächlich die Platzfunktion und den eigentlichen
Registrierungsschlüssel, den ich auch
kopieren werde , eigentlich
ziemlich einfach. Sie können sehen, dass es nur
ein Registrierungsschlüssel
eines Registrierungsschlüssels von Ort ist, was der
Kirschblütenschlüssel platziert hat. Und das entspricht
dem Registrierungsschlüssel. Und dann wird der Name hier, im Grunde auch
der gleiche Name wie das platzierte Feature
erhalten. Das ist also sehr wichtig. Aber bevor wir das
platzierte Feature für den Baum erstellen können, müssen
wir hier tatsächlich
ein weiteres konfiguriertes
Feature bekommen , oder? Jetzt gibt es also etwas
sehr Interessantes. Um also im Grunde
den Vanilla-Code für
die Funktionen und Sachen zu sehen , können
wir zur Feature-Klasse gehen. Und was Sie vielleicht
haben könnten, ist die blaue Linie hier und im Grunde nichts
anderes hier drin. Um dies zu beheben, können wir zum
Terminal gehen und
wir können Dot-,
Punkt-Schrägstrich Gradle-,
W-, Jan-Quellen einsetzen . Und dann lass das einfach durch und lass das dann durchlaufen. Und dann, nachdem es
geschehen ist, werden
die Quellen hoffentlich für uns den Weg
generieren. Es gibt einen weiteren Trick, den
wir grundsätzlich verwenden können, um die realen Quellen
tatsächlich zu sehen,
im Grunde für Minecraft. Genau da sind wir los. 58 Sekunden Build erfolgreich,
das ist sehr gut. Wenn ein Build
fehlgeschlagen ist und es heißt:
Hey, ich mag diesen. Sieh dir das an. Sie verwenden nicht die
richtige Version. Was Sie tun können, ist, dass Sie das Java-Home zu
den radialen Eigenschaften hinzufügen
können , in denen Sie Ihre
Java-Home-Umgebungsvariable ändern
müssen, eine davon würde funktionieren. Aber
vorerst ist das in Ordnung. Jetzt können wir es tun,
können wir die mittlere Maustaste drücken, auf Feature
klicken und Sie werden sehen,
dass das immer noch nicht gut funktioniert, ich kann zur Auswahl von Quellen gehen. Und dann sage ich, ich benutze
die Kartenquellen. Ich sage ja und sehe
plötzlich alles hier drin. Und jetzt können wir tatsächlich sehen, wie der eigentliche
Quellcode aussieht. Und dafür
interessiert uns
das zum Beispiel nicht wirklich zu sehr. Aber wenn ich mit der mittleren Maustaste
zurück klicke, klicke erneut darauf, du kannst überall sehen,
wo das verwendet wurde. Und Sie können sehen
, dass es in
den baumkonfigurierten
Feature-Klassen verwendet wird , wie ,
oh, das ist sehr
interessant, oder? Es ist wie, Yeah, es ist sehr interessant, mal
sehen, dass
die AUC-Konfigurationsfunktion eine konfigurierte Funktion
ist, die AUC-Konfigurationsfunktion eine konfigurierte Funktion die
bei der Registrierung mit der Tree-Konfigurationsfunktion mit den
Funktionen konfiguriert ist von
OK. Das siehst du hier. Im Grunde ist es nur ein
bereits erledigter Builder. Sie können
Baumkonflikt-Builder sehen. Und dann buchstäblich alles, was
wir getan haben, oder? Wir haben eine Sperre
StateProvider des Protokolls erstellt. Wir haben einen Trunk Placer
und all diesen Jazz gemacht. All das wird also auch hier
gemacht. Aber jetzt wird dieses eigentliche
Struktur-Feature, config konfigurierte
Feature, wieder verwendet. Wenn ich also die mittlere Maustaste
klicke, klicke erneut darauf, kannst
du sehen, dass dies in
den Tree Place Features verwendet wird , oder? Und wenn ich hier reingehe und
sehe, dass dies jetzt
ein platziertes
Feature-Objekt ist und dieses, da die Breite darauf
überleben würde. Aber jetzt wird es noch verrückter und bitte ertragen Sie es vorerst mit
mir. Sie können sehen, dass dieses
Ort-Feature dann in
den von Vegetation
konfigurierten Features
mit einigen anderen zufälligen Dingen verwendet wird den von Vegetation
konfigurierten Features . Das ist also wahnsinnig, oder? Damit Sie sehen können,
ist dies die Linie, also Zeile 66. Und sehen Sie, dies ist die
dunkle Waldvegetation, die wieder
ein konfiguriertes Merkmal des
zufälligen Features Conflict ist . Dieser wird in
einem Ort-Feature verwendet. Auch hier gehen wir
im Grunde von der
konfigurierten Funktion
zum Platzieren von Feature,
um Feature zum Platzieren von Feature
zu konfigurieren. Das scheint verrückt
zu sein. Was ich wärmstens empfehle, ist , alle
Feature-Classes hier zu durchlaufen. Im Grunde gibt es eine
Menge Sachen hier drin. Es ist eigentlich wahnsinnig. Es gibt so viele Dinge hier drin. Ich empfehle nur wärmstens, durch die zu
gehen, im Grunde sind die Merkmale
des
Baumplatzes überall wahnsinnig interessant. Und im Grunde um zu sehen, naja, wie macht Vanille das? Wie spawnt Vanille Sachen? Und wir werden etwas
Ähnliches machen. Sagen wir, Nun,
das Ähnliche, was wir tun werden, ist, dass
wir wieder in
unsere moduskonfigurierte
Feature-Klasse gehen . Also genau hier. Und wir werden
diese konfigurierte Funktion
im Grunde sofort nutzen und eine weitere
Konfigurationsfunktion daraus
machen. Jetzt kopiere ich
das auch. Dies ist in diesem Fall
die
zufällige Feature-Konfiguration. Und Sie können sehen, dass dies im Grunde genommen den
Feature-Zufallsselektor
nimmt, einen neuen
zufällig konfigurierten zufälligen Feature-Konflikt
mischt, dann entweder den
Kirschblütenbaum mit würde überleben
Filter des Kirsche, Bäumchen oder das Gleiche. Im Grunde genommen ist dies ein
bisschen verschlungene Art und Weise. Es gibt wahrscheinlich einen besseren Weg , dies
zu tun, aber vorerst ist
dies
der beste Weg, dass ich es
im Grunde genommen gefunden habe , dass es funktionieren könnte
und dass es funktionieren sollte. Und das ist eigentlich total
in Ordnung und wir werden jetzt arbeiten. Der Grund, warum wir die
konfigurierte Funktion genau
hier benötigen , ist, dass wir diesen Filter
wollen. Jetzt ist das Problem,
dass dieser Filter, wenn ich mit der mittleren
Maustaste darauf klicke, sehen können
Sie sehen, dass dies ein Platz-Feature
zurückgibt. Und das Problem ist,
dass ich, sobald
ich eine Platzfunktion habe, keine anderen
Platzierungen darauf machen kann. Also kann ich hier immer nur ein
bestimmtes Praktikum machen. Und das war's. Nun, es gibt wahrscheinlich,
wie gesagt, eine andere Möglichkeit, dies zu tun Das wird
ausgehasht und ein bisschen Amine 1.18 ist sehr neu und die Weltgeneration
wird komplett erneuert. Vielleicht wird es irgendwann ein Update dazu geben. Aber vorerst funktioniert das übrigens
absolut, es gibt keine Sorge. Also werden wir das
jetzt nutzen und daraus eine
Platzfunktion erstellen. In den Funktionen des Marktplatzes werde
ich dies auch überschreiben. Dies ist die
Kirschblüte. Und du siehst, dass ich
den Cherry Blossom Tree Random nehme , der genau
hier ist. Und ich werde dies mit
der Platzierung von pflanzlich
platzierten Merkmalen verwenden ,
die ich habe, auf die ich grundsätzlich eingehen
kann. Sie können also sehen, dass dies im Grunde
eine bestimmte Liste
bereits erstellter Modifikatoren ist . Und dann sage ich: Hey, nimm die Anzahl zusätzliche Modifikatoren. Was ist das? Nun,
was das tun sollte, ist dass es einen
Baum pro Stamm spawnen sollte. Es hat eine Chance von 10 Prozent
, auf Extra zu reagieren. Glauben Sie, dass das die allgemeine Idee ist in der
Sie sich befinden, könnte sogar ein bisschen mehr
spawnen. Aber insgesamt ist dies
die allgemeine Idee. Wenn du zum Beispiel
einen Baum willst, der super selten ist, aber du kannst es tun,
kannst du einfach nein zählen 0 sagen. Und dann wie eine
Chance von 0,1%, dass
ein zusätzlicher Sponsor zum Beispiel, oder aber für unsere Zwecke hier,
wollen wir es natürlich sehen. Wir wollen den
eigentlichen Baum sehen. Also lasst es uns so machen. Dies bestimmt im Grunde genommen, wie das geht, wie der
Baum tatsächlich spawnt. Was sehr wichtig
ist, ist, dass dieser Schlüssel hier und in diesen
Schlüsseljahren dieser Bücher, Buch, diese beiden Namen gleich sein
müssen. Das ist sehr wichtig. Und was wir dann tun
werden, ist,
dass wir zwei neue Klassen brauchen. Eigentlich ist das
in der Weltklasse. zunächst im Arbeitspaket mit
der rechten Maustaste auf ein neues
Paket namens Jen. Und dann
werden wir dort zwei neue Klassen haben, die Mod-Drei-Generationenklasse und dann auch die
Mod-Weltgen-Klasse. In der
Modellbaum-Generatorklasse fügen
wir also eine
öffentliche statische Leere hinzu, generieren einen Baum. tut Res tatsächlich. Vielleicht wollen wir mehrere
erstellen. Und hier hat die willige WHO die Modifikationen
des Maulwurfs genannt , die Feature-Selektoren hinzufügen. Und dann können wir hier grundsätzlich verschiedene Biome
auswählen. Wir können sagen, Hey,
nimm einfach alle Biome, oben, nimm
alle in der Überarbeitung. Wir können hier sogar nach Tag gehen. Sie können also sehen, dass
es viele verschiedene Möglichkeiten gibt,
dies zu nutzen. Wir werden, wir werden
die Kategorien machen und wir
werden
Kategorie-Punktebenen sagen , damit wir im Grunde nur das
Spawnen in Flugzeugen um Ohm sind. Und dann kommt die
Generation hier, wir werden
Generationsschritt sagen, und das ist die
pflanzliche Dekoration. Ich zeige das in einem Moment. Dann
bietet der Marktplatz diesen Schlüssel. Wir wollen also, dass der Schlüssel
hier weitergegeben wird. Und dann wird dies
unser letztes Feature in allen Biomen erzeugen ,
die
die Kategorie Ebenen im
Erzeugungsschritt vegetal haben . Also lasst uns das eigentlich eingehen. Sie können sehen, dass es
verschiedene Generationsschritte gibt. Und es ist sehr wichtig, diese Bestellung grundsätzlich zu
essen. Sobald wir zum Beispiel ein unterirdisches Erz sind, können
Sie sehen, wie diese vor der
pflanzlichen Dekoration
kommen. Deshalb müssen wir die Ruder davor
hinzufügen. Das ist also sehr wichtig und
Sie
müssen hier auch im Grunde immer das
Richtige tun. Aber normalerweise ist
sehr klar, was der eigentliche Generationsschritt
in der modernen Welt ist, jetzt wird es auch
eine einfache Methode geben. Das wird die
öffentliche statische Leere sein. Wir werden dieses
degenerierte Modus einfach Weltgen nennen, was den Radius
oder den coolsten Namen stopft, aber es wird definitiv ausreichen. Und dann wird dies
die Modellbaum-Generierung nennen , die Bäume erzeugt hat. Und dann wird dieser
hier ganz unten in
der
initialisierten Methode aufgerufen . Obwohl, moderne Weltgen, wieder moderne Welt
erzeugen, und das ist es. Lassen Sie uns also noch einmal zusammenfassen. Schließen wir alles
, was wir haben, und
öffnen wir die
, die wir geändert haben. Wir hatten also eine neue
konfigurierte Funktion, die wir hinzufügen müssen, um im Grunde
sicherzustellen , dass der
Kirschblütenbaum nur spawnt, wo ein Bäumchen gültig ist. Deshalb ist das hier so
wichtig. Das ist erledigt, dann können wir
daraus ein Feature machen, das mit etwas Platzierung im Grunde
noch mehr filtern wird . Die spezifische Platzierung
, die wir gewählt haben war die Anzahl extra,
sehr zu empfehlen. zum Beispiel hier
hineingehen, können Sie
Platzierungsmodifikatoren
für die mittlere
Maustaste sehen Platzierungsmodifikatoren , und ich glaube, ich kann erneut darauf
klicken. Dann können Sie beispielsweise sehen, wo all diese
Funktionen verwendet wurden. So gibt es zum Beispiel
einige, die bereits
vorbereitet sind, sobald Sie
in der
Place-Feature-Klasse sind , die Sie verwenden können. Es ist also eine
Menge Sachen drin. Ich glaube, dass diese auch mit Control H
verwendet werden Sicherlich kann
man sehen, dass es einige quadratische
Platzierungsmerkmale gibt ,
zufälligen Offset. Hier ist eine Menge Sachen drin. Ich kann nur noch einmal
empfehlen , damit
herumzuspielen. Sei offen für
Experimente dafür. Vor allem, wenn es um World Gen
geht. Es ist sehr kompliziert. Und wenn Sie also
etwas im Sinn haben , das Sie genau so
wollen, wie Sie es wollen ,
wen, müssen damit eine Menge
Sachen
ausprobieren. Aber dieses Ort-Feature hat
dann im Grunde genommen den gleichen Schlüssel wie der Schlüssel. Dieser Schlüssel hat also denselben Namen wie das
Platz-Feature und dies muss übereinstimmen. Und dann können wir es in
der Modellbaum-Generierung
mit diesen Bio-Modifikationen nennen , ist etwas, das uns
Fabric schenkt, jetzt ist dies ein experimentelles Merkmal, das
entfernt oder geändert werden kann ,
ohne weitere Mitteilung. Das ist
vorerst sehr wichtig. Es funktioniert immer noch. Wir können es immer noch
benutzen, wenn es sich jemals ändert. Ich werde natürlich
irgendwo einen Vortrag halten und
aktualisieren, damit irgendwo einen Vortrag halten und
aktualisieren, damit Sie wissen, wie Sie es grundsätzlich ohne diesen Kurs
schaffen können. Aber vorerst werden
wir
es benutzen, weil es
sehr einfach zu bedienen ist und
einwandfrei funktioniert. Und dann ist
das im Grunde nur in
der modernen Weltgeneration
oder mehr Weltgen-Klasse gefangen . Und dass der Standard
im Literalismus genannt wird. Das ist also so ziemlich alles, was
es vorerst gibt. Mal sehen ob es funktioniert, oder? Vergiss nicht, dafür auch eine
neue Welt zu schaffen. Da wir uns natürlich
mit der ländlichen Generation anlegen wo ich jedes Mal, wenn Sie das tun, empfehle
ich dringend, eine neue Welt zu
schaffen nur um sicher zu sein, dass
alles richtig spawnt. Also mal sehen, oder wir befinden
uns in Minecraft. Also lasst uns einfach hier in Flugzeugen vorbeischauen. Und mal sehen, ob die
Kirschblütenbäume dort laichen. Und mal sehen, da
sind sie so, als wäre es hier
kein großes Biom, aber sie laichen. Und das ist einfach großartig. Wie Sie sehen können
, ist dies der
General
ein Reh pro Jahr, wie sehr sie klein sind, wenn die
Biome ein bisschen größer sind, Sie können es natürlich ein
bisschen klarer sehen. Aber vorerst ist
das total großartig. Und wie ich immer sage, wenn es um die Zahlen geht, müssen
Sie die
Zahlen auf die eine oder andere Weise optimieren. Das ist also sowieso ein wichtiger
Teil davon. Das ist also etwas, das Sie definitiv beachten müssen, oder? Aber alles funktioniert
und dies ist so ziemlich der erste Vortrag für die Generation
des Weltkriegs. Ich hoffe, du hast das nützlich gefunden
und etwas Neues gelernt. Wir sehen uns in
der nächsten Vorlesung. Oh ja.
93. (World Gen) Flower: Alles klar, willkommen zurück
zum Stoffkurs für 118. In diesem Vortrag werden
wir uns ansehen, wie Sie Ihrem MOD grundsätzlich
Mehlgenerierung hinzufügen
können. Jetzt wird wieder eine Menge
Sachen kopiert, aber diesmal wird es
nicht so viel sein. Der Kern ist natürlich
für Sie
im GitHub-Repository oder einer
Einzelperson genauso gut verfügbar . Die allgemeine Idee
hier ist, dass wenn es um die Erzeugung
der Blumen
geht, eine der Dinge, die die
Leute fragen könnten, ist, naja, wie haben Sie das
herausgefunden? Es ist eigentlich nicht so verrückt. Es ist so ziemlich
dasselbe, was wir zuvor gemacht haben. Klicken Sie mit der mittleren Maustaste auf die
Feature-Class und dann haben Sie zum Beispiel das
Flower Feature, richtig? Und dann kann ich mit der mittleren
Maustaste darauf klicken und sehe, wo es verwendet wurde. So wurde es zum Beispiel in der Blumen-Standardeinstellung
verwendet. Was ich dann mache, ist, dass ich
buchstäblich über
den Blumen-Standard
kopiere . Du kannst sehen, dass ich einfach die gesamte Zeile auswähle , Control C, Control V
drücke und dann einfach alles
anschaue, was ich brauche. Und dann siehst du das, hey, das braucht einen Dandy-Löwen
und ich denke, okay, also kann ich
das im Grunde durch meine eigene Blume ersetzen, solche Sachen und
so weiter und so weiter. Und so macht
man das so ziemlich, oder? Du stammst einfach ständig und dann einfach
damit machst du es im Grunde genommen, du konstruierst es zurück und dann
weißt du, wie es funktioniert. Zuallererst
werden wir
die konfigurierte Funktion hier kopieren ,
und wir werden sehen, dass eine
der Dinge hier rot ist,
und genau der Featurekonflikt „
Zufälliges Patch erstellen “ ist, I glaube, es ist entweder hier drin oder tatsächlich in der
pflanzlichen Dekoration, ich denke, das wird hier verwendet. Dies ist nicht
der, den wir wollen. Wir wollen uns einen Blick darauf werfen. Das glaube ich. Nein, nicht der Fall.
Sie können also sehen, dass es hier tatsächlich
viele verschiedene gibt. Und eigentlich ist derjenige, den
wir wollen, das Folgende. Ich kopiere
es tatsächlich. Das ist dieser hier. So ist der zufällige
Patch-Feature-Konflikt von einem Blocksit-Provider und eine Reihe von Versuchen hier, dass dies
diese Methode
im Grunde nur hier aufruft. also keine Sorgen. Und die allgemeine Idee hier
ist, dass dies jetzt
im Grunde alles erfüllt im Grunde alles den zufälligen
Patch-Feature-Konflikt
erzeugt. Wir können uns das auch
mal ansehen. Aber das wird für uns nicht wirklich so interessant
sein, solche wie
Featurekonfliktklassen in der Regel sind solche wie
Featurekonfliktklassen in der Regel gut, manchmal irgendwie
kompliziert. Ich meine, all das ist
ziemlich kompliziert, wie Sie wahrscheinlich an dieser Stelle vermutet
und erkannt
haben werden. Insgesamt ist dies jedoch die
konfigurierte Funktion. Und wenn wir jetzt zurückdenken,
okay, wir haben eine
konfigurierte Funktion, aber was wir auch brauchen, ist,
dass wir auch eine platzierte Funktion
benötigen, die genau richtig ist. Also in unserer Modell platzierten
Feature-Klasse werde ich das
jetzt
kopieren. Nun, dieser ist eigentlich ziemlich einfach,
weil Sie sehen
können die rosa Rose
platziert ist und dies einige
Register sein wird, ein Ort-Feature. Wir werden die
konfigurierte Funktion aus
unserer im Modus
konfigurierten Feature-Klasse verwenden, wenn beispielsweise mit einer bestimmten Platzierung arbeiten. Und in diesem Fall fügen
wir des Seltenheitsfilters von
vier und eine quadratische Platzierung hinzu,
nur ein normaler Modifikator
mit
der Höhenzuordnung und dann dem Modifikator für die
Bio-Platzierung. Das ist also ziemlich verrückt, wie woher kommt das? Nun, wieder einmal spielt
es Merkmale einiger
der eigentlichen Blumen. Wenn wir uns nur diese
richtige vegetale Konfigurationsfunktion ansehen . Wir nehmen
diese einfach und dann
können wir zum Beispiel Merkmale der Vegetation und Vegetation
sehen. Unsere warme, das ist Linie 73. Und wir können
hier einfach eine Seltenheit sehen, auch quadratisch. Es nimmt auch die
Bewegungsblock-Höhen-Map und den Modifikator zur
Biom-Platzierung. Das ist im Grunde genommen, woher
all diese kommen. Ich habe das
alles im Grunde genommen von Vanille genommen und es
funktioniert wunderbar. Das ist also so ziemlich
die allgemeine Idee. Was wir jetzt
auch brauchen werden, ist ein neuer Registrierungsschlüssel dafür. Dies wird also der rosa
Rosen-Unterstrich-Schlüssel der Polizei
sein . Dies wird wieder den gleichen
Namen haben wie dieser, da diese übereinstimmen
müssen. Und dann ist das so
ziemlich alles, was
wir jetzt tun müssen, wir
müssen das natürlich noch spawnen. Dafür brauchen wir im Gen-Paket
im neuen Modus einen Bus der niedrigeren Generation. Und ich werde
die Methode hier einfach kopieren. Es ist nichts zu verrückt. Oh, schau dir dieses Modell an
platzierte Features, sie gehen und dann sollte alles
Jahr in Ordnung sein. Diese
werden also noch einmal nur in den Flugzeugen spawnen, nur damit wir es grundsätzlich
im selben Biom haben. Und dann muss
das einfach hier gekühlt werden. Dies kann also entweder oben oder darunter
aufgerufen werden. Das spielt eine Rolle, denn beide sind
pflanzliche Dekoration. Alles hier
heißt Engineering, wurde richtig hinzugefügt. Mal sehen, ob es funktioniert. Vergessen Sie noch einmal nicht, eine neue Welt zu
erschaffen, da wir uns erneut mit
der Weltgeneration beschäftigen. Mal sehen, was wir sehen können. Und wie es der Zufall will, sind
wir schon neben einem
Flugzeug und da sind sie, die rosa Rosen Morgen
in kleinen Flecken hier. Und du kannst sehen, dass
es noch einen Patch gibt. Und dann gibt es genau hier
einen ziemlich großen Patch. Das ist also ziemlich cool. Und Sie können
natürlich wieder sehen,
dass es
die Hauptsache
ist, sich mit den Zahlen zu beschäftigen, um Ihre Generation
zu bekommen. Schreib einfach, wenn du
ein bisschen anders wolltest. Natürlich gibt es überhaupt keine Sorgen. kannst du immer ausprobieren. Aber vorerst ist das wirklich großartig und
sie spawnen alle,
naja, das ist ziemlich
verdammt cool, oder? Aber das wird es schon
für diese Vorlesung genau hier sein. Ich hoffe, Sie haben diese nützliche
und Unwissenheit des Neuen gefunden. Wieder einmal steht Ihnen
natürlich der gesamte Code im GitHub-Repository oder einer
Einzelperson genauso gut zur Verfügung. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
94. (World Gen) Ore: Alles klar, willkommen zurück
zum Stoffkurs für 118. In diesem Vortrag werden
wir das
machen, worauf Sie
alle gewartet haben. Mal sehen, wie man
Minecraft hinzufügt
oder generieren kann, wenn es normalerweise um
die Generation geht, oder die Generation ist so ziemlich die eine Sache, bei der
jeder so ist : Oh mein Gott, ich muss wissen,
wie oder Generation funktioniert. Dies ist das
Wichtigste aller Zeiten. Sie wollen ihren
Sport auf der Welt. Und genau das werden
wir jetzt tun. Aber beeil dich noch einmal,
finde das raus. Wir klicken mit der mittleren
Maustaste auf das Feature. Und was Sie finden werden
, ist, dass genau hier oder dies oder ja, es
ist in der Tat ein oder Feature. Und wenn ich einfach darauf klicke,
siehst du, dass es
einige konfigurierte Funktionen gibt. So
sind zum Beispiel einige Diamanten, kleiner Diamant, großer
Diamant vergraben. Werfen wir jedoch einen
Blick auf die kleine
konfigurierte
Diamantenfunktion. Sie können sehen, dass dies ein oder
Feature Conflict Diamond oder hat . Also was ist das? Ist es eine Liste aller
zukünftigen Konflikte, unser Ziel,
müssen wir das auch
selbst erstellen. Aber keine Sorge. Das ist nicht so schwer, das ist
eigentlich nicht so schwer. Jetzt werde ich noch einmal alles
kopieren, aber alles
hier ist natürlich, auch
im GitHub Repository oder einer
Einzelperson verfügbar . Und für eine oder, wie ich schon sagte, benötigen
wir hier eine Liste
dieser Ziele
sowie eine konfigurierte Funktion. Das
ist so ziemlich alles, was wir brauchen. Und Sie können sehen, dass
es hier im Grunde genommen
zwei Zielsätze
gibt. Also wenn ich das im Grunde nur ein bisschen
anders
mache , so dass es hier ein
bisschen anders liest. Also los gehst du. Jetzt können Sie sowohl
Ziele als auch beide Blöcke, die damit verbunden
sind, deutlich
sehen . Ein Ziel hat eine Regeltests
, die es folgt, oder? Der Regeltest, den Sie hier sehen
können , prüft im Grunde
nur, Hey, stimmt das mit diesem
speziellen Block hier überein? In diesem Fall sagen wir
eigentlich: Hey,
alles, was im Grunde
durch einen Stein ersetzt werden kann, den Stein oder
dann gibt es auch tiefe Schiefer oder austauschbar. Das ist also die allgemeine Idee hier. Weil natürlich unser
normaler oder ersetzen kann
oder sollte in der Lage sein, normalen Stein zu
ersetzen und dann Tiefschlaf zu ersetzen oder sollte in der
Lage sein, tiefe Schiefer zu ersetzen. Jetzt ist das nicht nur das Speichern, dies kann zum Beispiel auch direkt
und ähnliches spawnen. Und das Gleiche mit Tiefschlaf. Es gibt wie andere Dinge, andere Arten von Blöcken
, die auch im tiefen Zustand
spawnen können und
daher wird dies benötigt. Nun
wird die Größe hier sehr
interessant sein, denn die Größe, wenn wir tatsächlich hier reingehen, kann
man sehen, dass es nur
Größe und die Größe dort bedeutet, dass dies
die durchschnittliche Größe einer Vene sein sollte. Das sollte also eigentlich die
Venengröße sein. Und wie es dann
in der tatsächlichen Welt spawnt, können
Sie mit dem
platzierten Feature wieder
konfigurieren, dass wir tatsächlich
eine sehr interessante
Sache brauchen und das ist eine neue Klasse und die
Funktionen verpackt. Das ist also der Modus oder Esser und wir
kopieren einfach zwei Methoden. Jetzt kommen diese Methoden
vom oder Feature selbst. Aus der Vanille oder den Funktionen habe ich sie im Grunde genommen genommen und hier veröffentlicht,
damit wir auf sie
zugreifen können , damit
wir sehr einfach
über die Place-Funktion hier, nämlich das Orakel
beschwert sich, wie Sie sehen können, weil das Orakel
eine bestimmte Platzierung hat oder dann
die Modifikatoren mit count hat. Die Zählung bei den
verschiedenen, die du bist,
sagt also im Grunde , wie viele Adern pro Stamm laichen
sollten. Dies ist zumindest mein derzeitiges
Verständnis davon, dass der Zählmodifikator darin besteht wie viele Adern pro Stamm spawnen. Und dann haben wir einen Höhenbereich Platzierungsmodifikator von Trapez. Vielleicht haben Sie
dieses Bild davon gesehen , wie
die Erze jetzt spawnen. Und es gibt im Grunde verschiedene Arten
von Funktionen, oder verschiedene Arten von
Modifikatoren haben sie spawnt? Es gibt das Trapez, es gibt Uniform und Sie können sogar benutzerdefinierte Höhenanbieter
herstellen. Wir können sehen, dass es eine einheitliche
Trapezkonstante gibt, sehr voreingenommen, gewichtet,
voreingenommen zu ihnen. Das ist also sehr interessant. Es gibt also verschiedene
Höhenanbieter , die Sie grundsätzlich dort
einsetzen können. Wenn Sie zum Beispiel so sind, nein, möchte
ich, dass dies wie sehr, sehr langweilig, sehr voreingenommen zu unterer Höhe
Anbieter gemacht werden kann. Sie können sehen, dass Sie
diese ganz einfach erstellen können. , experimentieren, experimentieren,
experimentieren, experimentieren, seien Sie offen für Experimente, besonders wenn Sie damit visuell
herumspielen. Dies ist ein Beispiel dafür,
wie es geht, oder? Wir
werden im Grunde sagen: Hey, das kann überall von
negativen 80 bis plus 80 spawnen. Dies dient vorerst nur zu
Testzwecken. Wenn ich diesen Rückruf wirklich von unserem
machen wollte verwende
wahrscheinlich sogar
den sehr voreingenommenen wie in Richtung der unteren acht Platzierungsmodifikator,
weil ich
das Gefühl habe , dass
das die Kühler wären und würde vermutlich auch
die Zählung verringern. Aber wir wollen nur zeigen, dass
es hier grundsätzlich funktioniert. Und dann ist der Schlüssel wieder sehr einfach, aber es ist nur der Schlüssel zum Neukalken, Unterstreichen oder Abschrauben. Dann ist das Gleiche hier. Dies muss der
gleiche Name sein wie dieser, natürlich spielt sie wieder gleiche
Funktion mit
dem Registrierungsschlüssel. Und dann brauchen wir hier nur einen
neuen Modellursprung. Also kopieren Mod oder Generation das auch
schnell. Es sieht ziemlich genauso
aus wie die anderen. Dies sind nur abgestufte
platzierte Funktionen, die sie vor ihnen haben. Und dann ist das so ziemlich auf der ganzen Welt zu
finden. Dies ist also
eine andere und dies ist im unterirdischen
Erzeugungsschritt. Was sehr wichtig
ist, ist, dass dies vor der
pflanzlichen Dekoration
genannt wird . So
erzeugen MAR oder Generation Türen. Das ist
sehr wichtig. Sonst funktioniert es
nicht richtig. Aber das ist wieder einmal
alles, was wir brauchen. Wir brauchen also nur eine
Konfigurationsfunktion, die tatsächlich
eine Liste von Zielen aufnimmt, was sehr wichtig ist,
weil Sie
natürlich möchten, dass sowohl der
Store als auch der tiefe Zustand oder nur die kleine Größe
der Größe der Venen, im Grunde die Venengröße hier. Und dann platziere Feature. Wir können sagen, wie viele Adern
pro Transkripte geboren wurden und auf welche Art von
Weise sie spawnen sollten. Aber in diesem Fall Trapez
und dann ein Y-Offset. Sagen Sie im Grunde genommen: Hey, von welchem Y-Level bis zu welchem
Level sollen sie spawnen? Das ist die allgemeine Idee. einmal empfehle ich dringend, einfach damit herumzuspielen. Sie können
mit der mittleren Maustaste klicken und sehen, was Sie ändern können. Verschiedene
HIE-Anbieter, all das. Ich kann es sehr empfehlen.
Spiel einfach damit herum. Wenn Sie unterschiedliche Werte oder
unterschiedliche Funktionen haben , wo Ihr
Pferd
auf unterschiedliche Weise spawnen soll. Aber vorerst mal
sehen, ob es funktioniert. Und natürlich, wie
so oft, weil wir uns mit der
Weltgeneration angelegt haben. Lassen Sie uns eine neue Welt schaffen, oder ein Apotheker in Minecraft
gibt es tatsächlich einen sehr guten Befehl
, den wir verwenden können
, der im Grunde genommen
alle Dinge unten mit Luft füllt . Und wir können dann im Grunde genommen, ich werfe mir das alles an. Mal sehen, ob etwas, das wir wollen, hier drin hervorgebracht
hat. Und dafür sieht
es eigentlich
nicht so aus. Nun, dann lasst uns nicht
überleben, sondern es tatsächlich in
den Diktatormodus. Und lasst uns einfach durchgehen und sehen, ob wir finden können, dass das, ODER genau hier drin, wir haben es. Also hat etwas davon hervorgebracht. Du siehst hier noch etwas mehr. Das sind eigentlich alte Männer,
noch größere Ader hier. Wie Sie sehen können, hat es vollkommen in Ordnung
hervorgebracht. Und es gibt wahrscheinlich noch
mehr davon um uns herum. Da gibt es einige,
einige mehr davon sogar. So ziemlich cool ist es also. Und das ist
natürlich Tiefschlaf. Jetzt spawnt es natürlich auch
und steinig. Also sieh dir das
dort an, wir haben es sofort gefunden. So einfach ist das also
so ziemlich einfach, oder? Ich denke, ich betone das
genug, dass du einfach ein
bisschen damit
experimentieren und es ausprobieren solltest . Ich werde mich also nicht wiederholen, aber ich werde sagen, dass
dies für diese Vorlesung genau hier ist . Ich hoffe, du hast diese nützlichen
und einjährigen des Neuen gefunden. Und wir sehen uns in
der nächsten Vorlesung. Also ja.
95. So machst du eine JAR Datei aus deinem Mod: Alles klar, willkommen zurück
beim Stoffkurs für 118. In diesem kurzen Vortrag werden
wir sehen, wie Sie eine JAR-Datei
aus Ihrem Modell erstellen
können. Und so wie Sie dies tun, öffnen
Sie das Terminal und
setzen den Punktschrägstrich Gradle w built ein. Jetzt
lässt du das im Grunde einfach durchlaufen. Dies sollte nicht sehr lange dauern. Es wird ungefähr 10
Sekunden dauern. Da gehst du. Eigentlich fünf Sekunden,
vielleicht ein
bisschen länger, wenn Ihr
PC etwas langsamer ist, aber überhaupt keine Sorge. Wenn Sie hier eine Fehlermeldung erhalten, verwenden Sie
möglicherweise nicht die
richtige Version von Java. Sie können die
Java-Home-Variable
genau hier angeben , damit sie den richtigen JDK
benötigt. Abgesehen davon finden
Sie
Ihre JAR-Datei jetzt in
Ihren Ordnern. Im
Build-Ordner wir gerade hier mit der
rechten Maustaste auf diesen Open-End-Explorer. Wir werden Ordnerlibs
erstellen, und dann diese hier. Die mit dem kürzesten
Namen ist also Ihre JAR-Datei. Und du kannst
das jetzt hinzufügen und versuchen und wir werden damit spielen, dass es
einem Server hinzugefügt wird, Sachen wie diese. Das alles funktioniert im Grunde wie jede andere JAR-Datei, die
Sie
zum Beispiel von
Arbeitern oder
ähnlichem herunterladen könnten zum Beispiel von
Arbeitern , oder? Aber das ist es für diese
Vorlesung genau hier. Und das ist es auch
für den, sagen wir, geplanten Inhalt für den ersten
Content-Batch dieses Kurses. Jetzt werden in Zukunft weitere
Themen hinzugefügt. Nach dieser
Vorlesung wird also im Grunde genommen
ein Abschnitt sein , der einige
zusätzliche Themen oder
ähnliches genannt wird, in
dem in Zukunft weitere Themen hinzugefügt werden. Wenn du dir
diesen Kurs ansiehst , gleich
nachdem er rausgekommen ist, wird
das vielleicht nichts da sein. Aber in Zukunft
könnte etwas da draußen sein. Das ist ziemlich häufig, cool. Hoffentlich
werden dort auch einige
fortgeschrittenere Themen behandelt. Wie vielleicht einige nicht so fortgeschrittene Themen
, die immer noch
nützlich sein könnten und die möglicherweise ziemlich viel verlangt
wurden, oder? Aber das wäre es für
diese Vorlesung genau hier. Ich hoffe, Sie fanden diese Nützlichkeit
und Unkenntnis des Neuen. Wir sehen uns hoffentlich
in der nächsten Vorlesung. Also ja.
96. (zusätzliche Themen) Update (1.18): Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir unsere
Fabric auf die neueste Version aktualisieren. Zumindest für mich. Ich meine, ich schätze, es wird
wahrscheinlich selbst für dich
eine etwas neuere
Version sein . Aber dafür gehen wir
natürlich zur
Gradle-Eigenschaftendatei und können dann genau hier
dorthin navigieren. Also zwei Fabric EMC Net Versions, HTML und ich
haben das bereits geöffnet. Dies sind also die neuen Versionen
der Garnmappings, des Laders und der
Stoffversion , denn wir setzen
eine Botschaft aus
der Zukunft fort , da 118 zu zwei
so ziemlich gerade veröffentlicht wurden. Ich empfehle nur
wärmstens, dass
Sie es auf einhundert,
achthunderteinhundert und eins behalten. Wenn Sie
die Vorträge mit 118 verfolgt haben, empfehle
ich Ihnen dringend, auf
einem 19. Jahrhundert zu bleiben , anstatt sofort auf 172 zu
aktualisieren da ein 1800er und
die gesamte kommende Weltgeneration ich werde nicht mit 1800er Jahren arbeiten. Am Ende des Kurses wird
es einen Abschnitt geben, in dem wir zusehen können, wenn Sie durchmachen
möchten ein 1800er Jahre durchmachen
möchten, um das nur im Hinterkopf zu
behalten. Also wärmstens zu empfehlen, bei 181 zu
bleiben. Und dann können Sie ganz am
Ende des Kurses aktualisieren, wir werden es tun, dass ich
das
tatsächlich auf den anderen
Monitor legen werde und ich werde es
einfach so kopieren. Und dann haben wir die
anderen drei genau hier. Das sind also die
drei, die sie vor und dann
werden wir sie einfach überziehen. Und das ist so ziemlich genau das. Und dann klicken wir einfach auf den kleinen Elefanten hier
ist der nicht erscheint. Sie können jederzeit die Registerkarte Gradle
öffnen und dann auch auf diese Schaltfläche klicken. Und wenn es gebaut wird, kann es
wieder eine Weile
dauern. Es kann ein oder zwei Minuten dauern, oder es kann auch nur etwa dreißig Sekunden
dauern, hängt von Ihrer Geschwindigkeit auf
der Internetverbindung ab,
unabhängig davon, ob Sie in
der Vergangenheit aktualisiert haben oder nicht . Aber sobald das
im Grunde durchgegangen ist, werden
wir
im Grunde genommen geduldig warten, bis dieser
durchgeht, und dann werden
wir sehen, ob Fehler auftreten können oder
nicht. Alles klar, damit du
für mich sehen kannst, dass es 50 Sekunden gedauert hat, also nicht zu lange,
eigentlich total in Ordnung. Und insgesamt
bekomme ich
im Moment keine Fehler oder
was wir tun können, ist, dass wir einfach die Client-Task
ausführen
können und einfach sehen, ob dort einige Fehler
auftreten können oder nicht. Natürlich
könnte es
hier wieder etwas Rot sein ,
zumindest einige andere Warnungen, die völlig in Ordnung
sein sollten,
solange die tatsächlichen Kunden
beginnen, es wird uns gut gehen. In dieser Ära ist
es natürlich
wie immer nur ein normaler
Fehler, den wir im Grunde jedes Mal
gesehen haben , wenn
wir den Kunden gestartet haben. Es gibt also überhaupt keine Sorgen. Und da gehst du. Das Fenster ist also schon geladen. Und mal sehen. Da sind wir. Also funktioniert alles völlig gut und
so einfach ist es zu aktualisieren. Wenn ich jetzt natürlich schon
ein Update gesehen habe, wollte ich es
im Grunde noch einmal machen , bevor wir an die Wand
gehen, die zusätzlichen Themen, die
wir in der, in den kommenden Vorträgen. Die werden also
wirklich interessant sein, ein paar wirklich fortgeschrittene Sachen. Aber ich bin mir sicher, dass wir es schaffen
werden,
das durchzustehen und es wird
wirklich verdammt interessant sein. Aber das ist für
diese Vorlesung genau hier schon da. Ich hoffe, du hast das
nützlich gefunden und du wirst etwas Neues
lernen. Wir sehen uns in
der nächsten Vorlesung.
97. (Zusätzliche Themen): Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir einen
Blick darauf werfen, wie Sie Ihren Blöcken erfahrene Drops
hinzufügen können . Nun, das ist etwas das in der Vergangenheit nur wenige
Menschen rätselt, aber es ist tatsächlich
ziemlich einfach, wenn
man weiß, wo man suchen muss. Und das bedeutet, dass
wir
die Umschalttaste zweimal drücken und
dann einen Blick auf die
mündliche Blockklasse
werfen in der ich sicherstellen werde
, dass Nicht-Projekte enthalten sind. Und dann werden wir uns genau hier entscheiden
. Und dann lasst uns das machen, lasst uns tatsächlich hier
ins Terminal gehen. Und sagen wir Gradle w Sources nur für den Fall nach den Updates. Manchmal muss man, wenn das, wenn viele Sachen aktualisiert werden, tatsächlich die
Genquellen genau hier machen müssen. Und lassen Sie uns das einfach
durchlaufen und dann können wir sehen, was die eigentliche Klasse für uns zu bieten
hat. Da gehst du. hat ungefähr eine Minute gedauert
und dann war es fertig. Und jetzt können
wir theoretisch suchen und
sicherstellen, dass
wir dies noch einmal auswählen und dann hier
immer noch den blauen Balken auswählen, aber jetzt können wir genau hier
Quellen auswählen. Wer sind die zugeordneten
Quellen sagen, okay, und nachdem es neu geladen wurde, sollten wir
die richtige Klasse bekommen. Normalerweise
ist der Unterschied kein Storch, aber es kann manchmal ein Unterschied
sein. Stellen Sie sicher, dass wir hier
die richtigen Quellen haben hier
die richtigen Quellen anstatt nur die
dekompilierten Quellen. Nun gibt uns die orangefarbene
Blockklasse hier die Möglichkeit, auch eine Uniform
im Provider einzugeben, was
die Erfahrung ist, die tatsächlich sinkt, während wir diesen Block zerstören. Das ist eigentlich alles
, was wir tun müssen. Also in unserem Modus blockiert
Klasse,
Nehmen wir zum Beispiel das Orakel-Ergebnis
oder den Fall von mehr, wir möchten wahrscheinlich nicht, dass
zusätzliche Erfahrung sinkt. Aber wir werden es einfach hier machen weil es sinnvoll ist, dies als Beispiel zu
tun, normalerweise
sind wir natürlich, weil unser Ori Calcium oder
Block Rory Calcium fällt, normalerweise
möchten Sie die Erfahrung nicht hinzufügen hier. Aber nur für ein Beispiel werden
wir das nach
den Fabricblock-Einstellungen tun. Wir werden hier nur
einen weiteren Parameter hinzufügen und das wird die Uniform
in Provider Dot Create sein. Wir sagen einfach so etwas
wie eine Drei zu Sieben. Mal sehen, was wir uns tatsächlich
auch
im oder Block ansehen können , wir schauen uns an, wo
das verwendet wurde. Klicken Sie also mit der mittleren Maustaste
darauf und
sehen
wir zum Beispiel den Smaragd oder
nur als Beispiel den Anbieter. Hier sind genau 37. Das ist
ungefähr die Größe, die Sie wollen. Dies sollte meiner Meinung nach all
die verschiedenen oder Blöcke sein , in denen dies verwendet wurde. Aber natürlich
kannst du das ändern. Vielleicht haben Sie eine Reihenfolge
, die unglaublich
selten ist und vielleicht möchten Sie, dass
diese viel höher ist, aber natürlich auch der Fall ist. Das ist eigentlich alles
, was Sie brauchen, um auch Ihre Blöcke Drop
Erfahrung zu haben. Um der Vollendung willen,
schauen wir mal, ob es funktioniert oder ob
Francis wieder in Minecraft ist. Also lasst uns einfach ein
bisschen davon und los geht's. Sehen Sie, dass es auch die Erfahrung einlässt. Und wie gesagt, Sie können einfach
die ganzen Zahlen ändern, die sie sind, und dann im Grunde
versuchen,
zu verdünnen , wie viele Erfahrungen sie fallen lassen
möchten. Und wir können einfach sehen, ich kann hier
weitermachen und h arbeitet
kontinuierlich. So
einfach ist es tatsächlich, ein paar
Kundenerlebnisse hinzuzufügen . Das ist schon bei, 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.
98. (weitere Themen) Transparente Blöcke hinzufügen: Oder ich begrüße zurück zum
Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten transparenten
Block hinzufügen . Dies ist tatsächlich noch einmal
eines dieser Dinge, die eigentlich ziemlich einfach sind, wenn
Sie wissen,
was zu tun ist, das ist
normalerweise der Trick davon. Aber lasst uns einfach
reingehen und lassen Sie uns einfach die
Kirschblütenblätter direkt hier
kopieren. Und das wird das
Winterunterstrichenfenster sein, obwohl der Winter langsam
aber sicher verblasst. Aber das ist natürlich in Ordnung. Es gibt natürlich, dass es
irgendwann zurückkommen wird. Der Winter kommt. Natürlich. Wir werden das vor einem neuen
Glasblock machen und das wird einfach hier über das
Blockglas kopiert. Das ist so ziemlich
alles, was wir brauchen. Jetzt
fügen wir auch hinzu, dass es nicht undurchsichtig war. Das ist eigentlich sehr
wichtig und lassen Sie uns auch hier etwas Stärke
hinzufügen. Warum nicht eine gewisse kundenspezifische Stärke? Und das wird gut werden. Und für den Block ist
das eigentlich alles, was wir brauchen. Der Grund, warum wir
die Glasblockklasse brauchen ,
ist, wenn wir darauf eingehen am mittleren Punkt, darauf klicken und dann die mittlere
Maustaste auf den abstrakten Klassenblock klicken, können
Sie sehen,
dass es Zuallererst die
Kamerakollisionsform leer. Dann haben wir den Lichtpegel der
Umgebungsokklusion. Es wird benötigt, damit
Licht durchkommt. Und dann haben wir auch
die transluzente Methode, hier
im Grunde genommen wahr wird. Deshalb benutzen wir den
Glasblock, der einfach Sinn macht. Was wir jetzt auch
tun müssen , damit das
Winterfenster in der MC-Kurs-Client-Klasse
richtig hinzugefügt wird, kopieren
wir
die Probenahme hier. Ich werde das nicht zum Winterfenster machen
, und wir werden diese
Renderschicht durchscheinend machen. Werde also durchscheinend. Sehr wichtig, dass
wir dies auch hinzufügen. Und dann ist die tatsächliche
Transparenz erledigt. Jetzt müssen wir natürlich
immer noch
die normalen JSON-Dateien hinzufügen die normalen JSON-Dateien , die wir hier
über alles kopieren werden, natürlich, die Ihnen
im GitHub-Repository zur Verfügung stehen, einer Person genauso gut. Das Meer, das Block
States Rennen ist ein
ganz
normaler Alltag, eigentlich langweilig. Block sagt JSON-Datei. Und dann lassen Sie uns auch
die Übersetzung direkt hier kopieren. Das ist nichts,
nichts zu verrückt. Nichts, was dich
in irgendeiner Weise, Form oder Form beunruhigen sollte. Es ist einfach normales
Zeug, wie wir es schon
ziemlich oft
gesehen haben . Gleiche gilt für die JSON-Datei des
Blockmodells. Sie können völlig
normal sehen, welche Militarismus-Datei vorliegt, und
wir werden 33 gehen. Ja, wir werden eine drei ebenfalls
völlig normale
modale JSON-Datei
durchlaufen . Und dann lasst uns tatsächlich auch
die Textur bekommen , über die Sie vorbei sind
, und das wäre
es so ziemlich. Das ist alles, was wir brauchen. Zwei sehr wichtige Dinge, die es
zu einem neuen
Klassenblock machen, der nicht undurchsichtig ist. Und dann stellen
Sie auch sicher, dass dies als „Get the transluzente
Render-Layer“ bezeichnet
wird . Und nachdem wir all das
hinzugefügt haben, Mal sehen, ob es funktioniert oder
ob es in Minecraft z antwortet, wurde
das Winterfenster erfolgreich zum Spiel hinzugefügt. Also lass es uns einfach abstellen und
du siehst, da gehst du. Wir können es uns ansehen und
es sieht ziemlich toll aus. So funktioniert es so ziemlich
genau wie normales Glas, wie man es erwarten würde. Und wir werden noch
eine Sache haben und wir werden uns die Texte von einer weiteren Zeit
ansehen, um Ihnen im Grunde
eine andere Sache zu
zeigen , die für
benutzerdefinierte transparente Blöcke sehr wichtig ist. Wir haben das
Winterfenster PNG genau hier geöffnet. Und einmal ist hier natürlich sehr
wichtig, dass diese Pixel hier natürlich transparent
sind. Sie haben einen
Alpha-Wert , der weniger als einer ist. Das ist sehr wichtig
, dass der Alpha-Wert hier für einige der Pixel
natürlich weniger als eins ist. Sonst wird
es nicht transparent angezeigt. Das ist also so ziemlich alles, was es dazu
gibt. Sie können dies in GIMP tun, in Paint on Net oder
zwei großartigen Programmen. Ich persönlich benutze Photoshop, aber diese beiden würden auch funktionieren. Aber was auch immer der Fall sein mag, das ist es eigentlich 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.
99. (weitere Themen) Animierte Elemente hinzufügen: Alles klar, willkommen zurück
zum Stoffkurs für 118. In dieser Vorlesung werden
wir Minecraft
ein benutzerdefiniertes animiertes
Element hinzufügen . Jetzt ist das Hinzufügen eines animierten Elements tatsächlich ein
ziemlich einfacher Vorgang. Jetzt wird dies
eine Textur sein, die
sich im Laufe der Zeit animiert
und verändert. Dafür brauchen
wir natürlich einen neuen Artikel. Lassen Sie uns also in unsere Klasse „
Weitere Gegenstände“ gehen, es sei
denn , das wird wahrscheinlich am einfachsten
sein. Und unter unserem Ruf
ist der magische Unterstrich neu alc
unterstrichen Staub. Und dann das Gleiche hier. Magischer Unterstrich oder ein
Kalzium-Unterstrich Staub. Jetzt wird das ein normaler Gegenstand
sein. Neugierig, nicht wahr? Ja, der eigentliche Artikel
selbst ist
sehr, sehr einfach zu erledigen. Das
Interessante ist
tatsächlich die
Textur selbst
sowie die zugehörige
MAC-Metadatei. Interessant, was bedeutet
das, was wir sehen werden. Aber zuerst fügen wir die Übersetzung gleich
hier hinzu, damit wir sie haben. Und dann fügen wir
auch die Modelldatei hinzu. Nun, die Modelldatei
könnte sagen, Nun, die Modelldatei muss wie
verrückt kompliziert sein , nicht wahr? Es wird wahrscheinlich
wirklich verdammt genial werden. Und nein, es ist eigentlich
nur eine normale Modelldatei, wie Sie deutlich sehen können, die
nur auf eine Textur zeigt. Und die Textur ist die Sache, die der interessante,
naja, interessante
Teil von all dem sein wird. Also werden wir das
überschreiben, einschließlich der MC Mehta-Datei. Jetzt steht Ihnen das natürlich
alles
im GitHub Repository genauso gut im
Einzelnen zur Verfügung. Und du siehst
genau hier, das ist der eigentliche Staub selbst. Und Sie können sehen, dass
es sich um mehrere Texturen handelt. Und dies sind die
Frames, die in der MC-Metadatei
referenziert werden . Man sieht 012345, es ist ziemlich 012345. Sie werden gehen, sie werden im Grunde
in einem französischen Begriff von 16 animiert sein. Ich empfehle dringend,
dies zu ändern und ein bisschen
damit herumzuspielen, seien Sie hier offen für Experimente. Interpolation bedeutet einfach, dass sie
von einem Frame zum anderen ein- und ausblendet ,
anstatt sich diskret zu ändern. Das ist die allgemeine Idee der
Interpolation in diesem Fall, und das ist die Idee hier. Das ist also eigentlich
alles, was es dazu gibt. Jetzt ist es sehr wichtig
, dass die MC-Metadatei denselben Namen wie die
hat, wie die Textur
einschließlich des Punktes PNG. Das ist unglaublich wichtig. Bitte vergewissern Sie sich, dass dies
korrekt geschrieben ist. Wieder einmal eines dieser
Dinge, bei denen es am besten ist, die Rechtschreibung zu überprüfen oder zu verdreifachen. Und für einige
Beispiele für Blöcke. Zum Beispiel können Sie zu
den externen Bibliotheken
hier unten gehen den externen Bibliotheken
hier unten , um
Netz-Mikroben-Projektkarten, so weiter und so weiter. Und wir gehen in
den Assets-Ordner, Minecraft-Texturen blockieren. Und wir werden uns den Magma-Block
ansehen ,
weil dieser
auch animiert ist. Sie können sehen, dass die Magma-Textur tatsächlich frei ist,
verschiedene Texturen. Und hier ist die MAC-Metadatei. Wieder einmal
fast genau das Gleiche wie bei der tatsächlichen Metadatei
, die wir hier haben. Sie können sehen, dass es nur eine
andere Rahmenzeit für das Magma ist und das ist so
ziemlich alles, was es
zu empfehlen gibt, wie gesagt, ein bisschen
damit herumspielen. Probieren Sie es aus und sehen Sie, was Sie sich im Grunde einfallen lassen
können. Aber ansonsten sehen
wir tatsächlich ob die animierte Textur richtig
funktioniert. Oder ein Minecraft. Wie Sie sehen können, wurde der magische
Staub
erfolgreich hinzugefügt und Sie können sehen, dass er
verdammt und erstaunlich aussieht. Es generiert oder
animiert vielmehr automatisch. Man sieht, dass es einfach, es sieht wirklich cool
aus, weil es einen
funkelnden Effekt hat . Und wie gesagt, dies ist vollständig anpassbar. Du kannst einfach
die MC-Metadatei wechseln, damit
ein bisschen
herumspielen und dann kannst
du einfach damit, nur mit solchen Grundstücken kannst
du schon ein paar
ziemlich coole häufige Dinge hinzufügen in dein Modell hinein. Das war 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.
100. (weitere Themen): Alles klar, willkommen zurück
zum Stoffkurs für 118. In dieser Vorlesung erstellen
wir einen benutzerdefinierten Menübildschirm. Jetzt wird das in der Tat
sehr interessant sein, denn ein benutzerdefinierter
Menübildschirm ist etwas, das Sie Ihrem MOD hinzufügen können. Eines der
Dinge, die ich hier sofort
erwähnen möchte , ist , dass wir, wenn wir den
Menübildschirm in dieser Vorlesung erstellen, es so machen werden,
dass er immer angezeigt wird. Und dann in der nächsten
Vorlesung, in der
wir über Configs sprechen werden, werden
wir es schaffen,
damit Sie herausfinden können ob das
Ding angezeigt wird oder nicht. Das ist sehr wichtig
, dass du das hinzufügst. Denn sonst wird
dein MOD
niemals zu einem Mod-Pack hinzugefügt. Sie müssen
dies konfigurierbar machen. Aber das
werden wir in der nächsten Vorlesung sehen. In diesem erstellen wir benutzerdefinierten Titelbildschirm
der Wand. Was wirklich
interessant sein wird, ist, dass ich viele Möglichkeiten
gesehen habe , wie dies zuvor gemacht
wurde, aber im Grunde immer
die Titelbild-Klasse verwende. Das wird also
der Titelbildschirm sein. Dort gehst du unter diesen
hier und Microbe-Client-GUI-Bildschirm. Und es war sehr
merkwürdig, weil sie im Grunde
immer nur den gesamten Titel
gemacht haben. Screen Maker hat ein
Mixin erstellt und sich gerade geändert. Ich meine, eine Menge Sachen hier drin. Und ich dachte, ich kann
mir nicht vorstellen, dass das der einzige Weg
sein wird, dies zu tun. Und tatsächlich ist es
nicht der einzige Weg, dies zu tun. Ich habe einen viel,
viel einfacheren und besseren Weg gefunden . Also werden wir
immer noch einen Mixin brauchen, aber es wird sehr einfach sein. Zunächst einmal
werden wir eine neue Klasse
nachahmen und
qualitativ hochwertige Bildschirmmischungen herstellen . Geh und es wird irgendwie so
aussehen. Ich kopiere es rüber. Ich werde sagen, Oh mein Gott, genau
das ist viel zu viel. Es ist fast nichts. Du wirst das zu einer Schnittstelle machen
. Dies wird die Bildschirmklasse
mischen. Und es muss nur
einen Accessor haben oder die Liste
der Drawables. Das ist alles, was wir hier
brauchen werden. Das ist buchstäblich
alles, was wir brauchen. Dann müssen
wir natürlich für das Mischen auch hinzufügen, dass diese gerade hier
gemischt sind, sehr wichtig, dies
ist unter dem Kunden. Das ist sehr wichtig, da sich
dies nur
auf den Kunden auswirken wird. Deshalb müssen wir das genau hier
haben. Wir können dies auch in
der Bildschirmumgebung,
Wert,
Umgebungstyp sehen hier ist Client. Dies ist nur
im Client passiert. Deshalb
müssen wir das Mischen in den Kunden in das Mischen von JSON einbringen. Nachdem wir
das getan haben, sind wir jetzt Logbuch. Okay, wie werden wir jetzt
vorgehen? Wir erstellen einen
neuen Titelbildschirm. Lass uns einfach
im Util-Paket sein. rechten Maustaste auf die neue
Java-Klasse, die heißt, ich nenne das den
Seetang- und Titelbildschirm im Leerlauf. Da gehst du. Dies wird
die Titelbild-Klasse erweitern. Sie können sehen, dass wir eigentlich nicht
darüber schweben und wir müssen hier nichts
tun. Aber was ich
tun werde, ist, dass
ich den
Inhalt davon kopieren werde. All dies
steht Ihnen wieder
im GitHub-Repository und auch
individuell zur Verfügung. Ich werde erklären, was
der FREC ist. Hubbard hier. Wir können diesen Spritzer sehen. Dies ist der eigentliche
Bezeichner, der auf
mein Bild verweist , dass ich die normale Bildbreite
ersetzen wollte. Und dann haben wir auch die
Minecraft-Titelbildschirme Textur. Dies ist nur das
Minecraft, das im Grunde oben, in der Mitte und
oben
auf dem eigentlichen Titelbildschirm
geschrieben ist , oben
auf dem eigentlichen Titelbildschirm weil wir das
tatsächlich hinzufügen mussten. Schon wieder. So wie dies funktioniert, nennen
wir diese Render-Methode. Das erste
, was es tut, ist, dass es den normalen Titelbildschirm
rendert. Wie Sie sehen können, habe
ich dies hier
in vier verschiedene
Methoden aufgeteilt . Dann zeichnen wir unseren
benutzerdefinierten Titelbildschirm. Dann zeichnen
wir
das Microsoft-Logo mit Ich
werde die
Copyright-Hinweise zeichnen, und dann zeichnen wir den Titelbildschirm und die Schaltflächen. Ich war sehr wichtig
, dass ich definitiv immer
die Urheberrechtshinweise
dort aufbewahren und nicht 100% sicher bin. Aber ich denke, wenn
Sie sie nicht haben
, können Sie
Urheberrechtsbetrug oder so
etwas begehen .
Also behalte sie da drin. Behalte es einfach so. Dies ist ziemlich
genau derselbe Code , der sich auch
im Titelbildschirm befindet. meiste von diesem Zeug wurde
vom Titelbildschirm übernommen. Das eigentliche Logo hier komplett
vom Titelbildschirm aus. Die Bildschirmschaltflächen,
die vom Titelbildschirm und dann vom Bildschirm für benutzerdefinierten Titel
zeichnen entnommen wurden. Dieser hier
ist ein bisschen ich würde nicht unbedingt maximale Kundensachen
sagen, aber das meiste davon als Kunden kann
man sehen, dass das
meiste Teil dem auch sehr ähnlich
ist. Wir zeichnen hier im Grunde nur
eine andere Textur. Und das ist so ziemlich
alles, was wir tun. Jetzt. Was machen wir
mit diesem Titelbildschirm? Nun, wir werden eine
neue Veranstaltung interessant machen. Im RV-Ereignispaket klicken
wir mit der rechten Maustaste auf neue
Java-Klasse, wir mit der rechten Maustaste auf neue und dies wird
das Ersetzungstitel-Bildschirmereignis sein . Lass uns einfach so nennen, wie
ich es nenne. Dies wird den Bildschirm
Ereignispunkt zuvor implementiert, und wir müssen
diesen genau hier nehmen. Dieses Ereignis ist ein zentraler Bestandteil, bevor ein bestimmtes Ereignis initialisiert
wird. Wir werden
dann die
Vor-Init-Methode genau hier implementieren . Und dann kopiere ich
den Inhalt, was auch
sehr einfach sein wird. Aber was wir gerade sagen
werden, ist hey, wenn der Bildschirm, der
gerade initialisiert wird ein Titelbildschirm
ist und es nicht unser Titelbildschirm
ist. Wir werden diesen Bildschirm nur in Richtung
Titelbildschirm einstellen. Das ist
hier leicht genug zu übertreiben. Das ist buchstäblich übertrieben. Und jetzt müssen
wir nur dieses Register machen, dieses eigentliche Ereignis hier. Und das wird
in der Client-Klasse geschehen. Also MC-Kurskunde,
sehr wichtig. Und dann werden wir hier nur Screen-Events
sagen bevor wir diese Zeit
der Event-Fabrik hier drin sind. Und dann sagen
wir nur ein Register,
ein neues Ersetzereignis, Ersetzen des Titelbildschirms. Das ist es. Jetzt wird der Titelbildschirm hier durch diese
Textur
ersetzt. Wir haben natürlich, ich
muss diese Textur immer noch hinzufügen. Sonst werden wir einfach eine schwarze und rosa Textur
bekommen, was wir nicht
wollen, um
in die GUI und dann
im Hintergrund zu gehen , also neues Verzeichnis, ihren
Hintergrund sie vor. Und dann kopieren wir das. Dies steht Ihnen auch
zur Verfügung. Bitte
beachten Sie jedoch, dass damit
ein Copyright-Hinweis
verbunden ist. Wieder einmal kann
hier aus der Credits Datei entnommen werden. Du siehst welche am Knie. Dies ist also wieder dieselbe
Creative Commons-Lizenz. Und dann musst du einfach
die Fiverr-Seite direkt dort verlinken . Das wird
auch im Hinterkopf behalten, wenn Sie es verwenden möchten. Ich empfehle dringend,
es nicht zu verwenden , da es keinen
Sinn ergibt denn wenn Sie
die tatsächliche Textur hier sehen, ich es einfach
nicht, Sie müssen sie nicht verwenden. Nun, was auch immer der Fall
sein mag, das ist alles, was wir brauchen. Also mal sehen, ob
es funktioniert oder es hier zu laden
beginnt und wir sollten es
natürlich sofort sehen. Und da sind wir. Der benutzerdefinierte Titelbildschirm funktioniert genau so, wie Sie es erwarten
würden. Die Knöpfe funktionieren immer noch. Ich kann meine, das ist
ein sehr schlechtes Beispiel,
aber los geht's. Also kann ich im Grunde
alles anklicken und
alles funktioniert immer noch. Und wir haben
Milo-Mikrobencharakter hier ein Zeichen halten
Tutorials nach Spalte und Zeile. Hier auf der linken Seite
haben wir hier
einen kleinen Spoiler. Wer weiß also, was
das kombiniert bedeutet? Wer weiß es? Aber insgesamt mag ich es wirklich cool und
alles funktioniert. Und so können Sie sogar hier auf
das Copyright eingehen. Sie können immer noch darauf klicken und alles
funktioniert immer noch gut. So
einfach ist es eigentlich, meinem Handwerk
einen benutzerdefinierten Titelbildschirm
hinzuzufügen , oder? Und wie gesagt,
empfehlen wir dringend,
sich auch die nächste Vorlesung anzusehen , in der wir auch einen
Konflikt hinzufügen werden. Denn wenn Sie den Konflikt nicht
haben, müssen Sie
dies konfigurierbar machen. Ich werde das nur sagen,
aber vorerst ist
dies 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.
101. (Zusätzliche Themen) Einfache und einfache: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir Minecraft
einen einfachen Konflikt hinzufügen .
Was heißt das also? Wie funktionieren Konflikte? Nun, zuerst werden
wir einen bereits gemachten Kurs
benutzen. Und das ist genau
hier aus dem Stoff, einfache Lippen genau hier. Das ist von einem Magistrat Vmax. Und seien Sie vorsichtig oder seien Sie sicher, dass
dies unter dem Urheberrecht steht. Und das wird also die MIT-Lizenz
sein , damit Sie
sich dessen bewusst sind. also sicher, dass Sie
wissen, dass dies der Fall ist. Der einfache Konflikt
hier ist eigentlich, ich meine, er ist
ziemlich einfach. Es ist eigentlich nicht
zu kompliziert, aber wir werden das benutzen. Und das
steht Ihnen natürlich auch im GitHub Repository auch im
Einzelnen zur Verfügung. Und ich kopiere tatsächlich alle
drei Klassen , die im MC-Kurspaket erstellt wurden , klicke mit
der rechten Maustaste auf neues Paket namens config. Dann
kopiere ich
da drin die drei Klassen. Wie gesagt, sie
stehen
Ihnen alle auch zum Download zur Verfügung. Aber mal sehen. Da gehst du. Da sind sie ja. Wir haben die einfache
Konfliktklasse, die im Allgemeinen nur
eine normale Java-Klasse ist. Drinnen hier drin ist
nichts im Grunde genommen für
Minecraft oder Stoff. Das ist alles normaler Java-Code. Hier hatte ich, ich habe genau hier eine winzige
Änderung vorgenommen, dass es
einen gemeinsamen Wert erkennt , der alles ist, was ich hier
im Grunde genommen hinzugefügt habe. Lasst uns einfach, weil
ich es ein bisschen
schöner fand , weil ich es so
eingerichtet habe, dass wir diesen
Konfliktanbieter genau hier haben. Wir können sehen, dass dies nur
eine Standardkonfiguration ist. Was macht das jetzt? Wirklich ist nur eine Liste von Paaren. Wir werden also
ein Schlüssel-Wert-Paar
haben ein Konflikt ziemlich vernünftig ist, wo es eine Zeichenfolge
gibt, die der Schlüssel sein wird, dann eine Art von Wert. Wir wissen nicht welchen Wert,
weil wir im Grunde Dinge in verschiedenen
Werten
speichern können und das ist in der
Mod-Konflikt-Klasse ist im Grunde alles gut gemacht, wir haben diese Methode für Registerkonflikte, die wir in einem
Moment anrufen werden . Aber was macht das? Nun, es ist ein neuer
Konfliktanbieter. Es erzeugt dann die Konflikte. Dies ist die eigentliche
Entstehung der Konflikte. Sie können sehen, dass wir diesem
modernen
Konfliktanbieter gerade
Schlüssel-Wert-Paare hinzufügen diesem
modernen
Konfliktanbieter gerade
Schlüssel-Wert-Paare . Die Idee ist, dass
dies der Schlüssel ist. Du siehst also, dass ich hier gerade ein paar Beispiele
hatte. T-Testwert, wir haben
einen anderen Testwert. Ein weiterer Testwert ist
eine doppelte Zeichenfolge, oder diese Kommentare
hier haben, damit es
für den Spieler oder
den tatsächlichen Benutzer etwas einfacher ist, diesen Konflikt zu
ändern ,
damit er weiß, welchen Typ
er möchte dies ändern zu. Sie können auch noch ein paar
andere Sachen hinzufügen. Wie mögliche Dinge, die
Sie hier einsetzen können, wäre so
etwas auch der Fall. Und Sie können sehen, dass Sie hier
den
Ersatztitelbildschirm haben , der der wichtigste ist
und welcher ist der, und welcher ist der wir uns
im Grunde genommen in nur einem
Moment ansehen werden
vorerst werden wir hierher gehen und ganz oben auf den Uninitialisierten wollen
wir Mod-Konflikte sagen,
keine registrierten Konflikte. Das ist so ziemlich alles
, was wir hier tun müssen. Wie ich schon sagte, natürlich ist der
gesamte Code verfügbar. Das
Wichtigste ist, dass Sie Ihre konfigurierten
Werte hier nicht überall verwenden
können. Und das ist etwas, das hier sehr wichtig
ist. Denn einige, das, was wir
im Grunde tun
werden, ist, dass wir nur einen Moment
lang einen Kunden leiten werden. Und ich werde erklären, warum es hier einige Probleme geben könnte. Also haben wir zwei verschiedene
Threads, oder? Es gibt also den Server-Thread und der Client dafür ist
natürlich auch der Grund, warum wir
den MC-Kerne Mod
genau hier und die
MC-Kurs-Client-Klasse haben den MC-Kerne Mod . Weil dies nur der Kunde ist, ist
dies für beide. Dies sollte vier üblich sein. Grundsätzlich. Unsere Konfiguration
wird jetzt interessant sein,
denn auf dem, wenn wir auf dem Server sind, wird
tatsächlich geladen. Und wenn wir dann auf dem Kunden sind, wird er auch geladen. Jetzt habe ich mein Mikrofon, es hat angefangen und
dann kann ich aufhören. Und jetzt sollte ich in der Lage sein,
meinen Konflikt unter dem
R1-Ordner in Konflikten zu finden . Und los geht's,
MC-Kurskonflikt oder Eigenschaften. Und du kannst sehen, dass sie es sind. Sie haben also den eigentlichen Schlüssel hier und dann was auch immer
dieser Wert ist, und dann können Sie auch den Standardwert
sowie den Kommentar
sehen , den
ich hier im Grunde hinzugefügt habe. Das ist die allgemeine Idee, und so wird sie angezeigt. Das
Interessante ist hier wieder einmal, dass diese Datei für den Server
und den Client tatsächlich
gleich sein wird . Wenn wir zum Beispiel etwas im
Was auch immer ändern
würden,
zum etwas im
Was auch immer ändern
würden Beispiel in den weiteren Gegenständen, und sagen, dass es hier
eine andere maximale Anzahl gibt. Das wird eine Diskrepanz zwischen dem Server
und dem Client sein. Sei sehr vorsichtig, wo
du das benutzt. Ich habe festgestellt, dass Konflikte in Fabric viel schwieriger richtig zu machen
sind. Dann
weiß ich in Forge nicht, dass es
keine wirklich gute Lösung gibt , die ich gefunden habe. Alle Config-APIs sind alle unglaublich verworren
und nicht sehr einfach zu befolgen. Ich bin mir nicht hundertprozentig sicher. Dieser einfache Konflikt
hier wird
für definitiv einige oder
einige Client-Sachen ausreichen , 100% für die Server-Sachen. Nun, wir werden es sehen. Und du könntest
dies auch trennen, um eine, diese drei Klassen im Grunde genommen, oder vielmehr diese beiden
Klassen machen dies zu einem Mod. Clientkonflikte
rufen dies nur auf dem Client auf, dann sollte es nicht
einmal ein Krater auf
dem Server sein , da natürlich der gekachelte Bildschirm
ersetzen
in diesem Moment, in diesem Fall hier, tatsächlich etwas, das nur
im tatsächlichen,
tatsächlichen Kunden passiert . Nichtsdestotrotz
sollte es vollkommen in Ordnung sein. Also gehen wir in das
Ersetz-Titelbildschirm-Ereignis ein. Und dann werden wir hier
sagen, dass wir Mod,
Mod Client, keine Konflikte mehr sagen werden. Sie führen zu mehr Konflikten
, die den Titelbildschirm ersetzen. Und wir
werden nur ein Ende hinzufügen und das wird es sein. Es wird im Grunde genommen
nur überprüft , ob das stimmt oder nicht. Und wenn wir das
zum Beispiel hier in
„false“ ändern und dann von vorne anfangen würden. Nachdem dies
grundsätzlich einmal erstellt wurde, sollte es nun
den tatsächlichen Wert einlesen. Und es wird sagen, hey, Titelbildschirm
ersetzen ist falsch und
ersetzt dann nicht den Titelbildschirm. Aber wie gesagt, es gibt noch
einige Hürden
an der Konfliktfront. Dies ist also definitiv
nicht die beste, momentan beste Lösung. Da gehst du. Es funktioniert. Dies ist derzeit
die beste Lösung, aber es ist
wahrscheinlich nicht die beste Lösung für immer. Ich habe noch keine sehr gute Implementierung
von Dingen gefunden sehr gute Implementierung
von Dingen , die eine gute
Konflikt-API für Fabric sind, aber
es ist was es ist. Nichtsdestotrotz
haben wir jetzt zumindest als
Konfliktjahr für den Bildschirm
hinzugefügt, was hier im Grunde das
Wichtigste ist. Sie haben auch etwas
für Konflikte, so dass
sie zumindest in
die richtige Richtung gehen. Das Fabric MC-Wiki
hat übrigens eine Liste von ein paar
verschiedenen Konflikten. Wie gesagt, ich habe nicht
festgestellt, dass einer der anderen so interessant
oder so gut gemacht ist. Zumindest habe ich das nicht wirklich getan, ich habe ein bisschen
Zeit mit jedem von ihnen verbracht. Und der einfache
Konflikt ist wirklich leicht für den
Anwendungsfall zu verwenden, den wir haben. Ich werde das
auch verknüpfen, damit Sie sich
im Grunde auch einige
der anderen ansehen können. Aber vorerst denke
ich, dass es uns gut geht. Das ist schon für
diese Vorlesung genau hier. Ich hoffe, Sie fanden
das nützlich und Neu, und wir sehen uns in
der nächsten Vorlesung.
102. (zusätzliche Themen): Alles klar, willkommen zurück
zum Stoffkurs für 118. In dieser Vorlesung werden
wir Minecraft
einen benutzerdefinierten Effekt hinzufügen . Dies ist eine sehr
interessante Sache, da der tatsächliche Effekt
von einem anderen Schüler stammt, diesen Effekt tatsächlich
in ihren Mob
importiert hatte, aber ein Problem hatte. Und ich konnte es reparieren. Und ich dachte: Das ist
ein wirklich cooler Effekt. Ich möchte im Grunde zeigen,
wie das funktioniert, und das ist tatsächlich viel einfacher,
als Sie vielleicht denken. In unserem MC-Kurspaket. Wir werden mit der rechten Maustaste auf ein
neues Paket klicken. Und statt dort
werden wir zwei neue Klassen machen. Einer von ihnen wird
die Mode Effects-Klasse sein. Dann wird
der andere der Freeze-Effekt sein. Der Effekt, wie
es funktionieren wird, ist im Grunde, dass es
eine Entität einfriert oder dass sie sich nicht mehr bewegen
können. Weißt du, ein
bisschen von mir würde ich hier nicht unbedingt irgendwelche Probleme sagen, aber es wird
interessant sein zu sehen,
weil es eine Art interessante, sagen
wir mal, wie das funktioniert, aber wir werden nur
sehen, wie das funktioniert. Ich kopiere den
Inhalt der eigentlichen Klasse,
erweitert den Status
Affekt-Klasse, den du sehen kannst. Und dann haben
sie im Grunde nur einen normalen
Konstruktor hier. Wir überschreiben die Methode „Update-Effekt
anwenden“. Dies wird also
die Ticking-Methode sein , die im Grunde jedes Häkchen hält, auf das eine Entität diesen
Statuseffekt angewendet hat. Und dann müssen
wir auch sehr
wichtig die Methode „kann aktualisieren
“ überschreiben und hier
einen True zurückgeben ,
damit diese Methode
sogar Coat ist , denn
wenn dies falsch ist, dann ist dies nicht mal beschichten. Sie können sehen, dass wir
im Grunde nur die aktuellen
Koordinaten
der tatsächlichen Entitäten nehmen aktuellen
Koordinaten
der tatsächlichen Entitäten und sie
dann einstellen, wodurch die tatsächliche Entität
wieder auf diese Koordinaten zurückgelassen wird. Es könnte einige Probleme damit geben, insbesondere
beim Fliegen. Für den eigentlichen Spieler
ist
diese aufgerufene Methode jedoch sehr wichtig. Und für alle anderen,
also alles, was
eine Entität hat , die auf der Welt
herumläuft, dann ist die eingestellte Geschwindigkeit wichtig, weil dies es
im Grunde so macht , dass die Tiere oder ein Zombie oder was auch immer sich
vielleicht nicht mehr bewegen kann. Beide sind also wichtig, und das ist so ziemlich
alles, was Sie
hier in der Mode Effects-Klasse tun müssen . Wir werden das noch einmal einfach kopieren,
denn warum nicht? Das ist eigentlich nicht so viel. Und natürlich auch alles, was Ihnen in
der Vergangenheit oder einer
Einzelperson genauso gut
zur Verfügung steht . Man sieht im Grunde
nichts zu Verrücktes. Wir haben den Statuseffekt als wir
ihn hier registrieren. Und wir
registrieren es tatsächlich innerhalb
der Registereffekte Kohle, was natürlich etwas ist,
das wir anstelle
des MC-Kurses Ahmad
Class hier anrufen müssen des MC-Kurses Ahmad
Class hier .
hier. Wir werden mehr Effekte sagen,
keine Registereffekte. Da gehst du. Und das ist alles, was wir tun
müssen, jetzt
müssen wir noch eine
weitere Sache hinzufügen, und das wird im Ordner „Assets
MC Course Textures“ sein. Sie möchten ein neues Verzeichnis namens mob underscore-Effekt erstellen. Effekt. Da gehst du, Effect.
Und dann möchten wir das Freeze PNG hinzufügen, um das eigentliche PNG oder
das eigentliche Bild
zu sein , das
angezeigt wird, wenn Sie diesen Effekt
haben. Das ist eigentlich
alles, was es dazu gibt. Es ist wirklich nicht
so kompliziert, besonders der
Statuseffekt an und für sich. Die Kategorie hier sollte
ziemlich selbsterklärend sein. Dies ist nur die
Farbe, die Sie sehen können, das ist nur die
tatsächliche Farbe dieses Statuseffekts
, der verwendet wird, ich glaube an Ozeane
und Perser, wir werden im Grunde die nächste Vorlesung
sehen auch. Vorerst werden
wir
diesen Effekt einfach ohne Teil haben . Und nachdem wir all das hinzugefügt haben,
schauen wir mal, ob es funktioniert oder ob
es wieder in Minecraft war. Also lasst uns einfach hinzufügen
und sehen, ob ich mir den Effekt hier
geben kann . So wird der Spieler
da sein und Sie können sehen, dass der
MC-Kurs-Freeze-Effekt vorhanden ist. Also lass es
uns einfach geben und du kannst sehen, ich kann nicht bewegen, wenn ich versuche, die Tasten
zu drücken, dh es funktioniert nicht, oder? Und Sie können sehen, dass wir momentan
keine tatsächliche Übersetzung haben momentan
keine tatsächliche Übersetzung , aber
das wird gut. Und du siehst, dass ich es nicht kann, ich kann nicht mal die Maus bewegen. Ich kann immer noch Blöcke treffen,
wenn ich glücklich bin. Aber du kannst sehen, dass
das sehr
viel ist , ich bin im Grunde eingefroren. Es gibt wahrscheinlich etwas
, das Sie auch
tun können , damit Sie diesen Shake nicht bekommen, wenn Sie
versuchen, die Maus hierher zu bewegen. Aber insgesamt funktioniert es. Und sobald der Effekt
nachlässt, geht's los. Jetzt kann man wieder ausziehen und
alles funktioniert gut. Das ist also echt verdammt cool. Wie gesagt, der Rest
wird in
der nächsten Vorlesung hinzugefügt, einschließlich eines Teils, und
die gesamte Übersetzung wird
ebenfalls vorhanden sein. Aber das wird es für
diese Vorlesung genau hier sein. Ich hoffe, Sie fanden das nützlich
und Millionen auf dem Neuen, und wir sehen uns in
der nächsten Vorlesung.
103. (zusätzliche Topen): Alles klar, willkommen zurück
beim Stoffkurs für 118. In diesem Vortrag werden
wir Minecraft
benutzerdefinierte Tränke hinzufügen . Jetzt
sind benutzerdefinierte Portionen sehr interessant, und dies
wird natürlich den Fries, den wir in
der letzten Vorlesung
hinzugefügt haben, huckepack . Was wir tun werden,
ist, dass wir gleich hier
ein neues Paket erstellen , dass wir gleich hier
ein neues Paket und
das als Zaubertrankpaket bezeichnen. Da gehst du. Anstatt dort werden
wir dann
eine neue Java-Klasse namens Mod-Ozeane erstellen. Sie sind schon her. Noch einmal werde ich den Inhalt hier tatsächlich
kopieren. Aber bevor wir
den Inhalt kopieren können, wollen wir das
eigentlich hier
kopieren. Wenn wir den Fries der
Portion bekommen und dann die
Trankmethode registrieren wollen , oder dies steht Ihnen
natürlich auch
im GitHub-Repository und individuellen Interessen zur Verfügung. Also keine Sorgen. Dann füge ich die Methode für modifizierte
Registertränke genau hier hinzu, da wir in der Lage
sein werden, die
Rezepte für
das Register-Trank in nur einem Moment hinzuzufügen Rezepte für
das Register-Trank in nur einem Moment denn für die
Rezepte, die wir hinzugefügt haben, wir brauchen eigentlich
eine Mischung hier, aber überhaupt keine Sorgen. Es
wird eigentlich auch nicht kompliziert sein. Aber diese
Methode für Registertränke wird genau hier aufrufen. Also unter den motorischen Effekten, mehr Trank, fangen Sie an,
Trank zu registrieren. Also los gehst du. Das sollte das sein. Nun ist das eigentlich
wichtig, dass wir dieses Feld innerhalb der Methode für
die Registertränke
zuweisen. Ich bin mir nicht 100% sicher. Es ist nur ein
bisschen eine Eigenart hier, aber ich habe festgestellt, dass das funktioniert. Und wenn wir es
sofort
hier zuweisen, wenn wir das
Feld initialisieren und es nicht funktioniert. Aber was auch immer der Fall sein mag, wir brauchen jetzt eine Mischung. Wenn wir uns also gerade
das
Braurezeptregister ansehen , befinden
sie sich in einem Rezept für
Netzmikroben. Dies ist eine großartige Klasse
, die alle verschiedenen
Rezepte für Tränke registriert . Und du
meinst vielleicht: Das ist großartig, aber leider ist die
Rezeptmethode für das Registertrank privat. Das ist natürlich ein
Problem hier,
denn das bedeutet, dass
wir es nicht einfach hinzufügen können. Wenn das öffentlich wäre,
wird es viel einfacher sein. Aber zum Glück können wir
einfach einen Mixed benutzen. Und dafür werden wir eine neue Java-Klasse
machen, und das wird
das Braurezept sein. Du registrierst Mixin. Da gehst du. Dann wird das so sein, ich werde tatsächlich kopiert und das ist wieder sehr einfach und natürlich alles für Sie
verfügbar. Ich werde das
in ein Interface umwandeln. Dies wird natürlich
die
Registrierungsklasse für Braurezepte mischen . Dann werden wir im Grunde
diese statische Methode namens „nur Register Portion rezept
aufrufen“ haben,
um diese statische Methode namens „nur sicherzustellen, dass dieser Name
genau hier der gleiche ist wie, lassen Sie mich hier
als diesen Namen hier zurückgehen. Dieser Name muss also mit
diesem Namen im Volcker übereinstimmen. Und dann fügen wir
diese Behauptung nur hinzu, weil das
niemals kalt sein sollte. Wenn das gemischt und richtig funktioniert, dann sollte diese Methode als
Kerbe bezeichnet werden, was auch immer hier drin geschrieben ist, das ist nur eine andere Sache. Und dann müssen wir es auch im
EMT-Kurs, gemischtes Rennen,
hinzufügen. Und sehr wichtig,
du willst das hinzufügen, aber lass uns das einfach
hier unter dem Mixin hinzufügen. Das ist also sehr
wichtig beim Mischen, nicht Client hier, um sicherzustellen, dass dies korrekt geschrieben
ist. Wir können also einfach
überprüfen, dies zu kopieren und dies und alles richtig
geschrieben zu
hüpfen. Das ist großartig. Was wir dann tun wollen,
ist, dass wir noch einmal
zur
MOD-Portionsklasse gehen wollen. Und wir werden nur eine private Schulden ankreuzen
lassen. Nein, da gehst du. Statische Leere. Wir werden das die Rezepte für das
Registertrank nennen. Und dann drin werden
wir das Braurezept-Registry-Mixing nennen ,
das Registerrezept aufrufen. Und dann sage ich einfach, dass
wir die Portionen benutzen werden. Peinlich, peinlich. Sie sind schon her. Und dann möchte ich, dass die Mod-Items
beginnen oder Kalziumbarren, wir
müssen hinzugefügt werden
und dann den mehr Trank
bekommen der
hier erhöht wird. Und das ist
so ziemlich alles,
was wir brauchen, jetzt
muss dieser hier kalt sein. Also nennen wir
das ganz unten genau hier. Nachdem alle
Perser für unsere
benutzerdefinierten Portionen
registriert wurden , werden wir auch die
Portionsrezepte registrieren. Und das wird es übrigens
registrieren, für alle drei verschiedenen
Portionen mal kein Trank. Trank, sowie die
anhaltende Portion. Das ist so ziemlich
alles, was wir hier brauchen. Und dann
brauchen wir immer noch die Übersetzung, was sehr wichtig ist. Und wir werden auch
die Übersetzung hinzufügen. Aber die Übersetzung
ist sehr interessant weil die Elemente hier, also die Teile tatsächlich
unter dem Minecraft-Namespace liegen . nicht 100% sicher
, warum das der Fall ist. Ich denke, ich meine, es ist offensichtlich der Fall denn wenn wir einen Trank
registrieren, wird
der tatsächliche Teil unter Minecraft registriert. Es ist einfach das, was es
ist, aber das ist in Ordnung. Und dann brauchen wir auch
einen für den Effekt hier. ich einfach hinzu. Das werden
wir einfach
ganz unten rechts hinzufügen . Also effekt MC Kurs einfrieren, und das ist einfach kostenlos. Das sind also auch die vier Übersetzungen
, die wir brauchen. Und das ist eigentlich alles
, was wir hinzufügen mussten, die Portion einschließlich
des Trankrezepts. Also schätze ich mal sehen, ob es in Minecraft
funktioniert oder Fossilien
ist. Versuchen wir also einfach zu
sehen, ob ich meine benutzerdefinierte Portion herstellen
kann oder nicht . Wenn ich also das
Orakel einsetze, fangen
wir hier schon an, Fortschritte zu
erzielen. Das ist natürlich
schon sehr gut, denn das bedeutet, dass es zumindest das Rezept
funktioniert. Hoffentlich bekommen
wir auch hier
die richtigen tatsächlichen
Portionen denn sonst bekommt man
manchmal
den unbequemen
Trank ,
wenn etwas schief gelaufen ist, aber wir haben keinen Trank eingefriert, splash Portion Frost und
das anhaltende Meer auch. Aber im Moment können
wir
auch sehen , wie es für Mütter funktioniert. Lasst uns einfach das Schafjahr töten. Und mal
sehen, was wir sehen können. Wenn ich
hier ein paar Schafe hinzufüge , sind das tatsächlich ein paar davon
raus. Aber wenn ich das einfach kaputt gemacht habe, siehst du jetzt, dass
sie alle eingefroren sind. Und was ich tatsächlich
tun kann ist,
dass man sehen kann ,
dass wenn ich ihn treffe , das wirklich interessant sein
wird weil sie tatsächlich
in
der Luft schweben werden und das Y von natürlich auch ein eingefrorenes dort. Mal sehen,
lasst uns folgendes machen. Lassen Sie uns tatsächlich noch einen weiteren
Freeze-Teil hier. Bringen wir ein paar Zombies rein. Und mal sehen. Ich werde zurück zu
Überlebenden wechseln , dass sie mir folgen und sie dann einfrieren. Und dann konnte man sehen, dass sie
alle eingefroren sind. Sehr, sehr witzig, funktioniert
aber tatsächlich. Und dann
werden sie manchmal wieder aufgetaut. Geh zurück, da gehst du. Und
so einfach ist es eigentlich. Und wie Sie sehen können,
wurde
all dieses Zeug korrekt hinzugefügt, die Portionen wurden hinzugefügt, alles funktioniert auch. Gehen wir einfach zurück und
sehen uns auch alle Portionen und
die Trankrezepte an. Das ist also ziemlich verdammt cool. 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.
104. (zusätzliche Themen) Personengruppen mit Geckolib hinzufügen: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
eine benutzerdefinierte Entität hinzufügen . Der lang erwartete Vortrag
darüber, wie Sie Minecraft
einen benutzerdefinierten Mob oder eine
benutzerdefinierte Entität hinzufügen können einen benutzerdefinierten Mob oder ,
ist endlich da. Und insgesamt wird es
ziemlich einfach sein. Ich denke, alles in Betracht
zieht, gibt es viele Schritte
, die wir durchlaufen müssen, aber jeder der
verschiedenen Schritte ist an und für sich selbst nicht so schwierig
. Das erste, was
ich sagen möchte
, ist , dass alle Entitäten
, die wir hier herstellen werden , Gecko-Lippenentitäten
sein werden. Also werden wir
keine Vanille-Entitäten machen. Wir beginnen sofort
mit den eigentlichen Gecko-Lippenentitäten. Und ich werde hier tatsächlich etwas
verknüpfen. Das wird also die Gecko-Lippe
sein, im Grunde das
GitHub-Repository genau hier. So ist Gecko-Lippe, die Sie sehen können eine Animationsbibliothek
oder Mikrobenmathematik. Und im Moment werden
wir damit
im Grunde genommen damit machen, dass wir
dies verwenden werden, um
die tatsächlichen Entitäten
tatsächlich zu implementieren. Und das wird
es uns auch ermöglichen,
eine etwas schönere
Art zu finden, sie zu animieren. Daher empfehle ich sehr, dies
auch zu tun. Ich meine auch die Vorlesung hier
und die kommenden Vorträge über die Entitäten werden immer die Gecko-Lippenbibliothek
erfordern,
da dies nicht umgeht. Und das ist auch
nicht so etwas. Manche Leute sagen, Oh,
ich möchte nicht, dass andere Leute auch
einen weiteren März herunterladen müssen, solche Sachen. Mach dir darüber überhaupt keine Sorgen. Ich empfehle dringend, dafür offen zu sein, da
für den Benutzer normalerweise sowieso viel Zeug in Mod-Packs
passiert. Und dann ist
so etwas wie die Gecko-Lippe wahrscheinlich auf die eine oder andere
Weise da drin. Was auch immer der Fall sein mag, Sie können die Verwendung von Stoff sehen. Wir haben verschiedene Dinge
, die wir kopieren müssen. Was ich tun werde ist,
dass ich das auf meinem anderen Monitor
schon hier für mich habe. Was ich tun werde, ist, dass
ich Sachen
kopiere damit du sehen kannst, dass wir
zuerst eine Maven-URL
hier in den Repositorys hinzufügen müssen . Das wird also dieser sein
, der immer derselbe sein wird
. Und dann können wir uns das tatsächlich
ansehen. Das werden
also 32 sein, die
eigentlich dieselbe Version sind , die ich auch hier habe. Und das wird
unter Abhängigkeiten stehen. Also werden wir das hier
reinlegen. Die meisten Implementierungen Software brennen Gecko Lib, Equilibrium, gestrichelte Datei, Fabric Dash
118 und dann 3032. Und das ist eigentlich all
das Zeug, das wir brauchen. Sie können sehen, dass dies für
gefälscht ist, also brauchen wir das nicht. Und dann gibt es hier ein paar
Initialisierungssachen, im Grunde genommen werden
wir damit einwandfrei sein. Also lasst uns tatsächlich wieder
hierher gehen und lasst uns das neu laden. Also werden wir das noch einmal neu laden
, richtig, um mir
vielleicht ein
paar Minuten zu nehmen , so etwas. Es kann auch nur 20 Sekunden
dauern. Natürlich hängt viel von
Ihrer Internetverbindung ab und auch von Ihrer
Wand im Allgemeinen von
der Geschwindigkeit Ihres PCs, während sie 13 Sekunden dauern. Das ist irgendwie nett. Werfen wir einen
Blick darauf, was wir jetzt sehen können. Es gibt einige
Dinge, die wir in unserem MC-Kurspaket
hinzufügen müssen . Klicken Sie mit der rechten Maustaste auf ein neues Paket namens Entities oder Entity, machen wir das. Da gehst du. Und
statt dort werden wir ein neues Paket
namens Custom
erstellen. Und dann klicken
wir zunächst , im Entitätspaket mit der rechten Maustaste auf eine
neue Java-Klasse die Mod-Entitäten
genannt wird. Da gehst du. Und je mehr Entitäten-Klasse tatsächlich in einem Moment
gefüllt werden. Wir brauchen zunächst
die tatsächlichen Entitäten. also in unserem benutzerdefinierten Paket mit der rechten Maustaste auf die neue Java-Klasse, und dies wird
die Waschbär-Entität sein. Da gehst du. Und dann haben wir das erledigt. Jetzt werde ich hier
eine ziemlich vernünftige
Menge an Sachen kopieren , was,
du wirst sagen, okay, das ist ziemlich viel Zeug
hier. Mach dir darüber keine Sorgen. Die allgemeine Idee hier
ist, dass es zwar einige Dinge gibt , die ich
im Grunde kopieren möchte und ich kopiere. Zuallererst steht Ihnen
das alles natürlich auch
im GitHub Repository im
Einzelnen zur Verfügung. Daher empfehle ich
Ihnen dringend, dass
Sie sich das auf die eine oder andere
Weise ansehen müssen. Und dann gibt es auch
eine Menge Sachen, die ich
versuchen werde und erkläre
ein Bestes, was ich tun kann. Zuallererst
wird dies
die tierische Entität genau hier erweitern . Und dann wird es auch die KI animierbar
implementieren. Sie können sehen, dass das von Ecolab stammt. Wir werden den Mauszeiger
darüber bewegen und Methoden implementieren. Und dann werden wir sagen,
okay, nachdem das erledigt ist, sehen
Sie, dass die Create-Testmethode darin besteht, dass
wir diese für die tierische Entität vorerst
null behalten werden. Wir
werden uns gerade nicht
das Laichen von
Stammeseinheiten ansehen . In den kommenden Vorträgen werden
wir sehen, dass
es in Zukunft vielleicht einen weiteren
Vortrag darüber geben wird. Aber vorerst
nichts wie geplant. Wie auch immer der Fall
sein mag, haben auch die Register-Controller und
die Animationsfabrik hier. Diese sind von der
animierbaren Oberfläche des Auges. Und dann bewegen wir
den Mauszeiger noch einmal darüber. Im Grunde erstellen Sie dann
Konstruktor passend super. Und da gehst du. Lassen Sie uns diesen Konstruktor jetzt
sofort öffentlich machen ,
damit wir dies haben. Und dann werden wir
tun, dass ich den Animationsfaktor hier
hinzufügen werde . Also werden wir
in der Animationsfabrik animieren, Sie können ziemlich
einfach
neue private Informationsfabrik,
Fabrik, neue Animationsfabrik sehen neue private Informationsfabrik,
Fabrik, . Und dann geben wir das ein, dann werden wir das einfach hier
zurückgeben. Wir werden dazu keine
Animationen hinzufügen. Eigentlich Vortrag, was auch immer, es hier einzurichten ist überhaupt
keine Sorgen. Das wird also völlig in Ordnung sein. Dann gibt es noch zwei andere
Dinge, die wir definitiv treffen. Das erste, was wir
tatsächlich brauchen, ist, dass wir sagen wollen, dass diese Punkt-Ignorier-Kamera
für Ostrom gleich wahr ist. Ich bin mir ehrlich gesagt nicht 100%
sicher, was das bedeutet. Ich weiß einfach, dass
wir es nennen sollten. Das ist also die allgemeine Idee. Manchmal ist das bei Entitäten der
Fall, auch ziemlich komplexes
Thema, also keine Sorgen. Aber was auch immer der Fall sein mag, das ist die einfachste Sache. Dann möchten wir
einige Attribute hinzufügen. Wir werden die Methode set attribute kopieren. Sie können sehen, dass
wir hier im Grunde
einige Attribute erstellen. Du kannst es maximal, Gesundheit,
Schadensgeschwindigkeit und
ähnliches sehen . Also richten wir dies
im Grunde in dieser bestimmten Entität ein, diese Zahlen können
Sie natürlich ändern,
wie Sie möchten, aber sie müssen da sein. Das ist sehr wichtig. Und dann
brauchen wir auch ein paar Ziele. Dies ist die KI
Ihrer Gesamtmarke. Grundsätzlich. Jetzt habe ich zwei Dinge
hier, die im Grunde genommen schon löschen kann. werden wir ein bisschen brauchen
. Lassen Sie uns im Grunde in zukünftigen
Vorträgen, wenn wir diese
Waschbär-Entität
machen, auch T-Mobile. Das ist etwas für
die zukünftigen Vorträge. Wie gesagt, wir können sehen, dass es hier
einige verschiedene Ziele gibt hier
einige verschiedene Ziele und sie
unterschiedliche Prioritäten haben. Je niedriger die Prioritätszahl, desto höher ist das tatsächliche
Ziel in seiner Priorität. Priorität 0 wäre das
erste, was passiert. Und wenn es einen
Konflikt zwischen dem im Grunde gibt, wenn zwei Ziele
ausgeführt werden könnten, als das mit
der niedrigeren Priorität
und
ins Gesicht ausgeführt werden könnten, weil es
genau so funktioniert. Und das sind eigentlich all
die verschiedenen Dinge, die
wir hinzufügen müssen. Es gibt nichts
anderes, was wir in dieser Entität selbst
hinzufügen müssen . Der ganze Rest kommt, naja, ich meine etwas
später, wenn wir mit
der Tabellen-Entität beginnen werden . In den zukünftigen Vorträgen ist
die Aufzeichnungseinheit fertig. Gehen wir also in die
Mod-Entitäts-Klasse. Und noch einmal werde ich es
tatsächlich kopieren, aber überhaupt keine Sorgen. Denn das
steht
Ihnen wieder zur Verfügung und wir werden dies
durchgehen, Ihnen wieder zur Verfügung und wir werden damit wir sehen
können, dass wir gehen, werde
ich hier einen
neuen Entitätstyp
unserer
Kundenakteneinheit erstellen ? Und dann rufen
wir einfach Register,
Registry auf, die einen
neuen Entitätstyp registriert. Wir werden sagen, das
heißt Waschbär. Und dann rufen wir den Fabric-Entitätstyp von Builder auf und erstellen einen
neuen Entitätstyp. Ich werde sagen, dass
dies eine
geschworene Kreatur ist , die natürlich
verschiedene Arten von
Brücken sind , wie Sie sehen können. Man kann auch sehen, wo
es heißt wie friedlich, ja, und dann
wird das gut. Dann stellt die Gründung einer neuen
Waschbär-Entität sicher, dass Sie es sind, dass Sie Ihren
Ausbilder zur Republik gemacht haben. Sonst bekommst du hier natürlich
einen Fehler. Und die Dimensionen hier
sind die Dimensionen für die Hüftbox dieser Entität. Und dann rufen
wir einfach das Gebäude an und
das wird es sein. Das ist jedoch natürlich nicht
alles, denn so einfach
kann nichts sein. Im Entitätspaket klicken
wir mit der rechten Maustaste auf neues Paket namens Client. Und drinnen
machen wir das Modell und den Renderer. Das werden zwei Klassen sein, also wird es
das Waschbärmodell sein. Und wir werden
auch den Waschbären bauen. Wenn Sie den
Java-Klassen-Waschbär-Renderer gehen, gehen Sie los. Das sind die beiden Klassen
, die wir noch
einmal brauchen werden , um hier ein paar Sachen zu kopieren
. Also mache ich zuerst
das Modell. Genau da. Dies wird das animierte GO-Modell tatsächlich
erweitern. Sie können vom Typ
Waschbärentität absehen. Da gehst du. Und wenn ich dann den Mauszeiger darüber fahre, sehe
ich tatsächlich drei Methoden , die wir implementieren müssen. Dies sind die drei
, die modale Position
erhalten, wie
Texturposition modelliert werden
und nach Ort animiert werden. Und noch einmal, wie gesagt, werde
ich über die Fülle kopieren
, aber nichts zu verrückt. Wir erstellen nur
neue Bezeichner unter unserer Modell-ID und
fügen dann die andere ein.
Nun, hier ist es die
Texturposition, Animationsort und
die Modellposition. Wir werden
diese in nur einem Moment hinzufügen. Zunächst
müssen wir den Code im Grunde beenden oder ich
möchte den Code fertigstellen und dann werden
wir auch auf die Blockbank
wechseln, um unser
benutzerdefiniertes Waschbärmodell tatsächlich zu sehen. Und lasst uns zuerst
hierher zum eigentlichen Renderer gehen. Wir werden also sagen, dass
dies
den Geo-Entitäts-Renderer
vom Typ Raccoon Entity erweitert . Und sie gehen. Und dann
werden wir den Mauszeiger über diesen schnellen Konstruktor bewegen, der super
passt. Und dann müssen wir das erste Modell
wegnehmen. Der zweite Parameter
hier eigentlich, denn hier wollen wir ein neues Waschbärmodell einreichen
. Das wollen wir. Und dann, nur um sicher zu sein, wir auch
die Methode get texture location überschreiben . Ich werde das einfach
im Grunde hobby machen. Sie können also sehen, dass dies
auf dieselbe Textur hinweist. Dieser deutet darauf hin. Das sollte
so ziemlich alles sein, was wir brauchen. Und das sind eigentlich
diese beiden Klassen, die gemacht wurden. Jetzt müssen wir den Renderer immer noch mit
den Entitäten kombinieren . Wie machen wir das? Nun, wir werden in
unseren MC-Kurs gehen , Client-Methode. Und dann ganz unten,
wo wir sagen werden, sagen wir die Entität, rendern eine Registrierung,
diese hier,
Register-Modus-Entitäten ,
diesen Waschbären. Dann sagen wir dem
Record-Renderer-Doppelpunkt, Doppelpunkt wusste, dass wir
keine Fehler bekommen sollten , wenn alles richtig eingerichtet
wurde. Also die tatsächlichen Entitäten, die Klasse CRF und richtig
eingerichtet, die umfangreichen wurden ordnungsgemäß eingerichtet, dann sollten wir keinen Fehler bekommen. Und jetzt funktioniert das Ding
tatsächlich. Aber jetzt brauchen wir natürlich
immer noch eine Entität. Woher holen wir eine Entität? Nun, die Entität, die Sie von einer Blockbank
bekommen. Jetzt haben wir das schon
ziemlich schon gesehen, aber wir werden wieder darauf
eingehen. Und hier
sieht man den Waschbären. Sieht es nicht einfach
verdammt toll aus? tue ich, ich mag es wirklich, aber das wird durch Euro gemacht , das wird natürlich die Gläubiger einreichen. Das wird auch dort eine
Verbindung sein. Aber ich mag es wirklich. Man sieht, dass dies
im Grunde ein Gecko-Lippenmodell ist. Was Sie
tatsächlich benötigen, ist unter Datei-Plugins. Nein, das ist nicht erforderlich, oder? Wir werden Plugins machen. Dies sind die
Gecko-Lippenanimationen util. Du brauchst dieses Plugin hier. Sonst wird es
nicht funktionieren. Und dann kannst du machen,
wenn du ein neues machst, kannst
du ein
Gecko-Lippe animiertes Modell erstellen. Das ist also eine Gecko-Lippe
animiere das Modell. Und was ist das
Besondere daran? Nun, Sie haben diesen
animierten Tab genau hier
und Sie können sehen, dass es
verschiedene Animationen dafür gibt. Aber diese Animationen sind in
diesem Fall bereits erledigt, aber natürlich keine Sorgen. Wir werden sie in einem
späteren Vortrag sehen, wenn wir die
Animationen
vorerst durchgehen.
Was wir nur wollen ist, dass wir
im Grunde nur
das Gecko-Modell exportieren wollten , ist dies nicht erscheinen
Ihnen übrigens, gehen Sie zu konvertieren, konvertieren Sie das Projekt
und stellen Sie dann sicher, dass Sie das animierte
Gecko-Live-Modell
auswählen. Wenn dies darin erscheint, sollten Sie das richtig
tun können. So kann ich sparen, ich kann einfach
sagen exportieren glykolytisches Modell. Und dann werden wir es
im Grunde exportieren. Jetzt
kopiere ich es auch. Also werden wir wieder hierher gehen. Das Modell ist also eine Geodatei, Geo-Punkt JSON, und die unter Ihren Assets-Ordner
gehen muss . Und dann erstellen wir genau hier
einen neuen Ordner, Verzeichnis GO, und dann geht
es da rein. Also werden wir
das einfach kopieren. Da gehst du. Und Sie können sehen, dass dies die
Geometrie des Waschbären ist. Manchmal hatte ich tatsächlich einen Tippfehler drin, aber überhaupt
keine Sorgen. Das sollte immer noch funktionieren,
denn das, was tatsächlich sucht,
ist hier dieser Name. Und solange dieser Name mit dem hier
angegebenen Namen
funktioniert, können
Sie die
GO-Marderhunde-Geode nebeneinander sehen. Das ist was, dieser zeigt
auf den mittleren Standort. Wir brauchen natürlich immer noch die
Texturposition ,
die unter
Texturen liegen wird. Dann unter einem neuen
Ordner namens Entity. Anstatt da werden
wir
einen neuen Ordner namens Raccoon erstellen. Dann wird
dies der Waschbär Punkt PNG sein. Also werden wir
das auch kopieren. Da gehst du. Und jetzt ist alles eingerichtet. Die Dauer der Animation können wir vorerst einfach ignorieren. Wie ich schon sagte, wir werden diesen
Schritt nach dem anderen machen, und das ist so ziemlich
alles, was wir tun mussten ,
um den eigentlichen Waschbären hinzuzufügen. Natürlich wird
es, wie gesagt, in der Blockbank in der Blockbank eine Menge Sachen geben
, die du hier machen musst. Diese Blockbench-Datei steht Ihnen
ebenfalls zur Verfügung. also keine Sorgen. Sie können
das im Grunde genommen nehmen und ausprobieren und dann sehen, was Sie damit verwenden
können. Ansonsten ist es einfach sehr wichtig, dass wir den Gecko ab
diesem Zeitpunkt
grundsätzlich live
nutzen werden. Und insgesamt
sollten die anderen Dinge hier so ziemlich getan werden, wir haben das in diesem Fluss den
Waschbär und den Renderer registriert. Und nur um
es für eine benutzerdefinierte Entität zu durchgehen, benötigen Sie die Entitätsklasse. Sie benötigen keinen
Renderer und kein Modell. Das ist tatsächlich das Gleiche, wenn Sie Ecolab nicht verwenden. Aber die Ausdehnung hier wird es
natürlich
anders sein, denn dies
wird hier ein animiertes
GO-Modell für Gecko-Lippe sein. Und das wird es nicht für eine normale oder
Vanille-Art von Entität sein, oder? Es gibt also noch eine Sache
, die wir tun müssen
, und das ist die Einstellung
der Attribute. Jetzt machen wir das in
unseren Registern, genau hier, den Modus-Registern,
wir werden nur
eine neue Klasse private statische Lücke machen . Und
das werden die Registerattribute sein, aber dies wird eine
Kühlung der Fabric-Entität sein, nennen
wir es tatsächlich eine
Fabric-Standardattributregistrierung . Sie haben vor
Mod-Entitäten registriert, diesen Waschbär. Und dann werden wir nur die
Datensatzattribute der Waschbäreneinheit
nennen , die sie vor ihnen haben. Und das sollte
sein, dass der Fehler hier sein sollte oder die
Warnung hier in Ordnung sein sollte. Und dann werden wir das natürlich genau hier nennen, Attribute
registrieren, die sie als Ziel haben. Und dann noch eine Sache, die
natürlich ganz wichtig ist . Alles, was in Betracht gezogen
wird, werden die Laicheier sein. Also brauchen wir ein
Spawn-Ei für den Waschbären. Gehen wir in unsere
Mode Items Klasse und fügen wir das auch hinzu. Wir werden
das einfach kopieren. Das wird das
Spawn-Unterstrich-Ei des Waschbär-Unterstrichs sein. Jetzt wird dies
das
Spawn-Unterstrich-Ei des Waschbär-Unterstrichs genannt . Dies wird genau hier ein
neuer Gegenstand sein. Der erste Parameter werden
die Entitätstypen von
Mod-Entitäten sein , die Waschbär und unter ihnen
eine Primärfarben haben werden. Also
werde ich diese
tatsächlich kopieren, weil das im Grunde genommen nur
sind, das
sind im Grunde genommen die Farben des tatsächlichen Spermas und Eies. Und ich habe mich schon eingelebt ,
damit wir das nicht noch einmal hinzufügen müssen
. Was wir jetzt tun müssen, und das ist sehr seltsam, aber ich meine, es ist was es ist. Wir müssen tatsächlich eine Spawn AG
Jason-Dateien
hinzufügen , während wir uns in der angrenzenden Datei des
Elementmodells befinden. Also im
Modell-Elementordner und kopiere diesen. Jetzt wird das
sehr, sehr einfach sein. Sie können sehen, dass es nur
das übergeordnete Element der
Artikelvorlage spawnen Ei hat , und dann antworten
sie, wenn sie eingefärbt werden. Es gibt auch die Übersetzung hinzugefügt , denn dann haben wir
das auch gemacht. Dies ist ein Artikel hier. Stellen wir es gleich
hier hin. Da gehst du. So hat der Waschbär nun auch erfolgreich
Ei hervorgebracht und es sollte
sofort während der Arbeit sein. Ich meine, so sollte das
so einfach sein. Und jetzt bin ich mir ziemlich sicher , dass hier alles hinzugefügt
wurde. Wir können sehen, dass es hier
einige Schritte gibt. Sobald Sie sie
jedoch immer wieder
durchlaufen haben , ist dies ziemlich
vernünftig bei den Zielen hier. Ich möchte sagen, dass es viele Ziele
gibt. Wenn wir also hier mit der mittleren Maustaste auf das Ziel
klicken, können
Sie die Torklasse sehen. Und wenn ich darauf klicke
und dann Strg H drücke, können
Sie alle
verschiedenen Ziele sehen, die
in Vanille liegen, und ich kann sie
sogar erweitern. Es gibt noch mehr Ziele hier. Du kannst es auch, du
kannst dir die ansehen. Sie können entweder sogar
Ihre eigenen Ziele erreichen. Theoretisch ist dies
sehr kompliziert. Wir werden in absehbarer Zeit nicht darauf
eingehen. Die Ziele sind sehr, sehr kompliziert
und die besten Möglichkeiten dies als definitiv
vor allem die Vanille-Ziele zu betrachten . Und zweitens können Sie sich
immer einige
GitHub-Repositories
anderer Mods ansehen , in denen es
einige Entitäten mit interessanten
Zielen gibt , die Sie gesehen haben. Und Sie können sich dann
ansehen, wie sie gemacht werden, und daraus lernen, dass die Ziele sehr kompliziert
sind. Es ist KI, es ist was es ist. Aber vorerst ist
das alles, was wir brauchen. Also schätze ich mal sehen, ob
es funktioniert oder ob Antworten in der Mikrophysik sehen das Laichen von Waschbären hinzugefügt
wurde. Also mal sehen, ob
wir es spawnen können. Und da ist es, der Waschbär
spawnt tatsächlich und da gehen sie ,
natürlich in diesem Moment
herumlaufen, überhaupt
nicht wirklich animiert. Und sie haben auch
einige von ihnen. Aber wenn sie tatsächlich wie zwei Treffer
überlebt haben, drei Treffer mit
einer anderen Lichtquelle. Das ist also ziemlich verrückt,
weil sie helfen ,
natürlich ziemlich hoch
gesetzt wurde. Aber das ist etwas, das
man immer ändern kann. Dies ist etwas, das hier
immer experimentierfreudig ist, aber Sie können die
tatsächlichen Tierlaichen sehen. Das ist also ein echt
verdammter Coolness. Und nun, ich meine, mal sehen wohin die Zukunft von mit ihnen
führt. Und schauen wir uns
die Entitätsklasse noch einmal an , denn es gibt noch ein paar
Dinge, die wir hinzufügen können, was für Sie
interessant sein könnte, wo wir uns wieder in der
Entitätsklasse und
nur damit Sie es
gesehen haben, weil dies wahrscheinlich etwas sein
wird, das die
Leute fragen werden. Denn ich meine,
natürlich können Sie hier immer in die
Tierklasse
gehen und sich
all die Methoden ansehen , die Sie möglicherweise außer Kraft setzen
können. Das Gleiche übrigens mit der passiven Entität und der pfadbewussten Entität
und so weiter und so fort. Wir können sehen, dass die
Entitäten bis zum
Lebewesen zurückgehen , dem im Grunde genommen
der ganze Rest
hier im Grunde genommen in der Hierarchie abstammt
. Ein wärmstens empfehlenswert auch diese
auszuchecken. Es gibt so viel zu gewinnen, wenn die Vanille-Entitäten
ansieht. Sie können immer interessante
Dinge so finden, wie sie funktionieren. Aber eine Sache, die auch gefragt werden
könnte, wie füge ich meiner Entität benutzerdefinierte
Sounds hinzu? Und dafür haben wir hier
vier verschiedene Methoden , bei denen ich den Umgebungssound,
den Hertz-Sound auf
den tauben Klang und den
Step-Sound kopieren werde . diesen vier Methoden können Sie
einfach ein Sound-Event zurückgeben. Dies beinhaltet dann natürlich die benutzerdefinierten
Sound-Events, die wir bereits
in früheren Vorträgen gesehen haben . Das würde dann also auch funktionieren. Also sehr zu empfehlen, dass Sie das
im Grunde tun können und dann
wird es diese Sounds
unter bestimmten Umständen abspielen. Ich wollte
das auf jeden Fall auch zeigen. Das könnte etwas sein, das für dich
sehr interessant ist. Ansonsten
empfehlen alle
anderen wirklich , einen Blick auf
einige der Vanille-Beispiele zu werfen. Und dann auch im Grunde, naja, einen Blick darauf werfen, wie wir das in den
kommenden Vorträgen
machen können . Denn wie gesagt,
wir werden ein paar verschiedene Vorträge darüber halten, wie unterschiedlich, wie
die tatsächlichen Entitäten funktionieren. Also werden wir im Grunde die eigentlichen Animationen
einrichten. Nächstes Mal. Wir werden uns
etwas von
der Varianz und dann auch ein
paar andere Dinge ansehen , was wirklich interessant ist. Also empfehle ich,
diese auch auszuchecken. Aber vorerst wird es für diese Vorlesung 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) Füge die Entitäten mit Geckolib und BlockBench: Oder ich begrüße zurück zum
Stoffkurs für 118. In dieser Vorlesung werden
wir
unserer
benutzerdefinierten Entität benutzerdefinierte Animationen hinzufügen . Dafür.
Zuallererst gehen wir zurück in die kaputte Bank. Und wie natürlich in der letzten Vorlesung haben
wir
in der letzten Vorlesung
die Waschbär-Entität hinzugefügt. Dieses Blockbankmodell
steht Ihnen zum Download zur Verfügung. Und wenn Sie das haben, ist
es sehr
wichtig, dass dies hier
ein Gecko-Lippenmodell ist . Wenn dies nicht ganz
richtig formatiert ist, können
Sie das Projekt in
ein animiertes Gecko-Lippenmodell konvertieren . Und dann solltest du
diesen Animate-Tab direkt hier haben. Und auf der Registerkarte Animate können Sie
sehen, ob Sie jemals mit
etwas
gearbeitet haben, das
ein Bearbeitungsprogramm ist ,
bei dem Sie
bestimmte Schlüssel und Ihre Keyframes haben , mit
denen Sie festlegen können. Dies ist auch Animation zum Beispiel
in Einheit, so
etwas ist hier
im Grunde das Gleiche. Und was wir tun können, ist, dass wir auf die Inselanimation
klicken können . Und zum Beispiel kann ich
auf den Schwanz klicken und du siehst, dass ich hier etwas
in die Rotation gesetzt habe. Was ich tun kann ist, dass ich die Animation
einfach abspielen kann. Man kann sehen, dass
über dem Kopf und der Körper langsam auf und ab
gehen. Und der Schwanz hier
wackelt nur ein bisschen
hin und her. Was Sie sehen können, wenn ich auf
diesen Keyframe klicke , den wir sogar bestimmte Methoden
eingeben können Funktionsaufrufe direkt hier,
Sie können Abfrage
Anime Time Math Sin sehen, das ist nur die
Sinuswelle, die wir sind dann setzen Sie die eigentliche
Animationszeit in ein. Und das tut im Grunde nur, gut das in der Y-Achse. Es wird das also in der Y-Achse drehen
. Das ist die allgemeine Idee hier. Sie können hier viele
verschiedene Dinge einsetzen. Sie können die Keyframes natürlich auch manuell
platzieren. Sie können also ein Keyframe erstellen, etwas dagegen
tun und dann die Zeit erweitern, ein anderes Keyframe
erstellen, die
Zeit ein anderes Keyframe erweitern
und so weiter und so weiter. Und natürlich kannst du das
manuell über das machen , was
ich gesagt habe, hier im Körper. Ich habe die Sinuswelle im Kopf gemacht. Ich habe auch eine
Sinuswelle auf und ab gemacht. Und dann
habe ich für den Schwanz auch eine Sinuswelle gemacht. Sie können also sehen, dass diese
Sinuswelle ist und dann ist die
Position hier auch in einer Sinuswelle
nur ein bisschen von einem anderen oder
anderen Wert hier, dass es ein
bisschen anders aussieht, aber insgesamt
sieht es sehr gut aus. Es ist also nur sehr einfach,
aber es reicht aus, einen Eindruck von
einem Leben zu
vermitteln , das sie sind, anstatt
nur eine Statik zu haben. Und wir können uns auch die Walk-Animation
ansehen. Du siehst da du
gehst, die Walk-Animation. Und dann können wir auch einen
Blick auf die Sitzanimation , die in diesem Fall tatsächlich
völlig statisch ist, würde dort auch
etwas hinzugefügt werden. Aber
vorerst bin ich eigentlich
ziemlich zufrieden mit dem, was das ist. Es ist auch nur ein Beispiel
hier, in denen es keine Sorgen gibt. Was machen wir damit? Mit all diesen Animationen? Wie speichern wir
diese Animationen während wir zur Animation gehen? Und dann
speichern wir alle Animationen. Zuallererst können Sie
sehen, wo ich
das in der Age Tracer-Datei Waschbär
Animation speichern möchte, diese Spur. Also hebe ich das auf. Und dann können wir
diese JSON-Datei grundsätzlich für
unser Projekt verwenden . Wir gehen
zurück zu einem Stoff. Und wenn wir uns im Modell
daran erinnern, müssen
wir den
Ort für die Animationen angeben. Das wird noch
einmal gehen, Assets MC Kursordner genau hier. Und dann erstellen
wir genau hier ein neues Verzeichnis
namens Animationen. Und dann werden
wir da drinnen die
Waschbär-Animation,
die angrenzende Akte,
die Einschränkung ist hier drin. Und dann muss ich einfach schnell den Namen CR2 Waschbär
ändern. Dies ist etwas, das für Sie repariert werden
sollte. Es war nur ein
Tippfehler da drin, und dann sollten wir Eisen sein. Jetzt haben wir diese
Animationen, die wir im Grunde genommen genau hier
gemacht haben. Nun, wie werden
wir sie benutzen? Wie können sie benutzt werden? Nun, sie können in der Entitätsklasse
verwendet werden. Wir erinnern uns also daran, dass wir
die Register-Controller
und die Fabrik direkt hier hinzugefügt haben . Und jetzt müssen wir
zwei weitere Dinge hinzufügen. Zunächst
werden wir das Prädikat hinzufügen. Das Prädikat ist eine Methode, also
werde ich das hier ganz unten hinzufügen . Wir werden einfach
so etwas wie Animation machen. Dies sind die
Animationen, in denen Sie
sehen können ,
dass dies der Name
der Animation ist, die diesen Namen im Grunde genommen genau hier
verwenden wird, mit diesen Namen übereinstimmen
muss, oder? Sie können also sehen, dass dies die
Sitzanimation
ist , die
wir nicht in diesem Tutorial Orange
als in dieser Vorlesung
verwenden werden. Wir werden dies
in der späteren Vorlesung verwenden. Und dann ist diese Animation
der Walking-Animation hier eigentlich etwas
, das wir hier verwenden. Und dann die
Leerlauf-Animation genau hier, diese Namen müssen sehr wichtig
übereinstimmen. Und dann ist die Frage,
wann passiert das? Nun, Sie können sehen,
dass die
Walk-Animation
stattfindet , wenn sich ein
Ereignis bewegt, Sie können sich das Animationsereignis ansehen
und hier einige Beispiele sehen. Normalerweise gibt es nicht
so viele Beispiele. Ein paar andere Dinge, die wir sehen werden, besonders
beim Setting Event. Wir werden in ein wenig
sehen, wie wir in einem zukünftigen Vortrag grundsätzlich
umsetzen können, wenn wir auch die
Sitzanimation
haben. Aber vorerst wollen wir dies und was
wir dann
dem registrierten
Controller-Ereignis hinzufügen möchten , folgt. Das alles steht Ihnen natürlich auch im
GitHub Repository zur Verfügung und auch
individuell. Nehmen wir das tatsächlich. Das sind also Animationsdaten
am Animationscontroller. Wir werden hier einen neuen
Animation Controller nur mit einem Animations-Controller erstellen. Und dann
gehen wir einfach in dieses Punkt-Produkt-Kit oder
dieses Doppelpunkt-Doppelpunkt-Produkt ein. Und dieses Produkt
hier wird gefragt, und jetzt sollten diese
Animationen im Grunde schon
funktionell sein. Das ist eigentlich alles
, was wir für
diese speziellen
Animationen hier brauchen , denn wir haben hier bereits alles
mit dem Modell
eingerichtet . Dies verweist auf die
eigentliche JSON-Datei. Wir haben es aktualisiert und alles von der
Blockbank aus
exportiert. Schlimmer noch, wenn du
ein paar verrückte coole Animationen haben willst, gibt es immer, es gibt eine Menge
, die du dagegen tun kannst. Aber wie gesagt, insgesamt geht
es nur darum
, es auszuprobieren. Ich bin hier noch
einmal offen für Experimente , oder? Ich meine, wir werden nicht jede einzelne Sache
durchmachen und du musst einfach auch
ein paar Dinge selbst ausprobieren . Aber insgesamt ist es so
ziemlich genau so, wie man es macht. Ja. Mal sehen, ob es funktioniert. Oder was wir gefunden haben, war zurück in Minecraft. Und wie Sie sehen können, wurden
die eigentlichen Animationen erfolgreich zum Spiel
hinzugefügt. So können Sie sehen, dass Sie wissen, auch
die Walking-Animation. Beide
funktionieren übrigens, die Sounds funktionieren auch aus
der letzten
Vorlesung, die wir hören können. Die funktionieren auch. Lasst uns tatsächlich das taube
Geräusch bekommen, von dem ich glaube, dass er von einem Schwein stammt. Lasst uns das auch hören. Ja. Das ist irgendwie
seltsam, aber okay. Und dann passen die tatsächlichen
Umgebungsgeräusche oder vom
Delphin, ich meine, es passt nicht ganz,
aber es ist irgendwie witzig, dass es tatsächlich funktioniert. Aber am wichtigsten ist, die Animationen,
wie Sie sehen können, dass das wirklich cool ist und
ziemlich einfach war ,
alle Dinge zu implementieren, ich kann Ihnen sagen, was
definitiv einfacher implementieren Sie einige dieser
benutzerdefinierten Animationen. In diesem Fall, anstatt sie mit dem
Vanille-Modell zu
machen, ist
das viel schwieriger, das kann
ich dir sagen, aber
ziemlich cool. Nichtsdestotrotz. 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.
106. (Zusätzliche Themen) Einheitliche Varianten: Oder ich begrüße zurück zum
Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
benutzerdefinierte Mob hinzufügen , Varianz
. Was das bedeutet, ist im Grunde, Sie wahrscheinlich alle die Pferdeeinheit,
den Pferdemob in Minecraft
gesehen haben, und es kann verschiedene,
unterschiedliche Farben oder
verschiedene Codes haben. Und genau das
werden wir für den Waschbären tun. Jetzt ist dies überraschend eine sehr einfache
Sache. Jetzt gibt es
einige Orte, an denen wir tatsächlich einige Dinge
hinzufügen müssen. Aber hauptsächlich natürlich
in der Entitätsklasse und auch im Renderer, wenn ich mich nicht irre, ja, es ist im Renderer und
im Modell
gibt es tatsächlich einige Stellen, an denen wir uns ändern müssen einige Dinge, aber keine Sorgen da. Wenn Sie tatsächlich verstehen, was
wir hier machen, ist
es eigentlich
ziemlich einfach. Aber das erste
, was wir tun werden ist im Entitätspaket,
wir klicken mit der rechten Maustaste auf ein neues
Paket, das als Varianz bezeichnet wird. Anstatt dort machen
wir dann eine neue Java-Klasse. Wir werden Enum auswählen, und dies wird
der Waschbär eine Variante sein. Jetzt kopiere ich
den Inhalt davon. Es wird
jedoch im Grunde jedes Mal
dasselbe sein , wenn Sie eine neue Variante
erstellen. So sieht es aus. Das einzige, was Sie ändern
müssen, sind im Grunde die tatsächlichen Verweise
auf den Namen dieser Klasse. Ansonsten ist es in Ordnung. Und dann hier, genau wie jede andere Aufzählung, die
wir zuvor gesehen haben, listen
Sie einfach alle verschiedenen während Enums hier auf und erinnern sich dann
einfach an sie. Ich meine, hier
ist das wahrscheinlich
wie grün und diese ID, die hier
in diesem Fall
wahrscheinlich etwas
vernünftiger ist hier
in diesem Fall
wahrscheinlich etwas
vernünftiger , was auch immer
der Fall sein mag. Wir werden also
eine Standardinvariante, eine dunkle Variante und
eine rote Variante haben. Nun, wie wählen wir diese aus? Woher wissen wir, was hier
passieren wird? Nun, was passieren wird
, ist in der Raccoon
Renderer-Klasse hier, wir werden eine Map hinzufügen. Noch einmal werde ich das
tatsächlich kopieren. Es ist jedoch sehr
einfach, wenn man tatsächlich sieht, wie es aussieht und dann sieht
es vielleicht ein bisschen verrückt aus und
beim ersten Zeichen, aber dann wirst du sagen:
Okay, das ist eigentlich
nicht zu verrückt. Das einzige, was
wir hier tun, ist dass
wir Location bivariant sagen, eine neue Karte von
Raccoon-Variante bis ID. Was nur bedeutet, dass wenn der, wenn wir
in diese Variante übergehen, der Standardwaschbär genau hier
variiert. Wir werden nur auf diese Textur
hinweisen. Wenn es die dunkle Variante ist, weisen
wir auf diese Textur hin. Wenn es die rote Variante ist, weisen
wir
auf diese Textur hin. Das ist buchstäblich
alles, was es dazu gibt. Wenn Sie mehrere haben, fügen
Sie hier einfach mehr hinzu, zugeordnete Ausgabe und dann mit einer neuen Variante und
so weiter und so weiter. Das war's. Die tatsächliche
Texturposition hier und jetzt muss geändert werden. Also müssen wir sagen, Standort
bivariant dot get. Jetzt ist die Frage, nun, wie bekommen wir die Varianz? Nun, wir müssen
die Variante irgendwie in die Entität bringen. Das
werden wir als Nächstes tun. Wir werden diesen
Bereich vorerst hier verlassen,
und wir werden ein paar Sachen in der Entität ändern. Das ist etwas
komplizierter, sagen
wir mal, wo es
mehr Teile gibt. Aber ich bin mir wieder, ich bin mir sicher,
dass das gut gehen wird. Ich werde all
die verschiedenen Methoden kopieren, jetzt
werden das einige von die verschiedenen Methoden kopieren, jetzt
werden das ihnen sein
, aber lasst uns es mit mir ertragen und
lasst uns das durchmachen. Ich werde dann all
die verschiedenen Methoden erklären , dass wir hier einen Fehler haben werden, das sind die Datenpfeile. Also brauchen wir tatsächlich
etwas, das als
Trakt-Daten vom Typ Integer bezeichnet wird . Und ich werde das hier tatsächlich ganz oben hinzufügen
,
denn normalerweise mag ich, dass die tatsächlichen
Übungsdaten hier ganz oben stehen und dann
keine Fehler mehr in der Entitätsklasse vorhanden sein
sollten. Und dann werden wir tatsächlich
durchgehen und erklären, was der FREC
hier vor sich geht. Aber was haben wir? Wir haben zuallererst diesen Data Tracker, das
ist interessant, oder? Die Trackdaten, die
Sie hier sehen können, sind also eine Möglichkeit, Daten in
einer Entität zu speichern , die sowohl
über den
Client als auch über den Server verfolgt wird . Das ist natürlich sehr wichtig
, dass diese gleich sind. Und wir können hier
ein Beispiel sehen, wenn ich auf
die tierische Entität klicke , drücke
Control H und gehe zum Beispiel in die
ODER-Space-Entität. Wir können sehen, dass es hier einige
Praxisdaten gibt. Du siehst, dass es einige Flaggen
gibt. Es liegen die Daten
der Eigentümer-UUID vor. Und ich denke, dass wir
in der vielleicht in
der Pferde-Entität sogar noch weiter gehen
können . Da gehst du. Wir haben auch hier eine
Rüstungsknochenlos-ID-Variante. Und das ist so ziemlich
genau die gleiche Welt funktioniert. Hier habe ich also so ziemlich genau davon bekommen, wie das von
der Pferdeeinheit funktioniert. Also noch einmal wird
es dir nur noch einmal zeigen. Es ist auch alles in den
Vanille-Klassen. Du kannst
sie dir ansehen und du kannst dort fast alles
finden. Sie sind das West-Tool und die beste Ressource, die
Sie zur Hand haben. Was haben wir sonst noch in der Klasse, in der wir das
benutzen, oder? Also werden wir das benutzen. Sie können zunächst hier
im Init-Daten-Tracker sehen, das ist unglaublich wichtig. Sie müssen dieses
Jahr hinzufügen, sonst wird
es nicht funktionieren. Wir müssen diese Daten initialisieren. Die Verfolgung dieser
tatsächlichen Art von Daten. Und dann können wir sehen,
dass wir eine festgelegte Variantenmethode
haben , die tatsächlich nur in dieser bestimmten Klasse verwendet wird
und nur in
der initialisierten Methode verwendet wird. Während die initialisierte
Methode, naja, wird
dies aufgerufen, wenn eine
dieser Entitäten spawnt und
insbesondere wenn es sich um Anleihen handelt, zum Beispiel durch ein Laichen. Was es auf Ei reagieren
soll, was wir natürlich wollen, ist, dass wir hier eine zufällige Variante
wollen. Wir werden diese Variante einstellen und dann wird es uns gut gehen. Lassen Sie uns was hier passiert. Dann haben wir auch ein Recht und
eine Lese-Methode für NVT-Daten. Dies sollte ziemlich
selbsterklärend sein. Wir speichern
die Variante gerade hier und
lesen sie dann genau hier vor. So ziemlich alles, was
Sie wissen müssen, um es noch einmal zu
senden, auch
ziemlich selbsterklärend. Das ist
das einzige, was
hier mit diesem Zweck irgendwie seltsam ist. Und im 255 ist
dies nur etwas
, das benötigt wird. Ich werde nicht
zu sehr ins Detail gehen. Es sind nur ein paar Java-Spielereien
im Grunde mit der ID. Denn in der Variante
hier können Sie sehen, dass sie auf diese Weise
gespeichert wird. Also werden wir es im Grunde einfach so
behalten und damit einverstanden
sein. Und wir werden einfach sagen,
okay, es ist was es ist. So muss es gemacht werden, aber alles funktioniert gut. Das ist so ziemlich genau das. Das
sind die verschiedenen Methoden. Und was wir hier natürlich tun
können, ist, dass wir
Entity und den T.
sagen können Sie los, richtig? Entity Dot wird kovariant. Und dann geht's los. Und dann müssen wir das Gleiche
im Modell genau hier
machen , wo wir natürlich
auch die Textur haben. Aber wir können buchstäblich
dasselbe nehmen, dieses. Und wir
müssen nur genau hier sagen dann der Waschbär-Renderer, ist es, was wir
diesen Ort bivariant nehmen wollen, aber Entität bekommen, Varianz bekommen. Und das war's. Jetzt
brauchen wir natürlich immer noch die Textur, also vergessen wir nicht, beide Texturen zu kopieren
. Sonst
wäre das definitiv ein bisschen eine Aufsicht. Also lass uns Waschbär gehen,
los geht's. Und dann haben wir Waschbär dunkel und auch den roten Waschbär. Da gehst du. Und das sollte
so ziemlich alles sein, was wir brauchen. wir einfach sicher, dass all dies auch richtig geschrieben ist. Waschbär dunkel sollte in Ordnung sein, rote Waschbären auch gut. Das sollte funktionieren. Das sollte funktionieren und funktional
sein, also ist
das ziemlich gut. Und so einfach ist
es, etwas Abweichung hinzuzufügen. Jetzt
gibt es natürlich wieder viele
verschiedene winzige Dinge. Sagen wir, die Karte hier
sollte nicht zu verrückt sein. Das sollte nicht zu verrückt sein. Das sollte nicht zu verrückt sein. Gleiches gilt für die tatsächliche Entität Die Anzahl der Methoden
ist eigentlich nicht so viel, wenn man darüber
nachdenkt, ist nicht so viele Methoden. Es ist nur eine Menge, um den Kopf zu wickeln
, wenn man darüber nachdenkt. Diese Daten, Daten-ID
Tie Variante, okay, Es ist ein bisschen
seltsam, aber insgesamt sollte
es
nichts zu verrückt sein. Wissen Sie, an dieser Stelle
hoffe ich, dass die meisten von Ihnen über
ausreichendes Java-Wissen
verfügen , damit Sie dies
einfach durchgehen
und
es aus Java-Perspektive verstehen können. Und
natürlich, wie gesagt, bieten
die Vanille-Klassen
natürlich alle verschiedenen Beispiele. Es gibt erstaunlich und eigentlich wirklich gut und man kann sie auch durcharbeiten. Aber vorerst,
weil wir
alles hinzugefügt haben, Mal sehen, ob es funktioniert. Oder Fettzellen zurück in Minecraft. Lasst uns also ein paar
Waschbären spawnen und los geht's. Wir haben hier bereits alle anderen Varianzen laichen glücklich. Hier aus dem Laichei sieht
man es, alles funktioniert einwandfrei. Und das ist einfach, das ist einfach
verdammt erstaunlich, oder? In diesem Fall
ist
die Variante natürlich ein bisschen von
einer anderen Wandstruktur
in Bezug auf die Färbung. Aber ich meine, das ist immer noch echt echt cool,
echt verdammt genial. Und ich meine, es
funktioniert einfach sehr, sehr gut. Und ich meine, es ist insgesamt, denke
ich und ich hoffe, dass
Sie damit einverstanden sind, ist eigentlich
ziemlich einfach und nicht allzu schwierig. Das ist also echt
verdammt cool, oder? Wie immer steht Ihnen natürlich
der gesamte Code
im GitHub Repository genauso gut
individuell zur Verfügung. Aber sonst wäre das 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.
107. (weitere Themen) Fühlbare: Oder ich begrüße zurück zum
Stoffkurs für 118. In dieser Vorlesung werden
wir unsere Waschbäreneinheit
um
die Funktionsfähigkeit erweitern. Und dafür werden
wir in erster Linie die tatsächliche Superklasse
in erreichbare,
erreichbare Einheit
umstellen erreichbare,
erreichbare . Erreichbare Einheit. Und dann
müssen wir dies nur hier
auf
den Entitätstyp kopieren . Und dann werden wir genau hier
dasselbe mit
den Attributen tun. Und was wir dann tun werden ist, dass wir wieder
ein paar Dinge hinzufügen werden, jetzt
werde ich sie
noch einmal kopieren ,
aber keine Sorge. All dies
steht Ihnen
im GitHub Repository ebenso
individuell zur Verfügung. Und wir sollten theoretisch keine
Fehler bekommen. Dies wird wieder einmal
in irgendeinem Trakt eine Daten hier einschließen , diesen Typ, dieses Mal
des Booleschen Typs. Wie Sie sehen können, ein boolescher Wert. Dies ist der sitzende Boolean. Dies ist sehr wichtig
, weil dies die Frage, ob dieser Waschbär sitzt,
retten wird
oder nicht . Jetzt gibt es schon eine Einstellung. Sagen wir, was würdest du sagen eine sitzende Variable
in der Tabellen-Entität, ich glaube, das sollte
hier sein, genau da gehst du. Privates boolesches Sitzen. Dies ist jedoch genau hier
glaube ich nur auf dem Server. Was bedeutet, dass dies eine interessante
Sache ist, denn dies ist nur auf dem Server, wenn wir
jetzt auch folgendes hinzufügen, eine Animation, um hier
in diese zu sitzen. Also werden wir das auch
hinzufügen. Sie können sehen, ob das sitzt,
also ist das mein benutzerdefinierter
boolescher Wert hier
, der den
Data Tracker tatsächlich zum Sitzen bringt. Wenn das alt ist, funktioniert
es nicht, denn
genau hier ist
das alles, was
Gecko-Labor
so ziemlich gut macht , nur auf dem Kunden. Die Animationen werden auf dem Kunden
stattfinden. Daher
muss die sitzende Variable irgendwie trakt sein. diesem Grund müssen wir
eine benutzerdefinierte Sitzvariable hinzufügen. Deshalb
gibt es dieses hier. Und deswegen gibt es dieses. Und das nennt
diese Set-Sitzung. Diese wird hier eigentlich die Super-Methode
genannt , die dies
auf gleich
setzt , aber wir können sie nicht verwenden. Die normale Methode ist in diesem Fall zu
sitzen, weil das einfach nicht funktioniert. Auch eine sehr wichtige Sache. Bitte beachten Sie, dass
wir hinzufügen müssen, dass die sitzende Variable zum
Daten-Tracker genau hier ist. Das ist unglaublich wichtig. Bitte vergiss
das nicht, sonst wird
dein Spiel abstürzen, wenn
du in unsere Welt gehst. Das ist derzeit
sehr wichtig die wahrscheinlich
große Methode hier, und das ist die mobile
Interact Methode. So können wir sehen, dass wir eine Set haben, eine sitzende Methode
setzen. Die Anzeigetafel wird
für das eigentliche Team benötigt. Dies ist also nur so, dass
das eigentliche Ding des zentralen Teams
der Entitäten
und dann ausgelaugt werden kann. Wir werden
dies nur falsch machen, weil es ein kleines Problem mit Gecko Live
war und im Grunde genommen
Entitäten
die Führung zu geben , die
nicht ganz funktionieren. Wie auch immer der Fall sein mag, sie interagieren Mob-Methode. Was ist das? Nun, das ist natürlich Code,
wenn Sie mit der rechten Maustaste auf einen Mob klicken. Wenn wir jetzt mit der
rechten Maustaste auf diesen Mob klicken,
wollen wir natürlich erreichen. Möglicherweise. Was ich hier zum Beispiel habe, ist der Gegenstand zum Zähmen. Ich habe hier gerade eine
kleine Variable gemacht. Ich habe das gerade auf einen Apfel gesetzt. Wenn du das also ändern willst, kannst
du es einfach hier ändern. Und dann können wir sehen, ob der Gegenstand tatsächlich
der Gegenstand für gezähmt ist , mit dem
wir mit der rechten Maustaste klicken. Und es ist, die eigentliche
Entität ist noch nicht gezähmt, was wir
dann
tun werden, solange wir auf dem eigentlichen Server sind. Das passiert also
auf dem Server. Was wir dann
tun werden, ist im Grunde Hey, setze
einfach den Besitzer auf Spieler,
der mit der
rechten Maustaste darauf geklickt hat. Wir werden ein paar grundlegende
Neuberechnungssachen machen. Wir senden den
Entitätsstatus hier und setzen
ihn dann sofort auf das Festlegen des fest, nachdem wir eine Entität tatsächlich
gezähmt haben, werden
wir sie so einstellen, dass sie sitzt. Interessant. Wenn es jetzt schon gezähmt ist, auf dem Server
war
und die Haupthand genau dann
ist und
wir mit der rechten Maustaste darauf klicken, schalten wir diese Einstellung einfach um. Es ist sehr wichtig, dass wir diese Hand
auch hier
haben , denn dies ist ein echtes Problem. Das ist kalt für beide Hände. Deshalb wird es vielleicht nicht funktionieren
, wenn
du das
nicht hast. Ich habe diesen Fehler oder
Fehler schon ein paar Mal gesehen. Wenn wir das so
ausführen würden, hätten
wir tatsächlich
ein kleines Problem und das heißt, dass
die eigentliche Entität
nicht sitzt. Warum
ist das der Fall? Nun, weil wir hier
tatsächlich zwei weitere Ziele
hinzufügen müssen . Und das wird
die Nummer eins sein, das gesetzte Ziel mit Priorität eins, es ist unglaublich wichtig
, dass dieses Ziel
vor allen
anderen Wunderzielen liegt . Und sie sehen sich um
Ziele und all das. Denn wie Sie sehen können, ist,
wo es wichtig ist , dass sie das Ziel sitzen, höher
als das Wunderziel. Ansonsten
wird es passieren, dass der Waschbär hinsetzt und
dann wird es sich fragen, und dann wird er sich wieder
hinsetzen und dann
wird es sich wundern, und
das kann sich wieder hinsetzen. Deshalb muss die Priorität
hier sein, naja, ich meine in diesem
Fall niedriger, aber ein höheres Recht? In diesem Fall muss es also nur eine niedrigere
Zahl sein. Und dann greift der
LKW-Besitzer an oder ein Tor. Ich glaube nur nicht einmal , dass wir das unbedingt
brauchen, weil ich eigentlich nicht glaube, dass der
Waschbär überhaupt
einen Angriff angreifen würde , der den Besitzer
entdeckt. Aber darüber bin ich mir eigentlich
nicht sicher, weil ein Teil davon auch
dem Wolf genommen
wurde . können wir uns natürlich auch
mal ansehen. Suche einfach nach
Wolf mit Entität. Da gehst du. Und dann können wir uns
im Grunde alle Ziele ansehen, die Sie
sehen können, dass sie
tatsächlich ziemlich umfangreich sind, wie viele verschiedene Dinge. Hauptsächlich wird Angreifer das Besitzerziel
fallen. Und man sieht
noch einmal, dass das gesetzte Ziel hier ganz oben
steht. Priorität zwei, sehr, sehr
wichtig, dass dies der Fall ist. Andernfalls könnten einige Probleme auftreten.
Behalte das also im Hinterkopf. Das ist unglaublich wichtig. Abgesehen davon wird
die Fähigkeit tatsächlich so
gemacht. Ist es steuerpflichtiges Unternehmen und
hat dann die Möglichkeit, es auch hier mit genau der
sitzenden Variablen zu
zähmen. Jetzt die sitzende Variable,
wenn Sie etwas haben , das Sie nicht wirklich haben
möchten, dass es sitzt, völlig in Ordnung, dann müssen Sie dies
nicht hinzufügen. Sie müssen den sitzenden nicht
hinzufügen. Sie müssen
dies nicht hinzufügen, brauchen Sie grundsätzlich nur die Interaktionsmob-Methode. Das ist so ziemlich
alles, was es dazu gibt. Aber im Moment würde ich eigentlich sagen weil wir alles
zur Vollendung hinzugefügt haben, mal sehen, ob es funktioniert oder ob der
Rat wieder in Minecraft ist. Eine wichtigste Sache
hier ist übrigens auch zu sagen, wenn Sie dies in Stoff
verwenden, haben Sie im Grunde jedes Mal, wenn
Sie in die Welt gehen, Grunde jedes Mal, wenn
Sie in die Welt gehen,
einen anderen Spieler, aber es ist sehr wichtig
oder ein anderer Name. Es ist also sehr wichtig
, dass
es manchmal sehr schwierig ist,
dies zu
testen, wenn man manchmal sehr schwierig ist, dies hat. Was ist der Fall vielleicht? Versuchen wir es tatsächlich mit der
rechten Maustaste zu klicken. Und los geht's,
beste Freunde für immer. Wie Sie sehen können, sitzt
es richtig. Also sitzt es normalerweise, was
ich tue, ist es einfach hier in ein paar Blocks einzuschließen, nur
um sicherzustellen, dass es wirklich sagt, es heißt nicht,
dass Sitzen die eigentliche Entität ist. Bleib da, aber es sieht
echt gut aus, oder? Ich kann auch einfach ein bisschen
wegziehen. Es sollte dort bleiben.
Und noch einmal kann
ich mit der rechten Maustaste darauf klicken und
jetzt sitzt es nicht mehr. Jetzt hat sich die Animation geändert, und jetzt sollte sie sich auch selbst
bewegen oder ich,
ich habe nicht wirklich in eine Mulde
gesteckt, dem Besitzerziel
folgen, also sollte es es einfach alleine
machen. Da gehst du. Jetzt zoomt es
auf und ich kann einfach wieder
mit der rechten Maustaste klicken und dann sitzt es wieder und es sollte völlig gut
funktionieren. Aber
so einfach ist es, auch die Teamfähigkeit
hinzuzufügen. Das ist also echt verdammt cool. Sie können sehen, dass es
so einfach sein kann. Und ich meine, es ist, weißt
du, es ist einfach
echt echt cool. Ich meine, das ist auch bei den Kundenanimationen
, oder? Sie können eine benutzerdefinierte
Sitzanimation erstellen. Du kannst alle möglichen Sachen machen. Ich meine, das ist einfach erstaunlich. Das war's 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.
108. (zusätzliche Themen) Fügen hinzufügen: Alles klar, willkommen zurück
zum Stoffkurs für 118. In dieser Vorlesung werden
wir
eine Entität hinzufügen , die sowohl
tabellarisch als auch beschreibbar ist. Das ist eine sehr interessante
Sache, weil
es
dem Pferd natürlich wieder sehr ähnlich ist. Aber in diesem Fall
wollen wir tatsächlich eine beschreibbare Entität. Und ich würde
sagen, weißt du, ein paar Dinge, die du im Grunde beachten musst. Und dafür werden wir
im Grunde Tiger machen. Jetzt ist das auch richtig cool. Fangen wir einfach an und wie
würden wir das machen? Nun, zuerst würden wir
natürlich vorgehen und es
genau hier zur
Tiger-Entitätsklasse machen . Dann werde ich natürlich wieder
einmal, als würde ich so oft eine Menge Sachen hier kopieren
. Jetzt für den eigentlichen Tiger werde
ich
so ziemlich die gesamte Klasse kopieren. Wichtig ist, dass hier
natürlich alles wie immer
im GitHub Repository
verfügbar ist, auch in
individueller Anpassung. Weil das auch ziemlich
viel ist, ertrage mich hier da ich im Grunde alles kopiere , einschließlich
des erweiterbaren Zeugs. Wir werden also sehen, dass
Sie 270 Zeilen sehen können und dann glaube ich, dass ich dort eine schließende Klammer
haben muss . Da gehst du. Und jetzt
sollte hier alles funktionieren, also sollten wir keine Fehler bekommen. Jetzt
ist das erste, was es tatsächlich die Typ-ID gibt, eigentlich brauchen wir nicht, dass das
wirklich sehr
interessant ist, war wahrscheinlich
nur noch da drin. Aber es gibt keine Sorgen. Wir haben den Rest hier. Ziemlich vernünftige
Tabellen-Entität. haben wir schon mal gesehen. Attribute, die das Produkt für
die verschiedenen Animationen erhält ,
sollten ziemlich sinnvoll sein. Die Ziele hier registrieren dies, oder
das ist ziemlich verständlich. Das T-Mobile ist ein
bisschen anders, hauptsächlich die Interact
Mob-Methode genau hier. Hier zum Beispiel ist
der T-Mobile-Artikel natürlich
der Begriff, denn der Tiger macht nicht
wirklich viel Sinn, aber es ist
hier natürlich nur ein Beispiel. Sie können sehen, dass
das Ganze hier ein bisschen
anders eingerichtet ist. Sie können also sehen, dass wenn
ein Spieler schleicht, wir
es tatsächlich
zum Sitzen bringen können. Und wenn der
eigentliche Spieler nicht schleicht, fangen
wir an zu schreiben. Sie können sehen, wie Sie später
anfangen, dies zu schreiben. Das ist also sehr interessant. Das ist also auch etwas zu
beachten, dass es hier im Grunde genommen einen
kleinen Unterschied gibt. Wenn wir sie schleichen, machen wir es Lage, die Entität zu
sitzen. Und wenn wir dann einfach mit der rechten Maustaste klicken, dann fangen
wir an, es zu schreiben, wenn es gezähmt wird. Und Sie können auch sehen, dass
wir das genau hier haben. Wir haben also die Möglichkeit es
tatsächlich den Eigentümern zufällig
zuweisen zu lassen. Es gibt also, was wir sagen, es gibt eine Chance
von fünfundzwanzig
Prozent, in diesem Fall tatsächlich hier
gezähmt zu werden. Und dann würden
diese
Entitäten, Status, das die Herzen hervorbringen und das würde klein
ausgeben und ich
möchte nicht dein Freund sein. Grundsätzlich. Verschiedene Teilchen hier. Wieder einmal das Sitzen hier, sowohl mit der SETT-Einstellung
als auch mit der sitzenden
Abschreibungsvariablen genau hier. Dies ist auch das gleiche Wort das die Gesundheit genau dort
ändert, das eigentliche Team und
dies und dann das Init. Und dann kommt
der fahrbare Teil. Der fahrbare Teil,
so ziemlich all dies, wurde sowohl der Pferderaumeinheit
als auch der Pferdeeinheit
entnommen . Das ist so ziemlich
alles, was es dazu gibt. Ich kann dir noch einmal sagen, dass
du vielleicht so Wie hast du das herausgefunden? Wie im wahrsten Sinne des
Wortes habe ich mir nur die PS angesehen, die Pferdebasis, die Pferdeeinheit, die
über alles kopiert wurde. Ich habe die Methode
nach Methode kopiert, bis es funktioniert hat. Das ist so ziemlich
alles, was
es gibt und sich dann
ein bisschen geändert hat, ich glaube an die Reisemethode, es gab ein paar Dinge
mit der Sprunggeschwindigkeit, die ich hier eigentlich nicht
habe. Die Tiger-Entität, die
Sie tatsächlich nicht
springen können , ist hier nur ein Beispiel. einmal sehr empfehlenswert. Schauen Sie sich einfach die Horse Space Entity und die Pferdeeinheit wenn Sie hier
etwas mehr Funktionalität wünschen. Und dann haben wir nur
zwei interessante Methoden, nämlich der
Update-Passagier für den Abstieg und die Locates haben
diese Montageposition gespeichert, die wirklich
nur daran gewöhnt sind, Hey, wo kann der Spieler jetzt
nach dem Festplatten-Mounting gehen? Das ist alles, was es dazu gibt. Diese sehen also sehr kompliziert aus,
komplett kopiert. Wir müssen nicht zu sehr auf sie
eingehen weil der Name
so ziemlich schon sagt, was tut, und wir
müssen nicht
jedes einzelne
Detail am meisten verstehen , sagen
wir am meisten, die höchstmögliche Auflösung. Das ist nicht unbedingt das
, was du immer haben willst. Es ist wie okay, gespeicherte Position lokalisieren, Position
demontieren, weißt
du was das macht? Es ist wie, okay, es
findet nur eine Position in der Welt
, in der wir den Spieler
nach diesem Aufsteigen von
dieser beschreibbaren Entität spawnen können . Das ist alles, was es dazu gibt. Normalerweise
sollte das ziemlich gut sein. Und insgesamt kann
man sich, wie gesagt, immer ein
paar andere Reittiere hier ansehen . Wenn ich also
hier Control H drücke , können Sie die
Pferdestärken-Entität, eine Pferdeeinheit,
sehr empfehlen. Sieh dir das mal an. Ich meine, alles ist hier drin. Ich weiß nicht, was ich dir
sonst noch sagen soll. Grundsätzlich ist zu diesem Zeitpunkt
das eigentliche Vanillezeug. Es ist sehr verbreitet und einfach eine sehr gute Sache,
einen Blick darauf zu werfen. Fügen wir nun auch den Renderer
und das Modell hinzu. Also wird es
das Tiger-Model geben. Natürlich auch der
Tiger-Renderer. Geh. Und noch einmal werden Dinge
hier kopiert, aber es ist
ziemlich einfach. Alles in allem sieht
man nur ein animiertes Videomodell der Tiger-Entität und zeigt
dann noch einmal auf die drei Methoden
hier. Lasst uns das
auch hinzufügen. Da gehst du. Und dann wird das für den
Renderer noch
lustiger.
Grundsätzlich. Das ist noch weniger,
wie Sie sehen können. Es ist nur noch einmal
der Kontext hier, der tatsächliche Ort
für die Textur. Und das ist es so ziemlich. Dieses Mal haben wir hier keine
anderen Varianten. Aber natürlich könnte man das auch hinzufügen. Wir benutzen gesehen es, wie es
mit den Waschbären funktioniert ,
also keine Sorgen. Dann erstellen wir genau hier einen
neuen Entitätstyp. Wieder einmal, so ziemlich das
Gleiche wie der Waschbär, tigere
einfach jede Stufe, die hier
angestrebt ist. In diesem Fall habe ich es
auch eine Kreatur, es hier natürlich
nur zu einem anderen
Namen mache. Und dann habe ich auch hier nur ein bisschen eine andere
Dimension. Und das ist
so ziemlich alles, was Autoren sagen. Das ist eigentlich
fast alles, was
wir jetzt
im Kunden hier tun müssen. Lassen Sie uns einfach dieses
Control D duplizieren und dann Tiger sagen. Und dann wird das der Tiger oder Renderer
sein. Das wäre so ziemlich was? Ich meine, das ist
so ziemlich alles, was es gibt. Jetzt müssen wir auch die JSON-Dateien
hinzufügen. Wir haben natürlich auch das eigentliche Tigermodell. Also wird es genau hier sein. Wir haben auch dieses
Tiger-Modell, das Ihnen natürlich wieder
mit einigen der verschiedenen
Animationen
zur Verfügung steht . Dies steht Ihnen also auch alles
zur Verfügung, einschließlich der JSON-Dateien. Wir kriegen einfach die
Tiger-Animation hier rüber. Geh. Und dann brauchen wir
natürlich auch den Bohrer und dann die Textur. Letzten Moment, lass uns den Geo hier
holen. Da gehst du. Dann
sollte die Textur unter Entität und dann ein neues
Verzeichnis namens Tiger sein. Und dann werden
wir da drinnen den Tiger-PNG hinzufügen. Interessanterweise ist das
eigentlich alles, was es dazu gibt. Jetzt wurde hier natürlich wieder viel kopiert. All dies ist im
GitHub-Repository
verfügbar und genauso gut, in der Regel eine Menge Dinge, das meiste davon ist
ziemlich einfach, alles
in Betracht gezogen. Ich denke, dass das meiste
davon dasselbe ist wie der Waschbär mit einer
Fähigkeit, besonders. Und dann auch wenn es
um die richtige Fähigkeit geht, wie ich schon sagte, Vanille-Kurse, ist
das das Beste, was
man sich ansehen kann. Vergessen wir jetzt nicht, auch die Register hier
hinzuzufügen. Das werden also genau hier die
Attribute sein. Das ist also gut zu Tiger. Und dann wird
dies die Tiger-Entität sein. Sie sind schon her. Und das sollte so ziemlich
alles sein , was wir für
die Tiger-Entität brauchen. Wie ich schon sagte, ich meine, ich weiß nicht, wie oft
ich es sagen muss, aber das Vanillezeug ist alles für dich
da, was du dir ansehen kannst. Wenn es irgendwie
schwer zu verstehen ist. Wieder einmal
braucht man nur ein bisschen
mehr Java und Panne, die Jobeinführung,
ein paar Sachen ausprobiert und offen
für Experimente sein. Probieren Sie es einfach aus. Sieh
dir an, wie weit du kommen kannst, ohne einfach nur Sachen auszuprobieren. Ich meine, am Ende des Tages
hast du immer die Kontrolle Z. Du kannst immer einfach zurückgehen. Wenn Sie ein
GitHub-Repository-Setup haben, sicher, dass Sie und Ihre Änderungen häufig
verschieben, können
Sie jederzeit zurücksetzen,
wenn etwas vollständig kaputt geht, das ist auch etwas, das Sie
im Grunde beachten sollten. Aber vorerst ist das
eigentlich alles, was wir brauchen. Also schätze ich mal sehen, ob es funktioniert oder wo wir
uns wieder in Minecraft befinden. Also gab es natürlich
eine Sache, die ich tatsächlich vergessen habe,
und das ist das Hinzufügen des eigentlichen Laichs, das Laichei. Aber keine Sorge, wir können nur einen Teil des Tiger wie diesen vor und dann mal
sehen, also funktioniert es. Die Animationen
funktionieren auch sofort. Mal sehen, klicken Sie mit der rechten Maustaste. Ich hatte hier
wirklich großes Glück. Jetzt kann ich mit der rechten Maustaste
darauf klicken und sie gehen, jetzt schreibe ich drauf
und es ist sehr schnell. Was hier sehr
wichtig ist, ist, dass ich eigentlich nicht die
Treppe hinaufgehen kann, wie Sie sehen können, denn das Problem
dort ist, dass ich nicht wirklich mit dem Tiger
springen kann. Das habe ich
gesagt, wo es gerade so
eingerichtet wird . Und wenn ich dann einfach
nach rechts verschiebe oder
Kraut, und es funktioniert. Und wenn ich dann grundsätzlich mit der rechten Maustaste
wechseln kann, dann sitzt es nicht mehr. Und jetzt sollte es sich auch einfach
darum bewegen , wie es normalerweise geht. Mal sehen, lass mich nur
eine Sekunde warten und es wird
wahrscheinlich gehen,
ich denke, dass der Schwanz tatsächlich ein bisschen
wackelt. Es ist sehr
merkwürdig. Aber da gehst du. Jetzt fängt es an zu laufen. Und vor ihnen gibt es natürlich
ein bisschen
Verrücktheit. Und schreibe wie immer
mit den Entitäten. Ich meine, es geht nur
um Raffinieren. Die tatsächliche Geschwindigkeit hier, mit der
Sie fahren, ist, dass sie
vielleicht etwas zu hoch ist. Ich denke,
das könnte man auch ändern. Aber insgesamt ist es ziemlich cool
und
so einfach ist es eigentlich, Minecraft-Schreiben
eine beschreibbare Entität hinzuzufügen , nur
um der Fertigstellung willen, fügen
wir tatsächlich auch den
anderen Spawn EKG hier denn das ergibt einfach
viel Sinn. Da gehst du. Das
Wichtigste sind die, die beiden Farben hier. Sonst wird es der
Tiger sein, Tiger Spawnenei. Und natürlich auch hier, der Tiger spawnt z.B.
von Tiger, sie vor. Und dann
brauchen wir nur die JSON-Datei, aber wir können einfach über
die andere JSON-Datei kopieren Denn natürlich, wie ich
heute Morgen sagte, ist
Jason Hall die einfachste Sache aller Zeiten. Es wird nur der
hochgrobe Baunach sein. Und wir können das tatsächlich so
behalten, wie es ist. Wir brauchen nur die Übersetzung. Der Tiger laichen, dann
auch hier , der Tiger laichen. Aber jetzt haben wir auch alles
hier eingerichtet. Aber das wird vollkommen
in Ordnung sein. Aber ja, das ist
so ziemlich alles, was es dazu gibt. Wie ich schon sagte, bei allen Änderungen steht es
Ihnen frei, hier
Änderungen vorzunehmen, probieren Sie
einfach ein paar Sachen aus. Die Bewegungsgeschwindigkeit,
wie Sie hier sehen können,
ist hier ziemlich weit fortgeschritten. Es ist also, wenn es gezähmt wird, tatsächlich eine ziemlich
hohe Bewegungsgeschwindigkeit haben. Sie können
sich auch einige
der anderen Ziele ansehen. Wieder einmal steht Ihnen alles
hier im GitHub Repository
in einzelnen Exemplaren von Over zur Verfügung,
probieren Sie eine Reihe von Sachen aus, schauen Sie sich ein paar Vanille-Beispiele
an, und dann bin ich mir sicher,
dass
du wirst hoffentlich
zur
Entität deiner Träume kommen. Ich kann natürlich auch
immer einige
der GitHub-Repositories
anderer beliebter Modi empfehlen der GitHub-Repositories
anderer beliebter Modi in denen Sie sich auch ihren Code
ansehen können, und das ist auch immer sehr,
sehr wertvoll. In der Regel benötigen Sie jetzt
ziemlich viel Java-Wissen, zumindest zwischen
fortgeschritten. Andernfalls werden Sie es manchmal
nicht durchstehen, weil andere Leute
verschiedene Möglichkeiten haben, sagen wir, in Java
zu programmieren und Dann müssen Sie sich
manchmal zu programmieren.
Dann müssen Sie sich
manchmal daran gewöhnen den Code
anderer Leute lesen. Es ist anders, als definitiv
dein eigenes zu lesen. Aber ich meine, was auch immer
der Fall sein mag, das ist es für diese
Vorlesung genau hier. Und dies
schließt auch die Art von Entity-Exkursion ab, die wir hier für die Vorträge
gemacht haben. Trotzdem hoffe ich, dass Sie
das nützlich fanden und etwas Neues
gelernt haben. 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.
109. (zusätzliche Themen): Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir uns Generation
der Entitätswelt befassen. Was heißt das? Nun,
im Grunde wollen wir unsere benutzerdefinierten Entitäten der Welterzeugung hinzufügen,
damit sie insbesondere Biome
spawnen. Jetzt ist das unglaublich einfach
zu machen, wie echt. In unserem Gen-Paket erstellen
wir nur eine neue Java-Klasse mit dem Mod-Entitäten-Formular. Genau hier werden wir
eine öffentliche statische Lücke
namens Add Entities phone machen . Je mehr ich tun werde, ist,
dass
ich tatsächlich die beiden Dinge kopieren
werde , die wir brauchen, aber es ist unglaublich
einfach, weil Sie durch
Änderungen, die das Telefon hinzufügen,
wirklich einfach sehen können . Lassen Sie mich nur noch einmal
ein paar Biom-Selektoren brauchen . In diesem Fall werden wir
nur
die Waschbären dazu bringen , im Biom
der Ebenen zu laichen und die Tiger im
Dschungelbiom
zu laichen. Sonst noch was hier? Die Spawn-Gruppe muss hier
nur mit
der tatsächlichen Gruppe
der Entität übereinstimmen , das Gewicht bestimmt,
wie oft sie spawnen. Wenn Sie dies erhöhen, werden
sie öfter
spawnen. Aber sei dir bewusst, dass andere
Mobs dann weniger spawnen. Und minimale Gruppengröße,
maximale Gruppengröße sollte ziemlich
selbsterklärend sein. Nun, wo nennen wir das? Nun, in unserer modernen
Welt und Jen, Matheklasse hier in der
Generate-Modus World Gen-Methode, werden
wir einfach mehr
Entitäten auf Add, Entity, Spawn sagen. Das war's. Wir sind fertig. Das ist buchstäblich
alles, was wir tun müssen. Jetzt
werden die
tatsächlichen Entitäten dem
Spiel in die Handflächen hinzugefügt. Ich meine, lasst uns einfach
sehen, ob es funktioniert. Ich bin tatsächlich bei ihm zu
einem Flugzeug gegangen, um hier ein paar Waschbären zu finden, wie Sie sehen können,
weil sie
etwas leichter zu finden waren , wie die Tiger im
Dschungel tatsächlich waren. Nun, ich meine, sehr spärlich. Es könnte wegen der großen Bäume und
der Dichte
der Bäume liegen, wo es für sie
schwer zu laichen ist. Aber egal, wir werden uns
tatsächlich noch eine Sache im Code ansehen . Es ist gerade jetzt aber das, was auch irgendwie
wichtig ist oder IDE. Also noch eine Sache, die wir
grundsätzlich sowohl für
den Waschbär als auch für den Tiger
oder die Spawn-Beschränkungen hinzufügen wollen . Obwohl ich dir die tatsächlich
zeigen kann. Lasst uns das auch
dem Tiger hinzufügen. Da gehst du. Die allgemeine Idee ist, warum sollten wir diese hinzufügen
wollen? Nun, wenn wir uns diese
Antwortbeschränkungen hier tatsächlich ansehen, können
Sie sehen, dass es einige Orte
gibt , die wir im Grunde sagen wollten:
Hey, wo können diese Tiere
oder diese Entitäten spawnt werden. Und Sie können sehen, dass die meisten von ihnen nur auf dem Boden
sehen können, was
eigentlich wichtig ist. Wenn du zum Beispiel einen
hinzufügen würdest, sagen wir mal einen benutzerdefinierten
Zombie zum Spiel. Und Sie würden diese
Spawn-Beschränkung nicht direkt hier hinzufügen. Es könnte auch in
der Luft spawnen und dann einfach runterfallen, wer taub ist und
dann wäre es das. Es ist also ziemlich
wichtig, dies hinzuzufügen. Sie können sehen, dass dies
tatsächlich das Tier ist gültiges natürliches Spawn. Es gibt jedoch auch
verschiedene, die Sie sehen würden. Husk Entität genannt Entität, feindliche Entität kann
spawnen und dunkel. Es gibt also einige Dinge hier, die dringend
empfohlen werden,
die
Spawn-Einschränkungsklasse hier
in einer Netzmikrofoneinheit
oder einige weitere
Informationen dazu zu überprüfen die
Spawn-Einschränkungsklasse hier in einer Netzmikrofoneinheit . Aber ansonsten ist das so
ziemlich alles, was Sie für die Entitäten
brauchen, die hier spawnen. Wie ich schon sagte, das
Gewicht
ist manchmal ein bisschen wackelig, muss man. Grundsätzlich möchten
Sie,
je nach Biom hier, dies vielleicht
ziemlich hoch oder ziemlich niedrig machen. Spiel einfach wie immer mit
den Zahlen herum. Aber sonst wäre das
für diese Vorlesung genau hier. Ich hoffe, Sie fanden das nützlich
und die Herrscher des Neuen. Wir sehen uns in der
nächsten Vorlesung. Ja.
110. (zusätzliche Themen) Benutzerdefinierte Traden für: Alles klar, willkommen zurück
zum Stoffkurs für 118. In diesem Vortrag werden
wir den Dorfbewohnern
individuelle Trades hinzufügen . Dies ist wieder eines sehr interessanten
Dinge, die
tatsächlich viel einfacher sind ,
als Sie vielleicht erwarten. Bitte beachten Sie also, dass
wir keine benutzerdefinierten Dorfbewohner hinzufügen werden. Dies ist nicht diese Vorlesung. Dies könnte in Zukunft
jedoch keine Versprechen
im Moment passieren , denn das ist
definitiv etwas
komplizierter als das, was
wir jetzt tun werden. Wir werden im Grunde
nur
Sondergeschäfte zu bereits
bestehenden Berufen hinzufügen . Und dafür
gehen wir in unser Util-Paket, moderne Register und
schreiben es hier auf, wir werden eine private
Lücke machen, eine statische Lücke. Eigentlich benutzen sie statische Leere. Dies ist die Methode des
Kundenhandels für das Register. Sie werden tatsächlich erstaunt
sein, wie einfach diese gesamte Methode aussieht. Ich werde
natürlich noch einmal kopiert, aber all dies
steht Ihnen in
der Vergangenheit oder einer
Einzelperson genauso gut zur Verfügung. Und das war's. Dies sind zwei verschiedene
Handelsangebote, die hinzugefügt werden. Rufen wir das sofort gleich hier an, bevor wir es vergessen. Und dann lasst uns durchgehen
, was hier passiert. Wir haben diesen geraden
Angebotshelfer, bei dem wir Angebote
eines Dorfbewohners registrieren. Sie können die Angebote von
Dorfbewohnern registrieren sehen. Und dann kannst du sehen, wenn du einen Beruf
auswählst. Sie können also sehen, dass dies
die Profis sind, die Sie nur in Vanille
haben. Und wir werden den Landwirt hier
wählen. Sie wählen die Ebene der
die besonderen
Dinge, die Sie hinzufügen werden, im Grunde nur Blade in sein
sollten. Das ist also Stufe eins. Der normale Landwirt auf
Stufe eins hat diese Einstellung. Sie können sehen, dass es
Fabriken gibt und dann
haben Sie diese geschweiften Klammern hier. Sie können mehrere Kompromisse
oder ernsthafte Kompromisse hinzufügen, Sie können sehen, ich kann auch
jemand anderen wie eine Rübensamen hinzufügen. Plötzlich, weißt du,
vielleicht für sechs oder 24 oder
so ähnlich. Und du könntest mehrere
für das gleiche Level hinzufügen. Wenn Sie eine andere
Ebene wünschen, müssen Sie das gesamte Buch nur noch einmal
addieren. Insgesamt sollte dies jedoch
ziemlich selbsterklärend sein. Der erste Artikelstapel hier ist
genau das, was Sie bezahlen müssen. Sie müssen also nicht
unbedingt Smaragde einsetzen, Sie könnten alles andere hineinstecken. Der zweite hier ist im Grunde
das, was man daraus macht. Ich glaube an den
Kompromiss oder Sie können auch hinzufügen, wenn Sie hier drei verschiedene
Artikeltexte hinzufügen, die Sie sehen können, dann
haben Sie tatsächlich zwei Artikel, mit
denen
Sie bezahlen müssen, die auch funktionieren. Dies ist natürlich etwas, das zum Beispiel
in
Channeling-Sachen implementiert
wird, wo man eine Art nachgibt ,
und dann weiß ich es nicht,
wie 60 Meilen oder ich bin
bereit für und dann weiß ich es nicht,
wie 60 Meilen oder ich bin
bereit Smaragde und dann
bekommst du ein verzaubertes Schwert. Das funktioniert auch. Sie können also einen
dritten Elementstapel hinzufügen und das würde dann auch funktionieren. Die nächste Verwendung ist,
wie oft Sie dies im Grunde machbar
verwenden können , die Händlererfahrung sollte ziemlich
selbsterklärend sein. So viel Erfahrung bekommt
der Händler wenn Sie dieses Angebot tatsächlich
handeln. Oder ein paar Beispiele, von denen ich glaube, dass
Sie sich einen Blick darauf werfen können, ja, Sie können sich
die aktuellen Angebote hier ansehen. Also die Erfahrung
genau hier, Mal sehen. Dies ist also die eigentliche
verdächtige Eintopffabrik. Das ist etwas anderes. Mal sehen, vielleicht
finden wir hier jemand anderen. Ich bin mir nicht 100% sicher, wo die tatsächlichen normalen
Handelsangebote sind, ob sie sind oder nicht, sie
sind andere in diesem schaffen genau hier, diese Erfahrung. Mal sehen. Los geht's,
okay, da sind sie. Es kann sehen, dass es
etwas von der Erfahrung gibt. Da gehst du. Sie sind in diesem Jahr tatsächlich in der Klasse für
Handelsangebote. Und
das benutzen sie tatsächlich für Smaragd. Und Sie können hier
Erfahrung zu zwei sehen. Das ist also eine
ziemlich geringe Erfahrung. River hat eine Erfahrung, fünf Erfahrung
und Erfahrung mit 6120 ist vielleicht
ein bisschen zu hoch, aber man kann natürlich auch
damit herumspielen. Der Preismultiplikator ist nur die
Multiplikation des Preises. Und das ist
so ziemlich alles, was es
zur normalen
Artikelsteuer gibt , hier können Sie die Zählung
angeben und das ist so
ziemlich alles, was es dazu gibt. Hier haben wir einen
für den Tools-Mythos, wo es sechs Smaragde
für das Orakel sind, kommen Paxil. Auf Stufe drei. Das ist
buchstäblich alles, was es gibt zwei ist sehr
empfehlenswert , einfach damit
herumzuspielen, wie immer offen
für Experimente. Werfen Sie einen Blick auf das
Handelsangebot im Trade bietet Klassen, um
einige Vanille-Beispiele zu sehen. Und um der Vollendung willen,
lassen Sie uns sehen, ob es funktioniert. Oder Influencer zurück in
Minecraft und ich habe bereits einige Dorfbewohner
vorbereitet, sagen
wir nein, aber hier können Sie sehen der Landwirt bereits
die Rüben hier hat, also können wir einfach mit ihm handeln. Und du siehst, da gehst du. Das ist echt verdammt cool. Und dann tauschen wir hier einfach
für ein paar Tools ein. Und lasst uns dort auch
etwas Doppelpunkt besorgen. Und mal sehen, dass
wir mit ihm handeln können bis er Stufe drei erreicht hat. Im Grunde
holen sie sich ein paar Glocken, bringen ein bisschen
davon in Gang. Vielleicht auch ein bisschen
Eisen. Bringen Sie sie auch auf. Geh ein bisschen davon, hol dir mehr davon. Das ist ein bisschen
mehr Kohle und dann
sollten wir sie auf Stufe drei bringen können. Da ist es, da ist der
Orakel-Kompaktboden, naja, los geht's. Das ist echt verdammt cool,
echt verdammt genial. Und nun, so einfach ist es, wie Sie auch sehen können. Nun, fügen Sie den Dorfbewohnern im Grunde einige
benutzerdefinierte Eigenschaften hinzu. Das war 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.
111. (1.18.2) Fabric für 1.18.2: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir dazu
unseren MOD oder ein Projekt
auf 118 aktualisieren . Oder natürlich müssen wir
Dinge in der
Gradle-Eigenschaftsdatei ändern . Wir werden diese bestimmte Website nicht wirklich überprüfen. Was wir überprüfen werden,
ist eigentlich die Fabric Net
Develop-Website , da dies auch die neuesten
Dinge hier hat. Kopiere das einfach und füge es im
Grunde einfach hier ein. Und dann mache ich es einfach
so , dass alles richtig
formatiert ist. Aber es gibt keine Sorgen. Sie sind schon her. Also werden wir
das alles einfach ändern. Und dann
trifft natürlich noch eine Sache,
die wir ändern möchten , zuerst die Mod-Version. Lassen Sie uns einige Begriffe wie
19 oder vielleicht sogar
alle einführen Lass uns 21 machen. Ja, das ist erstaunlich. Dann möchten
wir auch in der
Build- oder Gradle-Datei die
Looom-Version von zehn auf 11 ändern. Und nachdem wir dies geändert
haben, können wir die Gradle-Änderungen
laden. Das sollte
so ziemlich alles sein, was wir brauchen. Lass das einfach wie immer
durchlaufen, sei geduldig, bis das erledigt ist. Und los geht's, 22 Sekunden. kann es etwas
länger dauern Abhängig von Ihrer
Internetverbindung
und ähnlichem kann es etwas
länger dauern. Was wir auch für den Fall tun
wollen, wird
hier auf
die neueste Version für Gecko Lippe aktualisiert . Das ist also genau hier, 035 nur für den Fall, denn obwohl die anderen
Versionen funktionieren sollten, fühle
ich mich einfach ein
bisschen besser, wenn wir auch die neueste Version
haben. Aber Sie können
das tatsächlich tun, bevor Sie die Änderungen
neu laden und dann alle gleichzeitig neu laden können . Lasst uns das einfach noch einmal
durchlaufen. Und dann geht's los. Eigentlich nur sieben Sekunden. Das ist noch besser,
aber das sollte so ziemlich alles
sein, was
wir hier tun müssen. Jetzt werden wir jedoch
auf einige Probleme stoßen. Was sich geändert hat, sind die
Weltgeneration und die Tags. Wenn wir also in die
Mörsersteuerklasse gehen, können
Sie alle Arten von Rot sehen, aber keine Sorge, das
werden wir beheben. Was sich also geändert hat, ist, dass wir die
TAC nicht
mehr identifiziert haben. Dies wird jetzt Tabulatortaste genannt. Also werde ich einfach
klebrig einsetzen und wir
drücken Alt und Enter, um es
zu ändern. Und was wir im Grunde tun
wollen, ist,
alle identifizierten Tags in diesen Tack
zu ändern . Was ich
tun werde, ist,
dass ich Drücken von Control R
wählen werde, und dann werden wir sie
alle durch TAC-Schlüssel ersetzen. Lassen Sie uns die Importe auch
hier loswerden , denn wir brauchen sie
nicht mehr. Weil das hier jetzt tatsächlich Tag
E dot o f. sein
wird , und dann müssen wir den ersten Parameter, den Unterstrichenschlüssel
des
Registrierungsdatenblocks,
übergeben . Und das müssen wir auch für
diesen Lauf genau hier machen. Wir werden das Gleiche machen. Und dann werden
wir es hier unten einfach für den Moment
kopieren. Und dann werden wir
das natürlich ändern. Und dann ändern wir
das in den Artikelschlüssel. Sie vor, das Gleiche hier, Artikel behalten. Und dann sollte es uns gut gehen. Das sollte so ziemlich
alles sein, was wir hier tun müssen. Das
müssen wir jetzt natürlich auch in
der Custom Dowsing Rod
Artikelklasse gleich hier ändern . Es gibt also ein paar
Möglichkeiten, wie wir das tun können. Es gibt einen, es gibt
einen Weg, der sehr
kompliziert ist und es nur
erfordert, dass wir dies ändern. Und dann gibt es einen etwas
komplizierteren Weg, wie wir
den Blockstatus hier tatsächlich verwenden. Und ich werde
den Blockstaat machen weil ich denke
, dass das besser ist. Wir können also einfach sagen, dass der
Blockpunkt in ist, und dann greift
Mod Punktblöcke , die Rute oder
nachweisbare Blöcke werfen. Natürlich
ist das Problem hier, dass wir tatsächlich den tatsächlichen
Block und den Blockstatus
übergeben, was natürlich
nicht ganz richtig ist. Was wir also tun müssen,
ist, dass wir dies
duplizieren werden, indem wir
Control D drücken . Und das
wird jetzt der Zustand unten sein. Und wir werden das aus
einem Block ändern , dem Blockstatus. Und dann rufe einfach nicht
den Get-Block hier an. Sie können sehen,
dass wir jetzt den Zustand haben, wir jetzt tun können,
anstatt all das abzukühlen, können
wir den Zustand verwenden,
um die Blöcke zu bekommen. Wir können also sagen, dass
wir
unten einen Staat sagen können , der blockiert wird
, um den Block zu bekommen. Und dann haben wir hier
den Zustand unten und
gehen dann in den Blockzustand
statt nur in den Block über. Das ist so ziemlich
all das Zeug, das wir hier ändern müssen. Und das wird jetzt immer noch alle
Dinge für die Tags
erkennen. Der Paxil-Artikel sollte einfach funktionieren. Wir müssen hier eigentlich nichts
tun, weil es tatsächlich einen Tag-Schlüssel
erwartet. Wie du siehst, gehst du hin. Auch sehr wichtig, weil ich gerade als Quellen gesehen habe. Was wir tun werden, ist
wieder zum Terminal zu gehen, Punktschrägstrich,
Gradle w, Jen-Quellen
einzulegen und
dies auch durchlaufen zu lassen. Es kann ein oder zwei Minuten dauern
, um diese Quellen zu erzeugen. Wieder einmal,
abhängig von Ihrem PC und auch abhängig von Ihrer
Internetverbindung. Oder sei einfach geduldig und warte bis du hier einen Build
erfolgreich hast. Da gehst du
genau eine Minute. Und jetzt sollten wir in der Lage
sein wenn wir die blaue
Linie genau hier bekommen, können
wir
Quellen auswählen und die zusammengeführte Namensquelle
genau hier auswählen, sagen Sie Okay. Und nachdem dies neu geladen wurde, sollte
es uns nun
die richtige Klasse mit den
richtigen Quellen zeigen . Aber das ist auch eine
Sache, die wir tun sollten. Und jetzt wird der echte
Doozy
die Weltgeneration sein , weil sich das
ziemlich stark verändert hat. Nun, was hat sich geändert,
ist die Syntax wirklich? Was wir tun werden, ist, dass
wir einfach in
die moduskonfigurierte
Feature-Klasse gehen die moduskonfigurierte
Feature-Klasse und Sie können hier
viel Rot sehen. Natürlich stehen Ihnen alle Änderungen, all das Zeug
im GitHub-Repository
zur Verfügung , im Einzelnen,
äh, genauso gut. Ich empfehle dringend, das zu
überprüfen da sich viele
Dinge geändert haben. Und wir werden
die Grundlagen durchgehen , wie ich das
im Grunde ändern kann. Zunächst einmal haben wir jetzt einen Registrierungseintrag direkt hier anstatt nur
eine konfigurierte Funktion. Und was wir tun werden, ist, dass dies jetzt sein wird, anstatt das hier in diesem Baum konfigurierte
Feature aufzurufen .
Was wir tun, ist,
dass wir den
konfigurierten und den Punkt löschen möchten , ersetze es durch ein Komma und
lösche dann die Klammern hier. Anstatt
die Register-Methode zu verwenden, verwenden
wir die
folgende Methode. Wir werden die
konfigurierten Funktionen verwenden. Dies ist auf konfigurierte
Funktionen, die Methode registrieren. Werde all das los und jetzt funktioniert alles noch. Wie Sie gesehen haben, müssen wir
dies in den Registrierungseintrag für den Feature-Punkt-Trich-Punkt ändern dies in den Registrierungseintrag für den ,
der nur für
den Feature-Baum
konfiguriert ist. Und dann im Grunde genommen
den Rest genauso normal weitergeben. Anstatt nun von der
konfigurierten Funktion zur Konfiguration von Feature zum Platzieren von Feature zu wechseln, müssen
wir jetzt tatsächlich ein Platz-Feature dazwischen platzieren. Was ich jetzt tun werde,
ist, dass ich einfach die Platzfunktion und
die konfigurierte Funktion kopieren werde. Jetzt mache ich das und behalte das bereits existierende
Zeug hier. Sie können sehen, dass dies dem, was wir
bereits gehört haben, sehr ähnlich ist, halb. Sie können also sehen, dass dies der
zufällige zukünftige Konflikt ist. Das ist das Gleiche. Und dann sind hier
die Wälder überlebt. Jetzt ist nur der eigentliche
Scheck hier. Also die Wälder überleben jetzt passiert an diesem Ort
Feature genau hier. Und man sieht, dass der Rest
ziemlich genau derselbe ist. Es ist ein bisschen anders, aber insgesamt ist es nicht so verrückt. Ich empfehle noch einmal, genau wie in der
normalen Weltgenschaft,
Vorträge, die wir gemacht haben, schauen Sie sich zum Beispiel
den Zufallsselektor oder das
kurze Feature genau hier an, Mitte
klicken Sie auf diese minimalistische Maustaste, klicken Sie hier. Und du kannst im Grunde
all die Sachen sehen , die sie machen. Man sieht zum Beispiel, dass es Sumpf
alt ist. Sie können das
Ortsmerkmal des Sumpfes sehen, OK und so weiter und so weiter. Genau wie wir es in
den ursprünglichen World-Gen-Vorträgen durchgemacht haben . Ich kann das nur wärmstens empfehlen. Wenn es um die rosa Rose geht, mache
ich das Gleiche. Also werde
ich das einfach kopieren
und sehen, dass wir die Funktion „Konfigurieren“ verwenden
, diese Registrierungsmethode hin
und wieder, indem wir die Blume hier
übergeben, die Blume hier
übergeben, zufälliger
Patch-Feature-Konflikt ist ziemlich genauso,
weil wir
das Gleiche hier unten benutzen . Was wir tatsächlich tun
können, ist diese
beiden Methoden zu löschen ,
weil wir sie nicht
mehr verwenden werden. Und sehen Sie, dass wir
die konfigurierte
Feature-Register-Methode
und den Create Patch genau hier verwenden die konfigurierte
Feature-Register-Methode . Wir werden das einfach in der Schlange
machen, also wird das auch gut. Dann kann die eigentliche Liste
der Auren gleich bleiben. Und dann ist dieser am
einfachsten zu ändern. Was wir tun, ist, das hier
konfigurierte und
die schließende und
öffnende Klammer wieder loszuwerden . Wir möchten dies direkt hier in einen
Registrierungseintrag ändern, sie vor und dann ist dieser
tatsächlich von konfigurierten Funktionen
, die sie vor registriert haben. Und jetzt gibt es noch eine
Sache, die wir
tun müssen , und das ist, diesen oder
zukünftigen Konflikt zu nehmen und
das erste Fragezeichen in
diesen oder Feature-Konflikt zu ändern . Jetzt hat dieser Kurs tatsächlich
die Probleme erledigt , die wir in einem Moment
beheben werden. Das sind natürlich Probleme mit ersetzten Funktionen und
ähnlichem und auch mit dem Baum. Wenn wir also in den
Setzling Generator und C gehen, Dies ist auch keine gültige Rhetorik
mehr hier nur um
die eigentliche Methode zu löschen, den Mauszeiger über diese
Implementierungsmethoden zu bewegen, dann
ist alles hier geschrieben richtig. Und dann können wir einfach
sagen, mod konfigurierte Funktionen, die der
Kirschblütenbaum. Da gehst du. Und dann
sollte sofort funktionieren. sind keine weiteren Änderungen erforderlich. Gehen wir zum
MOD oder den Funktionen über. Jetzt siehst du hier viel Rot. Dies liegt nur daran, dass sich die
eigentliche Klasse bewegt hat. Was wir also tun wollen, ist sie
einfach noch einmal zu importieren. Klicken Sie also auf sie Alt und
Enter, um dies zu importieren. Du kannst dort sehen, dass du
auf den Platzierungsmodifikator gehst, mein Vater auch. Da gehst du. Das sollte so ziemlich
alles sein, was wir hier tun müssen. Jetzt ist der Rest in den
Marktplatz-Merkmalen. Das erste, was
wirklich cool ist, ist, dass wir
die Registrierungsschlüssel nicht mehr benötigen. Das wird also einfach
hier rausholen. Diese Methoden
brauchen wir auch nicht mehr. Wir können das tun, dass
wir einfach
die platzierte
Feature-Datenregister-Methode verwenden die platzierte
Feature-Datenregister-Methode , die wir tatsächlich
bereits hier verwendet haben Bitte Feature Dot Register, also kopiere ich
das einfach auf das neue Liste, genau hier, genau hier und
genau hier und dann hier. Wieder einmal möchten wir die Platzierung
auf dem tatsächlichen,
für das tatsächlich
konfigurierte Feature nicht
aufrufen . Was wir tun wollen, ist, dass
wir die
konfigurierten Funktionen weitergeben möchten. Das sollte also
ein Komma sein und dann
sollte dies der Spawn sein. Und dann lasst uns das und
das loswerden , und
dies ist kein Platz-Feature über
einen Registrierungseintrag eines Orts-Features, und dann sollte es völlig gut
funktionieren. Sie können also sehen, dass sie vor völlig gut
funktioniert haben. Fügen wir einfach den
Registrierungseintrag hier auch für beide hinzu. Und dann noch einmal
ändern, um
die Breitenplatzierung
und den Punkt zu führen . Da gehst du. müssen wir importieren. Sie haben sich gerade geändert. Da gehst du. Arbeitet schon. Und dann wird das Gleiche
hier mit Placement gelöscht hier durch
ein Komma
ersetzt. Und dann wird es auch einfach
wieder importiert. Und dann werden
wir alle anderen Eingaben,
die nicht mehr gültig sind, einfach los. Und vor, das
ist buchstäblich so ziemlich alles,
was wir tun müssen. Es ist fast ziemlich verrückt, aber es ist nicht so viel, wenn
man wirklich darüber nachdenkt. Wie wenn man sich alles hier ,
ist es ziemlich einfach. Alles in Betracht gezogen. Noch ein paar Dinge
in der Generation, aber das ist eigentlich
auch ziemlich trivial. Es ist also nur die Art und Weise, wie Sie
es im Grunde schreiben,
die die zugrunde liegende Funktionalität geändert hat , in den Generationsklassen, die
wir hier in den Schlüssel eingefügt haben, ziemlich
gleich
bleibt . Was wir jetzt tun können,
ist, dass wir einfach die Blumengeneration
nehmen können . Also wollen wir diesen Punkt, Punkt, Punkt, Punkt, und dann war's das. Also wollen wir
das nur durch den Punkt ersetzen, all die
verschiedenen Dinge hier
bekommen. Das wird also der
Oracle-Beschwerdepunkt sein, Dot get. Und dann genauso mit einem Baum hier. Dies ist die Kirschblüte
platziert, aber hol ky.gov. Und das ist es, das so ziemlich alles
sollte
, was wir ändern müssen. Das könnte irgendwo wie ein
paar andere Dinge sein. Aber ich glaube, dass es das ist. Was auch wirklich lustig
ist, ist, dass die Tags und die Welt
wie die großen Dinge sind, die sich ändern würden, auch welchem verdammten
Grund der tatsächliche ist. Während
ich im Util
auf dem Titelbildschirm nicht weiß warum,
aber der Titelbildschirm funktioniert nicht mehr richtig. Das ist, ich bin eigentlich, ich meine, ich würde nicht wütend sagen, aber ich bin ein bisschen wütend darüber weil ich diese Art von
fast völlig
benutzerdefinierter Klasse hatte , die ich ein bisschen aus Futter
genommen habe und hat es ein bisschen neu gemacht, und dann hat es völlig gut funktioniert. Und jetzt aus irgendeinem Grund haben sie sich geändert, um den
Titelbildschirm erneut zu ändern, und ich weiß nicht warum, aber es ist was es ist. Manchmal passieren diese
Dinge jedoch. Wir müssen uns nur damit
auseinandersetzen und du wirst mehr sehen. Ich meine, in nur einem
Moment, in dem wir das tatsächlich machen, lassen Sie mich den Konflikt tatsächlich
überprüfen. Und wir haben das ausgeschaltet. Ja,
wir haben das ausgeschaltet, also schalten wir das einfach ein,
damit wir tatsächlich
sehen können , was der Unterschied für den Titelbildschirm
ist. Sie werden sehen, dass das
derzeit nicht wirklich funktioniert. Dies ist also auch einer
der anderen Gründe, warum so
etwas wie ein Konflikt um den Titelbildschirm tatsächlich
wichtig ist. Lasst uns
damit anfangen und sehen ob wir irgendwelche Fehler bekommen. Ich bin mir nicht hundertprozentig sicher, dass wir nichts kriegen
sollten. Es mag so sein, als würden
ein oder zwei Dinge fehlen,
die vielleicht ein
Import waren, aber es sieht aus,
sieht im Moment irgendwie gut aus. Also mal sehen, lass es einfach durch
diesen gehen, natürlich
unseren normalen Pfeil, den wir
immer bekommen, wenn wir
mit Minecraft starten. Und ich glaube, dass
es in Ordnung sein sollte. Es beginnt auf dem
anderen Monitor. wir es einfach hier rüber. Und dann können wir auch
sehen, dass
das Problem hier natürlich
ist, dass es hier keinen Splash-Titel
gibt und dann auch links,
unten links, die eigentliche Version
und das Zeug ist auch fehlt. Ich weiß nicht, warum
das der Fall ist. Sie haben es irgendwie
im Backend auf ihrem Code geändert. Aber was auch immer der Fall
sein mag, es ist 1, 1000. 2. Und was wir tun können, ist, dass wir einfach eine neue Welt erschaffen
können und einfach eine neue
Welt schaffen und tatsächlich alles
sollte immer noch völlig gut funktionieren. Das geht also von den Entitäten
bis zu den Block-Entitäten bis hin zum
Nichtlaichen von Bäumen und alles dazwischen
sollte immer noch völlig gut funktionieren. Das ist also echt cool
und schauen wir es uns an. Der Spawn macht
ziemlich genau. Ich meine, das ist großartig. Das ist auch ein wirklich
interessanter Ort genau hier. Aber ja,
die Bäume trauern immer noch, die eigentlichen Blumen laichen auch
immer noch. Das wird echt cool. Und schauen wir uns einfach alle unsere
Kurssachen an. Lasst uns das einfach hinter uns bringen
und sehen, wie der Tiger immer noch arbeitet, da die Waschbären auch immer noch Varianz
arbeiten. Also ist alles immer noch
völlig in Ordnung. Und lasst uns tatsächlich auch die Dowsing Records
testen. Das hat sich geändert. Und wir werden sehen, sobald wir etwas
gefunden haben , das sie
vor Eisenerz gefunden haben, also alles völlig in
Ordnung, funktioniert immer noch. Mach dir keine Sorgen. Ja,
so einfach ist es von 1820er Jahren
zu aktualisieren. Es gibt einige Dinge , die man beachten muss, aber insgesamt ist es nicht
so schlimm, oder? Offensichtlich werden alle zusätzlichen Themen, die danach
kommen werden , alle für 182 sein. Es
wird natürlich
dringend empfohlen, jetzt darauf zu aktualisieren, Sie sollten wahrscheinlich an dieser Stelle
fertig sein. Und dann können wir mit
einigen zusätzlichen
Themen in 118 bis fortfahren , 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.
112. (1.18.2) Benutzerdefinierte Strukturen (Tutorial Beispiel Repo): Oder ich begrüße zurück beim
Stoffpferd für 118. In diesem Vortrag werden
wir Minecraft
benutzerdefinierte Strukturen hinzufügen . Nun
wird dies funktionieren,
dieser Vortrag und die
folgenden beiden Vorträge werden über Strukturen sein. In dieser ersten Vorlesung empfehle
ich Ihnen dringend, dass Sie
diese Vorlesung mit mir durchlaufen , denn nachdem wir
Strukturen
im Grunde genommen einmal implementiert haben , ist
es unglaublich einfach, weitere Strukturen
hinzuzufügen. Sie müssen nur
einige JSON-Dateien kopieren und im Grunde Ihre Struktur
erstellen, speichern, und dann war's das. Es ist sehr, sehr einfach. Aber dieser Vortrag ist, wie Sie wahrscheinlich
feststellen können, ziemlich lang. Und der Grund dafür ist
, dass wir dieses
Repository genau hier
durchgehen werden. Dies ist das strukturierte
Tutorial-Mod-Repository durch ein telepathisches Grunzen. Es ist wahrscheinlich die
Nummer eins für benutzerdefinierte Strukturen. Es ist unglaublich toll
darin, ist wirklich gut. Es hat viele verschiedene
Kommentare in jeder Datei. Und es ist nur, es macht das
sehr, sehr einfach. Jetzt
führt 1, 1000th 2 tatsächlich eine Möglichkeit ein,
Strukturen zu erstellen , die
buchstäblich keinen Code erfordern. Das ist wirklich
verdammt großartig, aber wir werden auch
eine bestimmte Struktur sehen , die tatsächlich mit Code existieren wird. Und wir werden das
im Grunde durchmachen. Also werde ich erklären, wie ich dieses
spezielle Repository
durchgehe . Wir werden
es in seiner Gesamtheit durchmachen. Wir werden beide Strukturen implementieren ,
die uns hier
im Grunde genommen gegeben werden. Und so wie wir dies
durchgehen, wenn wir hier im
Quellordner gehen, öffnen
wir den Code und die Ressourcen separat. Zunächst einmal
wollen wir uns im Grunde all die verschiedenen
Klassen
ansehen , die wir haben. Wir werden sehen, dass
es eine Mischung in der Klasse
gibt, es gibt eine Strukturklasse, es gab die St-Strukturen
und die Hauptklasse. Wir haben also vier
verschiedene Klassen. Und Sie können insgesamt sehen,
dass sie ziemlich lang sind, aber Sie können sehen, dass
es hier auch viele verschiedene
Kommentare gibt. In Ihrer Freizeit wärmstens zu empfehlen. Gehen Sie die Kommentare durch, sehen Sie, was jeder Teil bedeutet, denn einige Dinge sind
sehr einfach, andere sind nicht so
einfach. Ich kann das nur wärmstens empfehlen. So kann man den
Nasdaq insgesamt verrückt sehen , wenn
man darüber nachdenkt. Aber im Grunde fangen wir hier an. Also fangen wir mit dem Code an. Zuallererst wird dies
der Struktur-Feature-Accessor sein . Ich kopiere das
einfach und wir fangen sofort hier
im Mischpaket an. Jetzt können Sie natürlich auch den gesamten Code und
die JSON-Dateien
im GitHub-Repository des
Kurses und die
Risiken
abrufen die JSON-Dateien
im GitHub-Repository des . Aber ich
empfehle dringend, dies einmal durchzugehen im Grunde mit
dem eigentlichen Tutorial-Code
der telepathischen Grunts, dem
Tutorial-GitHub-Repository zu arbeiten dem eigentlichen Tutorial-Code
der telepathischen Grunts, , das ich dringend empfohlen habe oder was auch immer der Fall vielleicht im gemischten Paket sein, wir werden ein
V-Struktur-Feature
übermäßig machen oder mit Dienstag vor. Und wir sollten in der Lage sein, dies
einfach einzufügen und dann alle wichtigen
Dinge genau hier zu
importieren. Der Generationsschritt auch. Da gehst du. Und das sollte sein, dass ich jetzt natürlich
zum MC-Kurs Mixin Jason gehe und dies auch hier als Mixed
hinzufüge. Das sollte so ziemlich genau das sein,
was wir hier tun müssen. Und dann wechseln wir
zurück
zum Tutorial GitHub
hier werden wir, wir werden den
Tab schließen und dann
gehen wir mit
dem nächsten fort. Das werden
die Himmelsstrukturen sein. Ich
kopiere einfach alles einschließlich der Importe hier. Und das wird
in das Weltpaket eingehen, in ein neues Paket
namens „ruptures“. Und statt dort werden
wir
eine neue Klasse erstellen, die als Modul bezeichnet wird. Dies sind die Himmelsstrukturen. Da gehst du. Und
dann fügen wir das von unterwegs ein. Wir müssen es dieses
Jahr auf MC Core Smart,
einen Logger, umstellen , und dann
ist dies kein heruntergekommenes Haus, aber das ist der Himmelsbruch. Und dann hier oben
müssen wir uns nur ändern. Und dann
sollten hier keine Fehler mehr vorhanden sein. Also sollte alles funktionieren. Insgesamt, wie Sie sehen können, es
zwar nach viel, sind es
zwar nach viel,
aber tatsächlich nur eine Menge
verschiedener allgemeiner Sphäre. Und alles wird grundsätzlich in diesen Kommentaren
erklärt, die
ich empfehlen kann, wie gesagt,
dies in Ihrer eigenen Zeit durchzugehen. Sie können
beispielsweise sehen, dass diese
hier die Y-Position bestimmt. Das sind solche Sachen platziert. Ich empfehle dringend, sich das
anzusehen und nur sicherzustellen, dass Sie
ein bisschen davon verstehen. Sie müssen hier nicht alles
verstehen, besonders wenn Sie einfach nur eine normale
Struktur spawnen wollen , dann wird das völlig
in Ordnung sein. Wenn Sie etwas
Umfangreicheres wie eine benutzerdefinierte Festung wünschen. Ich meine, an diesem Punkt wird
es sehr,
sehr schwierig sein , das tatsächlich zu tun. Das wird
viel mehr Arbeit erfordern. Dies ist sehr nur für einige, sagen
wir grundlegende bis
Zwischenstrukturen. Wir haben jetzt diese Typen
Strukturen Klasse. Also lasst uns
das auch einfach schließen. Und dann können wir sehen, dass wir diese St-Strukturen hier
haben müssen . Jetzt benenne ich dies in
Mod-Strukturen um , denn das ist
die Nomenklatur, mit der ich gehe. Und wir werden uns einfach mit modalen Strukturen beschäftigen. Da gehst du. Und ich füge das einfach ein,
ändere das zurück in Mod-Ruptures und du solltest nicht, dass wir das
wirklich richtig schreiben. Da gehst du. Importieren der Strukturfunktion hier, Retro Future Accessor. Das wird MSC
Course Mod dieser Modell-ID sein. Dann ist dies wieder der
Generationsschritt wie zuvor. Und dann sieht man
noch einmal , dass das alles ist
, was es dazu gibt. Wir müssen
diese Methode jetzt nur hier
in unserem MC-Kurs aufrufen , mehr Klasse und den
Konstruktor genau hier. Modale Strukturen
registrieren also keine Strukturmerkmale und das war's. Und dann gibt es auch das
Letzte genau hier. Du kannst sehen, da
gehst du, Nicole, das, und das ist fertig und fertig. Jetzt ist der gesamte Code
tatsächlich bereits erstellt. Und jetzt passiert der Rest
im Ordner Resources und
nämlich im Datenordner. Hier ist eine
Menge Sachen hier drin. Wir werden feststellen, dass
es eigentlich nur eine Menge Dinge gibt, die Sie zuerst sehen
können, ein Tag. werde
ich in einem Moment erklären. Und dann haben wir
den Datenordner für dieses Tutorial hier können Sie
sehen, dass wir Strukturen haben, wir haben noch ein paar Tags und
dann auch die Welt wieder. Dieses Tag ist eigentlich etwas, das wir
ein bisschen ignorieren werden. Aber das sind die auf
Ocean Explorer Karten. Dies ist etwas
, das Sie hinzufügen können. Sie können sehen, dass microbe
einige konfigurierte
Struktur-Feature-Tags hat einige konfigurierte
Struktur-Feature-Tags , die ein bestimmtes Verhalten hinzufügen können. Und in diesem Fall können
Sie die Struktur tatsächlich den Kartographen,
Dorfbewohnern,
Ozeankarten und Denkmalkarten
hinzufügen . Und im Grunde ist es
das, was ein bestimmtes Tag macht. Das musst du nicht hinzufügen. Ich füge
es nicht hinzu. Dies ist nur ein zusätzliches Feature hinzuzufügen, das wirklich cool sein
könnte. Das ist also etwas, das wir
im Grunde auch
ziemlich ignorieren können . Wir werden
dies auch schließen und jetzt
haben wir nur den Datenordner für
das Struktur-Tutorial. Dies ist natürlich die Modell-ID. Für uns wäre dies also
der Data MC Kursordner. Und Sie können sehen, dass es
hier einige Ordner gibt. Lasst uns also die ersten beiden öffnen , denn dieser
wird tatsächlich umfangreicher sein. So falten sich die Strukturen weiter, haben
nur die NVT-Daten für
die zusätzlichen Strukturen. Die Idee ist also, dass du Strukturen in
der Welt
baust und dann bestimmte Blöcke benutzen
kannst. Diese werden als
Strukturblock bezeichnet, um
dieses bestimmte
Gebäude in NVT-Daten zu speichern . Und wir werden auch in dieser
Vorlesung
sehen, wie das geht,
denn wir müssen auch einige dieser Dinge
in diesen NVT-Dateien ändern . Und dann
werden wir dies auch in
der nächsten Vorlesung und der Vorlesung
danach mit einer einzigen
benutzerdefinierten Struktur sehen der nächsten Vorlesung und der Vorlesung . Und dann werden wir auch
die Puzzle-Strukturen in
der letzten Vorlesung dieser Art von
drei Vortragsreihen
für Strukturen sehen die Puzzle-Strukturen in der letzten Vorlesung dieser Art von . Aber vorerst werden
wir nur
diese Strukturen übernehmen, die ich
wärmstens empfehle, noch
einmal
dieses Tutorial-Programm zu durchlaufen, ändern sich
nicht zu sehr. Stellen Sie sicher, dass das alles funktioniert. Wenn du das alles getan hast
und alles hier funktioniert, bekommst
du das heruntergekommene Haus,
du hast den Sky Fan. Das Hinzufügen einer neuen Struktur
ist maximal fünf Minuten. Es ist sehr, sehr einfach. Und dann musste man es natürlich
noch bauen. Aber der eigentliche Code oder die JSON-Dateien, die ihn
dort ändern, sind sehr einfach. Lassen Sie das also einmal mit
einem strukturierten Tutorial-Mod laufen. Dann können Sie
Ihre eigenen Strukturen
wirklich sehr empfehlenswert hinzufügen . Es ist einfach der beste Weg, es zu tun. All dies möchten wir grundsätzlich in VT-Dateien herunterladen. Jetzt habe ich eigentlich schon
getan, was Sie tun können, ist, dass Sie es einfach öffnen und dann hier
herunterladen
können und sie sind weg. Dann hast du diese NVT-Datei. Sie können tatsächlich vier sehen, die ich schon ein paar Mal
heruntergeladen habe . Man sieht also, dass das so ziemlich da
ist. Laden Sie also einfach alle vier und Sie können sie natürlich auch im
GitHub-Repository
holen, das ich habe. Was wir tun werden, ist, dass
wir in den Daten-Ordner-MC-Kurs gehen
und ein neues Verzeichnis
namens Structures
erstellen . Und dann brauchen
wir da drinnen die folgenden NVT-Dateien. Alle vier davon. Da gehst du. Also brauchen wir
das heruntergekommene Haus, linke, rechte Seite, Golden und die Himmelsfans. Also diese vier, die wir in diesem
Strukturordner benötigen, Datenordner in Ihrer
Modell-ID hier. Und das wäre in Ordnung. Nachdem wir das getan haben, können
wir das auch schließen. Und dann könntest du sehen,
dass wir die Tags genau hier haben. Das wird also noch einmal unter
Ihren Daten sein, Tags belgische
Biome haben Struktur. Diese Tags sind sehr interessant, da
sie tatsächlich bestimmen, in welchen Biomen Ihre benutzerdefinierte Struktur spawnen
kann. Sehr einfach zu
verstehen, was das tut und was wir tun werden, ist dass
wir sie einfach beide
öffnen werden. Und ich werde nur
zuerst die eigentliche
Struktur hier
erstellen. In den Tags, die älter sind, werden
wir
unter Ihrer Model-ID
ein neues Verzeichnis
namens World Jen erstellen . Und dann wollen wir
drinnen
ein neues Verzeichnis namens Biom erstellen . Und dann werden
wir da drinnen ein neues Verzeichnis
namens hat Unterstrichenstruktur erstellen , um
sicherzustellen, dass wir das richtig
schreiben. Und dann brauchen
wir drinnen zwei neue Dateien. Also werde ich eigentlich tun weil
das
sehr lange Namen sind. Ich kopiere
diesen Namen genau hier. Und ich klicke einfach
mit der rechten Maustaste auf eine neue Datei füge diesen Namen
ein. Da gehst du. Und dann gehe ich zurück, füge den Inhalt
dieses Punktes hier noch einmal ein, und wir werden uns das in einem Moment
ansehen. Wir werden tatsächlich auch die andere Datei
erstellen. Das sind also die angrenzenden
einzigen Hausbiome. Dieses einzige G Jason Haus , für das wir eine
Struktur hervorbringen werden, die wir erstellt haben, die Himmelsstruktur, für die wir den Code
erstellt haben, und das Haus wird
komplett
nur mit JSON-Dateien spawnen , ist
echt verdammt genial. Und ich bin eigentlich, ich bin
eigentlich sehr, ich bin überrascht, wie einfach es tatsächlich ist, wenn
man sieht, besonders in den nächsten Vorträgen, nachdem wir das einmal
durchgemacht haben, bist
du es einmal Ich werde sehen,
wie einfach es ist , mehrere neue Strukturen
hinzuzufügen Es ist wirklich einfach, wenn Sie dies durchlaufen haben, kann
ich das nicht genug empfehlen, während es ein
bisschen Zeit ist, es einzustellen hoch und alles zu erklären. Es wird sich sehr,
sehr lohnen, oder? Dann haben wir die Himmelbiome. Biome für den Himmel-Fan, man kann sehen, dass Berge
Meer und tiefe Ozeane sind. Sie können sehen, dass dies
Tags sind, wie Sie sehen können. Und dann fügen wir dies auch dem Sumpf oder dem einzigen Haus hinzu, das Sie sehen
können. Wir fügen es all
dem Zeug hinzu , dass es ein Tiger, Dschungel, Wald und
dann auch Wüsten, Ebenen und ein anderes ist
Biome auch. Hier kannst du also einfach die Biome
benutzen. In einem Wort ein Biome angeben, wird
Ihre benutzerdefinierte Struktur einspawnen. Das ist also echt cool. Damit wir das schließen
können,
schließen wir das alles. Da gehst du. Und dann
können wir noch einmal fortfahren. Wir können
das schließen, schließen und schließen. Und jetzt sind wir wieder hier, dass wir die Strukturen gemacht haben und wir haben das Tag
Strukturen hat und jetzt in die Welt
geht. Und so kann ich das tatsächlich auf
dieser Registerkarte öffnen und Sie können sehen, dass es hier vier weitere
verschiedene Verzeichnisse gibt. Und wir können im Grunde vier von ihnen
öffnen. Und du wirst
sehen, lass uns tatsächlich die ersten drei
öffnen, denn das wird ein besonderes sein. Und Sie können sehen, dass der
erste gerade noch einmal JSON-Dateien darin enthält. Dies sind neu konfigurierte
Strukturfunktionen. Was ich also tun werde, ist, dass
ich den Namen
hier kopiere , damit ich nichts
vermisse, etwas zu tippen. Und das geht, und das
ist unglaublich wichtig. Bitte beachten Sie hier. Jetzt geht dies in
den World-Gen-Ordner, nicht in diesen World-Gen-Ordner. In Ihrem Data MC-Kurs
oder Ihrem MOD-ID-Foto müssen
Sie einen
neuen World-Gen-Ordner erstellen. Sieh dir das an. Sieh mal. Dieser World-Gen-Ordner
unterscheidet sich von diesem. Das hier ist statt
der Steuermappe, Sie sehen können, los geht's. Wenn ich das öffne, kannst du sehen, dass es sich um verschiedene Ordner
handelt. Das ist unglaublich wichtig. Bitte machen Sie nicht
den Fehler,
alles in Ihre Steuermappe zu legen . Bitte seien Sie sich dessen bewusst. Dies ist ein anderer Ordner. Ich halte das offen
und du kannst MC-Kerne sehen, ländliche Jen, du gehst dorthin, alles geht rein
und wir werden hier
ein neues Verzeichnis haben , das
als konfiguriert bezeichnet wird Unterstrichen-Struktur-Unterstrichen-Funktion. Lassen Sie uns tatsächlich auch den
Rest erschaffen. Die andere ist die
Unterstrichenliste des Prozessors. Und dann ziehen
wir das in denselben Ordner, der die Kontrolle hat
, um dies zu
duplizieren. Und das ist der
Unterstrich der Struktur. Und dann wird der letzte
der
Vorlagenunterstrichen-Pool sein . Da gehst du. sind die vier
verschiedenen Verzeichnisse oder Ordner, die wir in
den Welten benötigen und noch einmal
folgen, um
sicherzustellen, dass sich dies
im richtigen Ordner befindet, Data MC-Kerne Welt. Jen, das sind nicht die
Tag-Welten und voller sehr,
sehr wichtig, dass Sie
diese innere richtige Reihenfolge haben , oder? Nachdem Sie sichergestellt haben, dass
dies der richtige Ordner ist, werden
Sie hierher gehen
und wir werden diese beiden Strahlen und Dateien
öffnen. Also nochmal, ich werde
einfach den Namen hier kopieren, es mir nur ein bisschen
einfacher macht , damit ich das
nicht tippen muss. Also was wir
mit der rechten Maustaste auf neue Datei klicken, natürlich vor sie, und dann werden wir den Inhalt hier
abrufen. Also lasst uns das einfach
überschreiben. Da gehst du. Und dann gehen wir hier
rein. Da ist es. Wir werden dieses
Zeug in einem Moment ändern. Lassen Sie uns die
andere benachbarte Datei
sowie das angrenzende
einzige Haus noch einmal erstellen . Und wir werden
mit der rechten Maustaste auf neue Datei klicken, nur Haus einfügen. Und dann werden wir gehen und dann gehen wir
her. Da gehst du. Wieder einmal,
dessen Inhalt es über N
gibt, haben wir es. Aber zuerst können Sie die Pfeile genau hier
für die eigentlichen Kommentare
ignorieren . Die werden gut gehen,
also keine Sorgen da. Und jetzt können Sie sehen, dass
diese bestimmte JSON-Datei im Grunde das
Strukturmerkmal
oder das Feature
ist , das
wir hinzufügen werden, die Konfiguration davon.
Was heißt das? Nun, zuerst können Sie
sehen, dass dies tatsächlich zurückgeht und auf Ihr Tag verweist, das
wir genau hier erstellt haben. Sie können also sehen, dass dies die Struktur
ist. Hat Struktur, ja. Und dann Codestruktur
Sky Fan von Biomen
, genau dieser
Jason of Alright, hier müssen wir diese
Modell-ID in unser Modell ändern. Sehr wichtig. Wir möchten es auch
diese intelligente ID in unsere Mod-ID ändern. Und um absolut
sicher zu gehen, dass alles funktioniert, möchten
wir auch diese Modell-ID
ändern. Überall dort, wo
die Struktur-Tutorial-Modalität steht , wollen
wir grundsätzlich zu unserer Modell-ID
wechseln. Jetzt sollte dies
ziemlich selbsterklärend sein. Wie gesagt, deutet dies auf diese spezielle
JSON-Firewall hier hin, das Biome-Tag,
das im Grunde
dafür verantwortlich ist ,
dieses spezielle
Strukturmerkmal
oder dieses spezielle zu erzählen dieses spezielle
Strukturmerkmal -Struktur kann nur in den Biomen
hervorgebracht werden
, die sich innerhalb
dieses Tags befinden, sollte
ziemlich selbsterklärend sein. Nichts
Verrücktes ist da drin los. Sie beginnen Pool ist etwas, das wir
in einem Moment hinzufügen werden. Dies wird in
den Vorlagenpool-Ordner hinzugefügt. Und das werden wir in einem Moment sehen
. Dies ist im Grunde die Tiefe, eines der zentralen Teile
der Erzeugung davon. Und dann können wir sehen, dass wir hier auch
einige Spawn-Überschreibungen haben , bei denen einige Volckers und
Phantome genau hier spawnen könnten. Sie können also sehen,
dass Mops in
dieser Struktur Überstunden
hervorbringen können . Das ist also etwas
, das Sie
auch mit sehr
beraten können. Abgesehen davon ist das angrenzende
einzige Haus sehr ähnlich. Sie können sehen, dass die Basisstruktur hier tatsächlich
völlig anders ist. Dies ist eigentlich
ein Dorf oder nicht 100% sicher, wo
das sinnvoll ist. Sie können sehen, dass
dies im Grunde einige zusätzliche Geländeprüfungen durchführt. Ich denke also, dass dies
nur bedeutet, dass dies im Grunde
ähnlich wie ein Dorf spawnt. Also wird es nach einem
flachen Boden suchen , solche Sachen. Und es wird so
einige Dinge tun. Ich bin mir nicht 100% sicher, aber das scheint der Fall zu sein. Jetzt noch einmal das
Struktur-Tutorial, dies in unsere Modell-ID
ändert. einmal MC-Kurs, MC-Kurs. Und das ist der heruntergekommene
Haus-Sort-Pool. Und das deutet noch einmal
auf die angrenzenden einzigen Biome hin. Also diese Datei genau hier, um ziemlich selbsterklärend zu sein,
der Erwachsenenlärm, kann
man sehen, dass
es
hier einen großartigen Kommentar gibt , was das im Grunde tut, wenn das wahre Land um ihn herum
sein wird untere
Seite der Struktur. Dies wird also nur
die tatsächliche Struktur
des Landes um seine
eigentliche Struktur herum verändern die tatsächliche Struktur
des . Und wenn es sich um Überschreibungen erstrecken
kann, können
wir auch
einige Kreaturen hinzufügen, die
Geräusche von Eltern hören , die auch hier drin
spawnen könnten. Also los gehst du. Jetzt ist das
konfigurierte Struktur-Feature fertig und dann
können wir weitermachen, damit wir es können. , dieser,
dieser und dieser. Und dann sehen wir
die Prozessorliste. Jetzt ist dies eine spezielle Jason-Datei , die eigentlich nicht benötigt wird. Das ist etwas Gewohntes. Das ist der randomisierte
Steinbruch und ist wirklich genial. Und ich erkläre auch
, was das macht. Wir werden
dies in unserem Prozess erstellen,
unsere Liste ist
hier älter und meinen Steinziegel. Und dann lass uns zurück hierher
gehen und lass
uns einfach all diese
Verrücktheit hier reinbringen. Und das ist im Grunde genommen
im allgemeinen Kern hier ist c Prozessliste wird einen Prozessor für
jeden Block
ausführen , den ich die NVT-Datei
bearbeite. Wenn wir unsere
benutzerdefinierten Strukturen erstellen. Dies wird natürlich alles
in der NBA in einer MVT-Datei gespeichert. Und dann
läuft im Grunde genommen für
jeden Block, der diesem Prozessor
platziert wird , durch ihn. Und du siehst,
das ist echt cool. Sie können hier grundsätzlich
bestimmte Regeln angeben. Und die Regel hier ist,
dass,
wenn wir zum Beispiel einen Steinziegel finden
, eine Chance von 50% hat einen
befallenen Steinziegel ersetzt
zu werden. Das ist wirklich großartig
und das ist echt cool. Sie können hier sehen, einige
Steinsteine könnten auch durch Smaragd
oder etwas Kobalt
ersetzt werden . Tiefer Schiefer könnte
durch einen tiefen
staatlichen Restaurantkrieg ersetzt werden . Das ist wirklich cool und
das könnte sein, Sie können Ihren benutzerdefinierten
Strukturen im Grunde genommen
etwas mehr Variabilität
hinzufügen , mit diesen Regeln hier. Ich bin mir also nicht hundertprozentig sicher
aller existierenden Regeln. Dies ist natürlich nur ein Beispiel, in dem
Sie grundsätzlich einen Block in
acht anderen Block
ändern können . Aber es ist wirklich cool
und das könnte einfach
eine sehr coole Sache sein eine sehr coole Sache , um einige
Ihrer Strukturen zu ergänzen. Dies
ist jedoch noch einmal nicht notwendig. Dies ist völlig optional. Sie werden also sehen
, dass dies in der
Himmelsstruktur genau hier
verwendet wird, aber nicht im Haus. Das Haus wird das eigentlich
nicht benutzen. Das sage ich also. Dies muss nicht hinzugefügt werden, aber es ist immer noch nett. Und ich empfehle
für die Zwecke dieser Vorlesung und des
strukturierten Tutorials wärmstens, dies auch
hinzuzufügen. Alles klar, damit wir das auch
schließen können. Und dann sind wir in der
Welt Transstruktur festgelegt. Aber wieder
können wir
diese beiden Jason-Akten öffnen und ich
mache das Gleiche. Ich kopiere
den Namen hier drüben und wir werden eine
neue Datei erstellen. Da gehst du. Dann
werden wir noch einmal hierher gehen und einfach
den Inhalt holen , von dem Sie eigentlich nicht so lange
sehen können. Und noch einmal
werden wir
zuerst
beide Dateien erstellen und dann
werden wir den Inhalt durchgehen und was diese tatsächlich bedeuten. verrückt sind sie nicht. Insgesamt ist jeder
einzelne Teil hier nicht so kompliziert,
alles berücksichtigt. Es ist nur so, dass es
manchmal ein bisschen entmutigend sein kann,
weil es so viel gibt, aber wenn man es sich
tatsächlich anschaut, die einzelnen Teile
oder nicht so verrückt. Also zuerst, natürlich
noch einmal, die Struktur hier, das ist nicht 100% sicher, aber ich glaube, dies deutet auf das konfigurierte
Struktur-Feature genau hier hin. Also dieses, wir können dies
einfach in den
MC-Kurs ändern und dann wird es auf diese
JSON-Datei genau hier
hinweisen. Und dann
ist die Platzierung sehr wichtig. Die Platzierung hier,
Sie
möchten grundsätzlich sicherstellen, dass
Ihr Salz genau hier, das Sie sehen
können, uns
einzigartig macht und sicherstellt , dass es zu
keinem anderen Salz passt. Der Grund dafür
liegt darin, dass sonst die tatsächlichen Strukturen am selben Ort platziert
werden, was natürlich
etwas ist, was Sie definitiv nicht tun möchten, denn das
wäre einfach sehr seltsam. Manchmal
passiert es immer noch, dass sie sich schneiden
werden, aber das ist nur die Zufälligkeit. Es sollte normalerweise nicht passieren, besonders wenn Sie hier
die Trennung machen. Der Abstand ist also
der durchschnittliche Abstand auseinander und dies ist der
Mindestabstand auseinander. Und dann muss das natürlich
immer kleiner sein .
Es ergibt Sinn, oder? Wenn die durchschnittliche Entfernung
kleiner als der
Mindestabstand ist kleiner als der
Mindestabstand macht es überhaupt keinen Sinn. Also los geht's, vergewissern Sie sich einfach. Und ich glaube, dass dies
definitiv debuggte Werte sein würde definitiv debuggte Werte sein denn 166 werden Sie sehen wenn wir tatsächlich in die Welt
gehen, dass dies
unglaublich nicht selten ist. Dies ist in dieser Mischung unglaublich
üblich, unsere verschiedenen
Strukturen wahnsinnig üblich. Denken Sie also daran, aber ich empfehle, diese
Zahlen vorerst zu behalten. Gleiche hier mit dem
Jason-Haus. Wir werden es ändern, das
hier, MC-Kurs. Dann können wir auch sehen, dass
dieses hier wieder auf diese
Struktur
hinweist. Was Sie nun feststellen werden, ist
, dass dies natürlich eine Liste ist. Theoretisch könnten wir hier
eine weitere Struktur hinzufügen. So können Sie auch theoretisch
an der Struktur Skype und wo immer Sie hier
die verschiedenen Tarife vergeben können. Wir können in diesem
Kommentar sehen, dass es im Grunde versucht,
eine dieser Strukturen auszuwählen. Wenn zwei oder mehr
Strukturanalysten in einem Biom an einer Stelle spawnen
können, wird
basierend auf den Gewichten
ein zufälliges ausgewählt. Dies ist die allgemeine Idee hier. Sie können also auch
eine Liste mit vielen
Strukturen erstellen und
im Grunde eine davon an einem
bestimmten Ort spawnen lassen. Das würde also auch funktionieren. Dies ist also die Struktur
, die im Grunde auf das konfigurierte
Strukturmerkmal, das Problem, das Strukturmerkmal hier hinweist, natürlich auf
die Steuer genau hier hinweist und dann auch auf die Steuer hinweist
zum Vorlagenpool, was das Letzte ist
, was wir jetzt hinzufügen müssen. Also gehen wir
gleich hier
zum GitHub-Repository zurück , und wir werden das
alles schließen und dann
den Vorlagenpool öffnen ,
weil dies
wie gesagt, etwas
komplizierter ist . Ich hole den Sky Fan und dann auch das
heruntergekommene Haus. Also werden wir es so
schaffen. Wir kriegen zuerst
den Sky Fan. Eigentlich
wird das ein bisschen einfacher. Das ist also nur
die
Fangemeinde und die Datei des
Himmels . Also machen wir eine
neue Akte. Da gehst du. Und dann noch einmal, wenn Sie
den Inhalt
davon auch nicht so
lange kopieren ,
wie Sie sehen können , ist dies in diesem Fall, was
wir hier ändern
wollen ,
die tatsächliche mehr ID. Ich glaube nicht, dass das
absolut notwendig ist. Sie können auch sehen, dass dies tatsächlich auf den Side
Pool genau hier
zeigt. Es ergibt wirklich keinen Sinn weil dies nicht der Fall
sein sollte. Dies sollte eigentlich
sein eigener Name sein. Das sollte also Skype sein. Und ich glaube, dass
dies für
den tatsächlichen Namen hier eigentlich nicht so wichtig ist. Und dann kann man
natürlich auch diesen sehen , MC-Kurs. Und Sie können diesen sehen, da Sie hier den endgültigen Pfad sehen können, mit der die
Ressourcendatenstruktur ausgeführt werden soll. Dies wäre
MC-Kursstrukturen laufen auf dem Haus links beachten Sie dies zeigt auf den
Himmel und schwor Fan und VT. Dieser Name hier
muss also denselben Namen haben wie dieser. Der Speicherort hier
verweist in
diesem Fall auf
die MDT-Datei im Strukturordner innerhalb
Ihres MC-Kursordners , da
wir dies getan haben. Jetzt können Sie sehen
, dass wir auch
die Prozessoren
randomisiert haben Stein, Ziegel. Es muss auch auf den MC-Kurs
wechseln, oder? So genauso hier, MC-Kurs. Dies sucht dann der Prozessorliste,
randomisiertem Steinziegel, und dann werden wir einen Steinstein
für jeden der verschiedenen
randomisieren , wird im Grunde genau diese Regel
durchlaufen, die Ich habe es dir im Grunde vor ein paar
Minuten gezeigt. Ja, und das ist
so ziemlich der Sky Fan fertig. Was wir jetzt
tun wollen, ist auch die Seite und der gelagerte Pool für
das heruntergekommene Haus. Also erstellen wir hier einen neuen
Ordner namens Run underscore down
underscore house. Und dann werden
wir dort
zwei JSON-Dateien machen, werden
wir dort
zwei JSON-Dateien machen Fool- und Site-Pools
gespeichert sind, oder klicken Sie mit der rechten Maustaste auf neue Datei gespeicherte
Unterstrich-Pool-Dot-Json. Und dann wollen wir auch den Side
Underscore Pool Dot Jason. Und lasst uns den Inhalt
überschreiben. Dies ist der Speicherpool. Kopieren wir das einfach über das Ziel und kopieren
wir dann nicht
zuletzt den Seitennarren und dann haben wir
alles kopiert. Dann brauchen wir im Grunde genommen, das ist derjenige, der Pool beginnt. Und vor allem noch einmal
die neue Liste zu MC Kurs, der diesen auf MC-Kurs
umwandelt. Und das ist alles was wir brauchen. Sie können also noch einmal heruntergekommenes Haus
dafür sehen, dieses hier,
dieses NVT to File. Und dann
haben wir hier den Site-Pool. Das wird
sehr interessant sein. Dies wird für den
Puzzleblock und das Puzzle-Zeug benötigt. Also werden wir im Grunde sehen was das bedeutet und was
das in einem Moment macht. Wir werden einfach
alle Standorte hier wechseln. Geh MC-Kurs. Und die allgemeine Idee
hier ist, dass
Sie einen Lagerpool haben, der
die
linke Seite des Hauses sein wird. Und dann haben Sie
einen Stichsägeblock auf beiden Seiten des Hauses und auf der linken und
rechten Seite des Hauses. Und sie sind
miteinander verbunden. Und dann nennt es im Grunde genommen den Site-Pool und
spawnt dann entweder das
rechte Haus, normal oder Gold. Das ist
die allgemeine Idee. Aber wir werden das auch in
der Puzzle-Vorlesung etwas detaillierter sehen , wo wir tatsächlich eine neue
benutzerdefinierte Struktur
mit unseren eigenen
Puzzle-Blöcken
ganz individuell gestalten benutzerdefinierte Struktur
mit unseren eigenen
Puzzle-Blöcken
ganz individuell und so was auch. also keine Sorgen. Wir werden in Zukunft
ein bisschen
näher darauf eingehen . Aber jetzt ist eigentlich alles hier hinzugefügt worden und sollte funktionieren. Wenn das eine Sache, die
nicht funktionieren
sollte tatsächlich die linke
und die rechte Seite innerhalb dieser
MVT-Dateien im Stichsäge-Block ist, ist damit eine falsche
Modell-ID verknüpft. Die Modell-ID ist also
immer noch der
Strukturunterstrich Tutorial und wir müssen dies
tatsächlich ändern. Was nun schon laichen sollte, ist unser Sky Fan und die
linke Seite des Hauses. Was wir also tun werden, ist, dass
wir eine neue Welt erschaffen werden. Und wir werden tun,
was wir tun werden, ist tatsächlich in Minecraft zu gehen, eine neue Welt
zu schaffen. Und wenn ich dann sehe, dass
der Sky Fan tatsächlich besaß, und dann auch das
heruntergekommene Haus. Mal sehen, ob es funktioniert. Sehr wichtig zu beachten, dass
Sie auf dieser Welt
experimentelle Einstellungen nutzen werden. Nachdem Sie
Ihre benutzerdefinierten Strukturen hinzugefügt haben, ist
es genau das, was es ist. Du kannst das nicht so einfach
loswerden. Es gibt, ich denke, es gibt einen Mod , den du vielleicht hinzufügen kannst oder im Grunde genommen um
diesen als Mixed in zu bekommen, aber du
musst dich einfach damit auseinandersetzen. Klicken Sie einfach auf Fortfahren und
lassen Sie die Welt generieren. Und wenn du einer
bereits existierenden Welt beitrittst ,
wird etwas sagen wie : Oh, es benutzt
experimentelle Einstellungen. Sag einfach: Ja, ich
weiß was ich mache. Betritt die Welt und
es wird dir völlig gut gehen. Keine Sorge, dass sie es überhaupt sind. Ordnung, also befinden wir
uns in Minecraft und normalerweise
sollten die Strukturen ziemlich weit verbreitet sein. Da sind wir los. Eigentlich gibt es bereits
1,5 des Hauses. Also lass uns einfach
hier runter gehen und du
siehst , dass es nur
ein halbes Haus ist, oder? Der eigentliche Stichsägeblock
ist also genau hier platziert. Und dann
sollte es eine andere Seite
des Hauses geben, die wir
in einem Moment reparieren werden. Aber du kannst hier auch ein paar
sehr schöne und coole
Beispiele für ein paar weitere Sachen sehen . Im Grunde genommen TreasureChest, wie Sie auch einige hinzufügen
können. Daher empfehle ich dringend, dies auch zu
überprüfen. Und dann lasst uns
tatsächlich auch den Slash suchen Sie den MC-Kurscode
nur Strukturen Chi Fan. Und dann sollten wir das auch finden
können, sagen
wir meine beiden Phi hoch. Jetzt ist es da. Okay, wir können sehen dass du gehst und wir sollten
auch
Steinbrüche sehen können , und dann sind einige
von ihnen befallene
Steinsteine und anstatt durch Smaragde ersetzt
worden zu sein. Und dann ist hier etwas
davon durch die verschiedenen ORS
ersetzt worden . Wirklich cool alles funktioniert genau so, wie man es erwarten
würde. Und jetzt
müssen wir das Haus reparieren. Wie reparieren wir das Haus? Nun, was wir tun müssen, ist wir einen bestimmten Block bekommen müssen ,
und das wird
der, dieser Block genau hier sein. Lassen Sie uns also einfach das geben,
das ist der strukturelle Block. Da gehst du. Wir
werden es einfach aufstellen und
dann mit der rechten Maustaste darauf klicken. Und was wir tun müssen, ist, dass wir den Strukturnamen bekommen
müssen. Es gibt einen MSC Course Doppelpunkt, und dies ist Run
unterstrichen unterstrichen House, Unterstrich linke Unterstrich Seite. Ich glaube, das
ist es. Lass uns laden und dann würdest du es
tatsächlich laden. Lassen Sie uns gehen, wählen wir dieses
Steuerelement C aus, um es zu kopieren, und klicken Sie dann erneut auf Laden,
um die Struktur zu laden. Und Sie können sehen, dass diese
Struktur genau hier einen Felsen in der
Breite belastet . Das ist das Getränk so blockiert. Und Sie können sehen, dass dies
das
Strukturunterstrichen-Tutorial nimmt , ein heruntergekommenes Haus neben Pool. Deshalb funktioniert es nicht
und wir
wollen das Gleiche hier tun. Gehen wir einfach ein
bisschen weiter weg. Und dann klicken wir mit der rechten Maustaste,
kopieren Sie dies und fügen Sie es ein. Und dann
machen wir eine rechte Seite, genau hier, rechts, laden. Es sollte auch geladen werden.
Lasst uns da rauskommen. Los geht's, lade das
rein. Und dann lasst uns das Gleiche noch
einmal mit den goldenen Seiten machen. Also das wird ein
Recht sein, ich unterstreibe golden. Das sind also alle unsere
verschiedenen NVT-Dateien. Lasst uns das auch einladen. Da gehst du. Und jetzt haben wir all
diese verschiedenen Blöcke. Wie du siehst,
fangen wir mit dem linken Haus an. Was wir also brauchen, ist nötig dies
natürlich auf MC-Kurs zu
ändern. Also MC natürlich, jetzt wird es sich unsere
Site-Pool-JSON-Datei ansehen. Was wir dann
hier machen werden, ist die richtige Seite. Wir
müssen das nicht unbedingt ändern, aber ich möchte dies
auch ändern . Dies ist der Zielname. Ich wähle das noch einmal aus,
kontrolliere a, kontrolliere C, um es zu kopieren. Und dann sagen wir „Fertig“. Jetzt dieser Name
hier, der Zielname muss genau hier mit dem
Namen übereinstimmen. Wenn ich also mit der rechten Maustaste darauf klicke, kannst
du sehen, dass dies
einen bestimmten Namen hat und die übereinstimmen müssen. Das ist eigentlich noch
mal überprüfe das. Ja. Das ist Steve. Ich wusste dass ich ein W
da drin hatte , weil ich mich
etwas zu früh bewege. Und los geht's, das
ist auch fertig. Was wir jetzt
tun wollen, ist, dass wir
diese MVT-Daten erneut speichern möchten. Wie machen wir das? Nun, wieder einmal, in
unserem Strukturblock gehen
wir in
den abgesicherten Modus, und wir werden
dies nur unter
dem gleichen Namen speichern , sicher. Los geht's, fertig. Und dann das Gleiche hier, gehe zum Speichern Modus abgesichert. Und dann gehe ich hier
in den abgesicherten Modus abgesichert. Wenn das also ein bisschen schnell ging, mach dir
keine Sorgen, wie ich schon sagte, nächste Vorlesung und vor allem
die Vorlesung danach, werden
wir
die Puzzle-Blöcke etwas
ausführlicher besprechen , wenn es darum Erstellen Sie tatsächlich eine
eigene benutzerdefinierte Struktur und wie Sie diese
einfach speichern können. Wenn das also ein bisschen war, bin
ich mir nicht 100% sicher, ob
alles funktioniert. Du bist, mach dir darüber keine Sorgen. Das werden wir auch
in den nächsten Vorträgen
in nur ein bisschen sehen . Aber jetzt
wurden diese
verschiedenen Strukturen gespeichert, und jetzt müssen wir
nur die NVT-Daten austauschen, die wir bereits haben, mit unseren
gerade in VT-Daten gespeicherten Daten. Wechseln wir also einfach zur Intelligenz und
sehen, wie das funktioniert. Ordnung, also
finden wir einen Verdächtigen in der Intelligenz und möchten zum
Run-Ordner zu Ihren Safes gehen. Und dann willst du in
die Welt gehen, die du gerade
geschaffen hast , wo du diese Strukturen tatsächlich
hast. sollte es einen
generierten Ordner Hier sollte es einen
generierten Ordner mit genau diesen NVT-Daten geben. Aber
genau das wollten wir. Wir werden das einfach nehmen
und wir werden es einfach bis zu den
Strukturen hier
verlagern. Und wir sagen
alles überschreiben. Und das war's. Jetzt wird das heruntergekommene
Haus
ordnungsgemäß funktionieren, denn
jetzt
wird es im Grunde nach
dem richtigen Standortpool suchen weil wir das
im linken Haus angeben mussten und es wird
auch arbeite mit
der richtigen rechten Seite. Das sollte also so
ziemlich alles sein, was wir tun müssen. Lasst uns also eine neue Welt erschaffen und mal sehen, ob das Haus
jetzt richtig spawnt. Alles klar, wir haben in
Minecraft gefunden und du kannst
sehen, da gehst du. Es gibt eigentlich zwei
von ihnen. Wie gesagt, sie sind sehr, sehr
113. (1.18.2) Benutzerdefinierte Strukturen (ein Stück): Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir eine benutzerdefinierte Struktur erstellen. Wir befinden uns bereits in Minecraft und ich habe hier bereits eine benutzerdefinierte
Struktur
erstellt. Sie können also entweder
die NVT-Datei dafür herunterladen. Ich
empfehle jedoch,
dass Sie tatsächlich Ihre eigene benutzerdefinierte Struktur erstellen. Es muss nicht groß sein, es muss nicht kompliziert
sein. Es muss definitiv
unter 48 mal 48 liegen. Ich würde sagen, du kannst das Video einfach
anhalten, deine eigene Struktur
erstellen,
und dann werden wir fortfahren. Hoffentlich haben Sie
eine Struktur aufgebaut, die so
ist, dass sie dieser oder was auch immer
ähnlich sein kann. Aber im Grunde wollen wir jetzt
den eigentlichen Strukturblock. Wenn du das nicht
hast, kannst du dir
einfach selbst geben. Gib einfach deinen eigenen Spieler hier, den Strukturblock,
diesen hier. Du siehst, da gehst du. Dies ist der Strukturblock. Und was wir
tun wollen, ist, dass wir dies ziemlich außerhalb
der gesamten Struktur
platzieren wollen. Also wollen wir
es hier platzieren
, damit alles drin
wird,
nun, im Grunde hat es
sie später gerettet und dann wollen wir
den anderen hier. Also wollen wir die in diesen
beiden Ecken und dann die anderen beiden Blöcke sollten
die anderen beiden Blöcke in die
anderen beiden Ecken gehen. Aber sie bilden im Grunde einen, bilden einen Würfel um diesen herum. In diesem Fall werde ich
das einfach hierher stellen. Da gehst du. Dann fangen
wir hier an. Der Name der Struktur
sollte MC Course Colon lauten, und ich nenne das
das Teppichunterstrich-Haus. Und ich kopiere diesen Namen. Sobald Sie also steuern
können, um alles auszuwählen, steuern Sie C, um es einzufügen. Und dann wechseln wir in den
Eckmodus und sagen Fertig, ich gehe
hierher, füge es in Kontroll-V-Corner-Modus ein. Hier drüben sitzen sie
in Hormonen, die fertig sind. Und dann unser letzter
hier, wir wollen tatsächlich in den abgesicherten Modus
gehen, diesen
einfügen und erkennen sagen, und dann sollte es
die gesamte Struktur erkennen, damit Sie sehen und
sicherstellen
können, dass alles das du willst, befindet sich in den tatsächlichen Zeilen genau hier
und alles sieht gut aus. Was wir jetzt tun können,
ist, dass wir sicher sagen können. Jetzt wurde die Datei, die NVT-Datei,
tatsächlich gespeichert. So
einfach ist das für eine Weile, eine einzelne Stückstruktur,
die in diesem Fall gespeichert werden muss, natürlich
eine einzelne Stückstruktur,
die in diesem Fall gespeichert werden muss,
um sie zu bauen. Das ist natürlich eine
ganz andere Sache. Wenn es um
die Puzzle-Blöcke geht, werden wir
das in der nächsten Vorlesung
sehen. Aber im Moment
wechseln wir zurück zu IntelliJ. Und wir werden
uns ansehen, was wir im Grunde
sehen können. In der Intelligenz gehen
wir also in den
R1-Ordner, speichert. Das war in der
Welt der Strukturen , von der ich glaube, dass
es das Kabinenhaus gibt und wir werden
das einfach über die Kontrolle kopieren C. Und dann werde ich
es in meine Strukturen einfügen. Folgen Sie genau hier.
Treibhaus NVT sie vor, das ist jetzt meine Gewohnheit. Wie ist das, was ich gebaut habe? Und jetzt müssen wir natürlich
ein paar Sachen hinzufügen , die
wir zuvor gemacht haben. Was wir jetzt
tun werden, ist, dass wir einfach den Ursprungsordner mit
all den verschiedenen Jason
Final CR
öffnen , genau wie die Steuer. Und jetzt ist die
Idee im Grunde genommen, dass, sobald Sie
dies durchgemacht haben, der Grund ist, warum ich in der letzten Vorlesung
gesagt habe,
sobald Sie es
durchgemacht haben, ist das
Hinzufügen neuer Strukturen unglaublich einfach. Denn was wir tun
werden, ist, dass
wir das einzige JSON-Haus nehmen werden. Sie werden diese
angrenzende einzige Struktur erstellen. In diesem Fall nehmen
wir einfach jede
dieser Dateien und duplizieren sie
einfach. Also ziehen wir
es in denselben Ordner
, in dem es die Kontrolle über die Galle
hält. Das wird es also duplizieren. Wir nennen diese
Firma Underscore House. Und ich wähle hier den
ganzen Namen aus und
kontrolliere C, um ihn zu kopieren, weil
wir diesen ein
paar Mal mit
den anderen JSON-Dateien verwenden werden . Und diese Biome machen
eigentlich total Spaß, also werden wir die behalten. Dies ist natürlich wieder
nur die JSON-Datei, die
angibt, in welchen Biomen unsere benutzerdefinierte Struktur spawnen
kann. Und er hat die
Strukturfunktion konfiguriert. Wir werden
das auch kopieren. Und dann noch einmal, kopiere einfach den Namen hier
und füge ihn ein. Hier möchten wir diesen Namen ändern um Unterstriche
House, Store Pool abzudecken. Das werden wir in nur einem Moment schaffen
. Und dann ist dieses natürlich, das
Halbbau-Carbon-Haus Jason, auf
das es genau hier hinweist. Also vielleicht wollen wir, was
wir
eigentlich nicht wollen, keine Monster hier. Also lasst uns das einfach machen. Wir werden nur
eine Kreatur spawnen lassen,
vielleicht einen Papagei. Das sollte insgesamt in Ordnung sein, der Rest hier ist in Ordnung. Wir brauchen in diesem Fall keine
Prozessorliste,
ich möchte nicht, dass irgendetwas nach dem Zufallsprinzip ersetzt
wird. könntest du natürlich
immer noch tun. Wir haben das gesehen,
die letzte Vorlesung, die Prozessliste war ziemlich
cool, aber wir wollen das nicht. Und dann haben wir
noch einmal ein
strukturiertes Set auch das
Unterstrich-Haus abdecken. Hier verweist es auf das
Carbon Underscore House und sehr wichtig, das ist unglaublich
wichtig, um
die Platzierung hier
im Salt einzigartig zu machen . Es muss einmalig sein. Und dann ändern
wir auch den Abstand ein wenig. Wir werden nicht wieder zu
verrücktes Jahr werden, 166 sind immer noch sehr, sehr klein. Dies sollte auf jeden Fall höher
sein, wenn Sie tatsächlich
etwas in das Spiel implementieren. Und natürlich haben Sie
gesehen, wie die allgemeine Distanz auch
für die vorherige
Struktur war . In der anderen letzten Sache, die wir brauchen,
sind die Template-Pools. Wir kriegen den gesamten
heruntergekommenen Hausordner hier. Wir werden das umbenennen, um zu
bewältigen und zu Hause. Und dann öffne ich sowohl den Site-Pool
als auch den Store-Pool. Sie fangen hier an, Schüler, wir können tatsächlich löschen,
das ist sogar noch besser. Also werden wir einfach ja
machen, es löschen. Und dann der Lagerpool hier, um sicherzustellen, dass wir
dieses
Start-Pool-Haus hier haben . Und dann werden wir hier
nur sagen statt des
heruntergekommenen Hauses, das natürlich auf die NVT-Datei
hinweist. Wir werden es auf
die NVT-Akte des Common House verweisen. Das ist es. Jetzt wirst du
sagen, dass es nicht alles sein kann. Das ist eigentlich
alles, was wir brauchen. 1234 JSON-Dateien und unsere NVT-Dateidateien und
insgesamt eine davon,
je nachdem, wie
kompliziert Ihr Build ist, können ziemlich lange dauern, um die NVT-Datei
tatsächlich zu speichern, aber das ist ziemlich viel
alles, was du tun musst. Jetzt können Sie hier natürlich noch ein paar
Dinge ändern, direkt in diesen Jason-Dateien, ein paar verschiedene
Elemente dort
konfigurieren. Aber insgesamt ist das so
ziemlich alles, was Sie brauchen. Vollendung willen werden
wir also eine neue Welt
erschaffen,
reingehen und sehen, ob wir unser Carbon-Haus
finden können. Sie sind sehr
interessanterweise genau hier, ich habe tatsächlich einen
Pfeil genau hier.
114. (1.18.2) Benutzerdefinierte Strukturen (Schilder): Okay, willkommen zurück
zum Fabric-Kurs für 100
Tausend in dieser Vorlesung, wir werden
eine Puzzle-Struktur erstellen. Du siehst, dass ich diesen Lex
schon genau
hier
vorbereitet habe. Und lasst uns das tatsächlich von Grund auf schaffen
. Also habe ich die
Struktur schon hier gebaut. Und was wir tun werden,
ist, dass wir 1,5 sparen. So ziemlich mit dem, mit der Trennung hier. Einmal NVT-Datei und dann der andere Teil
in einer anderen NVT-Datei. Und was ich dann
tun werde, ist, dass ich eine drei verschiedene Varianz
mache. Einer mit Eisen genau hier, eins mit Smaragden und Diamanten mit
einer Breite. In der Welt kann diese
Speicherplattform
spawnen, wenn Oracle auf der einen Seite kommt, und dann
wird die andere Seite nach dem Zufallsprinzip bestimmt. also zuerst tun werden, Was wir also zuerst tun werden, ist, dass wir die strukturellen Blöcke
brauchen. Also werden wir noch einmal
tun, dass wir uns diesen Block einfach geben werden . Also sagen wir einfach Give und suchen
dann genau hier nach dem
Strukturblock. Wir werden auch den Puzzleblock brauchen
. Also lasst uns das einfach sofort
einem Selbst geben ,
damit wir es haben. Und was wir dann
tun werden, ist, dass wir zuerst die
Hauptstruktur hier reinbringen werden. Dieser Kurs
sollte genau hier sein. Ich denke, das
sollte in Ordnung sein. Und dann brauchen wir
natürlich auch ganz oben,
lasst uns sicherstellen, dass
wir hoch genug sind. Das sollte in Ordnung sein. Und dann noch eins oder vor
ihnen, das ist okay. Und dann musst
du hier drüben unter einem sein. Also genau da. Und dann noch einmal, ging
aber den ganzen Weg
durch die gleiche Höhe hoch. Ich glaube, das sollte in Ordnung sein. Jetzt war das natürlich
genau hier, los geht's. Das sollte okay sein. Aber wir werden es
in nur einer Sekunde sehen, dann gehen wir hier rein,
gehen in den Eckmodus, und das wird MC-Kurse-Doppelpunkt
sein. Nennen wir das die Storage
Underscore-Plattform. Da gehst du. Und ich werde es tun, es ist wie
alles mit Control a, Control C um es zu kopieren, fertig. Und wir werden
mit dieser
Fernbedienung V gehen ,
um den Namen
in Control V einzufügen , um
den Neyman einzufügen und natürlich auch den Eckmodus zu
ändern. Sehr wichtig. Und
dann gehen
wir genau hier in den abgesicherten Modus, fügen den Namen ein und dann sagen
wir „Erkennen“. Und da sind wir los. Wir haben also die gesamte
Struktur hier drin, also stimmt das genau. Was wir jetzt auch
aufstellen wollen, ist der Stichsägeblock. Wie funktionieren Puzzle-Blöcke? Nun, die allgemeine Idee ist, dass der Pfeil zeigt. Im Grunde wollen wir also, dass zwei Pfeile immer aufeinander zeigen. Was wir also
tun werden, ist, dass wir genau hier die Mitte finden werden. Lasst uns einfach das holen. Und dann zeigt der Pfeil
in diese Richtung. Und dann wollen wir auch, dass
der andere Stichsägeblock in die gleiche Richtung zeigt. Sie sehen also, dass sie
sich bilden, sie bilden diese Art von Linie und die Pfeile zeigen aufeinander. So
wird der andere platziert. Deshalb habe ich
es bereits direkt nebeneinander gebaut . Machen wir
das schnell richtig. Da gehst du. Sie können sehen, dass sich diese innerhalb der ersten
Struktur befindet, oder? Dieser befindet sich also innerhalb
dieser Struktur und die andere wird sich innerhalb der zweiten Struktur befinden, was wir in einer Minute
tun werden. Was das bedeutet, ist, dass dieser
hier einen Namen definiert hat. Dies wird also zum Beispiel nur eine
MC-Kurs-Doppelpunkt-Unterstrichungsplattform sein . Wählen wir dies aus und kopieren Sie
diesen Namen hier. Dies ist
das einzige, was wir auf
dem sekundären Stichsägeblock tun müssen . Auf dem primären Stichsäge-Block möchten
wir dies unter
den Zielnamen und
dann den Zielpool setzen . Und das ist unglaublich
wichtig und wir wollen MC-Kurs machen. Und dann
werden das diese sein, sagen
wir, Speicherunterstrichen-Plattform-Slash-Site-Unterstrichen-Pool . Dies zeigt also genau hier auf die angrenzende Datei in unseren Datenordnern. Wenn ich es einfach schnell öffne, kannst
du das
für das heruntergekommene Haus sehen, diesen Seitenpool genau hier. Das ist das. Natürlich haben wir
die Speicherplattform
noch nicht erstellt , aber das ist die Idee. Wir haben also diese Side
Pool-JSON-Datei, die verschiedene Varianten
dieser bestimmten Site definiert . Und tatsächlich lege die Ironie hier hin, aber das wird gut. Ich werde nur
den Eisen-Spawn haben und dann wird
das die Seitenplattform sein. Ich meine, es spielt keine
Rolle, wie du es machst. Und ja, also im Grunde
die Site-Plattform, dieser Name und dieser
Name müssen übereinstimmen. Das ist die eine Sache. Und
dann für die wichtigsten, also ist dies der primäre. Dies ist die Struktur
, die
spawnen wird , wenn Sie
die Struktur,
die Speicherplattform,
diese hier verwenden , die die primäre sein wird,
in der wir diesen Seitenpool haben. Das ist also die JSON-Datei. Dies ist nur der Name
des anderen geborenen Puzzles. Und was
wir hier auch definieren können ist, in was sich der
Stichsägeblock verwandelt. Wir werden sie einfach löschen und
sie in Luft verwandeln lassen. Theoretisch könnte man dies aber
auch ändern. Was wir tun werden, ist, dass
wir auch
den zweiten hier bekommen , nur
damit wir es haben. Das wäre also genau hier. Das sollte sein, ich denke nein, ich denke, das sollte in Ordnung sein. Dann sollten wir jemals
alles drin haben. Und dann hier drüben werde ich
auch den
Strukturblock hier runter stellen. Und dann der andere
Strukturblock, um deine zu schreiben
, denke ich, das sollte es sein. Und das wird jetzt
das sein, was wir das nennen werden, nicht
die Lageplanform die
Oracle-Einkommens-Unterstrich-Speicherunterstrichen-Plattform sein wird . Gehe, ich wähle es aus,
drücke Control C, um es zu kopieren, Warner-Modus, steuere V zum Einfügen. Sie haben keinen Eckmodus gemacht.
Und dann auch hier drüben sitzen
sie im Modus und dann wird
dieser natürlich wieder gespeichert, sie sitzen drin, sagen erkennen, und wir sollten
das vor ihrer Zeit haben. Jetzt haben wir die orale
Kalziumspeicherplattform
, zu der auch dieser
Stichsägeblock gehört. Was
in diesem Fall sehr wichtig ist. Was wir also tun werden,
ist, dass
die Speicherplattform das gespeichert
hätte. Wir nehmen die
Oracle-Plattform, speichern dies, und dann
werde ich dies ändern, um
eine andere Art von Bestellung zu sein , und wir werden auch ein anderes
Beispiel dafür speichern. Okay, also habe ich
alles in Smaragde geändert, in diesem Fall werde
ich jetzt den Namen ändern. Wir werden nur den Namen
in Emerald-Speicherplattform ändern . Ich wähle alles aus. Drücken Sie STRG C, um es zu kopieren. Und wir werden hier
alle Namen ändern. Das ist sehr wichtig. Es gibt also noch einmal das Steuerelement a2 gesammelt oder V steuern
, um den neuen Namen einzufügen. Und das sollte hier ziemlich
selbsterklärend sein. Ich mache das Gleiche
hier und dann werden
wir es noch einmal erkennen. Und du wirst
sehen, da gehst du. Dies ist die
Smaragd-Speicherplattform in diesem Fall.
Stellen Sie sicher, dass Sie auch dann
auswählen, wann Sie
neue Blöcke anlegen, die Sie sind, nicht außerhalb
der Grenzen liegen. Und dann werden wir das auch
retten. Jetzt haben wir zwei
verschiedene Varianten. Nur aus Gründen des Arguments werden
wir
eine andere Variante machen. Machen wir auch die
Diamantvariante. Machen wir das einfach schnell. Ich habe es mit einem Diamanten gespürt. Lassen Sie uns also noch einmal die Namen hier
ändern. Das wird also die
Diamant-Speicherplattform sein. Steuern Sie erneut
a, um es auszuwählen, steuern Sie C, um es zu kopieren. Und dann
machen wir das Gleiche für alle verschiedenen
Ecken genau hier. Da gehst du. Und dann auch das hier. Da gehst du. Und dann lasst uns noch einmal
hierher gehen, um es zu erkennen. Und wir haben es
so erfolgreich erkannt, und jetzt können wir es auch speichern. Da gehst du. Und jetzt haben wir drei
verschiedene Varianten
dieses Teils der
Plattform und im Grunde
eine Hauptplattform hier gespeichert verschiedene Varianten
dieses Teils der . Diese sind im Grunde
durch diesen
Stichsägeblock genau hier verbunden . Aber das ist die
ganze Idee hier. Wechseln wir zu bis zu einem DJ und sehen, was wir zuerst sehen können Natürlich müssen wir die NVT-Daten
dafür
bekommen , um
den R1-Ordner in den Safes einzugeben. Auf die gleiche Weise speicherst
du das im Grunde und das werden
alle vier sein. Wir werden
diese Speicherplattform
und die drei
verschiedenen dort benötigen . Kopieren wir sie in unsere Strukturen, folgen Sie genau hier. Und was
wir dann noch einmal tun werden, wir werden nur noch einmal
JSON-Dateien kopieren . Und du wirst
das noch einmal sehen, selbst mit den Puzzle-Blöcken, es ist nicht so verrückt. Wir werden diese
kopieren, die
die Speicherunterstrichen-Plattform sein wird . Dies wird der Name der
allgemeinen Struktur selbst sein allgemeinen Struktur selbst und der Mond wird es tun, sobald
Sie ihn konfigurieren können. Strukturfunktion,
auch Speicherplattform, aber wir
müssen nur den Namen
hier in Speicherplattform ändern . Und der Name der
Biome hier war nur diese JSON-Datei genau
hier, Plattform. Die gleiche Liste in
der Struktur, gesetzt. Die Struktur, die zum
konfigurierten
Struktur-Feature zurückschreckt . Und dann
wird dieser einfach so etwas
sein. Also noch einmal, ein Salz
und der Abstand, ich meine, wir können es so ziemlich einfach so
behalten, wie es ist, nur ein bisschen ändern. Da gehst du. Und
dann geht es zum Vorlagenhaus,
den Template-Pools. Also werden wir hier tatsächlich das heruntergekommene Haus
benutzen. Ich
möchte dies auf die STORD-Plattform umstellen und wir haben die
beiden Jason-Fancier, den Site-Pool und
den Store-Pool. Beginnen wir hier mit dem
historischen Pool, indem wir diesen auf unsere
Speicherplattform, Star Pool Nummer eins und dann auf
die Speicherplattform umstellen. Dies wird das wichtigste Zitat in der
VT-Datei sein, auf das es verweist. Das wird also auf
diese NVT-Datei genau hier hinweisen. Und dann
wird der Seitenpool interessant sein. Dies wird
natürlich wieder einmal sein, den Namen
hier zu
ändern und die Wunde ist, den Namen
hier zu
ändern und die Wunde ist anstatt auf
heruntergekommenes Haus rechts
zu zeigen, wir wollten tatsächlich auf den
zum Beispiel Diamanten zeigen
unterstreichen die Speicherplattform. Ja. Und dann
wollen wir auch die anderen beiden, die wir
hier löschen werden. Wir werden nur
die Kommentare aus
Gründen des Arguments löschen . Ich mache das und kopiere es
dann einfach zweimal. Und wir können das
Gewicht auch hier ändern. Nehmen wir zum
Beispiel an, wir haben eine Chance
von dreiunddreißig Prozent , einen von
ihnen zu spawnen, sagen wir einfach. Und dann wird dieser nicht
der richtige Zeitpunkt sein,
aber der Artikel von Orange County
unterstreicht die Speicherplattform
und dann wird dies die Emerald
Smaragd-Speicherplattform
sein. Diese Speicherorte verweisen
hier erneut auf die NVT-Dateien. Und es wird
eine dieser NVT-Dateien benötigen
und diese hier
mit unterschiedlichen Gewichten generieren. Wenn wir die
Gewichte aller drei haben, dann
wird es so ziemlich eins über drei sein. Und wir könnten auch sagen,
vielleicht weißt du was, eigentlich ist das
doppelt so wahrscheinlich. Dies ist vielleicht ein Fünf-Jahr. Dann wird das 50% der
Zeit steigen. Dies wird 20% der Zeit betragen. In diesen 10% der Zeit es
im Grunde nur die Gewichte, wie es Spawns ist. Und das ist buchstäblich
alles, was Sie tun müssen. Wir sind bereits
damit fertig, das einzurichten. Wenn wir
die JSON-Dateien bereits vorbereitet haben ,
nachdem Sie sie kopiert haben, sind
Sie fertig, als wäre es
sehr, sehr einfach. Und ja, natürlich, wenn
Sie verrücktere Ideen haben, wenn Sie sogar mehrere,
mehrere Puzzle-Blöcke
und ähnliches
erweitert haben, dann wird es natürlich immer komplizierter. Aber sagen wir einen guten Start. Und ich empfehle dringend,
offen für Experimente zu sein, besonders und einfach Sachen
auszuprobieren und zu sehen, was man sich
im Grunde einfallen lässt. zum letzten Mal
für die Strukturen Lassen Sie uns zum letzten Mal
für die Strukturen in Minecraft gehen, eine neue Welt
erschaffen
und sehen, ob unsere neue
Speicherplattform Spots oder eine Fantasie Minecraft und ich hier
schon etwas ausspionieren, und dies ist wahrscheinlich das
schlimmste Szenario. Man sieht, dass nur
die Hälfte des Sports
sehr interessant ist. Es wird also wahrscheinlich irgendwo einen Tippfehler geben, was sehr seltsam ist, aber wir werden eine Sekunde warten
sehen. Lass uns einfach das Problem
sehr witzig sein, denn ich habe gerade einmal die Namen
des heruntergekommenen Hauses geändert. So können Sie
im heruntergekommenen Haus sehen, dass ich die eigentlichen Dinge
auf die Speicherplattform geändert habe. Und die Lagerplattform hat dieses Ding im
heruntergekommenen Haus. Das war also nicht ganz das, was
ich hier im Sinn hatte. Machen wir es einfach so. Lassen Sie uns das einfach kopieren. Und dann werden wir tun, dass
dieser gerade gelöscht wird. Also werden wir
den Namen davon abreißen, ist dieser Name zurück
ins heruntergekommene Haus. Und dann wird dies
die Lagerunterstrichenanlage sein . Aber jetzt
sollte das gut funktionieren. Also lass uns sehen. Dies ist die Seite der
Speicherplattform Start Pool Storage Platform
vorerst, es sollte uns gut gehen. Das Problem hier war also
, dass ich versehentlich die heruntergekommenen
JSON-Dateien
anstelle der Speicherplattform
geändert habe. Jason-Akten können jederzeit passieren, also keine Sorgen. Aber er hat tatsächlich gesehen, dass man es
manchmal nicht
wirklich finden kann. Also müsstest du dann den Satz
durchgehen. Du siehst, du kannst tatsächlich
etwas im Terminal finden. War nichts hier. Es war nur ein Pfeil genau hier in den Akten, aber überhaupt
keine Sorgen. wir nun einen
Blick darauf, ob es sich um
Spawns richtig
handelt oder nicht. Ordnung, wenn Sie noch
einmal in Microsoft
antworten und mal sehen, weiß
ich nicht einmal, ob das in diesem eigentlichen Biom
spawnt. Lassen Sie uns also einfach
die
Speicherplattform MC Course
lokalisieren und sehen, ob das funktioniert.
N ist da, wo wir gehen. Endlich funktioniert es. Sie können also überhaupt keine
Sorgen sehen. Es kann immer passieren, dass
es irgendwo einen Tippfehler gibt. Aber insgesamt hast du gesehen, dass es
kein verrücktes Jahr war. Es war sehr, sehr
einfach zu reparieren. Mal sehen, ob ich nicht
herumfliegen kann und tatsächlich eine andere
dieser Speicherplattformen
finde, vielleicht mit etwas
anderem dann sieht
Kalzium schon so aus, als wäre
es auch ein Kalkül. Eigentlich. Und es ist in der Tat, lasst uns einfach zu einem
sehr, sehr entfernten Ort kommen. Lass uns einfach gehen,
ich weiß nicht, 20 K. Und mal sehen, ob ich einen anderen
finden kann. Suchen wir einfach seine
Schwertplattform und sehen, ob diese etwas anderes hat
als das, was wir berechnen. Natürlich nicht, denn
das wäre zu einfach. Lass uns das letzte Mal P1 sehen und mal sehen, vielleicht
können wir etwas finden. Gehen wir zu negativ 20, K zu K, das ist okay. Und dann lasst uns den
MC-Kurs in Richtung
Plattform suchen noch einmal. Mal sehen, ob
das funktionieren wird. Ich glaube, wir sind tatsächlich darunter. Da ist es. Und wir haben tatsächlich
einen Unterschied gefunden. Hier können wir also auch den
mit den Smaragden sehen. Also funktioniert alles so wie man es erwarten würde. Und echt verdammt genial. Also funktioniert alles
gut und ja, so einfach ist es,
einige Puzzle-Strukturen zu Minecraft hinzuzufügen. Aber das wäre so ziemlich genau das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Alle JSON-Dateien in
den NVT-Schriften stehen
Ihnen natürlich auch im GitHub-Repository zum Download bereit, einer Person genauso gut. Aber sonst sehe ich
dich in der nächsten Vorlesung.
115. (1.18.2) Benutzerdefinierte 3D-Armor: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
ein benutzerdefiniertes
3D-Rüstungsmodell hinzufügen . Wir werden
unsere
Oracle-come-Rüstung in ein benutzerdefiniertes
3D-Rüstungsmodell verwandeln . Und dafür werden wir
wieder eine Blockbank benutzen. Wie Sie sehen können, habe ich
die
Orakel-com-Rüstung
bereits hier vorbereitet . Aber das ist eigentlich
ziemlich einfach. Also werden wir noch einmal
Echo Lippe benutzen. Und so
funktioniert das, wenn Sie ein neues Geckos
Live-Animationsmodell erstellen, können
wir hier einfach eine
Testrüstung machen. Was Sie dann tun können,
ist, dass Sie unter Einstellungen für das Gecko Lip Modell
Datei gehen können . Du kannst das einfach in
Rüstung verwandeln und dann wird es den
Minecraft-Spieler hier
generieren. Du siehst,
dass du das nicht anfasst. Im Grunde sollten diese verschiedenen
Blöcke also nicht berührt werden. Dann alles andere, was
du
unter dem Rüstungskopf, dem
Rüstungskörper und so
weiter und so weiter hinzufügen unter dem Rüstungskopf, willst. Klicken Sie zum Beispiel auf diesen Würfel hinzufügen und dann können
Sie Ihre
benutzerdefinierte Rüstung direkt hier hinzufügen, Z, einfach vergrößern. Und aber du warst im Grunde
wie deine Rüstung zu sehen. Du kannst es duplizieren,
Control D. Los geht's. Und dann kannst du einfach Sachen
hinzufügen und du kannst es
natürlich so gestalten, wie du möchtest. Was ich nun gefunden habe, ist, dass es eigentlich ziemlich schwierig ist,
die Rüstung herzustellen. Es ist nicht so einfach, es
gut aussehen zu lassen. Das ist also, es
sieht eigentlich nicht so gut aus, besonders wenn man
zum Beispiel
den Arm hier aus Gründen des
Arguments nimmt den Arm hier aus Gründen des , wir können ihn
drehen. Man kann tatsächlich sehen, ob ich es ein bisschen
drehe, dass es
hier tatsächlich fehlt und solche Sachen. Also ist es nicht, es ist nicht so interessant,
es ist nicht so verrückt. Es ist nur ein Beispiel für
ein Rüstungsteil. Und was Sie hier tun könnten,
ist auch folgendes. Wenn Sie alles erstellt
haben, können Sie diese Textur
für den Moment einfach löschen. Und dann hast du vielleicht so
etwas. Was Sie tun können, ist, dass Sie Strg a drücken
können, und dann wird
jedes Stück
von dem anderen Ding ausgewählt , das Sie hier haben. Und wir können es dann tun, dass Sie
daraus eine neue Textur machen können . Also behalten wir diese
Textur einfach bei und dann kannst du sehen dass sie im Grunde
alles auf dieser Textur ersetzt. Wenn du diese Textur speicherst, mache
ich das einfach. Du hast hier schon
ein paar Sachen vorbereitet. Schlimmer als das, was ich tun kann,
ist, dass ich in der Lage sein werde, naja, so
sieht es aus, oder? Wenn ich es einfach öffne, kannst du
sehen, dass es dir im Grunde genommen
eine These der Rüstung gibt eine These der Rüstung , in der du das tatsächlich zeichnen
willst. Was wir also tun können,
ist, dies
hier direkt zur Textur hinzuzufügen .
Wir werden es einfach öffnen. Was Sie dann tun können,
ist, dass wir
hier reingehen und dann einfach ein paar Sachen
ändern können . Zum Beispiel glaube
ich hier, dass es wie der Hinterkopf
oder so ähnlich
sein sollte . Wir können einfach alles
darüber zeichnen und es dann speichern. Und wenn ich
wieder in die Blockbank gehe, klicke mit der rechten Maustaste auf Aktualisieren, dann kannst du sehen, dass sich das geändert hat und am
Hinterkopf siehst du dort, und ich werde diese Farbe haben, sie
färben und die
Textur erstellen
ziemlich schwierig, als wäre es eigentlich nicht
so einfach zu machen. Sie können auch auf
die einzelnen Phasen klicken und sehen, wo das ist. Sie können also sehen, dass
die Bar oben auf dem Kopf tatsächlich das
ist. Dann kann ich sagen: Okay,
das hier, glaube
ich, oder irre mich nicht. Also kann ich sagen, oh, mach das blau und speichere es
dann wieder auf. Noch einmal, geh hier rein, aktualisiere. Und du siehst jetzt
oben auf dem Kopf blau. Das ist also definitiv eine Sache, die eine ganze Weile dauern wird
. Ich möchte dir nur zeigen, wie
du grundsätzlich hinzufügen kannst. Also habe ich die Textur bereits
vorbereitet. Nehmen wir einfach die
Orakel-Ergebnistextur genau hier. Und dann habe ich auch dieses Schwarz
hier hinzugefügt , denn was
ich tun wollte, ist auf dem Kopf und so, ich wollte diese nach
unten bewegen , damit es
ein bisschen einfacher sehe im Grunde die
Unterscheidung zwischen meiner eigentlichen Rüstung und dem Spieler. Also kann ich das auch
hier machen. Da gehst du. Und dann auch das andere Bein. Also im Grunde genommen alle Berühren Sie nicht einmal. Ich bin gerade hier zum schwarzen
Rüstungsstück gegangen, nur damit ich dort
grundsätzlich
einen geringeren Kontrast haben kann,
damit ich sehen kann, okay, während das,
was mache ich hier? Dieses
Block-Pinch-Modell wird natürlich auch zum Download verfügbar sein. Und was Sie dann tun, ist, dass
Sie einfach zu Dateiexport,
Export, Gecko-Lippenmodell gehen können. Dies wird ein
Geo-Modell nicht wieder sein, ich habe das natürlich schon, also werden
wir das einfach ersetzen. Und was Sie
dann tun können, ist
genau hier in den Stoff zu gehen und dann in einem intelligenten
fortzufahren, lasst uns weitermachen und das
tatsächlich hinzufügen. Was werden wir
brauchen? Was wir brauchen
werden drei verschiedene Dinge. Einer von ihnen ist ein benutzerdefiniertes Element. Im benutzerdefinierten Artikelpaket werden
wir das
Konto zum Rüstungsgegenstand bringen. Und das wird das tun. Wir werden
das Mod-Rüstungselement erweitern, tatsächlich dass es
die gleiche Funktionalität hat. Wir werden einen
Konstruktor erstellen, der super übereinstimmt. Und dann werden wir es auch tun, was sehr wichtig ist,
ist,
dass es tatsächlich ein Problem
im OriC-Ergebnis-Rüstungsgegenstand
oder im mehr
Rüstungsgegenstand gab. In dieser hat
Rüstungsmethode genau hier, normalerweise habe ich die richtige Methode genau hier. Sie können sehen, dass wir
im Grunde nur prüfen wir dies
auf den Rüstungsgegenstand werfen, ob es
sich hier tatsächlich um einen Rüstungsgegenstand handelt oder nicht Der Grund
dafür ist anders, wenn Sie ein Elektron haben und der Rest
der Rüstungen füllte sich, und einer von ihnen ist
der mehr Rüstungsgegenstand, dann wird das Spiel tatsächlich
abstürzen, weil man das Elektron nicht
auf ein Rüstungsgegenstand werfen
kann. Denken Sie also
daran, aber das ist ziemlich alles, was wir hier tun
müssen. Und für den Artikel der
Calcium-Rüstung wollen wir
eigentlich ein paar Dinge. Also wollten wir tatsächlich auch
die von mir
animierbaren Implemente hinzufügen . den Mauszeiger über diese
Implementierungsmethoden, um die Register-Controller-Methode sowie die GET
Factory-Methode zu implementieren. Sie können es aber auch tun, dass
Sie zweimal die Umschalttaste drücken
und sich den Gegenstand der
Kartoffelrüstung anschauen können . Dies ist ein Beispiel.
Das ist also auch großartig. Theoretisch kann man grundsätzlich
einfach alles überschreiben. Der
Kartoffel-Rüstungsgegenstand ist also so ziemlich das Beispiel
von Gecko-Lippe hier. kannst du dir also auch mal ansehen. Wir werden einfach
weitermachen. Also brauchen wir natürlich für die Ich animiere die ganze
Animationsfabrik. Dies ist etwas
, das wir auch bei
den benutzerdefinierten Entitäten gesehen haben . Wir werden die Fabrik im Grunde hier
zurückgeben. Und dann werden wir für das Prädikat
so ziemlich genau das tun, was Sie theoretisch tun können
, wie ich schon sagte,
nehmen Sie buchstäblich diese ganze Methode hier, das Prädikat, denn das ist das
was wir brauchen werden. Und wir können es einfach
übernehmen und kopieren weil es so ziemlich immer dasselbe sein
wird. Das einzige, was wir
ändern werden , die Animation hier wird in diesem Fall einfach
als untätig bezeichnet. Und dann
wollen wir hier unten tatsächlich, dass das ein
bisschen anders wird. Also gibt es nicht, ich bin Register. Das werden
Mod-Items sein, Startkabinen, und dann
werden wir einfach
immer mehr Gegenstände durchgehen , Leggings
beginnen. Wir werden uns
dafür entscheiden, je mehr Gegenstände gerade gespielt werden, und
dann nicht zuletzt
starten Helme, desto mehr Gegenstände beginnen
Helme sie vor. Und das sollte so ziemlich alles
sein, was wir hier brauchen. Dann werden
wir das
Prädikat, das hier ziemlich
selbsterklärend ist, natürlich hier in
der Register-Methode verwenden . Okay,
benennen wir das einfach in data um. Da gehst du. Das sollte es sein.
Der gesamte Code steht Ihnen natürlich auch
im GitHub-Repository
zur Verfügung, eine Einzelperson,
aber das sollte so ziemlich alles
sein, was wir brauchen. Sie haben auch hier ein paar nette
Kommentare, was sehr nützlich ist. Das ist auch ziemlich cool, gleich nachdem wir diesen Rüstungsgegenstand hinzugefügt
haben, müssen
wir jetzt alle
vier Rüstungsteile dazu ändern,
oder es kann zu einem Rüstungsgegenstand werden , das hier eigentlich sehr
notwendig ist. Und dann können wir
das im Modell und im Renderer verwenden. Diese werden also in mein Entitäts-Client-Paket direkt hier unter einem neuen
Paket namens armor fließen. Sie könnten sie auch an eine
beliebige Stelle im Artikel,
Client oder was auch immer verschieben . Sie müssen also nicht hierher gehen, aber ich werde sie einfach dorthin
bringen. Und es wird den
Oracle-Come-Arm oder das Modell geben. Und der andere wird der Render
des
Oracle-Ergebnis-Renders sein , Sind sie her? Das Modal wird das animierte reale Modell des
Typs oder eines Kalziumpanzerungsgegenstandes erweitern . Und dann
werden wir einfach den Mauszeiger
darüber bewegen , die Methoden implementieren. werden also die drei Methoden
sein
, die Identifikatoren zurückgeben. Jetzt habe ich das schon vorbereitet. Ich werde das einfach
kopieren, sollte
aber ziemlich
selbsterklärend sein. Dies zeigt auf die
Modell-JSON-Datei, die wir aus der Block Bench exportiert haben. Dies ist nur unsere Texturdatei
und das sind die Animationen. Und ich habe die Animationen vorbereitet. Es ist nur fast eine
leere Jason-Akte. Nicht ganz, aber es ist
ziemlich selbsterklärend. Fügen wir einfach
die JSON-Dateien hier hinzu. Die Animation ist
natürlich auch verfügbar. Und das habe ich so ziemlich nur
für all die
verschiedenen Texturen benutzt , für all die verschiedenen Rüstungen. Wenn Ihnen keine bestimmten Animationen zugeordnet sind. Und du kannst einfach so ziemlich
diese Animation machen ,
in der nichts drin ist. Und was wir dann
tun werden, ist, dass wir
die Rüstung GO nehmen und
das auch hier rein kriegen. Natürlich das tatsächliche
Modell in diesem Fall. Und dann sollte die Textur, die Sie
sehen können ,
unter Texturen,
Modellrüstung oder
Kalzium-Rüstungsstruktur gehen . Es wird also einen
neuen Ordner geben,
Modelle und dann ein neues
Verzeichnis namens armor. Und dann lasst uns auch die
Textur überholen. Das wird genau hier sein. Da gehst du. Natürlich nur zu
Testzwecken oder Einkommen Armor Texture.
Das ist richtig. Da gehst du.
Das sollte also in Ordnung sein. Und dann ist das Modell fertig. Wir können dann fortfahren,
Sachen zum Renderer hinzuzufügen. Renderer wird
den Geo-Renderer
erneut erweitern den Geo-Renderer , vom Typ
zähle sie bereits Rüstungselement. Wir werden einfach den
Mauszeiger darüber bewegen und einen Konstruktor erstellen, der super
passt. Und wir wollen eigentlich nicht, dass hier und
hier
etwas reinkommt , wollen wir das neue
Oracle Cloud Armor-Modell. Das ist ziemlich selbsterklärend. Und was wir dann
tun werden, ist, dass wir das setzen wollen, also wollen wir den Kopfknochen, den
Partyknochen
usw. auf die Namen setzen . Und diese Namen werden
genau hier die Namen sein. Wir können sehen, dass dies der
Rüstungskopf ist. Wir setzen den
Kopfknochen auf Rüstungskopf. Dies muss der Fall sein. Wir können uns auch noch einmal einen
Blick auf den Kartoffel-Renderer werfen. Ich glaube, wenn ich mir
das tatsächlich ansehe, der Renderer genau hier, sehen
Sie, dass sie auch dasselbe tun. Das ist nur, du
musst das nur einstellen. Und es war sehr
interessant und ich weiß nicht warum das der Fall ist, aber du musst
den linken Beinknochen auf
die Rüstung rechtes Bein legen , den rechten
Beinknochen zur Rüstung links. Als wüsste ich nicht warum
das der Fall ist. Zumindest habe
ich das gefunden. Ich weiß nicht, warum es hier
umgeschaltet ist. Ich kann dir nicht sagen warum, aber
es ist genau das, was ich gefunden habe. Es ist sehr einfach zu beheben.
Das ist also kein Tippfehler, das ist eigentlich so, wie
man es tun muss, zumindest war es für mich. Und nachdem Sie dies
jetzt hinzugefügt haben, können wir dies tatsächlich
in unserer MC-Kurs-Client-Klasse verwenden . Also wird es gleich hier sein. Wir wollen das tun, was wir natürlich in
der
nicht initialisierten Client-Methode tun wollen, wollen
wir sagen, GU
armor renderer.org, registrieren Rüstung rendern uns mit einem neuen oder dem
Calcium-Renderer. Und dann
wollen wir alle
unsere Artikel, die wir haben, weitergeben . Noch einmal wollen wir
die Stiefel und dann Mode-Elemente weitergeben . Nicht. Das werden die Leggings sein. Und dann haben wir
Mod-Items, starte geteilt. Nein, das definitiv nicht. Es gibt
Kirschblütenzeichen und dann haben
wir mehr Gegenstände, dieses Element. Da gehst du. Und das sollte in Ordnung sein. Keine Fehler. Sollte genau hier Präsident sein. Und ich glaube, dass
alles in Betracht gezogen wird, das so ziemlich
alles sein sollte, was wir brauchen. Es gibt noch eine Sache
, die ich nur hinzufügen möchte, nur damit wir es hier haben. Fügen wir es einfach auch hinzu. Wir können Gecko
LEP dot initialize nennen. Ich bin mir nicht 100% sicher, ob dies notwendig ist
oder nicht. Es ist jedoch wahnsinnig
nur eine gute Idee , dies hinzuzufügen, damit wir
es in unserer eigenen
initialisierten Methode haben . Ich bin mir nicht 100% sicher, dass ich es getestet habe. Ob es den Mod im Grunde
bricht oder nicht, tut es nicht, wenn du ihn nicht
hinzufügst, lass uns das auch hinzufügen. Und ansonsten denke ich, dass dies so ziemlich
alles sein
sollte, was wir brauchen. Ich meine, wenn etwas nicht
funktioniert, dann kann man das natürlich auch
im Spiel
sofort sehen. Lass uns einfach Minecraft betreten
und sehen, ob es funktioniert. Räte in Minecraft. Und lass uns einfach
die Rüstung hier holen und
mal sehen, ob es funktioniert. Und in der Tat tut es das. Und natürlich erhalten wir immer noch unseren
Kunden-Rüstungseffekt genau hier. Und es sieht verdammt toll aus. Das Ding funktioniert auch, wie ich schon sagte, und lässt die Rüstung wirklich, richtig cool
aussehen. Das ist eine sehr
schwierige Sache wie
das Hinzufügen der ARMA, wie Sie gesehen haben, oder? Es sind nur ein paar Klassen, die die Dinge
ein wenig verändern. Und dann hast du die Rüstung, das Exportieren, die
JSON-Dateien und ähnliches. Es ist ziemlich
einfach, aber dann sieht es wirklich
cool aus, hat eine coole, coole Textur, ein cooles Modell, das
definitiv sehr hart
ist, aber ich meine, so einfach ist
es füge die Rüstung zu
Minecraft hinzu, oder? Das schließt diese
Vorlesung genau hier ab. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
der nächsten Vorlesung. Ja.
116. (1.18.2) Benutzerdefinierte: Oder ich begrüße zurück beim
Stoffpferd für 118. Und in diesem Vortrag werden
wir Minecraft
einen individuellen Dorfbewohner hinzufügen . Ja, das wird
jetzt ein benutzerdefinierter Dorfbewohner sein. Anstatt bereits bestehenden Dorfbewohnern nur einige Trades
hinzuzufügen , werden
wir einen
Kundendorfbewohner hinzufügen, aber das ist tatsächlich
viel einfacher, als ich im
MC-Kurspaket dachte. Wir machen ein neues
Paket namens Dorfbewohner. Anstatt dort werden
wir
eine neue Java-Klasse namens
Modus-Dorfbewohner erstellen . Jetzt wird dies
sowohl den Punkt des Interesses
als auch den Fachmann oder
den Inhalt dieser Klasse enthalten als auch den Fachmann oder , die
ich kopieren werde, aber ich werde
alles erklären, während wir weitermachen. Und natürlich steht Ihnen in
der GitHub Vergangenheit alles
zur Verfügung oder im
Einzelnen genauso gut. Sie können sehen, ob Sie einen
Interessenpunkt und einen
Dorfbewohner
haben , die natürlich miteinander
verwandt sind. Ein Punkt von Interesse
ist, wo ein Dorfbewohner seinen Beruf
vom Profi
bekommt. Dann ist es natürlich
nur der Profi. Werfen wir zunächst einen Blick auf den tatsächlichen Punkt von Interesse. Sie können sehen, was wir hier
tun,
indem Sie im Grunde einen
Point-of-Stelltyp
direkt unter der Modell-ID registrieren . Und unser Name sollte
ziemlich selbsterklärend sein. Und Sie können sehen, was wir hier
tun, ist, dass wir
diesen Accessor nennen , weil
wir sonst diese
Schnittstelle nennen müssen, diese Mischung. Sonst
wird es nicht funktionieren. Die allgemeine Idee ist jedoch, dass
wir im Grunde genommen
einen Punkt von Interesse mit dem
Namen schaffen , den wir hier erhalten. Und dann ein Block
eines bestimmten Staates. Obwohl die Idee ist, dass wenn ein Block, den wir hier
einsetzen, wenn wir diese
Register-Punkt-Methode nennen
, das Orakel kommt
Blaster und alle seine verschiedenen Zustände im Grunde
sind wird
als Point of Interest registriert. Das ist der Blastopore,
das ist die Idee. Und nachdem wir den Punkt
registriert haben, registrieren
wir den Beruf. Und Sie können hier noch
einmal mit
einem gegebenen Namen und dann
den altersspezifischen
Point-of-Interest-Typ sehen einem gegebenen Namen und dann
den altersspezifischen
Point-of-Interest-Typ , den wir genau hier und
bei
der Schaffung des
eigentlichen Berufs in den Explosionsbericht weitergeben genau hier und
bei
der Schaffung des
eigentlichen Berufs in den Explosionsbericht . Das ist also der Name, dies
ist der
Typ „Point of Interest “ jeweils zwei unveränderliche
Sätze hier. Wir können tatsächlich tun, wenn
wir die mittlere Maus machen können, hier auf die
professionelle Seite
klicken, und wir sollten das sehen
können. Dies sind also die Sammlergegenstände und die sekundären Baustellen. Ich habe sie gerade nur
dazu gebracht ,
unveränderliche Sets zu leeren ,
weil das vorerst
einfacher wird. Sie können sich immer sowohl das Dorf
oder den Beruf als auch
andere, die benutzt werden,
ansehen . Also können wir uns das hier genau
ansehen. Ich denke die Registermethode, zum Beispiel der
Landwirt genau hier. Sie können sehen, dass es Gras hat, Unkrautsamen,
Rote-Bete-Sitze ausgezeichnet, kann tatsächlich aufnehmen. Und dann gibt
es sozusagen auch ein Ackerland als Arbeitsplatz. Aber wir werden es einfach so
behalten. Ich möchte nicht, dass das
zu kompliziert ist. Sie haben immer alle Vanille-Kurse
zur Verfügung , um
einen Blick darauf zu werfen, wie diese funktionieren. Und das sollte
hoffentlich das sein , was Sie brauchen
werden. Also dann diese Setup-Boys
Methode genau hier, wir müssen
das Setup für jeden Punkt aufrufen. Wenn Sie also einen anderen Punkt haben, fügen Sie diesen auch hinzu. Füge deine Umfrage hier hinzu und dann wird
es gut. Und das muss in
Ihrem MC-Kurs
kalt sein , wenn Sie initialisiert werden, nennen
wir es einfach hier. Dies werden
die MOD-Dorfbewohner , die Jungs vor ihnen eingerichtet haben, und das sollte
so ziemlich der gesamte
Code sein, den wir brauchen. Jetzt werden wir
tatsächlich zwei weitere Dinge tun. Eine weitere Sache im Code, oder wir werden es tun, ist, dass
wir tatsächlich oder mindestens ein
oder zwei verschiedene,
verschiedene Trades
hinzufügen werden,
weil die Eigenschaften wir tatsächlich
auf die gleiche Weise hinzufügen dass wir diese Eigenschaften
mit etwas wie
Duplikaten hinzugefügt haben. Und anstatt uns für ein
Dorf oder Berufe zu entscheiden, entscheiden
wir uns für
Motordorfbewohner, keinen Explosionsmeister. Und dann füge einfach eins hinzu. Und sagen wir einfach
so etwas, wie neun Smaragde. Und dann fügen wir
einfach eine zweite hinzu. Vielleicht kann das Konto Axt
wählen. Da gehst du. Und dann füge einfach eine dritte hinzu, die Stufe zwei sein wird. Und das wird
vielleicht die Schaufel oder eine andere
Menge Luft sein, die du gehst das werden
fünf sein, das ist in Ordnung. So
fügen Sie dann auch die verschiedenen
Handelsangebote hinzu. Es mag einen anderen
Weg geben, dies genau hier zu tun, aber ich fand, dass dies
absolut, völlig in Ordnung ist. Es gibt auch Arbeiten und dann gibt es eine
Sache, die sehr seltsam ist und das wird die Textur oder die Texturen sein. Gehen wir einfach zu den
externen Bibliotheken bis genau hier, das Projekt hat den Namen
usw. mit
dem Assets-Ordner
Minecraft-Texturen zusammengeführt . Dies sollte unter der
Entität sein, weil sie eine Entität nicht irren und dann bis hin zu einem Dorfbewohner hier und dann zu den Berufen. Also haben wir die Berufe genau hier und den
Dorfbewohner genau hier. Also
brauchen wir tatsächlich den Dorfbewohner
sowie unseren benutzerdefinierten Beruf. Jetzt habe ich gerade den
Rüstungsprofi hier genommen, das Bild und es einfach
blau gemacht, weil ich
ein individuelles Dorfbewohner-Outfit mache ,
ist eigentlich
sehr , sehr, ich meine, es ist
nicht so einfach, oder? Es ist also wie,
es ist ziemlich viel. Was wir also
tun werden, ist, dass
wir das überschreiben werden. Die Struktur
wird also unter
dem EMC Kursnamespace liegen . Das wird also sein,
es wird unter Assets MC grobe Texturen sein. Wir haben die
Entität schon hier, und dann brauchen wir den
Dorfbewohner genau hier. Ein Dorfbewohner geht und
dann
brauchen wir auch den Beruf. Ich kopiere es tatsächlich hier
drüben, damit du
sehen kannst , dass wir den
Beruf genau hier haben, den Explosionsmeister
sowie den Dorfbewohner. Ich weiß nicht, warum wir das Dorf
brauchen oder zumindest in meinen Tests brauchte
ich den Dorfbewohner, ein PNG. Ich weiß nicht warum das der
Fall ist, aber es ist was es ist. Und dann haben
wir die
Explosionsmasse genau hier, wie Sie sehen können, im Grunde genommen blau gemacht, weil ich einen ganz
individuellen Look für einen Dorfbewohner mache. Eigentlich ziemlich schwer.
Es ähnelt also der
benutzerdefinierten 3D-Rüstung. Also ja, das ist so
ziemlich eine Sache. Und dann brauchen wir
das Letzte, was wir
brauchen , die Übersetzung für den Namen des Berufs. Und das wird
in die
ENR-Schraube uns angrenzende Akte eingehen . Und das wird das Folgende
sein. Also werden wir gleich hier gehen. Und es wird Entity Micro
Village oder ein Explosionsmeister sein. Und da gehst du.
Der Blastmeister wird das sein, was es sagt, wenn wir
das Inventar öffnen , um
mit dem Dorfbewohner zu handeln. Und das wird es so ziemlich
sein. Jetzt sind das die Schritte. Wieder einmal steht Ihnen natürlich
alles in der GitHub-Haltung im
Einzelnen zur Verfügung. Und das ist so ziemlich alles, was Sie für einen individuellen Dorfbewohner
benötigen. Mal sehen, ob es funktioniert oder ob es uns in Minecraft findet. Lasst uns also einem Dorfbewohner antworten
und den Blaster ablegen. Und da gehst du, es funktioniert total gut. Wir haben jetzt einen
Explosionsmeister, der
genau die Eigenschaften handelt, die
wir hier im Grunde genommen gegeben haben. Also lasst uns einfach ein paar
Smaragde
holen und lassen Sie uns sie einfach auf die
nächste Stufe bringen. Mal sehen,
sobald das Level
auf den buchstäblichen Ebenen
gestiegen ist , werden wir es sehen, und los geht's. Und jetzt, wie Sie es sehen können, können wir
jetzt auch die
Schaufel für
diese Stufe zwei bekommen . Und
es ist auch ein Lehrling. Das ist echt verdammt genial. Und wie
einfach ist es eigentlich, Minecraft
einen individuellen Dorfbewohner hinzuzufügen . Und dann wäre das so
ziemlich genau das für diese Vorlesung genau hier. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Wie immer ist der gesamte Code im
GitHub-Repository
verfügbar, eine Einzelperson genauso gut. Und wir sehen uns in
der nächsten Vorlesung.
117. (1.18.2) Baby: Willkommen zurück beim
Stoffpferd für 118. Und in diesem Vortrag werden
wir unserem Tiger
eine benutzerdefinierte Baby-Entitäten
hinzufügen . Das ist eigentlich viel einfacher, als ich
dachte, dass ich Vater werde, das war viel komplizierter, aber es ist eigentlich nicht
die einzige Notwendigkeit,
Dinge sowohl in der Entität als
auch im Renderer zu ändern . Und wir werden
in der Entität selbst anfangen, was wir tatsächlich auf ein paar Dinge
eingehen. Das erste, was die Tierfleischziele
sein werden. Was wir tun werden, ist, dass
wir einfach den Track
oder das Ziel genau hier
duplizieren. Und wir werden
das das nennen,
das ist das
Tierkameradenziel genau hier und dann
auch in einem. D wird hier der Trans sein und Priorität drei
sollte in Ordnung sein. Normalerweise wird das in Ordnung sein. Dies ist sehr
wichtig, dass wir
dies hinzufügen , und dann wollten wir
auch
die
Lese-Item-Methode genau hier hinzufügen . Und dann können wir hier
grundsätzlich filtern ob ein
bestimmter Gegenstand, mit dem wir mit der
rechten Maustaste auf diese Entität klicken, es
so schaffen wird , dass wir die Zucht sozusagen
sortieren. Und für unseren Fall werden
wir in diesem Fall
Gegenstände dunkles Rindfleisch verwenden , wenn wir mit
der rechten Maustaste auf den Tiger mit Rindfleisch klicken, dann kommt es im Grunde
in den Meeting-Modus. Das ist die allgemeine
Idee, die Sie haben. Und dann ist natürlich
das Letzte, was hier ist das Create Child. Aber das erfordert, dass
wir Mod-Entitäten machen, nicht Tigerdot erstellen und dann den
Weltparameter hier übergeben, und das war's. Theoretisch
würden die Babys bereits hervorgebracht. Sie hätten jedoch die
gleiche Größe wie der Tiger, was natürlich nicht
ganz das ist, was Sie im Sinn hatten, denke ich. Und dafür gehen wir in den Renderer ein und
wir werden einfach die Bemühungen zum Render-Typ
überschreiben. Das wird also genau hier sein
. Und was wir tun wollen, ist, dass wir das
einfach in Ruhe halten wollen. Wir werden das nur ein
bisschen
ändern , da
es ein bisschen besser liest. Wir wollen
nur eine wenn Aussage für animierbaren Punkt Baby ist und dann etwas anderes tun. Wir werden was anderes machen. Was wir tun wollen,
ist, dass wir nur den Stapel nehmen und skalieren wollten . Das wird also das
Ausmaß des Tieres sein. 111 wird natürlich den gleichen Maßstab haben wie zuvor. Und dann, wenn
wir das hier einfach weitergeben, wollen
wir zum Beispiel diesen Kernel 0.4
machen, damit
wir das Baby
etwa 40% der Größe
des normalen Erwachsenen machen . Und das war's. Das ist alles, was wir brauchen. Wieder einmal sehr leicht
machbar, veränderbar. Sie können
diesen einfach hier
für einen anderen Artikel ändern . Wenn du kein Rindfleisch willst, wenn
du etwas anderes willst, gibt es ein paar Dinge
, die du vielleicht tun möchtest. Sie können darüber nachdenken, aber wenn Sie der
rechten Maustaste auf den Tiger
mit einem mit dem Rindfleisch klicken, möchten Sie
vielleicht
einen weiteren Check und Ihre
Interact-Mob-Methode
machen einen weiteren Check und Ihre
Interact-Mob-Methode , damit Sie
nicht anfangen, es zu schreiben. Und dann kann es auch sein
, dass du
kein Baby schreiben kannst , weil
wir im Moment tatsächlich ein Baby schreiben können. Das sollten Dinge sein, die ziemlich selbsterklärend
sind. An dieser Stelle bin ich
wirklich sehr zuversichtlich , dass Sie dies ganz einfach alleine
tun können. Aber was auch immer der Fall sein mag, das ist das Kind. Mal sehen, ob
wir
Minecraft Kinder oder Fossilien
in Minecraft hinzugefügt haben . Also lass uns einfach zu
Tigern kommen und lass uns
etwas Rindfleisch holen. Und mal sehen,
mit der rechten Maustaste klicken, mit der rechten Maustaste klicken. Und dann lass uns sehen. Ich bekomme momentan
keine Partikel , weil ich tatsächlich Partikel
ausgeschaltet habe, aber du kannst schon
sehen, dass es funktioniert. Lassen Sie uns also Videoeinstellungen
unter Partikeln. Lasst uns einfach alle
Teilchen gleich hier holen. Außer du siehst Es gibt
noch ein Mal, los geht's. Wir bekommen auch die Teilchen
und da ist es. Mal sehen, da
ist es das Babytier in einer kleineren Version
als die großen. Es
funktioniert tatsächlich völlig so, wie
man es erwarten würde. Wir können auch mit
der rechten Maustaste darauf klicken und dann sollte
es auch
ein Babytier hervorbringen. Das ist auch eine andere Sache, die
du tun kannst. Da gehst du. Sie werden übrigens tatsächlich
erwachsen werden, es dauert nur eine ganze Weile. Ich kann
dir tatsächlich zeigen, ob es
in der Tierklasse ist . Nun, aber so
einfach ist es, Mikroben
ein paar Babytiere hinzuzufügen . Wenn wir hier den Baum hinuntergehen, gibt es zehn erhalten
fähige Entität, tierische Entität in der
Tierentitätsklasse. Hier kühlt sich die Zucht ab, vielleicht ist sie drin,
irgendwo hier drin. Ich denke, es könnte
noch weiter unten sein. Vielleicht h da ist es, in der passiven Entität,
negativ 24 Tausend. Das sollte also 24
Tausend Takes sein, glaube ich, bis es im Grunde einen
Erwachsenen erschafft. Man könnte dies also theoretisch
auch ändern. Vielleicht bin ich mir nicht sicher, ob es sich um eine Akte handelt, also kann das vielleicht nicht geändert werden, aber es gibt im Grunde,
wo es sich befindet. Und so einfach ist es
auch, Ihrer
Entität
einige benutzerdefinierte Entitäten hinzuzufügen . Und das würde
diese Vorlesung genau hier abschließen. Ich hoffe, du hast das nützlich gefunden und du wirst etwas Neues lernen. Und wir sehen uns in
den nächsten Vorträgen.
118. (1.18.2): Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
eine benutzerdefinierte Geode hinzufügen . gewohnte Rendite ist also
ziemlich einfach,
alles in Betracht gezogen. Lassen Sie uns also nur sehen, wie das im
World-Paket funktioniert, Feature-Paket in der R
konfigurierten Feature-Class, ich werde
die eigentliche Geode-Features
Config Wahnsinn kopieren . Und es wird nach viel aussehen. Aber keine Sorge,
wir werden
fast alle Linien durchgehen und sehen, was sie bedeuten. Das ist also der Orakel
come-Geode hier. Lassen Sie uns einfach formatieren ist vielleicht ein
bisschen anders, damit sie
alles sehen können, was sie vor ihnen haben. Und die allgemeine Idee
ist, dass wir
einen Geode-Feature-Konflikt
mit einigen Layer-Konflikten haben . Hier. Die Ebenenkonflikte sind eigentlich das wirklich Interessante,
denn hier können wir definieren, man 12345
verschiedene Blöcke
und dann auch eine Liste von
Blöcken oder
Blockzuständen in diesem Fall sehen kann und dann auch eine Liste von , aber ziemlich die gleiche Idee. Wenn wir in den
G0-Ebenenkonflikt geraten, können
wir tatsächlich sehen, was diese verschiedenen Blockzustände sind. So können wir sehen, dass es eine innere Schicht des
Füllanbieters gibt. Es gibt eine alternative
vergrößerte Zwischenschicht. Stunde später gibt es eine mittlere
Schicht und einen inneren Block, den sie
nicht ersetzen kann, und dann auch ein ungültiges
Block-Tag. Was bedeuten all
diese verrückten Dinge? Nun, lasst uns zuerst über
die inneren Blöcke sprechen. Die inneren Blöcke sind
im Falle von Vanille grundsätzlich im Falle von Vanille der angehende Amethyst. Wenn wir also die mittlere Maustaste drücken, klicken Sie darauf und wir können die unterirdische
konfigurierte
Feature-Klasse genau hier sehen und sehen, wie die Amethysten
Geoden-Cluster
hier hineingehen und sehen, dass Luft der erste
ist eins. Dies ist also nur der
absolute innerste Block. Und natürlich
möchten Sie normalerweise , dass Ihr GOTT mit Luft erfüllt
wird. Deshalb ist das in diesem Fall
Luft. Und der Emesis-Block ist der, mal sehen, dies sind die
inneren Layer-Anbieter. Dies ist also im Grunde die erste
innere Schicht. Und dann haben wir einen
Blockstatus-Anbieter einer alternativen inneren Schicht. Jetzt sind das der
angehende Amethyst. Das sind also die Blöcke, aus denen die Erde
tatsächlich hervorgeht. Wir haben auch einen Calcit hier. Dies wäre also der
Middle-Layer-Anbieter. Und dann haben wir auch die, lassen Sie mich das hier überprüfen, die glatte Muskulatur
und das wäre der äußere Schichtanbieter. Also haben wir eine mittlere
Schicht und eine Stunde später werden
Sie
in unserem Beispiel hier sehen, wenn ich darauf zurückkehre, können
wir sehen, dass der Fehler dasselbe ist , was
wir haben Deep Slate wie der
allgemeines Make-up der inneren Schicht. Das Orakel kommt oder wird
sozusagen unser angehender Amethyst sein, sozusagen eine äußere Schmutzschicht. Und dann wird die vollständige unsere Schicht
der Smaragdblock sein, während die Neukalk und der
Block genau hier, wo diese Liste im Grunde ist, dies
unser wachsender Amethyst sein wird. In der Liste hier sehen
Sie also, dass dies
die MFAS-Buds sind , die spawnen können. Und in unserem Fall werden
dies
unsere Kalziumblöcke sein , nur um eines
Beispiels willen hier, oder? Die Dicke sollte
ziemlich selbsterklärend sein. Definiere einfach die Dicke hier. Eine knackende Konfiguration
bestimmt im Grunde, wie groß einige Öffnungen in dieser Geode
sein könnten. Und dann haben Sie einige Dinge , die Sie im Grunde genommen die Verteilung, den
Rauschmultiplikator und
den Generationen-Offset
ändern können , empfehlen wir,
wie immer, mit den
Zahlen hier drüben
herumzuspielen. Das ist das Beste,
was du tun kannst. Spiele auch mit
den Blöcken hier drüben herum. Sie werden in nur einem
Moment sehen, in dem wir
dies tatsächlich in einer neuen Welt hervorgebracht haben, wie
das tatsächlich aussieht. Und Sie werden ziemlich leicht verstehen,
wie das funktioniert. also keine Sorgen. Und das ist im Grunde
die allgemeine Idee. Spiel damit herum.
Jetzt steht Ihnen das natürlich
alles
in einem GitHub-Repository und
auch individuell. Es gibt also keine Sorgen. Fahren wir mit der
Marketplace-Feature-Klasse fort. Also kopiere ich
das auch. Aber das wird
auch nicht zu verrückt sein. Mach eigentlich so etwas. Vielleicht kannst du das lesen. Da gehst du. Da ist das Orakel wirklich platziert und Sie können
sehen, dass wir
hier nur eine Seltenheitsplatzierung von 42
machen, denn warum nicht? Und dann brauchen wir das
quadratische Platzierungs-Feature, quadratischen Platzierungsmodifikator aus. Und dann haben wir die einheitliche
Höhe von sechs bis 50. Ich habe mich gerade für diese entschieden, weil
das einmal gut wird, äh, natürlich, damit
rumspielen wird, oder? Wählen Sie, wählen Sie verschiedene
Offsets aus, oder? Sie können den festen
unter all dem verwenden. Probieren Sie einfach ein paar
Sachen aus und sehen Sie dann, was Sie mit den
verschiedenen Werten hier finden können. Und um dies zu spawnen, nun, es ist ziemlich einfach. Wir wollen hier einfach nur in
unsere Generation gehen. Wir werden dieses einfach duplizieren und wir
möchten
dies in das Orakel ändern , das zum Orakel kommt oder platziert wird ,
kommen Sie zu platzieren. außerdem sicher, dass die Funktion
Konfigurieren
hier der Geode ist. Und dann verweisen wir hier
auch auf die Geode und das ist es Das sollte kleine Nische,
du bist in einer neuen Welt. Lasst uns eine neue Welt erschaffen
und sehen, ob sie funktioniert. Oder Frankreich oder in Minecraft. Und da haben wir schon
ein Beispiel. Also haben wir eine gefunden, eine Geode
und Sie können natürlich sehen, die innerste Schicht hier
im Grunde Luft ist. Und dann sieht man, dass dies die verschiedenen Ebenen
sind. Man sieht, dass dies
der Dreck hier drüben tief ist. Dann haben wir den angehenden
Amethyst Ersatz für R ors. Und dann
kann das Orakel bei einigen von
ihnen das Spawn blockieren, und das
wären die Orte, von denen die eigentlichen
Cluster spawnen würden. Der Smaragdblock selbst, man sehen kann, liegt eigentlich
sehr außerhalb davon. Sie können also sehen, dass
hier die Geode bereits beginnt
und es ist ziemlich viel. So können Sie hier sehen,
dann
ist das alles Dreck und irgendwann fängt
man im Grunde auch
hier an, einige
der verschiedenen Blöcke zu
finden . Und irgendwann,
nachdem Sie viel gegraben haben, können Sie sehen, dass
es ziemlich viel ist. Also hast du tatsächlich wieder
das andere draußen erreicht. Wir können diesen Weg gehen müssen. Und dann mal sehen wir mal. Wir werden auch in der Lage sein,
das eigentliche GO drinnen zu finden. So einfach kann es also sein,
einige benutzerdefinierte Felder hinzuzufügen. Wieder einmal mit den Zahlen
herumspielen und mit den Blöcken herumspielen. Das liegt alles an
dir. Aber insgesamt ist
es sehr einfach, es tatsächlich
zu haben,
es zu generieren. Und wie immer, wie gesagt, ist
der Code genauso gut
im GitHub-Repository
und individuell verfügbar , 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. Also ja.
119. (1.18.2) Block, der mit Redstone interagiert: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir uns ansehen, wie Sie Redstone
in Ihren Kundenblock implementieren
können. Was heißt das also? Nun, wir werden
das Orakel zu einer Lampe machen,
ein Block, den
wir, anstatt mit der rechten Maustaste darauf zu klicken, um es ein- und
auszuschalten rechten Maustaste darauf zu klicken, um es ein- und
auszuschalten, es mit
Redstone-Erz funktioniert , oder? Wir haben ein Beispiel und das
ist der Redstone-Lampenblock. Wie immer ist Microbes
Quellcode dein bester Freund. Drücken wir einfach zweimal die
Umschalttaste und
suchen wir gleich hier nach dem
Redstone-Lampenblock. Und Sie können sehen, dass wir
die Nachbarn-Update-Methode
sowie diese geplant haben die Nachbarn-Update-Methode
sowie , um Methoden zu verwenden. Das sind also die beiden
Methoden, die wir brauchen. Kopieren wir
sie einfach, wählen
sie aus und kopieren sie
über Control C, steuern V, um es einzufügen. Und dann müssen
wir hier nur den Deckel wechseln um überall
dort zu sammeln, wo es heißt LET, du willst hier nur dasselbe sagen und auch gefallen. Und dann können wir das
etwas leichter lesbar machen. Statt des booleschen Wertes wollten
wir das einfach mögen. Und dann auch das Casting hier, es muss gerade nicht
passieren die Frage ist, was
hier passiert? Nun, die
Nachbar-Update-Methode wird aufgerufen ,
wenn ein Nachbar dieses
bestimmten
Blockzustands-Updates in der Welt nicht zu verrückt nach
den allgemeinen Ideen sein
sollte , die wir wissen
möchten, ob dies dies ist oder nicht ein bestimmter Block ist aktiviert. Wenn es auf n ist, wird es
nicht mit Strom versorgt, wir möchten es ausschalten
und andersherum. Wenn ja, wenn es
ausgeschaltet ist und Strom
erhält, wollen
wir es einschalten. Das ist die allgemeine Idee. Jetzt ist das in meinem Kopf etwas
komplizierter als es sein muss, aber es wird uns
gut gehen, weil Vanille so ziemlich auch so gut macht. Und dann planen wir einen Tick Take im Grunde genommen ist
dann genau hier fertig. Sie können also sehen, dass dies aufgerufen
wird, wenn ein
geplantes Häkchen grundsätzlich
gut ausgeführt wird. Und wir
setzen im Grunde nur den Status an dieser bestimmten Position
auf den Flick-State-Zyklus. Was ist Zyklus-Mittel? Nun, wir invertieren im Grunde
nur den tatsächlichen
booleschen Wert. Also Zyklus,
durchläuft einfach alle Werte. In diesem Fall ist es sehr schwer zu
erkennen. Die allgemeine Idee ist jedoch nur , dass es nur alle verschiedenen Werte
dieser bestimmten
Blockstatuseigenschaft
durchläuft verschiedenen Werte
dieser bestimmten
Blockstatuseigenschaft , da
es sich um einen booleschen Wert handelt, es gibt nur zwei mögliche
Werte, die es haben kann. Deshalb wird
es einfach aus einer Falte ein
wahres und ein wahres in
ein Falsch verwandeln . Und das ist
alles, was wir brauchen. Sie können also sehen, dass der
Redstone-Strom an dieser
bestimmten Position erhält , und das ist alles, was
wir brauchen, oder? Das ist also nur eine boolesche
Methode hier, die fragt:
Hey, empfängt dieser Block Strom? Und das ist alles, was Sie
brauchen, um zu überprüfen, ob dieser Block mit Strom
versorgt wird oder nicht. Und dann, nur damit
wir es haben, kommentieren Sie das hier draußen. Und lassen Sie uns einfach
ein System aus der
Druckzeile erstellen und wir
werden nur „Powered by“ sagen. Und dann
werden wir die Welt
das sagen und wir haben ein paar Macht. Nun, Dinge hier drüben können Sie sehen, dass es eine emittierende Macht gibt, etwas Strom
lesen und Strom
erhalten, emittiert werden. Redstone erhält
Redstone und dann am stärksten, wir werden nur
die stärkste Leistung ausgeben. Dies wird also in diesem Fall
eine ganze Zahl zurückgeben, und es wird alles von
0 bis 15 sein , weil Redstone-Leistung, das Maximum 15 und der
niedrigste Wert 0 wäre, was überhaupt keine Stromversorgung wäre. Dies wird dann in der Konsole
hier innerhalb der Intelligenz
ausgegeben ,
wenn wir mit der rechten Maustaste auf
diesen bestimmten Block klicken. Das ist eigentlich
alles, was wir tun müssen, das meiste davon aus Vanille. Jetzt, wie immer,
wird Ihnen natürlich der
gesamte Code hier in
einer Beschreibung im
GitHub-Repository
und individuell genauso gut zur Verfügung stehen einer Beschreibung im
GitHub-Repository . Lasst uns jetzt in eine Welt gehen
und mal sehen, ob es funktioniert. Alles klar, wieder Freunde
in Minecraft, und ich habe hier schon das
Oracle-Icon-Labor eingerichtet. Also lass uns einfach einen
Hebel nehmen und mal sehen. Und dann gehen wir los, es schaltet sich ein
und dann schaltet es aus, wenn ich, aber der Hebel wieder aus. Und was wir damit so gut wie möglich
machen können. Also los gehst du. Und das funktioniert auch. Wenn ich jetzt mit der rechten Maustaste
darauf klicke und einen Blick hier
in die Steigung schaue, sollten
wir die Leistung um 14 sehen. Dies ist natürlich der Fall denn dies wären 15 und dann eine weitere zusammen mit der Redstone-Linie
hier, dies wären 14. Wenn ich dann auch
den Hebel hier einschalte und wieder
mit der rechten Maustaste klicke, dann siehst du, dass wir
immer noch 14 bekommen. Interessanterweise sollten
dies 15 sein. Meiner Meinung nach ist das
sehr interessant. Mal sehen, ob wir es so
machen können. Das ist diese Arbeit. Jetzt funktioniert
es mit 15. Okay, also der Hebel, es hat eigentlich nicht ganz funktioniert. Ich schätze. Das ist sehr
interessant für mich. Eigentlich hätte ich mit
dieser Arbeit gerechnet, aber fair genug. So funktioniert dies jetzt im Grunde genommen und
so einfach
kann es sein, einen Block hinzuzufügen, mit
Redstone, Minecraft, funktioniert. Natürlich müssen Sie jede zusätzliche
Funktionalität, die Sie dann hinzufügen möchten, wenn
das Restaurant angewendet wird, Sie dann hinzufügen möchten, wenn
das Restaurant angewendet wird,
entweder
den Block hinzufügen oder wenn es sich
um eine Bucheinheit
handelt, können
Sie auch natürlich
mach das auch und ändere es
dann auch
dort herum. Aber das ist natürlich
etwas, das Sie alleine machen können. Und ich hoffe, dass Sie
dies tun und auch einige
Funktionen hinzufügen können , aber das wird es 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.
120. (1.18.2): Okay, willkommen zurück
zum Stoffkurs für 118. Und in dieser Vorlesung werden
wir Minecraft
einen
Kunden-Block-Entitäts-Renderer hinzufügen . Was ist ein
Block-Entitäts-Renderer? Nun, im Grunde wird
es
ein gewisses zusätzliches Rendering sein ein gewisses zusätzliches Rendering , das wir einer
Kundenblock-Entität hinzufügen. Und was wird unsere Blockeinheit
sein? Nun, wir werden
ein benutzerdefiniertes Blockmodell haben , das irgendwie so
aussieht, aber es wird ein Sockel sein. Und wenn wir dann mit der rechten Maustaste
darauf mit einem Gegenstand klicken, wird
der Gegenstand mit der Maus
über diesen speziellen Sockel zeigen. Das ist die allgemeine Idee. Nichts zu verrückt,
aber immer noch ziemlich cool, um sich diese spezielle
Blockbench-Firewall anzusehen , steht
natürlich auch zum Download
zur Verfügung. Und dann können wir
zu Dateiexport,
Export, Blockelementmodell,
dem angrenzenden Sockel gehen. Jetzt habe ich das schon, also wird es uns gut gehen
und wir werden dies in nur einer
Weile als angrenzendes
Blockmodell
hinzufügen . Aber zuerst fangen wir damit an
, den Block hinzuzufügen. Sie in unserem Buch in unserem benutzerdefinierten Blockpaket mit der
rechten Maustaste auf die neue Java-Klasse, die
als Sockel bezeichnet wird. Sieh mal. Jetzt werde ich das
meiste davon überstehen, aber keine Sorge. All dies
steht Ihnen in einem GitHub-Repository ebenso
individuell zur Verfügung. Jetzt kriegen wir
hier einen Pfeil und ein paar
weitere Pfeile genau hier. Aber keine Sorge, wir
können diese in
nur einem Moment reparieren , sobald wir auch
die Block-Entitätsklasse hinzugefügt haben . Was passiert jetzt hier? Insgesamt ist das
Wichtigste hier
natürlich, dass der Block um Entitätsklasse erweitert wird und dass wir den
gerenderten Typ
mit dem Modell überschrieben haben . Dies ist äußerst wichtig. Wenn Sie dies nicht tun, ist
Ihr benutzerdefinierter Block unsichtbar, da
Sie tatsächlich nach unten gehen. Das sind also drei
Hilfsmethoden. Wir haben auch den
On-State ersetzt. Dies lässt im Grunde alle Gegenstände fallen, die sich
im Inventar befinden. Nichts zu verrückt. Und
dann haben wir das Unbenutzte. Diese Methode wird natürlich aufgerufen wenn Sie mit der rechten Maustaste auf
diesen bestimmten Block klicken. Und was hier passiert ist
, dass, wenn
der Gegenstand anstelle des Sockels leer ist und wir tatsächlich einen Gegenstand
halten
, wir einfach
diesen Gegenstand, den der
Spieler hält,
in diesen stecken diesen Gegenstand, den der
Spieler hält, Inventar und Löschen des späteren Artikels in seiner Hand. Wenn sich in diesem speziellen Sockel tatsächlich
kein Gegenstand befindet , spawnen wir
es nur an den Spieler und löschen dann den
Sockelgegenstand genau hier. Das ist also
alles, was wir in der unbenutzten Methode wirklich machen. Empfehlen Sie dringend,
dies auch zu überprüfen. Es ist nicht so kompliziert,
alles in Betracht gezogen. Und einer von uns, wir
haben diesen Block. Gehen wir tatsächlich in das Entitätspaket ein und
erstellen Sie die benutzerdefinierten Entitäten. Das wird also die
Sockelblock-Entität sein und da ist etwas drin
geschlichen, und das wird ein Tippfehler sein. Also los gehst du. Entität blockieren. Da sind wir los. Und noch einmal werde
ich über die Kontinente kopieren. Das ist eigentlich, ich
denke, das ist tatsächlich noch weniger als der eigentliche Block. Lustigerweise genug. Es sind nur 67 Zeilen lang. Nicht so verrückt. Und Sie können dies natürlich sehen, erweitert die Block-Entität und den
implementierten Bestand
, den wir auch in
der Vorlesung der
Kundenblock-Entitäten hinzugefügt haben . Wir haben die standardmäßige
Liste der
Artikelstapel , die nur das Inventar ist, sollte nichts Verrücktes sein. Und dann haben wir auch
einen Fehler hier, was die Rotation ist. Aber wir brauchen die
Rotationen in diesem Fall, da diese in der Block-Entität selbst gespeichert
werden müssen . Weil wir dies nicht
wirklich im
Block-Entitäts-Renderer speichern können , da sie immer nur einen
Block-Entitäts-Renderer
während der Buch-Entität selbst vorhanden sind. Wenn wir es dabei speichern,
wird es sich nicht stören. Denn wenn Sie es auf
dem Block- und D-Renderer speichern, passiert
es, dass
jedes Mal, wenn Sie
eine neue Sockelblock-Entität setzen , das Ding immer
schneller wird. Und das ist natürlich nicht
ganz etwas, was wir wollen. Deshalb wird die Rotation die
Drehung des Gegenstandes sein. Deshalb
speichern wir es genau hier. Wir haben auch ein Recht auf eine Lese- und Beauty-Methode sollte nichts
Verrücktes sein, oder? Diese dienen nur dazu,
das Inventar
zu retten , wenn wir die Welt verlassen, oder? Wenn wir die Welt retten. Und dann ist es auch unglaublich
wichtig, dass wir die
mit der Block-Entität überschriebene Paketmethode
aktualisieren, auf Server auf
Client aktualisieren möchten mit der Block-Entität überschriebene Paketmethode
aktualisieren, , um das Paket zu sehen und es
damit zu erstellen und dann auch auf
initiale
Chunk-Daten und b t. Wir möchten, dass dies so aussieht. Diese beiden sind also
unglaublich wichtig. Andernfalls findet eine D-Synchronisierung zwischen dem Server
und dem Client statt. Denken Sie also daran, dass diese ebenfalls hinzugefügt werden
müssen. Wie ich bereits erwähnt habe. All dies
steht Ihnen dabei oder einer
Einzelperson genauso gut zur Verfügung. Wir können es von dort aus kopieren, dann gehen wir in
die Blockentitäten-Klasse und lassen Sie uns einfach
über den Sockel kopieren. Also zuerst
werden wir das kopieren. Also werden wir dies
duplizieren und
dies zur Sockelblock-Entität
machen dies zur Sockelblock-Entität , die
als Sockel bezeichnet wird. Und dann
duplizieren wir
das ausgewählte einfach und
drücken Control D. Dies wird der Sockel sein. Dies ist natürlich
gleich allem dem
Namen hier, Sockel. Und dann
wollen wir dies
hier in eine Sockelblock-Entität umwandeln . Und dann
wollen wir hier den Sockel benutzen. Jetzt
ist dies natürlich
noch nicht umgesetzt , aber überhaupt keine Sorgen. Wir werden das auch einfach
hinzufügen. Also die Blue-Modus-Block-Entitäten, können
wir jetzt zur
Sockelstein-Entität gehen. Der Fehler sollte hier
verschwinden und es sollte keine Fehler mehr geben
als im Block. Wir können jetzt die
Podestalbuch-Entitätsklasse importieren und alle Fehler hier
sollten auch verschwinden. Und es ist großartig. Und um
diesen Fehler zu beheben, müssen
wir nur
den eigentlichen Block registrieren. Also
machen wir das einfach auch. Lass uns einfach über
das Winterfenster kopieren. Das wird gut werden. Und das wird
das Sockelpferd sein
, mit dem Namen
hier bei Angriff. Und das
wird der Sockelblock sein. Jetzt werden wir
kein Glas kopieren. Lasst uns tatsächlich
materiellen Stein machen. Ich denke, dass das
am sinnvollsten ist, nicht undurchsichtig. Das brauchen wir eigentlich nicht. Stärke drei, das
wird gut werden. Und dann natürlich,
in unserer Artikelgruppe, in unserer benutzerdefinierten Artikelgruppe hier. Und das sollte in Ordnung sein. Jetzt
sollte dieser Pfeil auch verschwinden, und jetzt sind alle
Fehler verschwunden. Jetzt brauchen wir immer noch
den benutzerdefinierten Renderer. Also das Entitätspaket, wir klicken mit der rechten Maustaste auf
neues Paket namens Client. Und dann werden wir
drinnen
eine neue Klasse erstellen , die den
sockeligen Volokh-Entitäts-Renderer nennt. Sie gehen und das ist eigentlich
ziemlich einfach, aber dies wird
den Blockentitäts-Renderer implementieren , Renderer genau hier vom Typ. Sockelblock-Entität wird den
Mauszeiger über diese Methoden
implementieren. Dies ist die
Render-Methode genau hier, und das ist so ziemlich
alles, was wir tun müssen. Tu es. Dann können wir einen öffentlichen
Sockelblock-Entitäts-Renderer machen. Anstatt hier möchten
wir die Buch-Entität nennen, unseren Factory-Punkt-Kontext,
Kontext und das Ziel
rendern . Wir wollen also nur den
Standardkonstruktor hier mit diesem
speziellen Parameter und der Render-Methode, dem Inhalt der
Zufallsmethode, die ich tatsächlich kopieren
werde. Sie können sehen, dass wir den
Elementrender hier im Grunde bekommen, und dann erhalten wir auch den Artikelstapel. Nun, was wir mit den Matrizen hier
machen,
der Matrixstapel ist
im Grunde, dass wir es sind, das alles bestimmt nur
die Übersetzung. Wo sich also unser bestimmter
Artikelstapel befindet, bestimmt der
Maßstab, wie groß er ist, und multipliziert dann hier, dreht
einfach den
tatsächlichen Elementausbruch. Das tun diese
drei Erkältungen, als das Renderelement des Element-Renderers das
Element nur rendert. Dann müssen wir diesen
bestimmten Matrixstapel platzen, und dann fügen wir auch die
Rotation hinzu. Das ist also so ziemlich alles
, was wir hier machen. So ziemlich cool,
alles in Betracht gezogen. Und ich
empfehle dringend, sich
das nur anzusehen und ich
versuche es zu verstehen. verrückt sollte es nicht sein. Aber ich werde auch sagen, dass Rendern definitiv nicht meine Stärke
ist. Mir gefällt es besonders. Es ist, es kann ziemlich verrückt sein, aber alles in Betracht gezogen wird, sollte
es in Ordnung sein, oder? Eine winzige Sache,
nennen
wir das nicht undurchsichtige hier drüben. Nur damit wir das haben. Es ergibt Sinn,
glaube ich weil das, weil es kleiner
als ein Block ist. Nennen wir das einfach. Und wie registrieren wir dann diesen bestimmten
Block-Entitäts-Renderer? Nun, dieser Block ist, dass Ihr Hendra tatsächlich
ziemlich einfach
in der
MC-Kurs-Client-Klasse registriert
ist ziemlich einfach
in der
MC-Kurs-Client-Klasse , natürlich wird dies Folgendes
erfordern. Wir möchten es als
Buch-Entitäts-Rendererregistrierung bezeichnen. Dieser hier ist
nicht registriert. Mehr Blockentitäten,
Punktsockel und dann die Sockelgestein
Renoir Doppelpunkt, Doppelpunkt neu. Wir möchten auch
die
Block-Render-Layer-Map-Punkt-Instanz aufrufen Block-Render-Layer-Map-Punkt-Instanz , die Block- oder
Blockpunktsockel setzt. Und dann setze die Renderer-Ebene , dass er ausgeschnitten wird, die du hast. Und das sollten eigentlich all die Dinge
sein
, die wir brauchen. Jetzt
brauchen wir natürlich auch die angrenzenden Dateien, aber diese sollten ziemlich
selbsterklärend sein, oder? sollten also nicht zu verrückt sein. Aber noch einmal,
im Blockstatus befindet sich Jason im Block
States Ordner, rechts, Beginnen wir damit,
die
Blockstatus-JSON-Datei für den
eigentlichen Sockel hinzuzufügen . Sie gehen, das ist nur eine normale
Bloc States Jason-Akte. Nichts Verrücktes hier hat auch
die Übersetzung hinzugefügt. Wir haben einen Block, obwohl dieser Name Sockel
ist. Also werden wir das einfach hinzufügen. An diesem Punkt sollte das ziemlich Routine
sein, sollte hier drüben nichts
Verrücktes sein. Nun, das wird die exportierte Datei
sein, also wird es hier drüben einen
Sockel geben. Und hier. Natürlich
müssen wir dies noch einmal in
Minecraft-Doppelpunktblock-Schrägstrich Glattstein ändern . Denn sonst
wird es keinen glatten Stein finden. Das ist also eine der Dinge
, die Sie von
der exportierten JSON-Datei und
dann auch der JSON-Datei des Elements ändern müssen. So ziemlich das
Gleiche, was wir schon oft
gesehen haben . Dies bezieht sich
auf die
JSON-Datei des Blockmodells und dann wird keine
Textur benötigt. Das sind also eigentlich all
die Dinge, die wir brauchen. Sperren Sie Status, Übersetzung, Block, ein Elementmodell, eine JSON-Datei, und das sollte es sein. Das sollte also alles sein
, wofür wir brauchen. Jetzt. Lass uns ins
Spiel gehen und sehen, ob es funktioniert. Okay, also befinden wir uns in Minecraft und wie Sie sehen können, wurde
der Sockel hinzugefügt. Lassen Sie uns es also festlegen
und versuchen wir, mit dem
rohen Fehler Calcium mit der
rechten Maustaste zu klicken. Und da gehst du.
Es ist hingesetzt. Und wir können hier auch noch
etwas mehr hinzufügen. Und Sie können
im Grunde sehen, dass sie
alles nur auf und ab sind und sich hier registrieren. Also kann ich mit der rechten Maustaste klicken und sie
wieder rausholen. Und ich kann mit der rechten Maustaste klicken
und sie hineinlegen. Und du siehst, dass ich im Grunde immer eins oder Kalzium
verliere. Und dann kann ich es auch rausholen. So genau wie wir
erwarten würden, dass es funktioniert. Es funktioniert tatsächlich und das ist ziemlich cool. Und dies ist ein Beispiel für
einen Kunden-Block-Entitäts-Renderer. Aber wie gesagt, ist der
Code
im GitHub-Repository genauso gut
einzeln verfügbar . 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. Also ja.
121. (1.18.2) Loot in benutzerdefinierten Strukturen: Alles klar, willkommen zurück beim
Stoffkurs für eine ATP. In diesem Vortrag
werden wir sehen, wie Sie
Ihren benutzerdefinierten Strukturen
benutzerdefinierte Beutetruhen hinzufügen können . Das ist also etwas
, mit dem
einige Leute zu kämpfen hatten, obwohl die benutzerdefinierte Struktur
aus telepathischem Grund hier das hier ziemlich
gut erklärt hatte. Aber einige Leute
brauchten immer noch ein bestimmtes Beispiel, also werden wir
sie mit diesem Beispiel anwenden. Mal sehen, was
wir tun müssen. Was wir tun
müssen, ist, dass wir genau hier eine Truhe
spawnen können . Und wieder ist es mit
diesem speziellen Befehl geboren. Also setze den Block auf die
Position, in der wir stehen, eine Minecraft-Truhe, die sie ignorieren. Es wird also in
die gleiche Richtung gehen , in die
wir uns befassen. Und dann den
Beutentisch, den wir auf einfache Bungees
stellen werden. Also werden wir das einfach machen. Und Sie können sehen, dass
das Vertrauen entstanden ist. Nun, wenn ich es öffne, richtig, und dann werden wir das speichern. Wenn sie also leben,
ist dies der Davidson. Wenn ich jetzt bestellt habe,
speichere diese Struktur, dann hätte jede Struktur diesen speziellen
Inhalt dieser Truhe. Das ist eines der Probleme
, mit denen einige Leute konfrontiert waren denn was Sie tun müssen, ist wenn Sie es tatsächlich spawnen. Also teilen wir es einfach noch einmal auf, genau hier mit
dem Beutentisch , dem einfachen Kerker. Sie können auch Ihre
eigenen Lu-Tabellen hinzufügen und hier auch verschiedene
Routentabellen erstellen,
aber achten Sie darauf, dass Sie im Grunde einen Tisch
haben, der
speziell für Schach gedacht ist. Und sobald du die Brust
gezeigt hast, öffne die Brust nicht. Sie können die Truhe öffnen denn sobald
Sie die Brust öffnen, verfestigen
Sie alles, was
sich darin befindet. Sie möchten, dass dies nach dem Schlucken nicht
geöffnet wird, und dann möchten Sie
Ihre benutzerdefinierte Struktur speichern. Aber jetzt werden wir die Struktur
speichern. Und jetzt können wir die NVT-Daten
ersetzen , die wir bereits haben. Und dann
wird insbesondere diese Truhe immer eine
andere Belastung haben ,
wenn die Struktur auf der Welt
spawnt. Gehen wir jetzt zu Intelligent und ändern die MPT-Datei, oder? Die NVT-Datei steht also natürlich
wieder unter dem Safe. Nun sollte dies
der, an einem anderen Tag, eine andere Struktur sein, wenn
ich mich richtig erinnere, los
geht's, die Zählmaus. Lassen Sie uns das überschreiben. Gehen wir zum Datenordner, MC-Kursstrukturen, und fügen
wir ihn hier ein, Konto mhos MVT, wir
werden es außer Kraft setzen. Das ist in Ordnung. Und jetzt
ist das alles, was wir tun müssen. Lasst uns jetzt eine neue Welt erschaffen
und sehen, ob es funktioniert. Okay, also befinden wir uns wieder
in Minecraft. Lasst uns also einfach
zur ersten Zählung fliegen, mein Haus hier,
das hervorgebracht hat, und ich glaube, es gibt noch
ein anderes in diese Richtung. Nun, zuerst werden wir
die Truhe hier drinnen finden . Und wenn ich mit der rechten Maustaste darauf klicke, kannst du sehen, dass dies die besondere Belastung ist. Wir haben also Eisenpferde-Rüstung
und drei faules Fleisch. Also lasst uns das einfach in
unserem Gehirn speichern und mal sehen. Okay, also gab es eine
Pferderüstung und drei faules Fleisch, und mal sehen, ob wir eine andere finden
können. Ein anderer zählt mein
Haus, ob dies auch der Fall ist oder nicht. Okay, dann gehen wir endlich hin, ich habe endlich festgestellt, dass eine andere
Account-Maus
tatsächlich ziemlich schwierig wäre , diese
zu finden. Denken Sie daran, es gab drei, faules Fleisch und eine Pferderüstung, und wir können sehen, dass dies
völlig anders ist. Wir haben jetzt eine Musikdiskette. Wir haben immer noch eine
Pferderüstung, aber kein faules Fleisch. Aber Sie können sehen, dass jede
einzelne Struktur eine andere
Schleife hat. So einfach ist es also so
ziemlich einfach eine benutzerdefinierte Beutetruhe,
Ihre benutzerdefinierten Strukturen
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.
122. (1.18.2) UPDATE AUF 1.19: Alles klar, willkommen zurück
zum Stoffkurs für 118. Und in diesem Vortrag werden
wir unser Projekt auf 119
aktualisieren. Nun, dies wird
tatsächlich
ein ziemlich einfacher
Prozess sein , alles in Betracht gezogen wird. Glücklicherweise sind die Änderungen
zwischen 11819 und Stoff nicht so verrückt. Also lasst uns einfach anfangen. Zunächst beginnen
wir mit
der angrenzenden Fabric-Mod-Datei, wo wir
diese ändern müssen, hängt davon ab oder hier. Jetzt wollen wir diese beiden ändern. Fabric Loader ist 14.6. Ich möchte die
Minecraft-Version so ändern, dass sie hier
die scharfe Linie ist, Tilda 1.19. Natürlich sollte das in Ordnung sein. In unserem MC-Kurs
Mixing Tracer-Datei möchten
wir
die Java, Java 17 ändern, und dann können wir mit der Build-Gradle-Datei fortfahren
, wo
wir zuerst
die Fabric
Looom-Version hier auf 12 ändern möchten . Und dann wollten wir natürlich
auch
die
Gecko-Lippenimplementierung hier ändern . Die Gleichgewichtskraft
muss aktualisiert werden. Das wäre also
Stoff eins bei 22,1. Und dann müssen wir
in der größeren
Eigenschaftendatei die meisten dieser Dinge
ändern. Wir wollen die
Micro-Version auf 1 Neuntel,
Garnmappings oder 119 ändern , bauen einen Stofflader. Die untere Version hier ist 14.6. Wir können dann natürlich
auch
unsere eigene Mod-Version hier ändern . Und dann
wird das 55.11.19 sein. Und das sollte so
ziemlich all die Dinge sein, die wir hier ändern
müssen. Und dann können wir
die Gradle-Änderungen laden. Jetzt kann dies wiederum
zwischen ein paar Sekunden
und vielleicht sogar zwei Minuten,
drei Minuten dauern , je nachdem,
wie schnell Ihr Computer ist,
je nachdem, wie schnell Ihre
Internetverbindung ist, all das Verrücktheit. Lassen Sie uns das einfach
durchlaufen und haben Sie Geduld. Und dann werden wir sehen, sobald dies als
Build erfolgreich
geworden ist, Ordnung, hier sind wir 32 Sekunden. Wenn Sie dann zum Beispiel
in Ihre
Mod-Klasse gehen und einige
der Klassen
rot markiert sind , was
Initialisierer
zum Beispiel
Margaret sein könnte, machen Sie sich keine Sorgen, warten Sie
einfach eine Sekunde
bis alles aufgebaut ist und sich dann theoretisch
reparieren sollte. Das ist also so ziemlich
alles, was wir tun müssen. Nun kommen natürlich
die Codeänderungen,
die, ich würde nicht unbedingt sagen
zahlreich sein, aber es gibt einige
von ihnen. Beginnen wir zunächst ganz
oben in unseren Klassen. Der erste, bei dem wir einige Dinge ändern
müssen, ist, ich glaube daran, dass es nicht
die Sockelklasse ist, der schnelle Block sein sollte. Interessanterweise ist das, was wir
hier tatsächlich ändern
müssen was wir
hier tatsächlich ändern
müssen, der Text hier drüben. Die Klasse
für wörtliche Texte existiert also nicht mehr, aber glücklicherweise ist es sehr
einfach, dies zu ändern. Wir müssen nur
Textpunktliteral nennen. Und das ist so ziemlich alles, was wir hier noch einmal
tun müssen, Textpunktliteral, und jetzt haben
wir einen Fehler bei den Importen. Sie beheben das, wir können einfach die Kontrolle alt und O
drücken. Und das sollte auch das
beheben. Jetzt können Sie sehen, dass
die Random-Anzeige auch nicht funktioniert. Warum könnte das sein?
Nun, der Grund ist dass sich auch die Zufallsklasse geändert
hat. Wir verwenden derzeit
Java util random. Löschen wir einfach diesen Import. Und wenn wir dann
die Zufallsklasse erneut importieren, können
Sie sehen, dass sie tatsächlich Net Minecraft importieren will
, schöne Mathematik zufällig, zufällig. Wir haben tatsächlich eine
neue Zufallsklasse. Dies hat jetzt natürlich eine andere Funktionalität. Also müssen wir tatsächlich im Double folgendes tun
. Also hier in unserem nächsten Double werden
wir
in diesem Fall einfach nichts weitergeben. Und das
sollte auch in diesem Fall sein. Da gehst du. Das sollte okay sein. Wenn Sie also eine Methode haben,
bei der Zufall ein Parameter ist
, ist dies wahrscheinlich der Grund,
warum es nicht funktioniert. Wenn es immer noch die Java
util-Klasse von Zufall verwendet , ist
es ein wenig, es ist hier nicht die beste
Namenskonvention, um sie genauso wie die Java util zu benennen, aber das
wird in Ordnung sein. Aber das ist die
Zufallsklasse dort und das ist der schnelle Block und
das sollte in Ordnung sein. Nun wird eine der großen
Änderungen in unserem High-End-Zeug
liegen. Dieser sollte also
tatsächlich in Ordnung sein. Mehr Blockentitäten
sollten in Ordnung sein. Du kannst es natürlich
durchmachen. Hier. Wir haben nur eine SMS. Wieder einmal werden
dies Texte sein, die wörtlich sind und dann Alt, Control und O, und dann sollten keine Fehler
mehr vorhanden sein. Das ist also alles großartig. Sie können sehen, dass das meiste
von diesem Zeug tatsächlich
ziemlich gut werden wird. Die Klasse mehr Blöcke ist
ebenfalls korrekt. Das ist großartig. Die Wissenschaft ist auch gut. Die Blöcke sind also alle fertig. Einige Änderungen sind in den Befehlen
passiert. Wir werden
das in einem Moment sehen. Methode zur Deregistrierung hat sich
auch geändert, aber das ist in Ordnung. Wir werden nur die Texte
ändern , die vorerst wörtlich sind. Und dann noch einmal
kontrolliere Alt O. Und dann für diesen zuhause
Befehl das Gleiche. Wir werden sagen, Text wörtlich vor einem Tag und dann wieder Alt O
kontrollieren. Und da sind wir los. Die Befehle werden
vorerst geändert. Und was hier sehr
wichtig
ist, ist auch , dass Ihnen
natürlich in
der Beschreibung unten im
GitHub Repository
wieder alles zur Verfügung steht und auch
individuell ist Ihnen
natürlich in
der Beschreibung unten im
GitHub Repository
wieder alles zur Verfügung steht . Jetzt
sollten sich die Mod-Konflikte nicht ändern , da diese
alle im Grunde neu sind. Wählen Sie benutzerdefinierte Klassen
mehr oder weniger die Effekte aus, sie ändern
die Verzauberungen nicht, sie ändern die Entitäten nicht. In der Gecko-Lippe hat sich also etwas geändert und
das sind die Namen dieser
speziellen Methoden. Was wir also tun können, ist, dass wir einfach folgendes tun
können. Wir können das einfach auswählen
. Also kopiere ich
einfach den Namen hier drüben. Ich gehe zu meinem Konto kleines Paket von Drücke Control, Shift R und füge es ein. Und ich möchte
dies in allen Brunnen ändern , wo
wir im Grunde
sind und dieser Name
ändert sich hier in die Modellressource. Kurz gesagt, wir schreiben
das richtig da Sie
mehr Ressourcen erhalten. Wir werden einfach alle ersetzen. Und dann
wird dies in
allen unseren benutzerdefinierten Modellklassen behoben . Woher weiß ich, dass
dies die Veränderung ist? Nun, wenn wir nur die
mittlere Maustaste drücken, klicken Sie hier auf die animierte
GO-Modalmasse, wir können im Grunde die
verschiedenen Dinge sehen, das ist eigentlich im Modellanbieter. Ich glaube, sie gehen
Modellressourcen, Texturressourcen. Und das andere sind
die Animations-Resorts. Das ist also so ziemlich
genau das, was es ändert. Also
werden wir wieder dasselbe tun, Control Shift R auf
dem Kalenderpaket. Jetzt ändern wir
die Texturposition
in Texturressource . Das ist alles in Ordnung. Aber
ersetzen wir einfach das ganze Ego. Das wird in Ordnung sein. Und dann ist der
Speicherort der Animationsdatei auch das Gleiche. Wenn Sie dies durch
die Animationsressource ersetzen, legen Sie es ab und ersetzen Sie es. Jetzt sollten keine Fehler mehr in einer
unserer Modelldateien
vorhanden sein . Das ist auch in Ordnung und Sie können
sehen, dass sich das auch alles geändert hat, aber auch alles funktioniert noch. So genau wie Sie es den
tatsächlichen Entitäten wünschen
würden. Es gibt keine Änderungen
an den Entitäten. Es gibt eine Veränderung hier. Was ist das? Dies ist das Ende, von Autoren kontrolliert
werden kann. Werfen wir
einen Blick darauf, was das ist. Nun, ich bin mir nicht hundertprozentig
sicher, warum das beschreibbare hier nicht mehr vom Autor gesteuert werden
kann. Aber ehrlich gesagt, entfernen wir
einfach die
Add-Override und
hoffen wir einfach, dass es immer noch funktioniert. Das wird wahrscheinlich die beste Idee hier
sein. Und wenn es hier
um den Rest geht, sollte
alles immer noch
ganz gut funktionieren. Entitäten sind also auch fertig. Die Ereignisse sollten in diesem
Fall auch in Ordnung
sein, das ist großartig. Flüssigkeiten sind auch völlig in Ordnung. Und dann kommen wir zu dem Gegenstand. Der Artikel ist der erste. Wir sind einige
Änderungen passiert, aber auch nicht so verrückt. Obwohl die meisten Änderungen an dem Gegenstand
im Datentablet und
der Dowsing Rute stattfanden . Weil
wir wieder einmal einige Texte haben, so leicht genug Texte, die wörtlich hier Alt O
steuern, und dann das gleiche im Dowsing Rod Item hier
haben wir einen übersetzbaren Text, also das wird
Texte übersetzbar sein. Und dann auch hier haben statt neuer
übersetzbarer Texte Texte wir
statt neuer
übersetzbarer Texte Texte
übersetzbar und dann gleich hier Texte übersetzbar. Dann haben
wir hier noch einmal wörtliche Texte von Texten, Datenliteral Control, Alt O, und dann
sollten keine Fehler mehr vorhanden sein. Abgesehen davon sind die
restlichen Gegenstände in Ordnung. Es könnte etwas
in der Klasse „Mehr Items“ geben. Es gibt nichts in
der More Items Klasse. Also alles hier
funktioniert auch. Der Mischer sollte in Ordnung sein, abgesehen von diesen strukturellen
Merkmalen Mixin, wir können
dies genau hier löschen. Und dann auch sehr wichtig, lösche dies auch vom MC-Kurs
oder Mixed Race in, das wird nicht mehr benötigt. Jetzt haben die Bilder
das Bild seltsam? Ja, die Bilder
haben sich tatsächlich geändert. Es ist verrückt, ich weiß, aber jetzt ist es der Fall. Es wird nicht mehr als Malmotiv bezeichnet
. Es heißt jetzt das
Gemälde, eine Variante. Aber was wir tun können, ist, dass wir
im Grunde einfach
diese drücken Sie Control R drücken und diese
dann in
Malvariante ändern und dann einfach Alle
ersetzen sagen , und dann sollte
es in Ordnung sein. Und dann wollen wir das hier in ein Gemälde,
eine Variante
umwandeln , und dann
sollte es auch funktionieren. Die Tränke haben sich nicht geändert, und ich glaube, die Rezepte haben sich
auch nicht geändert. Also funktioniert alles hier
noch. Großartig. Die Bildschirme sind in Ordnung,
Geräusche sind in Ordnung, und dann
gibt es bis jetzt in Utah tatsächlich wer sich ändert. Einer von ihnen ist der Modifikator der
Beutetabelle. haben sich also
ein bisschen verändert. Jetzt verwenden wir das
Callback-Ereignis zum Laden
der Loot-Tabelle nicht mehr . Wir verwenden jetzt die Daten zu den Ereignissen der
Beutetabelle ,
ändern dieses Register, aber dies ist die Änderung, die
wir hier vornehmen müssen. Und dann ist die Änderung
hier, dass wir den Fabric
unzüchtigen Pool Builder nicht mehr verwenden. Wir verwenden jetzt den
Pool-Beutelpool-Datengenerator. Und dann verwenden wir hier Datengenerator des
Loot-Pools und erstellen dann genau hier ein neues
Gebäude. Dies wird
die Apply-Methode aufrufen und dies wird
sie als Pool-Methode aufrufen. Und dann können wir einfach die erste Zeile
hier
drüben kopieren und dann einfach
diesen Diego ersetzen und dann dasselbe hier. Dies ist anwendbar und dann heißt
breitenpool einfach Pool. Wieder einmal mit Funktionen namens Apply und diese heißt, nun, das sollte völlig gut
funktionieren. Wieder einmal, die Importe, werden
wir nur Control Alt O
drücken, und das sollte in Ordnung sein. Lassen Sie uns mit der
Modellregistrierung fortfahren, wo wir hier
tatsächlich ein Problem
mit dem Ereignis haben. Jetzt das Ereignis tatsächlich, wir können das
nur noch einmal importieren, aber Sie können sehen unsere
Registermethoden nicht mehr funktionieren. Die Register-Methode
hat sich also ein wenig geändert. Also kopiere ich einfach die neuen
Registermethodenparameter. Also haben wir jetzt drei Parameter. Wie Sie sehen können, ist
der Dispatcher gerade der
Server-Command Source Dispatcher. Das ist also alles, was wir noch einmal tun
müssen, natürlich steht Ihnen
dies
im GitHub-Repository und im
Einzelnen genauso zur Verfügung. Sie können also im Grunde genommen, wir können uns das dort ganz einfach
ansehen. Kopieren wir
die Parameter also noch einmal hier drüben. Du gehst in sie rein. Wir nehmen das
und ändern es einfach. Und jetzt sind normale Landebahn
anwesend, Control Alt O. Und dann sind die
Mod-Register auch in Ordnung. Aber dann gibt es
einige verrückte Veränderungen bei den Dorfbewohnern hier drüben. Nun wird die Änderung hier unten
darin bestehen, dass
wir anstelle eines Accessors vom Typ
Punktinteressen nur einen neuen Punkt ansprechen, neue Interessen hier drüben. Sie können also sehen, dass wir das
gerade erstellen. Wir müssen auch
das Setup der Poise-Methode nicht mehr aufrufen. Und dann hier im
Register Berufe,
während wir es wollen, wollen wir das Register
tatsächlich den
Dorfbewohner als
Berufsbaumeister bezeichnen , der erstellt. Diese ID mit einem neuen Bezeichner wie in unserem
MC-Kurs-Mod-ID und dem Namen zu
sehen. Und dann rufen Sie die Workstation auf, die den Typ
übergibt. Wir müssen
dies auch in einem Moment ändern. Und dann wollen wir auch
die Bark Sound-Events nennen , diese Entität arbeitet
Amara, die bauen, mit
Klammern
posieren und sie gehen und das sollte
so ziemlich genau das sein, was wir hier tun müssen. Für den Typ „Interessenpunkt möchten
wir dies
in ein Register E vom Typ „
Interessenpunkt“ ändern . Da gehst du. Und dann möchten
wir hier,
anstatt dies zu übergeben, einen Registrierungsschlüssel, einen Registrierungsschlüsselpunkt des
Interessenpunkts der
Registrierungsdaten sehen, Registrierungsschlüsselpunkt des
Interessenpunkts der
Registrierungsdaten um einen Schlüssel
mit einer neuen Kennung einzugeben. Wieder einmal, natürlich
MC, natürlich Mod Modell ID. Und dann
war die Explosion oder der Punkt dafür wichtig. Der Blastopore hier
ist der gleiche wie dieser Name hier
oder der Gipspunkt. Jetzt wollen wir auch
Control Alt O sagen , um die Importe
loszuwerden. Und dann wollten
wir in unserer
MC-Kurse-Mod-Klasse den Setup-Poise Call entfernen und
das sollte in Ordnung sein. Die Dorfbewohner sollten
jetzt auch arbeiten. Und jetzt nicht
zuletzt natürlich, die
Weltgeneration, was
hat sich hier geändert? Nun, eigentlich nicht zu verrückt. Im Setzling Generator haben
wir wieder die
unterschiedliche Zufallsklasse. Wenn wir also einfach den
Zufallsimport entfernen und erneut importieren, sollte hier alles gut funktionieren. Das ist also großartig. In den anderen Feature-Classes hat sich nichts geändert. Und dann sind die Änderungen nur in der Gen-Klasse, weil wir jetzt eine andere
Art haben, sie auszuwählen. Der Selektor ist also tatsächlich
jetzt mit Schlüssel alle anderen in
N gefunden . Es gibt also einen
kleinen Unterschied hier, aber wir können das einfach sagen
und dann ist es zum Beispiel Biomschlüssel Punkt Flugzeuge. Und dann
sollten wir hier
sagen können, Include by key biom, zum Beispiel
Schlüssel Punktdschungel. Das sollte also jetzt auch funktionieren. Das Gleiche
passiert hier, oder? Die Flugzeuge,
sagen wir Biomschlüssel, Flugzeuge für die
Blumen hier drüben und dann für den Baum, das
Gleiche, laden hier. Biom-Tasten Punktebenen. Und das sollte in Ordnung sein. Die Ursprungsration änderte sich nicht und auch der weltmoderne
Ursprung. Das Gleiche. Jetzt haben
sich die Strukturen wieder verändert,
weil wir deswegen sozusagen keine
netten Dinge haben können. Aber das wird in
Ordnung sein, keine Sorgen da. Beginnen wir also tatsächlich mit den Himmelsstrukturen hier drüben. Diese Typen strukturieren,
ich werde
nur noch einmal
den Inhalt davon kopieren und wir
werden uns das nur kurz ansehen. Also haben wir jetzt einen Codec. Was bedeutet der Codec? Am einfachsten ist es, dies
zu erklären, da es
im Grunde genommen
eine Art ist, eine Klasse aus einer
JSON-Datei zu lesen , die
so ziemlich der einfachste Weg ist , dies zu
betrachten. Jetzt wird
dies wieder verfügbar sein, und dies geschah auch erneut auf
telepathischem Boden. Wir können ihnen
also grundsätzlich dafür danken dies im Grunde sehr, sehr schnell aktualisiert haben. Und ich empfehle dringend,
das allopathische Grunzen zu
überprüfen , noch einmal
anzuhalten und alle neuen Kommentare zu
überprüfen,
die dort hinzugefügt
werden, die Ihnen
wahrscheinlich auch helfen sollten. Jetzt sieht der Mod-Strukturen
so aus. Jetzt könnten sie hier tatsächlich noch ein Problem
sein. Das sollte alles in Ordnung sein. Und dann intime Strukturen, im Grunde eine der folgenden. Jetzt wollen wir einen
Strukturtyp hier drüben. Dann lasst uns das hinzufügen. Also wollen wir das, dies
ist eine Register-Methode. Die Register-Methode
sieht so aus. Der Kurs MOD oder das
ist MC gleich MOD Diego. Und dann löschen Sie einfach alle
Eingaben, die nicht
mehr funktionieren und das
sollte ziemlich gut sein. Sie können sehen, dass die
Codeänderungen nicht so verrückt sind, aber es gibt auch
Jason-Änderungen, die wir tun können, ich glaube schon weil dies
alles sein sollte , was wir hier ändern
müssen. Ja. Wir können grundsätzlich in
die angrenzenden
Akten gehen und uns diese auch ansehen. Dies wird also natürlich die MC-Kursmerkmale und -dateien
der Weltgenschaft sein. Das erste, was wir tun, ist, dass wir diesen
bestimmten Ordner umbenennen
müssen konfigurierte strukturelle Feature wird jetzt nur Struktur genannt. Struktur. Jetzt
hat sich der Inhalt auch ein wenig verändert. Werfen wir einen Blick auf das. Aber zuallererst möchten
wir
den Konflikt hier entfernen ,
damit er nur den
Speicherpool und die Größe inline hat. Und dann möchten
wir auch die maximale
Entfernung vom Zentrum hinzufügen. Also dieses hier
möchten Sie auch drei weitere Dinge hinzufügen. Und das wird sein, dass
wir im Grunde das
Summgeräusch durch die absolute Höhe der
Oberflächenstrukturen ersetzen . Wir können jetzt auch
innerhalb der JSON-Datei definieren und
beginnen, diese hier in der Höhe abzubilden. Jetzt müssen wir dasselbe für alle angrenzenden Dateien tun. Und was wichtig ist, ist, dass
wir
für das angrenzende einzige Haus dieses
hier oben in Stichsäge
umwandeln wollten , das ist
sehr wichtig. Dann entferne die
Konflikte noch einmal, AMA in dieser Entfernung von Mitte hier unter der Größe. Und jetzt wollen wir
vier verschiedene Dinge hinzufügen das geschickte Geräusch
verändern. Und das wird auch hier der
US-Expansionshack sein. Das ist sehr wichtig
, dass dies im Grunde genommen
benötigt wird , wenn Sie
die Stichsäge genau hier benutzen. Das Gleiche hier. Ich
ändere das einfach. Du gehst, vergiss nicht, das Komma hier
hinzuzufügen. Das sind sie. Da gehst du. Ersetzen wir das
Summgeräusch hier drüben. Und dann natürlich noch einmal
die maximale Entfernung vom Zentrum. Und das sollte auch in Ordnung sein. Nicht zuletzt ändert
die Speicherplattform oder Plattform
den Typ in Stichsäge, beseitigt die
Konfiguration hier, Entfernung von der Mitte und
platziert dann das
Anzeigengeräusch hier
. Da gehst du. Und das sollte
so ziemlich alles sein, was wir in der strukturierten
Spur von uns tun müssen . Lead-Strukturen sollten
jetzt völlig gut funktionieren. Und ich glaube, wenn man sich das ansieht, sollte
dies alles wie große Veränderungen sein. Es gibt noch eine weitere Änderung,
die sehr nervig ist, und zwar mit
den aktuellen Dateien genau hier. Es gibt eine Abwechslung für die Tür. Also haben wir hier eine Kirschblüten-Tür und diese
hier. Und sie haben sich auch verändert. So haben sich sowohl der
Block die JSON-Datei als auch die
JSON-Dateien des Blockmodells für die
Türen geändert. Wir hatten vier von ihnen, zwei für
den unteren, zwei für die Spitze. Und jetzt gibt es
tatsächlich vier für jeden. Es gibt also vier untere
und für die Top. Was wir also tun können,
ist, dass wir
den ganzen Weg zu
den externen Bibliotheken gehen können den ganzen Weg zu
den externen Bibliotheken , um genau hier, Netto-Mikroprojekte,
so weiter und so weiter. Unter den Vermögenswerten Minecraft können
wir zunächst in die
Blockzustände gehen und über die Akazientür kopieren, in diesem Fall R1. Also lass uns das einfach machen. Da gehst du. Gehen wir wieder nach unten und gehen
wir zum Modellblock. Und Sie können
hier die Akazientür sehen, plötzlich
gibt es acht von ihnen. Es ist eigentlich wahnsinnig. Ich weiß nicht, warum sie es
geändert haben, aber das ist okay. Also kopiere die auch. Und dann können wir
sie eins nach dem anderen ändern. Also diese hier, die Akazientür, im Grunde, alles was wir nur tun müssen, ist, dass wir nur ein Mikrofon
in
MST-Kurs wechseln hier
nur ein Mikrofon
in
MST-Kurs wechseln, Alle ersetzen und dann Akazie auswählen
und diese ändern zur Kirschunterstrich blühen. Ersetze alle. Da gehst du. Und dann können wir die
Kirschblüten-Tür hier löschen. Drücken Sie erneut die Umschalttaste F6, um Kirschblütenunterstriche
umzubenennen. Und dann gibt der
Block an, dass man geändert wird, aber natürlich kommt dann das Richtige und das
ist die Modelldatei. Jetzt können wir auf den Blog-Ordner
klicken, die Umschalttaste Control R
drücken und dann keine
Kirschblüte,
sondern tatsächlich Akazie
in Kirschblüte ändern . Man kann sagen, es hat alles ersetzt. Ja, bitte. Und dann können wir
das Gleiche tun. Gehe wieder zu blockieren,
Control Shift R, und dann wollen wir
einen Minecraft MC-Kurs ändern. Jetzt müssen wir sehr
vorsichtig sein, um nicht nur alles zu
ersetzen,
weil es auch die
Eltern ersetzen wird. Und das wollen wir nicht. Wir wollen nur unten
und oben
ändern . Du siehst unten. Ich kann Top ersetzen. Ersetzen. Jetzt
haben wir ein Eltern-Nr. Unten. Ja. Oben. Ja. einmal, Elternteil Nr. Unten. Ja, top. Ja. Bitte stellen Sie sicher, dass
Sie dies richtig machen. Andernfalls wird
ein Fehler angezeigt oder er wird nicht richtig
angezeigt. Aber bitte achten Sie darauf, wenn Sie es so
austauschen, oben und dann wieder unten
und oben. Und jetzt haben wir
nur Eltern, also sind wir jetzt fertig. Und jetzt müssen wir nur die Namen hier
ändern. Erneut, Shift
F6, um sie umzubenennen und dann immer die
Akazie in Kirschblüte zu ändern. Und dann glaube ich, dass es uns hier drüben gut gehen
sollte. Nachdem wir das gemacht haben. Wie Sie sehen können, ist
eine kleine Schleife mühsam. Hoffentlich haben Sie keine 20 verschiedenen Türen
hinzugefügt. Ansonsten. Ich meine, es tut mir leid. Es ist was es ist. Es wird wahrscheinlich
nur ein sehr langweiliger
Nachmittag für dich sein , dann all das
umbenennst,
weil mein Gott
das ist so nervig,
aber es ist was es ist. Türen haben sich geändert und
das wird gut werden. Aber jetzt können wir die
alten Jason-Akten entfernen. Und damit
sind wir endlich fertig. Vorerst. Lass uns das Spiel öffnen
und sehen, ob es funktioniert. Oder wir haben ein weiteres
zufälliges Häkchen hier drüben. Dies liegt natürlich noch
einmal dem Zufall, richtig, entfernen Sie
einfach den Import
Alt und Enter darauf, und dann
sollte alles gut funktionieren. Mal sehen und lass uns weitermachen. Mal sehen, ob es
noch andere Pfeile gibt. Es könnte wieder ein weiteres
geplantes Häkchen geben, derselbe Fehler hier, überhaupt
keine Sorgen. Lasst uns einfach diesen
Alton Enter nach dem Zufallsprinzip entfernen, und dann lass uns weitermachen und jetzt denke ich, dass es uns gut gehen
sollte. Okay, also hat Stoff angefangen. Lasst uns also einfach reingehen und sehen,
ob wir eine neue Welt erschaffen können. Und das sieht gut aus. Wenn wir das erreichen, wird
das in Ordnung sein. Und lass uns einfach eine
neue Welt erschaffen und mal sehen. Okay, also hier sind wir wieder
in Minecraft. Also lasst uns zuerst einen
Blick darauf werfen und da haben wir es. Alles ist noch verfügbar. Werfen wir also nur einen
Blick darauf, ob einige
dieser Dinge immer noch
so funktionieren, wie wir es erwarten würden. Lass uns eine Werftrute holen. Holen wir uns ein
Datentablet hier drüben. Mal sehen, ob wir
noch ein paar Erze finden können. Und da haben wir es. Wir haben einige Erze gefunden und es wurde auf
dem Datentablet gespeichert. Das scheint also alles gut
zu funktionieren. Lasst uns die Entitäten spawnen. Sie sind auch immer noch in Ordnung. Sie scheinen ziemlich gut zu
reagieren. Werfen wir dann einen Blick auf
die Recalc und den Blaster. Das ist immer eine Sache, die ein bisschen
interessant
ist, oder? D-Block-Entitäten wenn
sie noch funktionieren. Lass uns etwas cool werden. Lasst uns eine Pick Axt holen. Und dann nicht zuletzt, wir uns Sorgen um Kalziumbarren und mal sehen, ob das
auch noch funktioniert. Und tatsächlich funktioniert es immer noch. Ich hab Kaninchen gefunden. Ich denke, du hast ein
kleines Problem hier drüben. Okay, los geht's. Das Orakel kann
x auswählen, funktioniert auch immer noch. Das funktioniert also auch immer noch gut. Dann schauen wir uns mal an, ob wir ein
Link-Biom und y-naught
finden können . Und mal sehen, ob das ein paar Dinge für uns
bringt. Also sollten wir herausfinden
, dass das nicht das Richtige ist. Wir wollen mehr mit dem
Zuschauer gehen. Da gehst du. Wir finden ein paar
der Bäume hier drüben. Und vielleicht
finden wir auch ein paar unserer Blumen. Und in der Tat können wir,
da haben wir es. Interessanterweise widerstehen sich also nur ein paar unserer
Blumen als Venture-Modell
interessant. Eventuell mehr. Da gehst du. Und dann haben wir rosa Rosen. Also
scheint alles hier immer noch so zu funktionieren,
wie man es erwarten würde. Lassen Sie uns tatsächlich auch
eine Struktur ausfindig machen , damit wir diese haben. Das sollte also MC-Kurs sein. Mal sehen,
Haus zählen und es gibt einen Grafen Maos zur Verfügung
und da haben wir ihn. So
funktioniert alles immer noch völlig gut, selbst mit unserer
benutzerdefinierten Schleife hier drin, was genau das ist, was
Sie sehen möchten. Also ja, so
einfach kann
es sein,
Fabric auf 119 zu aktualisieren. Okay, und das schließt den Kurs
ziemlich ab. Vielen Dank fürs Zuschauen. Ich hoffe, du hast das nützlich gefunden und du wirst
etwas Neues lernen, wenn du es tätest, würde dich sehr über
eine Rezension von dir freuen. Ansonsten hoffe ich, dass ich Sie jetzt
in möglichen zukünftigen Vorträgen sehe , derzeit ist
nichts mehr
geplant, aber wer weiß, es könnte ein oder zwei zusätzliche Dinge geben
, die auftauchen könnten. Ansonsten hoffe ich,
Sie irgendwo anders zu sehen, vielleicht auch in zukünftigen Kursen. Also ja.