La oss lære å tegne et poeng i JavaScript i en nettleser.. det er ikke teknisk vanskelig, men bare for de som famler, og for de som ikke er forberedt på å tegne et poeng på Internett - dette er selvfølgelig en hel prestasjon.
Det er mange måter å tegne et poeng på, la oss se på dem
Ved å bruke Unity/Godot/microStudio eller noen av de tusenvis av spillbyggere... vil de alle lage en eller annen kode på en eller annen måte som vil være JavaScript eller Webassembly, og fortsatt vise oss poenget.Vi er ikke interessert i denne veien.vi vil egentlig ikke forstå hva som skjer, kontroll over koden vil være minimal og uleselig i kildekoden, dessuten er den enorm.
Denne Jedi-banen er så nær oss som mulig, fordi.koden vår vil ikke være stor og tydelig, vi vil ikke abstrahere mye, vi vil ikke øke koden vår i stor grad med biblioteker.Kodekontroll ville også vært bra
Dette er selvfølgelig Jediens måte.Koden er så komplisert som mulig, den maksimale kontrollen over ting som så å si ikke trenger å kontrolleres.Kildekodene er de mest minimale og med kunnskap om golimy JavaScript kan vi trygt gå for å få en jobb, fordi.vi trenger slike mennesker.
Men vår oppgave er ikke å finne en jobb, men å tegne en prikk på en enkel og lettvint måte.Vår vektor er hastighet og fleksibilitet.
Jeg valgte biblioteket
p5js å tegne en prikk.Det er ikke bare det, selvfølgelig, hvis oppgaven var å tegne et poeng og det er det, ville selvfølgelig alt måtte gjøres i bare JavaScript, men jeg gjør dette i perspektiv, .k.da vil du og jeg gjøre andre ting som vil se fantastiske ut, og for dette trenger vi et godt verktøy.En av dem er p5js.I golim JavaScript må vi lage et lerret for å definere initialiserings- og omtegningsfunksjonene, i p5 gjøres dette også, men veldig konsist.
Men først..
Minimum miljøoppsett for JavaScript-utvikling
nedlasting
p5.min.js og hold den side ved side.som dette
index.html
<html>
<head>
<script src="p5.min.js"></script>
<script src="sketch.js"></script>
</head>
<body style="margin: 0px;">
<main>
</main>
</body>
</html>
sketch.js
function setup() {
createCanvas(window.innerWidth, window.innerHeight);
}
function draw() {
background(0);
stroke('white');
strokeWeight(10);
point(window.innerWidth/2,window.innerHeight/2);
}
Som et resultat vil nettleseren din åpnes slik
Vel, HTML er forståelig, men hva slags JavaScript-kode er dette?
oppsettsfunksjonen er initialisering, den utføres én gang, i den lager vi et lerret, dvs.område hvor vi skal tegne et punkt.vindu.innerBredde, vindu.innerhøyde
er bredden og høyden på skjermen, dvs.vi definerer et fullskjerms lerret og ja, HTML har en veldig viktig stil for dette også
<body style="margin: 0px;">
Vi trenger ikke initialisere noe annet, vi trenger bare å tegne en prikk.Se på prinsippet her .. tegnefunksjonen utføres for eksempel 60 ganger per sekund, og 60 ganger per sekund vil vi tegne poenget vårt .. det ser ut til at dette er dumt, vi trenger bare å tegne et punkt og det er det, men i fremtiden vil det være grunnlaget for generell all animasjon.
Generelt er koden for å tegne et punkt ekstremt enkel:
point(10,10)
og alt!
Imidlertid er koden vår litt større
background(0);
stroke('white');
strokeWeight(10);
point(window.innerWidth/2,window.innerHeight/2);
bakgrunn svart
hvit stjerne
prikktykkelse 10
og vi tegner den i midten av vertikal og horisontal.
Vel.. vi tegnet en prikk på lerretet, alt er som det skal være, men vi kunne til og med tegnet det på ren HTML uten JavaScript. Hvordan ville det se ut?
Det gjør det elementært og enda enklere, men prinsippene er helt annerledes, her er den endelige koden for å tegne en firkant i midten av skjermen
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="background-color: black;">
<div style="position: fixed; top: 50%; left: 50%; background-color: white; width: 10px; height: 10px;"></div>
</body>
</html>
Resultatet er nesten det samme
Ja, det er ganske enkelt å tegne noe i sentrum i HTML, men for å legge til animasjoner, og enda mer en fornuftig interaktiv, må du tenke i henhold til prinsippene for CSS.Selv om det er en ganske interessant oppgave.Bare én elementær ting dreper alt dette, det er ingen tilfeldige tall i CSS, dette vil drepe alle forsøkene våre i fremtiden, og det er derfor jeg vil gi mindre preferanse til denne retningen.
Hvis jeg forestiller meg at jeg vil lage en stjernehimmel på bar CSS, så vil ikke alt ordne seg for meg, fordistjerner skal vises i tilfeldige posisjoner, og hvis de har forhåndslagrede koordinater, vil det ikke være så vakkert og ikke så enkelt, fordi du kan skrive en tilfeldig tallgenerator i CSS, men en slik kode vil se helt stygg ut, uleselig og vanskelig å forstå!