Replacing A String 2000 Times Per Minute... Creates An Amazing Visual Effect

Snippets Code
28 Aug 202404:40

Summary

TLDRDas Video beschreibt die Entwicklung eines faszinierenden Feuereffekts in einer Webanwendung. Der Effekt wird durch Textzeichen erzeugt, die sich ständig ändern, um eine visuelle Darstellung von Flammen zu erzeugen. Zunächst wird ein einzelner Rahmen des Effekts analysiert und erklärt, wie das Gittersystem funktioniert. Danach wird die Implementierung Schritt für Schritt gezeigt, einschließlich der Initialisierung eines ein-dimensionalen Arrays, der Berechnung von Zeichenindizes und der Anwendung eines Zufallselements für realistische Flammenbewegungen. Der Effekt wird dynamisch aktualisiert, um ein lebendiges Feuer darzustellen. Ein Tutorial für Entwickler, die visuelle Effekte mit Text kreieren möchten.

Takeaways

  • 🔥 Das Feuer-Effekt wird aus Text generiert, wobei sich die Zeichen ständig ändern, um den visuellen Effekt zu erzeugen.
  • 📏 Das Raster wird als Container für die Zeichen und Leerzeichen verwendet, wobei jedes Rasterzelle entweder ein Zeichen oder ein Leerzeichen enthält.
  • 📜 Ein String namens 'fireCares' enthält die Zeichen für das Feuer, wobei das erste Zeichen als Leerzeichen festgelegt wird.
  • ⬛ Das 'firePixelsArray' speichert die Indexwerte der Zeichen, nicht die Zeichen selbst, und wird als eindimensionales Array betrachtet.
  • ⚙️ Um das Feuer zu aktualisieren, wird eine Schleife verwendet, um das 'firePixelsArray' zu durchlaufen und Zeichen anhand des Array-Wertes zuzuweisen.
  • ⏳ Ein 'setTimeout' sorgt dafür, dass das Feuer ständig aktualisiert wird und sich die Zeichen dynamisch ändern.
  • 🎲 Zufällige Zeichen werden für die letzte Zeile des Feuereffekts ausgewählt und füllen diese Zeile.
  • 📉 Um das Feuer von unten nach oben wachsen zu lassen, wird das Array der letzten Zeile nach oben hin erweitert.
  • ➗ Der Durchschnittswert von benachbarten Zellen wird verwendet, um die Zellen der darüber liegenden Reihen zu füllen.
  • ⚡ Um Lücken im Feuer-Effekt zu erzeugen, werden zufällige Zellen in der letzten Zeile als Leerzeichen festgelegt.

Q & A

  • Wie funktioniert der visuelle Effekt der Feueranimation im Text?

    -Der visuelle Effekt wird durch die ständige Änderung von Textzeichen erzeugt. Leere Stellen werden als Leerzeichen dargestellt, und die Zeichen werden in einem Raster organisiert.

  • Welche Rolle spielt der vorformatierte Textelement-Container?

    -Der vorformatierte Textelement-Container wird verwendet, um die Zeichen ordnungsgemäß anzuzeigen und die Struktur der Animation beizubehalten.

  • Wie wird das Feuer als String dargestellt?

    -Das Feuer wird als eindimensionales Array, das sogenannte 'fire pixels array', dargestellt, das die Zeichen für jede Rasterzelle enthält. Die Werte werden durch Kombination mit einem Zeilenumbruch zwischen den Reihen zu einem vollständigen Feuerstring.

  • Wie wird die Größe des Arrays bestimmt?

    -Die Größe des Arrays wird als das Produkt aus der Breite und Höhe des Rasters definiert.

  • Wie wird das Feuer im unteren Bereich des Rasters erzeugt?

    -Das Feuer beginnt im unteren Bereich des Rasters, indem eine zufällige Zelle ausgewählt und mit einem Zeichen aus dem 'fire cares'-String gefüllt wird. Dieser Vorgang wird für die gesamte unterste Reihe wiederholt.

  • Wie breitet sich das Feuer nach oben aus?

    -Das Feuer breitet sich nach oben aus, indem die Zeichen der darüber liegenden Zellen mit dem Durchschnittswert von vier benachbarten Zellen berechnet werden.

  • Wie wird das 'Feuer'-Aussehen durch Lücken realistischer gemacht?

    -Um Lücken zu schaffen, die das Feuer realistischer aussehen lassen, werden zufällig Leerzeichen in der untersten Reihe platziert, wodurch auch Lücken in den darüberliegenden Reihen entstehen.

  • Warum wird die Höhe des Rasters um eins reduziert?

    -Die Höhe wird um eins reduziert, damit das Feuer nicht über die letzte Reihe hinausgeht und korrekt dargestellt wird.

  • Welche Zeichen werden im 'fire cares'-String verwendet?

    -Der 'fire cares'-String enthält Zeichen, die das Feuer visuell darstellen, wobei das Leerzeichen an erster Stelle steht, um leere Bereiche zu definieren.

  • Wie wird das Feuer-Array aktualisiert, damit das Feuer animiert aussieht?

    -Das Feuer-Array wird regelmäßig aktualisiert, indem die Zeichen basierend auf den Werten im 'fire pixels array' geändert werden. Dies erfolgt mit Hilfe von 'setTimeout', um die Bewegung des Feuers zu simulieren.

