So erstellen Sie einen Audiovisualisierer durch das Programmieren mit Javascript | Yeti Learn | Skillshare

Playback-Geschwindigkeit


1.0x


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

So erstellen Sie einen Audiovisualisierer durch das Programmieren mit Javascript

teacher avatar Yeti Learn, Design | Code | Animate

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Einheiten dieses Kurses

    • 1.

      Einführung

      0:41

    • 2.

      Einrichtung

      1:58

    • 3.

      HTML-Vorlage

      1:22

    • 4.

      Vervollständige das HTML

      1:25

    • 5.

      Microphone.js

      4:06

    • 6.

      Mikrofondaten erhalten

      5:39

    • 7.

      Erstelle die Ballklasse

      5:44

    • 8.

      Bälle generieren

      7:57

    • 9.

      Fallende Bälle

      3:55

    • 10.

      Springbälle

      12:12

    • 11.

      Audioinput erhalten

      7:08

    • 12.

      Audiovisualizer 2

      0:42

    • 13.

      SET-UP

      1:27

    • 14.

      Erstelle die Figuren

      8:36

    • 15.

      Kreisbewegung

      5:10

    • 16.

      Größe mit Mikrofoninput ändern

      7:11

    • 17.

      Musik spielen

      0:29

    • 18.

      Teleport hinzufügen

      5:20

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

Von der Community generiert

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

63

Teilnehmer:innen

--

Projekt

Über diesen Kurs

Warum dieser Kurs?

Wir als Yeti-Team arbeiten daran, professionelle Online-Bildungslektionen zu erstellen. Wir versuchen, es so einfach wie möglich zu halten. Du wirst die besten Praktiken für Javascript finden.

Dieser Kurs wird sowohl mit Windows- als auch mit Mac-Nutzern erstellt, was bedeutet, dass du vollen Nutzen erhalten kannst, ob du ein Windows- oder Mac-Nutzer bist.

Alle Teilnehmer:innen haben Zugriff auf die F & A-Foren, in denen unsere Kursleiter:innen, Unterrichtsassistenten und die Community bereit sind, deine Fragen zu beantworten und deinen Erfolg anzufeuern.

Für wen ist dieser Kurs geeignet:

  • Programmierer – Entwickler

  • Designer

  • Freelancer

  • Animatoren

  • Grafikdesigner

  • Wer sich mit einer Programmiersprache wohl fühlt

  • Alle, die sich für Animationen, Visuals, Algorithmen und Kunst interessieren

Triff deine:n Kursleiter:in

Teacher Profile Image

Yeti Learn

Design | Code | Animate

Kursleiter:in

Get a professional service from beginning to advanced level.

Team Yeti are working for preparing courses that makes you an expert in a specific area. While doing this, we are trying to build the most intensive courses for not wasting your time. For that reason, our contents are simple, compact and intense.

Whether you want to learn a new skill, or you want to improve yourself on some area, we can guarantee that our courses will serve you the quality that you are looking for. Because during the process, you will be given a professional education by Yeti Learn team.

All courses can be reachable from anywhere and anytime you want. Besides, we are answering your questions 24/7.

Vollständiges Profil ansehen

Level: All Levels

Kursbewertung

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

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

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

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

Lerne von überall aus

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

Transkripte

