Išmokime braižyti tašką JavaScript naršyklėje.. techniškai tai nėra sudėtinga, bet tik tiems, kurie blaškosi, o tiems, kurie nėra pasiruošę brėžti tašką internete - tai, žinoma, yra visas pasiekimas.
Yra daug būdų nubrėžti tašką, pažvelkime į juos
Naudodami Unity/Godot/microStudio ar bet kurį iš tūkstančių žaidimų kūrėjų... jie visi vienaip ar kitaip sukurs tam tikrą kodą, kuris bus JavaScript arba Webassembly, ir vis tiek parodys esmę.Mums šis kelias neįdomus.nelabai suprasime kas vyksta, kodo kontrolė bus minimali ir neįskaitoma šaltinio kode, be to jis didžiulis.
Šis Jedi kelias yra kuo arčiau mūsų, nes.mūsų kodas nebus didelis ir aiškus kaip diena, daug abstrahuosime, labai nepadidinsime savo kodo su bibliotekomis.Kodo valdymas taip pat būtų puikus
Žinoma, tai yra Jedi būdas.Kodas yra kuo sudėtingesnis, maksimalus dalykų valdymas, kurių, kaip sakant, nereikia valdyti.Šaltinio kodai yra patys minimaliausi ir, žinant golimy JavaScript, galime tiesiog saugiai eiti įsidarbinti, nes.mums reikia tokių žmonių.
Bet mūsų užduotis yra ne susirasti darbą, o paprastai ir lengvai nupiešti tašką.Mūsų vektorius yra greitis ir lankstumas.
Aš pasirinkau biblioteką
p5js nupiešti tašką.Tai ne tik, žinoma, jei užduotis būtų nubrėžti tašką ir viskas, žinoma, viskas turėtų būti daroma plika JavaScript, bet aš tai darau perspektyviai, .k.tada jūs ir aš darysime kitus dalykus, kurie atrodys nuostabiai, o tam mums reikia gero įrankio.Vienas iš jų yra p5js.Golim JavaScript turime sukurti drobę, kad apibrėžtume inicijavimo ir perpiešimo funkcijas, p5 tai taip pat daroma, bet labai glaustai.
Bet pirma..
Minimali aplinkos sąranka „JavaScript“ kūrimui
parsisiųsti
p5.min.js ir laikykite jį šalia.kaip šitas
index.html
<html>
<head>
<script src="p5.min.js"></script>
<script src="sketch.js"></script>
</head>
<body style="margin: 0px;">
<main>
</main>
</body>
</html>
eskizas.js
function setup() {
createCanvas(window.innerWidth, window.innerHeight);
}
function draw() {
background(0);
stroke('white');
strokeWeight(10);
point(window.innerWidth/2,window.innerHeight/2);
}
Tai atsidarys jūsų naršyklėje taip:
Na, HTML suprantama, bet koks tai JavaScript kodas?
setup funkcija yra inicijavimas, ji vykdoma vieną kartą, joje kuriame drobę, t.y.sritis, kurioje nubrėžsime tašką.langas.innerWidth, window.innerHeight
yra ekrano plotis ir aukštis, t.y.Mes apibrėžiame viso ekrano drobę ir taip, HTML taip pat turi labai svarbų stilių
<body style="margin: 0px;">
Daugiau nieko inicijuoti nereikia, tereikia nupiešti tašką.Pažiūrėk čia principą .. piešimo funkcija vykdoma pvz 60 kartų per sekundę, o 60 kartų per sekundę brėžsime savo tašką .. atrodytų, kad tai kvaila, reikia tik nupiešti tašką ir viskas tai, bet ateityje tai bus visos bendros animacijos pagrindas.
Apskritai taško piešimo kodas yra labai paprastas:
point(10,10)
Štai ir viskas!
Tačiau mūsų kodas yra šiek tiek didesnis
background(0);
stroke('white');
strokeWeight(10);
point(window.innerWidth/2,window.innerHeight/2);
fonas juodas
balta žvaigždė
taško storis 10
ir piešiame jį vertikalios ir horizontalios centre.
Na.. nupiešėm tašką ant drobės, viskas kaip ir turi būti, bet galėtume net grynu HTML nupiešti be jokio JavaScript.. Kaip tai atrodytų?
Tai daro elementarų ir dar lengvesnį, bet principai visiškai kiti, čia yra galutinis kvadrato piešimo kodas ekrano centre
<!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>
Rezultatas beveik toks pat
Taip, HTML nupiešti ką nors centre yra gana paprasta, tačiau norint pridėti animaciją, o tuo labiau protingą interaktyvųjį, teks mąstyti pagal CSS principus.Nors tai gana įdomi užduotis.Tik vienas elementarus dalykas visa tai žudo, CSS nėra atsitiktinių skaičių, tai sunaikins visus mūsų bandymus ateityje, todėl šiai krypčiai teiksiu mažiau pirmenybės.
Jei įsivaizduoju, kad noriu padaryti žvaigždėtą dangų ant pliko CSS, tada man viskas nepavyks, nesŽvaigždės turėtų atsirasti atsitiktinėse pozicijose, o jei jos turi iš anksto susikurtas koordinates, tai nebus taip gražu ir ne taip paprasta, nes galima CSS parašyti atsitiktinių skaičių generatorių, bet toks kodas atrodys visiškai negražiai, neįskaitomas ir sunkiai įskaitomas. suprask!