Outlines

00:00

🔥 Einführung in den Effekt

Mr. Floron Galon ist ein talentierter Front-End-Entwickler, und in seinem Portfolio wird ein beeindruckender Effekt gezeigt, der aus Text erzeugt wird. Das Video beschreibt, wie man diesen Feuereffekt nachbilden kann. Der erste Schritt besteht darin, einen einzelnen Frame des Effekts zu analysieren, in dem Textzeichen ständig verändert werden, um den visuellen Effekt zu erzeugen. Leere Stellen werden als Leerzeichen interpretiert. Für die richtige Formatierung wird das 'pre'-Element als Container verwendet.

🧩 Aufbau des Gitters

Der Effekt basiert auf einem Gitter, bei dem jede Zelle entweder ein Leerzeichen oder ein Textzeichen enthalten kann. Ein String namens 'fire cares' wird initialisiert, wobei das erste Zeichen als Leerzeichen festgelegt wird. Das Gitter hat eine Breite und Höhe, die als Anzahl der horizontalen und vertikalen Zellen definiert werden. Anstatt ein 2D-Gitter zu verwenden, wird das Feuer als eindimensionales Array (fire pixels array) betrachtet.

📜 Erzeugung des Feuerstrings

Um den Feuerstring zu erstellen, werden die Werte des fire pixels arrays kombiniert und nach jeder Zeilenbreite ein Zeilenumbruch hinzugefügt. Die Größe des Arrays entspricht dem Produkt aus Breite und Höhe des Gitters. Das Array speichert die Indizes der Zeichen aus dem 'fire cares'-String, wobei das Leerzeichen der Standardwert ist.

🔥 Feuer erstellen und animieren

Der nächste Schritt ist die Erzeugung des Feuers. Eine leere Zeichenfolge wird initialisiert, und eine Schleife durchläuft das fire pixels array, um die Zeichen aus dem 'fire cares'-String basierend auf den Arraywerten zuzuweisen. Zeilenumbrüche werden hinzugefügt, um die Enden der Zeilen zu kennzeichnen. Ein Timeout wird eingerichtet, um den Feuerstring kontinuierlich zu aktualisieren.

🌀 Anpassen der Darstellung

Da der anfängliche Feuerstring nur Leerzeichen enthält, werden die Werte des Arrays auf das zweite Zeichen des 'fire cares'-Strings (Kommas) gesetzt. Um den Effekt zu verbessern, wird der letzte Zellenbereich des Gitters gefüllt. Dieser Bereich repräsentiert die Basis des Feuers, von der das Feuer nach oben wächst.

🎲 Zufällige Befüllung des letzten Reihenabschnitts