1. Einführung: Willkommen zurück in diesem Bereich. Wir werden einen fantastischen Audiovisualisierer , der auf jeden Audioeingang reagiert. Wie Sie sehen können, springen die Bälle, wenn ich spreche, wenn ich clippe oder wenn ich Musik spiele. Und dann bist du immer noch gut. Wenn du dazu bereit bist. Gehe zum nächsten Video, um zu beginnen. 2. Einrichtung: Wie immer starten wir von der Kommandozeile aus. Also lass mich meins mitbringen. Ich bin gerade auf dem Desktop. Gehen wir in den Projekte-Ordner, in dem ich meine Projekte speichern und speichern werde. Wenn ich also hier ls tippe, kannst du dir unsere alten Projekte ansehen. Erstellen wir also hier einen neuen Ordner. Und nennen wir es Audiovisualisierer. Geh in den Ordner. Lass uns einfach großartige Akten machen. Also brauchen wir wie immer eine HTML-Datei. Dieses Mal. Da wir die Mikrofondaten erhalten, möchte ich eine neue Datei namens microphone JS erstellen. Und schließlich brauchen wir eine neue Datei für die Visualisierung. Nennen wir es Visualizer dot js. Okay, wir sind startklar. Wenn Sie sich an den Befehl erinnern oder diesen Ordner in Breitencode öffnen. Wenn Sie in dieser Version wie ich verwenden, können Sie einen Befehl wie diesen eingeben. Oder wenn Sie eine normale Version des Risikocodes verwenden, können Sie einfach einen Befehl namens Raumzeit verwenden. Wenn wir diesen Befehl eingeben, wird der Ordner im West-Code geöffnet , sodass wir loslegen können. 3. Html-Vorlage: Beginnen wir das Projekt mit dem Import HTML5-Vorlage. Wie immer. Also hier werden wir dieses Mal JavaScript-Dateien verwenden. Lassen Sie uns zunächst den Titel ändern. Deshalb wollen wir diese beiden JavaScript-Dateien importieren , HTML Boilerplate. Also werde ich ein neues Skript erstellen und ein Taumelmikrofon-JS und auch Visualizer-JS machen . Denken Sie also daran, wir werden die Mikrofonklasse im Visualizer verwenden. Die Reihenfolge ist also wichtig hier. Das Mikrofonskript sollte ein Bogen aus Visualizer-Skript sein Okay, also fangen Sie bitte an. Gehen wir in die Mikrofon-JS-Datei und wir speichern sie. 4. Vervollständigen des HTML: Diese Skript-Tags sollten nicht auf dem Hut sein, aber sie sollten sich im Hauptteil befinden. Kurz nachdem wir unzählige hatten, oder? Ich nenne den Ausweis von Michael war unzählig. Eine weitere Sache, die wir hier hinzufügen sollten, ist die CSS-Datei. Wir hätten es fast vergessen, aber es gibt eine andere Möglichkeit, Dateien hinzuzufügen. Also kannst du es drinnen mit Gott machen. Wir können also auf dieses neue Dateisymbol klicken und Sie können einfach den Namen eingeben. Okay, und lass uns diese CSS-Datei auch so verlinken . Okay, wir müssen also keine neuen Dateien über die Befehlszeile erstellen. Vielleicht ist das ein einfacherer Weg. Jetzt haben wir CSS - oder JavaScript-Dateien und unser Code wurde in HTML erstellt. Also können wir anfangen, Code zu schreiben. Mikrofon, Jess. 5. Microphone.js: Anstatt die gesamte JS-Datei des Mikrofons zu schreiben, kopiere ich einfach den Code und füge ihn hier ein. Also habe ich das im Internet gefunden , um Mikrofondaten zu erhalten. Dies ist eine Standardvorlage , mit der Sie alle Ihre Audiovisualisierer verwenden können . Wir müssen die Details hier also nicht genau kennen . Es werden nur die Mikrofondaten abgerufen, der Audioeingang. Sie müssen hier eigentlich nichts ändern. Oder vielleicht willst du dich ändern. Möglicherweise möchten Sie die FFT-Größe ändern, wenn Sie eine gewisse Abwechslung in der Ausgabe wünschen. Lassen Sie mich einfach schnell erklären, was wir hier haben. Dies ist nur eine Gelegenheitsklasse namens Mikrofon. Hier haben wir den Konstruktor. Die erste Eigenschaft identifiziert also , ob das Mikrofon initialisiert ist oder nicht, weil wir darauf warten wollen , wenn es noch nicht initialisiert ist, okay? Und am Ende von allem wird es wahr werden. Und dann bekommen wir einfach die Benutzermedienfunktion. Und denken Sie daran, dass es immer noch da ist, wenn es religiös ist. Wir haben hier also keine Drittanbieter-Bibliotheken. Und anscheinend gibt diese Methode ein Versprechen zurück, weil sie dann nach get user media Funktion verwendet, die im Grunde auf diese Zeile wartet. Und wir werden rennen, nachdem es etwas zurückgegeben hat. Wenn es also erfolgreich zurückkehrt, werden diese Zeilen aufgerufen. Oder wenn es einen Fehler gibt, wird der Fehler einfach im Browser gemeldet. Okay? Und wenn es fertig ist, werden diese Zeilen aufgerufen. Wir haben also Analysator hier. Und diese Zeilen entscheiden über FFT-Größe, Pufferlänge usw. Ändern Sie abschließend die Eigenschaft initialized auf true, nachdem Sie eine Verbindung zum Mikrofon hergestellt haben. Andernfalls wird nur der Fehler im Browser gemeldet. In Ordnung, also haben wir hier auch zwei Methoden. Der Erste holt die Samples. Es ist also das Ergebnis , das wir nutzen werden. Das zurückkehrende Objekt ist ein Array und seine Länge beträgt die Hälfte der FFT-Größe. Also haben wir eine 50er Größe 512 deklariert. Hier sind Beispiele. Die Array-Länge wird 256 sein, okay? Es ist also immer die Hälfte der FFT-Größe. Und wir werden diese Beispielumfrage bei der Visualisierung des Audios verwenden . Okay, also denk darüber nach. Wir können 256 Bälle haben, bei denen jeder Ball auf ein Element in diesem Array reagiert. Okay? Sie werden besser verstehen, wenn wir es tatsächlich tun, es tun und in die Praxis umsetzen. Und schließlich haben wir die Volume-Funktion, die Womb-Methoden erhält. Und ich glaube, es ist ziemlich selbsterklärend. Diese Methode gibt die Lautstärke der Audioeingänge zurück. 6. Holen Sie sich Mikrofon Daten: Jetzt, wo unser Mikrofon bereit ist, können wir mit dem Schreiben des Codes in der Visualisierung beginnen. Öffne diese Datei. Das erste, was ich hier tun möchte, ist Ihnen die Daten zu zeigen, die wir vom Mikrofon erhalten. Um das zu tun, erstelle ich eine neue Variable, das Mikrofon. Aus der Mikrofonklasse. Wir hatten keine Parameter im Konstruktor. Wir können ein neues Mikrofon oder ein Objekt wie dieses erstellen. Lassen Sie uns auch diese Animationsfunktion erstellen. Weil wir die Mikrofondaten kontinuierlich in Echtzeit abrufen wollen. Und wie Sie wissen, müssen wir einen Animationsframe anfordern , um diese Funktion zu animieren. Und wir müssen es auch irgendwo im Code aufrufen. Also zwischen diesen beiden Zeilen wird alles, was wir schreiben, in jedem Frame kontinuierlich aufgerufen . Also möchte ich nur die Mikrofondaten in die Konsole einloggen , damit wir sehen können, was es genau ist. Aber zuerst möchte ich überprüfen, ob Mikrofon bereits initialisiert ist. Denken Sie also daran, wir haben eine Eigenschaft und es ist wahr, als Eris Dinge im Mikrofon erledigt hat. Wenn das Mikrofon initialisiert ist, holen wir uns einfach Samples mit der Samples-Funktion. Und das hier. Im Moment haben wir uns einfach bei der Konsole angemeldet. Also speichere ich das und gehe einfach in index.HTML. Rechtsklick auf Mit Live-Server öffnen. Wenn Sie diese Option nicht haben, können Sie die Live Server-Erweiterung jederzeit von Erweiterungen in VSCode herunterladen . Das haben wir schon einmal in diesem Kurs gemacht. Deshalb werde ich die Schritte jetzt nicht erklären. Aber wenn Sie die Live Server-Erweiterung installiert haben, können Sie sie einfach so öffnen. Und lass es mich einfach auf diesen Bildschirm bringen. Und ich werde auch den weißen Bildschirm so sehen. In Ordnung, unser Code läuft also auf diesem Port. Schauen wir uns einfach die Konsole an. Wir erhalten kontinuierlich Mikrofondaten. Und es gibt viele, viele Proben. Und es läuft einfach ununterbrochen, weil ich spreche, oder? Und das benutzt auch meinen Mikrofonbrowser. Im ersten Schritt. Wenn Sie Live Server öffnen, Sie möglicherweise aufgefordert, die Verwendung des Mikrofons zuzulassen, okay? Und sobald Sie es akzeptiert haben, können Sie den Audioeingang verwenden. Okay, schauen wir uns das eine Protokoll hier an. Es ist also ein Array. Wie wir besprochen haben. Die Länge beträgt 256 und die Werte sind nur ein paar kleine Werte. Diese Werte sind, jeder von ihnen repräsentiert etwas. Ich bin nicht wirklich ein Sound-Experte. Und ich weiß nicht, ich weiß eigentlich nicht, was diese Werte sind. Aber Sie können sich vorstellen, dass es sich um Frequenzen oder Signale handelt , die den Klang genau an diesem Punkt erklären. Wir können diese Werte verwenden , um den Sound zu visualisieren. Und diese Werte sind wirklich kleine Werte. Es gibt etwa zwischen minus vier und plus vier. Und sie sind normalerweise weniger als eins. Es können also auch negative Werte oder auch positive Werte sein. Und ich glaube, während die Werte steigen. Jetzt bekommen wir ein paar interessante Sounds. In Ordnung? Wenn ich also nicht spreche, die Werte 0. Zum Beispiel gibt es zu diesem Zeitpunkt keinen Audioeingang. In Ordnung? Jetzt, da wir wissen, wie unsere Beispieldaten aussehen, werden wir diese Daten verwenden. Wir können es natürlich vorverarbeiten. Aber irgendwann werden wir diese Daten verwenden , um einige visuelle Elemente zu erstellen. Okay, also lasst uns anfangen, unseren Handel zu nutzen , um ein paar Bilder zu erstellen. 7. Erstelle den Ball: Beginnen wir mit dem Zeichnen unserer Bilder mit der Erstellung von Karl Marx. Wie üblich erhalten wir Element nach ID aus der HTML-Vorlage. Lass mich die ID meiner Farben überprüfen. Kopieren wir es und fügen es hier nur um sicherzugehen, dass die Namen übereinstimmen. Lassen Sie uns auch CTX erstellen, diese Kontextmethoden. Und wir wollen 2D. Und schließlich können wir das Gewicht an die Fensterbreite und Fensterhöhe anpassen . In Ordnung. Warum sind Anpassungen jetzt bereit? Wir können anfangen, die erste Klasse zu erstellen. Also am Ende, was wollen wir von unzähligen Schrauben, richtig? Oder Abkürzungen. Ich nenne sie einfach Bälle , weil sie springen werden. In diesem Projekt. Deshalb erstelle ich eine Klasse namens Ball. Und wie immer werden wir einen Konstruktor dieser Klasse haben. Er erhält zwei Parameter, x und y. Diese Werte sind die anfänglichen x- und y-Positionen des Balls , den es spawnen wird. Also lass uns einfach diesen Punkt x Punkt y zuweisen. Also warum wollen wir hier ist, also werden wir eine Schale erstellen , die ein vollständiger Kreis ist. Und wenn Sie sich erinnern, verwenden wir CTX augmented. Was wir hier tun müssen, ist der Radiuswert. Deshalb brauchen wir auch einen Radius. Aber ich möchte es nicht von Parametern bekommen weil wir nur alle Radien der Bälle machen wollten. Also verwende ich einfach einen Standardwert von acht. Dann entscheiden wir uns auch für die Farbe. Du kannst ändern, was du willst. Sie können Blau, Rot, Grau verwenden. Und ich denke, ich werde das auch später erklären, aber ich möchte nur, lass uns diesen Teil einfach überspringen. Fügen wir diese Eigenschaft hinzu. Und was ich hier brauche ist Jump für SSH und auch falsch. Okay, denn Bälle werden fallen und sie werden laut dem Audio in Detroit springen. Aber in der Anfangsphase, zu Beginn des Projekts, werden die Bälle fallen. Sie werden also von oben beginnen und vor allem fallen. Deshalb möchte ich die Fallkraft nicht auf 0 setzen , sondern einfach auf 0,1 setzen. In Ordnung? Wo ich mit dem Konstruktor fertig bin, fügen wir nur eine weitere Eigenschaft hinzu, aber ich werde sie hinzufügen, wenn die Zeit stimmt. Also müssen wir wie immer auch Methoden zeichnen. Es beinhaltet, dass sie FillStyle nimmt. Ich werde dies dieser Farbe zuweisen denn wenn wir die Farbe ändern wollen, der Ball auch diese Farbe. Also sollten wir sagen begin Pat sollte auch CTX-Balken sagen, um einen Kreis zu zeichnen. Also dieser Punkt x Balken, x-Wert, tut mir leid, dieser Punkt y für y-Wert. Das versuchen sie für den Radius zu verwenden. Der Startwinkel ist 0 und der Winkel wird Pi mal zwei sein , da wir immer einen kompletten Kreis zeichnen , der wie eine Schüssel aussieht. Schließlich können wir CTX-Pille sagen. Okay, du solltest also schon mit diesen Zeilen vertraut sein. Wir haben diesbezüglich schon viele Übungen gemacht. Was wir also brauchen, was wir sonst noch brauchen, sind zwei weitere Methoden. Also wollen wir nur eine Formatierung und einen Sprung. Das war's für die Ballklasse. Und den Kontext der Fall- und Sprungmethoden werden wir später schreiben . 8. Bälle generieren: Okay, wir haben die Ballklasse. Generieren wir den Ball so, dass wir sie auf Säulen sehen können. Um das zu tun, brauchen wir ein Array. Am Anfang wird es leer sein. Und wir brauchen eine Funktion , die die Bälle erzeugt. Ich werde hier die Pfeilfunktion verwenden. Okay? in dieser Funktion zunächst dieses Protokoll löschen, Lassen Sie mich in dieser Funktion zunächst dieses Protokoll löschen, damit wir es nicht sehen. Also lass uns putzen. Schließe die Konsole. Okay. Also im Januar falsch, diesmal werden wir etwas anderes machen. Ich möchte die Länge des balls Arrays nicht statisch definieren. Ich möchte also nicht einfach einen 100-Boss erstellen. Sagen wir mal. Stattdessen möchte ich die Bälle kreieren, die auf Carlos Fuß reagieren . Also was ich meine ist, wenn Kohle war, warum weißt du , dass ich zum Beispiel weniger Bälle zum Ante haben sollte, oder? Wenn wir jetzt ein größeres Commonwealth haben, können wir 100 Anleihen haben. Okay? Irgendwann wird das Land der Kugeln also dynamisch sein. Um das zu tun, weisen wir einfach zu. Erstellen wir einfach eine neue Variable, Entfernung. Dadurch wird der Abstand zwischen den einzelnen Kugelrastern verdeutlicht. Also möchte ich einfach nur eine Party machen oder den Anfang machen. Und wir werden einfach berechnen, wie viele Bälle ich verwenden sollte. Carlos Breite geteilt durch Entfernung. Okay? Was macht Sinn, oder? Da B eine Breite von eintausend hat, wollen wir , dass ich müde bin. Also sollten wir etwas um uns haben. Ich bin müde Teeschalen, oder? Weil es Fälle geben wird und auch das Gewicht des Balls. Aber ich sage hier nur minus zwei weil wir Abstand vom Anfang und auch am Ende haben wollen . Die Anzahl der Bälle wird so berechnet. Okay, jetzt reagiert es auf die Kawasaki. Wenn wir die Breite des Browsers ändern, ändert sich die Anzahl der Bälle. Und was wir brauchen, ist eine for-Schleife. Und sagen wir einfach ich für Iterator. Und wir wollen das wiederholen. Wir wollen die Menge der Bosch-Säge identifizieren, dass dies die Anzahl der Maulwürfe mal laufen wird. Und in der Herbstschleife werde ich einfach sagen, dass Bälle r1 drücken, um einen neuen Ball zu kreieren und ihn in die Schalen zu schieben, oder? Also rufen wir einfach einen neuen Ball an. Und wir müssen hier nur x- und y-Werte angeben. Für X- und Y-Werte. Für y ist es selten wirklich einfach. Wir können einfach einen statischen Wert angeben. Zum Beispiel 500. Okay? Aber welcher x-Wert? Wir müssen die Entfernung wieder nutzen. Also sollte der erste Ball Distanz sein, oder? Wenn ich also verspätet sage, sollte x verspätet sein. Der zweite Ball sollte plus eine weitere Distanz sein, oder? Also 2R2 plus Türkei, die Ausstellung des zweiten Balls sollte 60 sein. Wenn ich also Distanz plus I mal Entfernung sage, glaube ich, dass es im Kosmos einen Boss direkt nebeneinander geben wird. Während des Kalten Krieges wird es also sowohl Lücken geben auch zwischen den einzelnen Bällen. Das wollen wir. Und wenn ich das speichere, passiert nichts, weil wir noch keine generische Ballfunktion aufgerufen haben. Wenn ich es so nenne, werden die Bälle generiert, aber wir können sie noch nicht sehen , weil unsere Farbe was ist? Eigentlich möchte ich nur den Hintergrund in Schwarz ändern, aber lass es uns zuerst überprüfen. Durch Ändern der Farbe der Bälle. Haben wir den Ballsong, Carlos? Bin ich nicht ganz. Das liegt daran, dass wir die Eier noch nicht gezogen haben. Also generieren wir einfach den Boss, aber wir haben die Draw-Funktion nicht aufgerufen. Was wir also tun müssen, ist Ball für jeden Ball zu sagen, ich iteriere im Grunde genommen jeden Ball in diesem Array. Und ich nenne bold eine Draw-Funktion. Jetzt haben wir die Eier auf der Leinwand. In Ordnung? Unsere Funktion funktioniert also. Wir müssen die Wände hier nicht zeichnen. Ich lösche es einfach. Und ich werde auch wieder die Farbe Weiß machen. Und lass uns in style.css gehen, sehr realer Lead, nur Hintergrundfarbe. Also hier möchte ich alles mit Asterix auswählen. Passen wir einfach Rand und Abstand 0 an, Box-Größe, Rahmen-Box. Das sind also nur Standardwerte. Wir machen dieses Array fast in jedem Projekt. Und auch. Also jetzt, wenn Sie es bemerken, haben wir Balken auf der rechten Seite. Also das ist einfach, das macht diese Zeilen Kumpel scrollbar. Das wollen wir nicht. Deshalb sage ich einfach overflow. Mal sehen. Also gehen die Bars. Zum Schluss wollen wir uns einfach ändern. Die Säule war blanker Boden, geschliffen, schwarz oder draußen. 9. Fallende Kugeln: Okay Leute, lasst uns die Eier ziehen und sie fallen lassen. Also zunächst einmal, animieren Sie die Funktion. Wenn das Mikrofon initialisiert ist, möchte ich die Bälle ziehen. zu tun, heißt das Balls Array. Und benutze für jede Methode. Hier, lass uns einfach einen Ball passieren , der die Bälle wiederholt. Und ich wollte nur sagen , dass der Ball gezogen wurde. Wenn wir das tun, sieht man die Bälle im Koma. Und beachten Sie, wenn wir die Säulengröße ändern, die Anzahl der Kugeln, Ketten, so dass wir beide versuchen, Kühe zu bekommen. Und da wir hier eine Animation machen werden, möchte ich nur die Kegel in einem Reframe löschen. Ich werde das tun, indem ich die Clear-Rect-Funktion verwende. Übergibt x und y von 0 bis hin zu Carl Woese, Breite und Höhe. Sie sehen also, dass wir nette Bindungen haben. Wenn wir sie auch fallen lassen. Kurz vor der Ziehung. Wir können sehen, wie die Eier fallen. Aber zuerst sollten wir auch nach Funktion suchen. das zu tun, verliere ich Herbstformen und wechsle die Bälle. Warum? Eigentlich werde ich sagen, dass dieser Punkt y plus dieser Punkt-Vollkraft entspricht, wodurch der y-Wert des Balls in jedem Frame aktualisiert und die volle Kraft hinzugefügt wird . Wenn ich das speichere, sieht man, dass die Bälle nur langsam ziehen. Lassen Sie uns das natürlicher aussehen. Im wirklichen Leben, wenn etwas fällt, nimmt seine volle Kraft zu, oder? Wegen der Schwerkraft. Deshalb werde ich auch die gesamte Kraft in jedem Frame um 0,05 erhöhen . Jetzt können Sie also einen natürlicheren Effekt sehen. Aber irgendwann sollte der Ball aufhören. Also hier füge ich einfach die Einschränkung hinzu. Wir wollen nur, dass die Wände fallen, wenn sie es nur sind. Y ist kleiner als Colemans Größe geteilt durch zwei. Also, wenn nur der Chef oder eine Schüssel, Hälfte der Farben, werden sie fallen. Andernfalls werden sie aufhören. Einfach so. Lass es mich einfach noch einmal auffrischen. Also begannen sie von Position Bifans es. Und sie fingen an zu fallen, weil wir in jedem Frame die fall-Funktion aufrufen. Und wir haben nur eine Einschränkung, nämlich beide y-Position sollte höher sein als Carlos Höhe geteilt durch zwei. Deshalb gibt es, es gibt Top. Wenn sie diesen Punkt erreichen. 10. Jumping: Wenn die Bälle für jeden an dieser Stelle, so dass dort zuschlagen, schlagen sie auf den Boden. Wir wollen sie zum Springen bringen, oder? Um das zu tun, brauchen wir hier eine weitere if-Anweisung. Wir müssen überprüfen, ob der Ball fällt. Denn wenn sie nicht fallen, wollen wir sie zum Springen bringen. Und um diesen Wert zu überprüfen, benötigen Sie nur eine andere Eigenschaft. Fügen wir hinzu. Eine Immobilie fällt. Und es wird am Anfang wahr sein, denn der Chef wird im Ausgangszustand fallen. Also, wenn die Bälle nicht fallen, was bedeutet, dass die Bälle fallen, ist die Eigenschaft falsch. In diesem Fall wollen wir, dass es springt. In Ordnung, gehen wir hoch und haben hier eine Sprungmethode deklariert. Also werde ich zuallererst volle Kraft auf 0 setzen wollen, weil wir zuvor eine volle Kraft hatten. Und es wird unsere y-Position in jedem Frame beeinflussen. Wenn also der Fall und das Halten von Eigentum falsch sind, wollen wir als Erstes alle Viere auf 0 setzen. Dann können wir jetzt unsere y beeinflussen. Wir springen Kraft. Also werde ich dieses Mal Minus Equals verwenden , weil ReLu im Koordinatensystem des Handels, wenn der Ball steigt, der Grund dafür ist , dass ReLu abnimmt. In Commonwealths ist 0 hier oben und es nimmt zu, wenn die Bälle fallen. Wenn du also willst, dass ein Ball springt, sollten wir seinen y-Wert verringern. Deshalb möchte ich verringern, warum ReLu die Kraft springen würde. Und um es natürlicher zu machen, werde ich wieder dieselbe Logik anwenden. Ich werde auch die Sprungkraft verringern. Okay? Also haben wir jetzt auch Methoden übersprungen. Aber eines sollten wir nicht vergessen, wenn das Springen endet. Wenn es wieder in den fallenden Zustand geht. Wir sollten auch zurücksetzen. Springen Sie die Kraft auf 0, genau wie wir hier mit Gewalt gefallen sind. Okay, jetzt sehen sie identisch aus. Sie sind einfach symmetrisch zu den anderen. Okay, versuchen wir's mal. Hat nicht funktioniert. Und das liegt daran, dass unsere Sprungkraft 0 ist. Lass uns das ändern. Wir haben also eine Sprungkraft. Kugel. Okay, vielleicht sollten wir auch Ball fällt“ ändern Eigenschaft „Ball fällt“ ändern, weil wir es nie falsch machen, oder? Es stimmt immer. Also werde ich hier eine else Aussage hinzufügen. Und make ball fällt auf falsch. Und lass es uns versuchen. Es. Springt einfach für eine Weile. Siehst du das? Lass es mich nochmal ausführen. Und dann weiter fallen. Okay? Das liegt daran, dass diese if-Anweisung eine ausführt, obwohl ihre fallende Eigenschaft falsch ist. Also sollten wir hier auch eine Einschränkung geben. Die Überprüfung, ob es fällt und fällt, richtig? Also wenn der Ball, also wir forderten Funktion, wenn nur der Ball im fallenden Zustand ist und seine y-Position kleiner als die Komastelle ist. Also lass uns das speichern. Und vielleicht sollten wir das auch. Vielleicht sollten wir unsere einfach auf „Andere-wenn“ umstellen. Und fügen wir einfach eine Einschränkung hinzu. Wenn die y-Position der Bälle größer ist als die Höhe der Ursache geteilt durch zwei. Das sieht besser aus, oder? Weil wir nur springen wollen, wenn nur sein y-Wert größer ist als die Höhe von Carlos geteilt durch zwei. Also mit anderen Worten, in der Mitte der Säulen. In Ordnung, also werden wir beide Sprungkraft hier später ändern und hier beim Ball. Also verringern wir im Grunde nur die Sprungkraft, oder? Wenn der Ball, kommentieren wir diese Zeile. Dann gehe ich nicht runter. Wenn ich unkommentiert bin, geht es unter. Wir verringern also auch die Sprungkraft und sie beginnt bei 0,1, was ein negativer Wert sein wird. Anstatt also einen Sprung zu machen , lassen wir sie einfach wieder fallen. Also setzen wir diesen Wert einfach auf zehn, sagen wir 400. Nichts ändert sich. Lass uns einfach diese Zeile kommentieren. Das hat gerade, habe ich hier einen Tippfehler gemacht? Also sollten wir seine y-Position in jedem Frame ändern. Also lass uns in die Konsole gehen. Mir fehlt etwas. Also, wenn der Ball fällt, sollten wir es tun, dieser Baumstamm sollte jetzt in unserem Rahmen ertrinken. Und es ist tatsächlich so, dass wir es in der Konsole sehen können, oder? Die Sprungmethode wird jetzt reframe genannt und warum sie aufgerufen wird. Loggen wir uns auch hier ein. Die Sprungkraft. Löschen wir das. Die Sprungkraft ist also 0. Warum passiert das? Das liegt daran, dass wir, wenn wir fallen, einfach Sprungkraft 0 erzeugen, oder? Also haben wir es am Anfang zehn geschafft. Aber jedes Mal, wenn es einfach herunterfiel, wird die Kraft zu 0, sodass sie nicht springen. Also sollten wir es hier eigentlich nicht zuweisen. Wir sollten es zuweisen, dass der Wahlstaat endet, was ist hier, oder? Wenn der Ball zieht, blieb falsch. Wir sollten auch eine Sprungkraft deklarieren. Ich werde einfach Tanh hier machen. Jetzt können Sie sehen, dass unsere Eier gerade springen. Aber vielleicht ist zehn zu viel. Machen wir's auch. Okay, großartig. Aber wir haben gerade ein anderes Problem. Dann kommen sie nie zurück. In Ordnung? Um das zu verhindern, füge ich hier einfach eine weitere Einschränkung hinzu und eine if-Anweisung. Also, wenn der Ball springt, sollten wir irgendwann den entsetzlichen Zustand einschalten , damit sie zurückkommen. Und ich will es einfach machen. Wenn die Sprungkraft 0 wird. Okay, also ist es im echten Leben. Obwohl. Wenn wir springen. Im wirklichen Leben hören wir in der Anfangsphase eine Sprungkraft. Und die Schwerkraft verringert die Sprungkraft in jeder zweiten Eigenschaft. Und irgendwann wird die Sprungkraft zu 0 und wir fangen an zu fallen. Richtig? Machen wir also dieselbe Logik. Logik hier. Wenn die Sprungkraft 0 oder weniger als 0 beträgt, lassen Sie die Bälle wieder fallen. Aber um dies zu tun, sollten wir das Auskommentieren aktivieren, diese Linie, die abnehmen wird, die Sprungkraft, den Rahmen umrahmen. Und wenn es kleiner als 0 oder gleich 0 ist, sollten wir den fallenden Zustand wieder auf true setzen. Also lass uns das versuchen. Okay. Jetzt können wir sehen, dass unsere Bälle bei jedem Sprung springen, bei jedem Sprung, oder die Sprungkraft und Fallkraft nehmen wie natürlich zu und ab. Und irgendwann, am Spitzenpunkt, wird die Sprungkraft zu 0. Wenn das passiert, fallen sie wieder. Okay? Auf diese Weise können Sie eine Gravitationslogik erstellen ohne eine Spiel-Engine oder irgendetwas anderes zu verwenden. Mit reinem Vanilla JS. Ein weiteres Team, das wir hier hinzufügen möchten, die eigentliche Verbindung zwischen Audio und unseren Bällen, um die Sprungkraft mit den Audioeingängen zu ändern. Und das werden wir im nächsten Video machen. 11. Audioeingabe erhalten: In Ordnung Leute, die Bolzen springen. Und es ist Zeit für den aufregendsten Teil, nämlich Jim, sie dazu zu bringen, auf den Audioeingang zu reagieren. Also sollten wir diese Zeile natürlich ändern, weil wir mit dem Mikrofon einfach die Kraft erhöhen wollen. Okay, wir haben also bereits Mikrofondaten. Und denken Sie daran, dass der Probenbereich des Probenarrays 256 Elemente umfasst. Und wir haben auch einige Bälle, aber unsere Anzahl an Bällen ist nicht spezifisch. Das hängt von Canvas ab. Wir könnten also mehr als 256 haben oder wir könnten weniger haben. Ich werde sie also nicht genau abgleichen. Aber wir könnten, wenn wir irgendwie indexiert werden könnten , ein Array beinhalten, oder? Wir könnten jede Probe einem Ball zuordnen. Also wie die erste Probe. Das erste Element bei der Stichprobenerhebung kann also die Sprungkraft für den ersten Ball sein. Und das zweite Element bei der Stichprobenerhebung kann die Sprungkraft für den zweiten Ball sein und so weiter. Ich glaube, es wird großartig. Und um das zu tun, sollten wir den Index der darin enthaltenen Bälle für jeden einzelnen verfolgen . Und wenn Sie nur nach einem ETL-Skript googeln, können Sie die Parameter dieser Funktion sehen. Und der zweite Parameter ist Index. Der erste, den wir gerade verwendet haben, ist also der Wert des aktuellen Elements. Wir nennen es einfach Ball. Wenn Sie den zweiten Platz bestehen, ist dies optional. Aber du kannst bestehen. Und es ist, es gibt den Index des aktuellen Elements zurück, aber wir suchen nur. Also lass uns weitermachen und es benutzen. Um das zu verwenden, füge ich einfach eine Klammer neben dem Ball hinzu. Ich sage indexiert. Dieses Futter kann ich jetzt einsperren. Als Nächstes. Lassen Sie mich einfach die anderen Protokollzeilen löschen. Also haben wir nur diesen einen. Speichern wir das und überprüfen wir die Konsole. Sie sehen also, dass es bei Null beginnt und mit jeder Iteration zunimmt . In Ordnung, also können wir diesen Indexwert verwenden. Und hier möchte ich Sample anrufen, tut mir leid. Versuchen wir es einfach mit dem Samples Index. Versuchen wir einfach, Samples für die Sprungkraft zu verwenden. Aber denken Sie auch hier daran, dass es sich bei den Stichproben nur um sehr, sehr kleine Werte handelt. Lassen Sie uns also auch die Konsole protokollieren und die Konsolenbeispiele aufrufen, um zu sehen. Sie sehen also aus, als würden sie nicht springen. Aber wenn Sie genau hinschauen, können Sie einige kleine Bewegungen erkennen. Und das liegt daran, dass es sich bei unseren Proben um sehr kleine Zahlen handelt. Das sollten wir auch, und es gibt auch negative Werte. Wir wollen also keine negative Sprungkraft. Wir können also die Funktion mat abs verwenden , um die Zusammenfassung des Werts zu erhalten. Okay? Wenn wir das tun, haben wir keine negativen Werte mehr. Und wir wollen diesen Wert auch mit zehn multiplizieren, vielleicht weil sie zu klein sind. Machen wir sie positiv und multiplizieren es mit zehn und sehen, was passiert. Wenn ich die Konsole schließe. Wir brauchen keine Schlösser mehr. Sagen wir das. Moment kannst du dich und ich sprechen sehen, die Bälle springen einfach und es sieht so aus, als ob es genug ist, mit zehn zu multiplizieren. Sie könnten diesen Wert natürlich erhöhen, wenn Sie mehr gesprungene Fox haben möchten. Oder wenn du verrückt werden willst, kannst du auch verrückt werden. Aber denk daran, wenn sie zu viel gesprungen sind, werden sie die Leinwand verlassen. Also behalte ich es zehn. Und ich glaube, es ist erledigt. Versuchen wir es mit einer anderen Lösung. Sie bewegen sich gerade wieder. Und an diesem Punkt könntest du eigentlich, es liegt ab jetzt wirklich an dir. Sie könnten also die Farben ändern, oder Sie könnten hier auch eine Methode hinzufügen, um die Farben zu ändern. Und Sie können hier vielleicht einen Parameter angeben, z. B. einen Wert. Und Sie könnten die Farben entsprechend dem Stichprobenindex ändern . So können die Bälle mit Audio ihre Farbe ändern. Und hier können Sie RGB-, RGBA-Werte und Übergabeparameter verwenden . Du kannst alles machen. Du kannst die Sprungkraft ändern, wenn du schnellere Bälle willst. Oder was du tun kannst. Sonst. Wenn du höhere oder größere Bälle möchtest, kannst du einfach den Radius so ändern. Denken Sie aber daran, auch die Entfernung zu ändern. Nur um sicherzugehen, dass sie nicht kollidieren. Dadurch werden sie wieder kleiner. Oder du könntest sie so wirklich kleiner machen. Es liegt an dir. Spielen Sie mit den Werten und fügen Sie einige neue Funktionen für alle hinzu. 12. Audio 2: In diesem Abschnitt werden wir einen weiteren Audiovisualizer erstellen , den Sie auf dem Bildschirm sehen können. Lass mich Musik spielen, damit du den Effekt besser sehen kannst. Beruf. Wenn dir der Effekt gefällt. Ich arbeite nicht bis zum nächsten Video, in dem wir mit diesem Projekt beginnen werden. 13. SET-UP: Ich habe das Projekt erstellt und mit dem vorherigen Audiovisualizer ist alles wie gehabt. Dieses Mal ändere einfach den Titel mit dem Audio Visualizer auf. Also haben wir auch Style-CSS verlinkt. Auch hier haben wir ein Geschäft mit dem Ausweis Mike obdachlos. Wir haben Mikrofon JS und Visualizer und sind großzügig. Und Apo. Diese HTML-Datei mit Live-Show wird angezeigt, indem einfach mit der rechten Maustaste klicken und diese Option auswählen. Und dann können Sie einfach dieselbe Vorlage für Mikrofon-JS verwenden . Denn auch hier brauchen wir keine Unterschiede und genau das brauchen wir in diesem Projekt. Auch der Stil von CSS ist derselbe wie beim vorherigen. Verwenden Sie einfach Asterix, um alles auszuwählen , um den Rand und den Abstand anzupassen. Machen Sie einfach die Eigenschaft „Hidden Overflow der Karosserie und machen Sie den Hintergrund schwarz. Wir haben also noch nicht die Breite und Höhe des Handels definiert. Deshalb sind unsere Colas standardmäßig mit diesen Breiten und Höhen ausgestattet. Also werden wir es in Visualizer JS ändern. Wenn Sie mit diesen beiden Dateien fertig sind, können wir mit der Visualisierung eines JS beginnen. 14. Gestalten der Figuren: Lasst uns wie immer anfangen, Farben zu kreieren. Verwenden wir hier unsere Commerce-ID. Lassen Sie uns auch CTX erstellen. Passen wir an, was an Windows angepasst wird. Und auch Größe, die wir in unseren Höhen kennen. Unser E-Commerce ist jetzt also vollständig angepasst und deckt alle Browser auf ihrem Bildschirm ab. Und als Nächstes wollen wir das neuen Mikrofon zuweisen. Und denken Sie daran, dass wir diese Klasse vom Mikrofon aus aufrufen. Und wir können es so machen. Wir importieren nichts, weil Microphone JS nur eine Schale mit Visualizer-JS ist. Und am Ende wird das gesamte JavaScript in diese HTML-Datei umgewandelt. Wir haben also tatsächlich eine Mikrofonklasse in Visualizer JS. Und lassen Sie uns überprüfen, ob alles funktioniert, indem einfach eine animierte Funktion erstellen. Animationsframe animate anfordern. Und denken Sie daran, dass diese Blogs uns eine Animation bieten , indem sie diese Animationsfunktion in jedem Frame aufrufen . Hier wollen wir also überprüfen, ob das Mikrofon bereits initialisiert ist. Diese Immobilie. Also, wenn das Mikrofon initialisiert ist, möchte ich die Samples bekommen. Proben. Mikrofon , das Proben abtastet. Lass es uns einfach protokollieren, um zu sehen , ob alles funktioniert. Ich werde die Konsole mit f 12 öffnen. Wir haben keine Proben. Also lass mich einfach öffnen. Das lebt wieder von vorne. Vielleicht gibt es eine Kiste. Wir haben noch nicht. Das liegt daran, dass wir die Animationsfunktion nicht als Mein Fehler bezeichnet haben. Okay. Jetzt können wir die Proben sehen, wenn ich spreche. Es wird den Audioeingang richtig machen. Jetzt können wir dieses Konsolenprotokoll entfernen. Wir können jetzt mit der Erstellung unserer Klasse beginnen. Dieses Mal. Ich möchte hier die Zahl ohne Klammern nennen hier die Zahl ohne Klammern da es verschiedene Methoden geben wird. Es wird also einstellbar sein. Es wird Highways geben, es wird Teleport- und Kettengrößenberechnungsmethoden geben, solche Dinge. Es ist also einfach nicht dieser einfache Ball. Deshalb habe ich beschlossen , es Figur zu nennen. Aber wie immer brauchen wir einen Konstruktor. Lassen Sie uns dieses Mal wieder mit X und Y beginnen, aber wir werden die Anzahl der Parameter später erhöhen. Dieses Delta x entspricht also x, dieser Punkt y entspricht der Y-Größe. Ich werde acht und dann vier Anfangsgrößen verwenden. Denken Sie jedoch daran, dass wir diesen Wert mit dem Mikrofoneingang ändern werden. Okay? Das reicht also vorerst. Lass uns einfach diese Zahl zeichnen. Und das ist alles. Für uns gibt es nichts Neues. Das tut es also, dieser Punkt FillStyle ist diese dunkle Farbe. Dx beginnt auch Pat dx arc, weil wir auch hier Abkürzungen zeichnen wollen. Also werde ich X4 Holzkohle x weitergeben. Warum? Und Größe. Dieses Mal habe ich Radius nicht angerufen. Man könnte auch Größe sagen, das Gleiche. Also Null für den Startwinkel. Und Math.Pi mal 24 und Winkel, was bei 260 Grad genau das Gleiche ist, aber wir sollten hier ein paar Radianten angeben. Also verwenden wir diesen Ausdruck. Und schließlich sollten wir fühlen, was wir gerade zeichnen. In Ordnung, lass mich das speichern. Und unten sollten wir Finger Irrtum gutschreiben, oder? Dafür brauche ich einen For-Loop. Ändern wir den Index auf i. Ich möchte zehn Zahlen erstellen. Ich werde also sagen, dass die Zahlen nahe an der Zahl liegen. Sie sollten also alle mit dieser Syntax vertraut sein, oder? Wir haben das alles oft gemacht. Also eine neue Figur, aber dieses Mal möchte ich, anstatt ein bestimmtes X und Y zu machen, anstatt ein bestimmtes X und Y zu machen, diese Figuren nach dem Zufallsprinzip spawnen. Okay, deshalb werde ich die Funktion Math.random aufrufen. Und ich werde es mit Color Suite multiplizieren, sodass der x-Wert zwischen Null und Column Sweet liegt. Es kann überall im Kongress sein und den gleichen Tank auch für den Y-Wert verwenden. Und dieses Mal sagen wir Komahöhe. In Ordnung? Versuchen wir also einfach, die Zahlen an dieser Stelle zu zeichnen. Also zunächst möchte ich direkt klarstellen, weil wir in Zukunft einige Animationen machen werden. Lassen Sie uns also die Ruhe und die ganzen Kommas in Airframe löschen . Und jetzt können wir versuchen, Zahlen zu zeichnen. Dafür. Ich möchte über das Zahlenarray iterieren, oder? Und ich werde für jede, ich sage Zahl, verwenden. Und für alle Figuren möchten Sie die Draw-Methode aufrufen. Okay? Wir haben also keine Farbe angegeben. Lass uns einfach eine helle Farbe machen , damit wir die Zahlen auf den Säulen haben. Und jedes Mal, wenn ich diesen Browser aktualisiere, wird uns eine zufällig generierte, positionierte Zahl angezeigt, da unsere X - und Y-Werte zufällig sind. Aber sie sollten in den unzähligen sein. Also sollten sie in jedem Bild genau zehn Finger haben. 1 234-567-8910. 15. Kreislaufbewegung: Das nächste, was ich mit diesen Figuren machen möchte ist, ihnen eine kreisförmige Bewegung zu geben. Wie kreisförmige Bewegungen , weil Objekte dadurch wie lebende Objekte aussehen. In Ordnung, also lassen Sie uns kreisförmige Bewegungen für unseren Lautsprecher implementieren . Im Figurenunterricht werde ich eine neue Methode entwickeln, die als kreisförmige Bewegung bezeichnet wird. Also hier bin ich tatsächlich, wir können Kosinus- und Sinusfunktionen verwenden. Wir sollten also den X-Wert und den Y-Wert der Figuren durch einige Werte ändern , sodass eine kreisförmige Bahn gezeichnet wird. Stimmt es? Wenn wir also nur den x-Wert ändern, sagen wir, nicht den Kosinus. Also brauchen wir hier auch einen Zähler die Schleife 0-360 durchläuft. Es wird also sein der ganze Grad bei Null beginnt und bis 360 reicht . zu tun, werde ich in dieser Abbildung einen Zähler implementieren. Es wird also bei Null beginnen. Und dann werde ich, ich werde es erhöhen. Jede kreisförmige Bewegung am Ende. Eigentlich. Lass uns diese Kontur plus, plus und lasse sie größer oder gleich 260 laufen , ich mache sie wieder auf Null. Stimmt es? Diese Kontur erhöht also die Erinnerung an kreisförmige Bewegungen. Und wenn es diese 260 Grad erreicht, geht es zurück auf Null und beginnt von dort aus. Schon wieder. Das ist es, was wir eigentlich brauchen. Jetzt rufe ich diesen Schalter hier an. Aber denken Sie daran, dass die Kosinusfunktion nicht nach Graden sucht. Stattdessen sucht es nach Lesen. Wenn Sie sich erinnern, Radiant zu Grad Formel x geteilt durch das 180-fache des Schlammkuchens. Okay? Also machen wir das für unseren Zähler geteilt durch 180 mal Pi, damit wir sicherstellen, dass er einen vollständigen Kreis zeichnet. Lassen Sie mich es einfach so speichern und in jedem Bild zirkuläres Moment aufrufen. Mal sehen, was passiert. Also bewegen sich unsere Eier, oder? Was großartig ist. So kosmisch, dass diese Kostenfunktion einen Wert zwischen minus eins und plus eins zurückgibt . Und es wechselt nur zwischen diesen Werten. Und wir aktualisieren x mit diesen Werten, sodass unsere Bälle kontinuierlich nach rechts und links gehen. Lassen Sie uns dasselbe auch für Y tun. Aber lassen Sie uns dieses Mal, ähm, eigentlich wieder den Kosinus verwenden, um zu sehen, was passiert. Ich kann es einfach kopieren und hier einfügen und speichern. Sie können also sehen, wenn wir dieselbe Funktion warum sie einen Pfad wie diesen zeichnet, wie zum Beispiel die Diagonale, weil wir gleichzeitig auf x und y erhöhen, demselben Wert, mit demselben Wert. Wenn Sie dies jedoch ändern, um zu signieren und es zu speichern, können Sie sehen, dass sie einen Moment lang einen Kreis zeichnen. Dies ist der Schlüssel, um eine solche kreisförmige Bewegung auszuführen. 16. Größe ändern mit Mic: In Ordnung Leute, lasst uns weiter anrufen. Der nächste Schritt besteht darin, den Mikrofoneingang zur Bewegung der Kreise hinzuzufügen . Eigentlich nicht der Moment, sondern die Größe der Schaltungen, die wir wollen. Mach sie größer. Wenn ein hoher Krieg eintrifft. Und ihre Größe hängt von der Spracheingabe ab. Sie werden je nach Mikrofoneingang größer und kleiner. Um das zu tun, werde ich der Figurenklasse eine neue Methode hinzufügen . Genau hier. Fügen wir eine neue Methode hinzu und Sie sind ein Name für Change Size. Das ist also wichtig, braucht einen Parameter. Ich nenne es Wert. Und dieser Parameter wird aus dem Samples-Array stammen, das im Hochformat mit dem Mikrofon verbunden ist. Wir verwenden also einen Parameter aus den Eingabeleisten und ändern die Größe jedes Bogens. Um das zu tun, überprüfen wir zunächst, ob Wert größer als die Größe ist. Also passen wir den Wert nur an eine Schüssel an. Aber zuerst überprüfen wir, ob der Wert größer als die Größe ist. Wenn ja, werden wir die Größe dem Wert gleichsetzen. In einem anderen Fall möchten wir die Größe ändern. Das bedeutet also, dass wir keine Spracheingabe haben oder wir haben eine, aber es ist wirklich, sehr leise, sodass wir es nicht hören können, sodass der Computer es nicht hören kann. In diesem Fall möchten wir die Größe ändern und die Größe verringern. Sagen wir, ich weiß 0,1 nicht. Das wird also in jedem Frame aufgerufen. Es ist also eine Größenreduzierung. Ich bin Tom, zu Prozent in Airframe. Stimmt es? Rufen wir diese Methode also einfach in der Animate-Funktion auf. Genau hier. Der Dreck, diese Kettengröße. Aber um ihm einen Parameter zu geben , der separat von der Probe stammt, müssen wir die Indexrate der Stichprobe ermitteln. Wir haben derzeit also keinen Index. Aber wenn Sie sich erinnern, können wir den Index abrufen, indem wir für jede Funktion einfach einen zweiten Parameter übergeben . Wenn Sie es also so machen, wird die erste Zahl die Zahl selbst sein , über die wir iterieren. Und der zweite Parameter wird der Index davon sein. Auf diese Weise können wir diesen Index im Samples-Array abrufen und seine Größe ändern. Ich verwende die Spracheingabe. In Ordnung? Lassen Sie mich das speichern und das Ergebnis sehen. In Ordnung, wir können also nichts sehen. Eigentlich haben wir am Anfang etwas gesehen, aber es verschwindet sofort. Warum passiert es also? Weil unser Wert des Absinkens vielleicht zu hoch ist. Ändern wir das auf 1% und speichern es erneut. Das ist jetzt also besser. Sie verschwinden langsam. Aber am Ende können wir nichts mehr sehen. Es sieht also so aus, als ob der Wert zu klein ist, oder? Also anscheinend reichen selten nicht aus, um die Größe zu vergrößern. Lass uns, wir können es auch überprüfen. Ich logge es ein. Lass uns sehen. Unser Wert ist also Null. Ähm, das habe ich nicht erwartet. Okay, lassen Sie uns versuchen, diesen Wert zu multiplizieren. Nehmen wir an, ich möchte eine neue Variable namens silent erstellen. Und es wird das Ergebnis von Wert mal 200 sein. Und lass uns den Sound hier und hier verwenden, Ezra. Lass mich das noch einmal sagen. Wir haben wieder keinen Output. Also werde ich das einfach in einem neuen Tab öffnen . Das war ein Bug für Google Chrome. Wenn wir es also in einem neuen Tab öffnen, ist das kein Problem. Sie können also sehen, dass sie größer werden, wenn ich höher spreche, oder kleiner , wenn ich viel spreche. Aber schauen wir uns auch Wert und den Sound in der Konsole an. Lassen Sie uns zuerst den Wert überprüfen. Sie können also sehen, dass es etwas wirklich Kleines ist. Deshalb wollen wir es einfach mit 200 multiplizieren. In Ordnung? Finde ich das, indem ich versuche, okay, dafür gibt es keine Formel. Aber ich habe einige Werte ausprobiert. Und 200 scheint nett zu sein , weil ich möchte die Zahlen größer werden, um sie größer zu machen. Und 200 sind in Ordnung für mich. Sie können verschiedene Werte ausprobieren und einen anderen zufälligen Wert entscheiden. Aber der Hauptpunkt hier ist, dass wir gerade Kreise haben und deren Größe sich je nach Spracheingabe ändert. 17. Musik spielen: Zu diesem Zeitpunkt sollte sich die Größe der Figuren mit den Eingaben der Ehefrau ändern. Also lass mich ein Lied spielen , um es zu sagen. Offensichtlich. 18. Teleport hinzufügen: Abschließend möchte ich Ihnen einige Anpassungsbeispiele zeigen. Weil ich möchte, dass du deinen eigenen Effekt nach Belieben anpassen kannst. Okay? als Beispiel eine Lassen Sie uns als Beispiel eine neue Methode in der Figure-Klasse hinzufügen. Also möchte ich eine Teleport-Methode hinzufügen. Denn wenn die Figuren Theropoden sind, sieht die Tatsache viel besser aus. Lassen Sie uns den Teleportationseffekt hinzufügen und Sie können das Ergebnis sehen. Also sage ich, teleportiere dich dorthin. Wir sollten den X- und auch den Y-Wert der Fehler ändern. Und ich möchte, dass sie sich nach dem Zufallsprinzip teleportieren. Also sagen wir einfach viel zufällig mal die Breite des Spaltenverlusts, was bedeutet, dass es irgendwo innerhalb des Carlos teleportiert wird . Okay? Und mach dasselbe für y, aber diesmal tippe hier Hunt. Wir haben also unsere Teleport-Methode. Nennen wir es Mondanimation. Also für jede Figur, wenn wir die Teleportfunktion aufrufen, ihre Position in jedem Frame geändert. Das sieht aus wie ein Cos. Okay, wir wollen keine Kühe. Wir sollten also nicht in jedem Frame Teleport aufrufen. Oder das ist ein echter Pflegeansatz. Auch hier könnten wir eine Einschränkung hinzufügen. Also, wenn etwas passiert, dann teleportiere, nicht in jedem Bild. Sie können also jede Einschränkung hinzufügen. Es liegt an dir. Der Einfachheit halber. Ich werde nur eine zufällige Einschränkung hinzufügen. Das kann also auch zufällig sein. Ich habe es vermasselt, es ist perfekt, wenn Sie eine Routine zufällig zusammenstellen. Wenn ich hier also eine Einschränkung wie diese hinzufüge, gibt Math Random eine Zahl 0-1 zurück. Und wenn es größer als 0,99 ist, was ungefähr für eine Person ist, oder? Dann teleportiere dich zur Figur. Lass mich das sagen. Du siehst, es ist momentan seltener. Wir sehen einige Teleports, aber das ist nicht ununterbrochen. Wir könnten die Frequenz verringern indem wir diesen Wert hier einfach erhöhen. Also sind sie fast, unterstützen nicht mehr. Oder Sie können die Frequenz erhöhen , indem Sie den Beschränkungswert verringern. 50% sind immer noch zu viel. Vielleicht werden 90% 95 sein. Okay? Aber meiner Meinung nach sieht 99 wirklich gut aus. Okay, der Grund, warum ich das zeigen wollte, ist um Ihnen zu zeigen, dass diese Zahl, dieser Effekt anpassbar ist. Sie können jede gewünschte Methode hinzufügen und damit spielen. Sie können unterschiedliche Ergebnisse sehen. Und zum Schluss möchte ich Ihnen noch eine Sache zeigen, nämlich die Erhöhung der Animationsgeschwindigkeit. Okay? Im Moment ist unsere kreisförmige Bewegung also zu langsam. Meiner Meinung nach. Ich möchte es erhöhen. Du könntest es also auch mit Anrufen machen. Aber was ist, wenn Sie die Bildrate ändern möchten? Wenn Sie den FPS ändern möchten, können Sie dazu auch verschiedene Bibliotheken usw. hinzufügen . Aber dafür gibt es noch einen anderen kniffligen Ansatz. Ich will es dir zeigen. Also rufen wir hier animate function und sie ruft sich immer wieder selbst auf, oder? Was ist, wenn wir die Enumerate-Funktion jetzt für mich aufrufen? Also ändern wir das vielleicht auf zehn oder fünf. Nennen Sie Animieren einfach einen Sturz. Dadurch wird die Animationsgeschwindigkeit um das Fünffache erhöht , da wir die Animationsfunktion fünfmal aufrufen . Lass mich das speichern. Sie können also sehen sich die Kreise schneller bewegen. In Ordnung? Das erhöht also im Grunde die Bildrate in einer Sekunde.