Tworzenie animacji Starfield za pomocą płótna jest fascynującym i satysfakcjonującym przedsięwzięciem. Jako dostawca płótna byłem świadkiem rosnącego zainteresowania korzystaniem z płótna do różnych kreatywnych projektów, w tym animacji. W tym poście na blogu poprowadzę Cię przez proces tworzenia animacji Starfield za pomocą Canvas, od podstawowych pojęć po szczegóły implementacji.
Zrozumienie podstaw płótna
Zanim zagłębimy się w stworzenie animacji Starfield, najpierw zrozummy, czym jest płótno. Canvas to element HTML5, który pozwala rysować grafikę w locie za pomocą JavaScript. Zapewnia potężny i elastyczny sposób tworzenia interaktywnych i dynamicznych treści wizualnych, takich jak gry, animacje i wizualizacje danych.
Aby użyć płótna, najpierw musisz utworzyć element Canvas w pliku HTML:
<canvas id = "starfield" szerokie = "800" height = "600"> </canvas>
W tym przykładzie utworzyliśmy element płótna z identyfikatorem „Starfield” oraz szerokością i wysokością odpowiednio 800 pikseli i 600 pikseli.
Następnie musisz uzyskać dostęp do elementu Canvas za pomocą JavaScript i uzyskać jego kontekst rysunku 2D:
const canvas = Document.GetElementById („Starfield”); const ctx = canvas.getContext ('2d');
.getContext („2d”)Metoda zwraca obiekt, który zapewnia zestaw metod i właściwości do rysowania grafiki 2D na płótnie.
Projektowanie animacji Starfield
Teraz, gdy mamy podstawowe zrozumienie płótna, zacznijmy projektować naszą animację Starfield. Animacja Starfield składa się z dużej liczby gwiazd losowo rozmieszczonych na płótnie, przy czym każda gwiazda ma swoją pozycję, rozmiar i jasność.


Aby utworzyć gwiazdy, możemy użyć prostego obiektu JavaScript do reprezentowania każdej gwiazdy:
funkcja gwiazda (x, y, rozmiar, jasność) {this.x = x; this.y = y; this.size = rozmiar; this.brightness = jasność; }
W tym przykładzieGwiazdaFunkcja konstruktora przyjmuje cztery parametry:XIIreprezentują pozycję gwiazdy na płótnie,rozmiarreprezentuje rozmiar gwiazdy ijasnośćReprezentuje jasność gwiazdy.
Następnie musimy utworzyć tablicę do przechowywania wszystkich gwiazd:
const Stars = []; const numstars = 200; for (niech i = 0; i <numstars; i ++) {const x = math.random () * canvas.width; const y = math.random () * canvas.height; const size = Math.random () * 3 + 1; Const Brightness = Math.random (); Star.push (nowa gwiazda (x, y, rozmiar, jasność)); }
W tym przykładzie stworzyliśmy tablicę o nazwiegwiazdyi zainicjował go z 200 gwiazdkami. Każda gwiazda jest losowo ustawiona na płótnie, o wielkości od 1 do 4 pikseli i jasności między 0 a 1.
Rysując gwiazdy na płótnie
Teraz, gdy mamy nasze gwiazdy, musimy narysować je na płótnie. Aby to zrobić, możemy użyćFillRectMetoda kontekstu rysunku 2D:
funkcja drawstars () {ctx.clearrect (0, 0, canvas.Width, canvas.height); for (niech i = 0; i <Stars.length; i ++) {const Star = Stars [i]; ctx.fillstyle = `rgba (255, 255, 255, $ {Star.brightness})`; ctx.fillrect (Star.x, Star.y, Star.Size, Star.size); }}
W tym przykładzieDrawstaryfunkcja najpierw usuwa całe płótno za pomocąClearRectmetoda. Następnie zapętla się przez wszystkie gwiazdy wgwiazdytablica i rysuje każdą gwiazdę za pomocąFillRectmetoda. .FillStylewłaściwość jest ustawiona na półprzezroczysty biały kolor, z przezroczystością określoną przezjasnośćwłasność gwiazdy.
Animowanie Starfield
Aby stworzyć efekt animacji, z czasem musimy zaktualizować pozycję i jasność każdej gwiazdy. Możemy to zrobić za pomocąRequestaniMationFrameMetoda, która jest wbudowaną funkcją JavaScript, która pozwala nam tworzyć płynne animacje:
funkcja animate () {drawStars (); for (niech i = 0; i <Stars.length; i ++) {const Star = Stars [i]; Star.y += 0,1; if (Star.y> canvas.height) {Star.y = 0; Star.x = Math.Random () * canvas.width; } Star.brightness = Math.sin (date.now () * 0,001 + i) * 0,5 + 0,5; } requestaniMationFrame (Animate); } animate ();
W tym przykładzieanimowaćfunkcja najpierw wywołujeDrawstaryFunkcja rysowania wszystkich gwiazd na płótnie. Następnie zapętla się przez wszystkie gwiazdy wgwiazdytablica i aktualizuje swoją pozycję i jasność. Każda gwiazda porusza się w dół ze stałą prędkością, a gdy dotrze do dna płótna, jest resetowana na górze i losowo zmienia się. Jasność każdej gwiazdy jest również aktualizowana przy użyciu funkcji fali sinusoidalnej, która tworzy efekt migoczący.
WreszcieRequestaniMationFrameMetoda jest wywoływana w celu zaplanowania następnej ramki animacji. Tworzy to ciągłą pętlę, która aktualizuje animację z płynną liczbą klatek na sekundę.
Używanie różnych tkanin na płótnie
Jako dostawca płótna oferujemy szeroką gamę płóciennych tkanin do różnych zastosowań. Na przykład, jeśli szukasz trwałej i wszechstronnej tkaniny dla swojej animacji Starfield, możesz rozważyć naszeBawełniany płótno tkanina bawełniana tkanina. Ta tkanina jest wykonana z wysokiej jakości bawełny i jest idealna do tworzenia naturalnego i rustykalnego wyglądu.
Jeśli potrzebujesz tkaniny, która jest wodoodporna i ochronna UV, naszPłótno z poliestrową wodą na płótnie na namiot z UVto świetny wybór. Tkanina ta jest wykonana z poliestru i jest zaprojektowana tak, aby wytrzymać trudne warunki pogodowe, co czyni ją idealną do zastosowań na zewnątrz.
Aby uzyskać bardziej stylową i praktyczną opcję, możesz rozważyć naszeBawełniana tkanina na płótnie. Ta tkanina jest wykonana z bawełnianego Twill i jest idealna do tworzenia toreb, plecaków i innych akcesoriów.
Wniosek
Podsumowując, utworzenie animacji Starfield za pomocą Canvas jest zabawnym i satysfakcjonującym projektem, który pozwala zbadać kreatywne możliwości HTML5 i JavaScript. Postępując zgodnie z krokami przedstawionymi w tym poście na blogu, możesz stworzyć piękną i dynamiczną animację Starfield, która zrobi wrażenie na odbiorcach.
Jeśli chcesz kupić tkaniny Canvas na następny projekt, skontaktuj się z nami, aby uzyskać więcej informacji. Zawsze chętnie pomożemy znaleźć odpowiedni materiał dla Twoich potrzeb.
Odniesienia
- Samouczek html5 Canvas: https://developer.mozilla.org/en-us/docs/web/api/canvas_api/Tutorial
- Samouczek animacji JavaScript: https://www.w3schools.com/js/js_animation.asp