Ein Zufallsalgorithmus wird verwendet, um den letzten Reihenabschnitt des Gitters mit Zeichen zu füllen. Eine zufällige Zelle in der letzten Reihe wird ausgewählt, und ihr Wert wird mit einem zufälligen Zeichen aus dem 'fire cares'-String gefüllt. Dieser Prozess wird wiederholt, um die gesamte letzte Reihe zu füllen.

⬆️ Feuer wächst nach oben

Sobald die letzte Reihe gefüllt ist, wächst das Feuer nach oben. Die Zellen der darüber liegenden Reihen werden durch die Berechnung des Durchschnitts der vier umliegenden Zellen gefüllt. In einem eindimensionalen Array entspricht dies der Betrachtung der aktuellen Zelle, der Zelle rechts daneben, der Zelle darunter und der Zelle darunter rechts.

✨ Lücken für realistischeren Feuereffekt

Um dem Feuer ein realistischeres Aussehen zu verleihen, werden Lücken in die unteren Reihen eingefügt. Dies geschieht, indem zufällige Zellen in der letzten Reihe mit Leerzeichen gefüllt werden, was auch Lücken in den darüber liegenden Reihen erzeugt. Dieser Vorgang wird für jede Zelle der letzten Reihe wiederholt, bis der Feuereffekt vollständig ist.

👍 Abschließende Schritte

Nachdem alle notwendigen Schritte durchgeführt wurden, ist der Feuereffekt bereit. Das Video schließt mit einem Hinweis, den Kanal zu abonnieren, wenn der Zuschauer den Inhalt nützlich findet.

Mindmap

Keywords

💡Front-End-Entwickler

Ein Front-End-Entwickler ist jemand, der für die Entwicklung der Benutzeroberfläche einer Website oder Anwendung verantwortlich ist. Im Video wird 'Mr. Floron Galon' als Front-End-Entwickler hervorgehoben, der beeindruckende Effekte in seinem Portfolio zeigt, wie z.B. das Erstellen eines 'Feuer'-Effekts aus Text. Diese Effekte sind für das visuelle und interaktive Erlebnis des Nutzers entscheidend.

💡Textgenerierter Feuereffekt

Der Feuereffekt wird vollständig aus Text generiert, wobei die Zeichen ständig verändert werden, um den visuellen Effekt von Flammen zu simulieren. Im Video wird gezeigt, wie diese Technik verwendet wird, um den Eindruck eines lodernden Feuers zu erzeugen, indem Buchstaben und Leerzeichen in einem Gittermuster manipuliert werden.

💡Feuer-Zeichenkette ('fire cares')

Die 'fire cares' ist eine Zeichenkette, die die Zeichen enthält, aus denen das Feuer besteht, einschließlich Leerzeichen. Diese Zeichen werden verwendet, um die visuellen Elemente des Feuereffekts darzustellen, wobei das erste Zeichen der Kette ein Leerzeichen ist. Diese Zeichenkette wird kontinuierlich aktualisiert, um das Erscheinungsbild des Feuers zu erzeugen.

💡Gitter ('Grid')

Das Gitter ist eine zentrale Struktur im Feuereffekt. Es besteht aus horizontalen und vertikalen Zellen, die entweder Leerzeichen oder Textzeichen enthalten können. Das Video beschreibt, wie jede Zelle des Gitters durch verschiedene Zeichen aus der 'fire cares' Zeichenkette gefüllt wird, um den Feuereffekt zu erzeugen.

💡Einzelne Zeichenrahmen

Der Effekt wird als eine Abfolge von Einzelbildern beschrieben, in denen die Zeichen des Feuers aktualisiert werden. Jedes dieser 'Frames' ist ein einzelnes Bild, das einen Moment des sich bewegenden Feuers darstellt. Das Konzept eines einzelnen Rahmens wird verwendet, um die Funktionsweise der Animation zu erläutern.

💡1D-Array

Das Feuergitter wird als eindimensionales Array ('1D-Array') betrachtet, obwohl es in einem zweidimensionalen Raster dargestellt wird. Dieses Array enthält die Indizes der Zeichenkette 'fire cares'. Durch die Konvertierung des Gitters in ein eindimensionales Array wird die Verarbeitung des Feuers vereinfacht.

💡Zufällige Zellen

Die Auswahl zufälliger Zellen in der letzten Zeile des Gitters ist ein zentraler Bestandteil des Feuereffekts. Diese zufälligen Zellen werden mit Zeichen aus der 'fire cares'-Zeichenkette gefüllt, um den sich ständig ändernden und lodernden Effekt zu simulieren. Das Video beschreibt diesen Prozess als Grundlage für den Feuereffekt.

💡Wachsendes Feuer

Das Feuer beginnt in der unteren Reihe des Gitters und 'wächst' nach oben, indem die darüber liegenden Reihen nach einem bestimmten Algorithmus gefüllt werden. Das Video erklärt, wie das Feuer nach oben 'wächst', indem der Durchschnittswert von vier Zellen verwendet wird, um die darüberliegenden Reihen zu füllen.

💡Lücken und Leerzeichen

Um das Feuer realistischer zu gestalten, werden zufällig Lücken durch Leerzeichen in den unteren Reihen eingefügt. Diese Lücken erzeugen Pausen im Flammenmuster und verleihen dem Effekt mehr Dynamik. Das Video zeigt, wie diese Leerzeichen absichtlich gesetzt werden, um den visuellen Effekt zu verbessern.

💡SetTimeout-Funktion

Die setTimeout-Funktion wird verwendet, um sicherzustellen, dass sich der Feuereffekt kontinuierlich ändert und animiert bleibt. Diese Funktion sorgt dafür, dass der Feuereffekt in regelmäßigen Abständen aktualisiert wird und eine animierte Flammenbewegung erzeugt. Sie ist ein wichtiger Bestandteil des dynamischen Charakters der Feueranimation.

Highlights

Analyzing a single frame of fire effect generated from text characters.

Empty spaces are considered as space characters in the effect.

Use the pre-formatted text element as a container for proper formatting.

Each cell in the grid contains either a space or a text character to create the fire effect.

Fire effect generated from a string called 'fire cares' where the first character is a space.

Grid width is the number of horizontal cells, height is the number of vertical cells.

Fire pixels array is a one-dimensional array instead of a 2D grid.

The size of the fire pixels array is the product of the width and height of the grid.

Each index in the fire pixels array stores the index of a fire character rather than the character itself.

Logic to generate fire involves updating the fire string with values from the fire pixels array.

Set a timeout function so the fire effect keeps changing continuously.

The fire starts from the bottom, and a random cell is selected to fill the last row with characters.

To make the fire grow upwards, calculate the average of adjacent cells in the fire pixels array.

Introduce gaps randomly in the fire string to make it look more like fire by adding space characters.

The final fire effect includes random generation of characters in the last row and growth upwards with gaps for a realistic look.

Transcripts

play00:00

Mr floron galon is an amazing front-end

play00:03

developer while going through his

play00:04

portfolio I found this stunning

play00:10

effect this is fire that is generated

play00:12

from text which we can try to

play00:15

recreate first let us make it simple and

play00:18

analyze one single frame of this effect

play00:21

we can see that this is all text where

play00:23

characters are being constantly changed

play00:25

to create the visual effect so we can

play00:28

consider all the empty places as space

play00:31

characters now to have proper formatting

play00:33

we can use the pre-formatted text

play00:35

element as the

play00:36

container if we apply a grid on this we

play00:39

can see that each cell can contain

play00:41

either a space or a text character and

play00:43

for those characters initialize a string

play00:45

called fire cares as shown and make sure

play00:47

to mention the first character as

play00:50

space now coming to the grid width is

play00:52

the number of horizontal cells and

play00:54

height is the number of vertical cells

play00:56

which we will initialize at the start as

play00:59

the tire fire is just a string instead

play01:01

of a 2d grid we can consider it as a

play01:04

one-dimension array which we can call as

play01:06

fire pixels array by combining the

play01:09

values of this fire pixels array and

play01:11

adding a new line character after every

play01:13

row width we can get the final fire

play01:16

string so the size of the fire pixels

play01:19

array will be the product of the width

play01:20

and height of the grid we will be

play01:23

storing the index of the fire cares

play01:25

instead of the character itself and by

play01:27

default we will mention the space

play01:28

character which is is the first one in

play01:30

the fire

play01:31

cares next we will generate the

play01:35

fire for that start by initializing an

play01:38

empty fire string now the primary logic

play01:40

is to update the fire string with the

play01:42

values of the fire pixels array so

play01:44

initialize a for Loop to iterate over

play01:46

the fire pixels array and assign the

play01:48

character from the fire Cas based the

play01:50

array value and as mentioned previously

play01:52

add a new line character when the array

play01:54

reaches the end of the row then assign

play01:57

the final fire string to the fire

play01:58

container and finally add a set timeout

play02:01

function so that the fire keeps on

play02:04

changing but we cannot see any output

play02:06

here as we are just setting the fire

play02:08

string with default fire pixels array

play02:10

the container is filled with spaces if

play02:13

you initially set the fire pixels array

play02:15

values to the second index of the fire

play02:17

Cas then the container is filled with

play02:19

commas so to make this appear as the

play02:22

fire we will make some changes as the

play02:24

fire starts from the bottom we will

play02:26

first try to fill the last row to make

play02:29

it simple I am reducing the size of this

play02:32

grid we need to fill the last row but

play02:34

that is in a one-dimensional array now

play02:37

we will select a random Cell between

play02:39

zero cell and the Cell at width minus

play02:41

one value index and assign it to a

play02:44

variable called random call let's assume

play02:47

we have selected the third cell now we

play02:49

will add the product of width and height

play02:51

to the random Call Value to calculate an

play02:53

index within the last row finally assign

play02:57

a random character from the fire cares

play02:59

to this cell

play03:00

this process is done for one single cell

play03:02

only but it has to be repeated for the

play03:05

entire last row for that initialize for

play03:07

Loop starting from zero to width of the

play03:09

row and repeat this logic which will

play03:11

randomly populate the last row we can

play03:14

see the last row is being generated and

play03:16

constantly

play03:17

changed now that we have filled the last

play03:20

row the fire has to grow upwards so we

play03:22

need to fill row by Row for filling the

play03:25

cells in the above rows we can take the

play03:27

average of these four cells and use that

play03:29

value

play03:30

but in a one-dimensional array this

play03:32

average can be calculated by considering

play03:35

the I element I + one element i+ width

play03:38

element and i+ width plus one

play03:41

element inside the main for Loop

play03:44

calculate this average value and assign

play03:46

it to the fire pixels array as we need

play03:49

to iterate till the last second row only

play03:51

change height to height minus one as

play03:54

shown we can see the characters being

play03:56

Filled from the bottom and they being

play03:58

left like that we need to add some gaps

play04:00

to make it look like fire for that we

play04:03

will add the space character randomly in

play04:06

the last row which in turn creates gaps

play04:08

in the upper

play04:09

rows we need to do that in the

play04:11

one-dimensional array by selecting a

play04:13

random Cell between 0 to width minus one

play04:16

index and using that value find out the

play04:18

index in the last row then set the cell

play04:22

value to zero which is a space character

play04:24

in the fire Cas repeat this process for

play04:27

the entire row for that start for loop

play04:30

from zero to width of the row and repeat

play04:32

the

play04:32

logic with that you will have your fire

play04:35

effect ready if you find this tutorial

play04:38

valuable then subscribe to the channel

Rate This

5.0 / 5 (0 votes)

Related Tags
TextanimationFeuereffektFrontendWebentwicklungAnimationJavaScriptGridInteraktivCodingEffektentwicklung
Do you need a summary in English?