Stundas uzdevums: Apvienot 4. tēmā apgūtās funkcijas, notikumus, DOM manipulāciju, taimerus un sadursmes vienā pārbaudāmā spēles dzinēja prototipā.
Pirms sāc: izmanto iepriekš apgūto un šīs lapas teorijas/koda piemērus. Ja vajadzīga jauna komanda vai rīks, vispirms atrodi tās paraugu teorijas sadaļā.
Šajā prototipā nav jāievieš jauna spēles mehānika. Mērķis ir savienot jau apgūto: starta funkciju, notikumu klausītājus, elementu pārvietošanu, laika kontroli un sadursmju pārbaudi. Ja katra daļa ir atsevišķā funkcijā, kļūdas var atrast ātrāk.
function saktSpeli() {
punkti = 0;
speleAktiva = true;
taimeris = setInterval(atjaunotSpeli, 100);
}
function beigtSpeli() {
speleAktiva = false;
clearInterval(taimeris);
}
70 min plāns: integrācija ~25 min, koda sakārtošana ~20 min, pāru testēšana un kļūdu labošana ~25 min.
Šis ir īss iesildīšanās uzdevums. Nokopē sagatavi, ielīmē to pareizajā koda vietā un palaid. Šeit pietiek droši izmēģināt tēmu 4.6 Noslēguma projekts: Spēles dzinēja prototips; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
function saktSpeli() {
punkti = 0;
speleAktiva = true;
taimeris = setInterval(atjaunotSpeli, 100);
}
function beigtSpeli() {
speleAktiva = false;
clearInterval(taimeris);
}
script.js failā vai lapas esošajā skripta daļā.Pievieno dzinējam vienu nelielu, atkārtoti lietojamu spēles mehāniku.
atjaunoSpeletaju(), punkti, laiks vai parbaudaSadursmi().Pārbaudi, vai spēles dzinēja algoritms darbojas paredzami.
Ja pamatdarbs ir pabeigts, paplašini prototipu ar vienu nelielu programmētu uzlabojumu.
let dzivibas = 3; un pievieno <p id="dzivibas">Dzīvības: 3</p>.beigtSpeli().git commit -m "Add lives system to game engine".setInterval() izsaukuma apturi veco taimeri.speleAktiva.| Kritēriji | Sācis apgūt (1-3) | Turpina apgūt (4-6) | Apguvis (7-8) | Apguvis padziļināti (9-10) |
|---|---|---|---|---|
| 1. Funkcionalitāte un spēles loģika | Spēle palaižas, bet cikla (start/stop) vadība nedarbojas vai pārlūkprogramma regulāri "uzkaras". | Spēli var sākt, taču apstādināšanas (Game Over) loģikā ir nepilnības (piem., objekti turpina kustēties fonā). | Spēles cikls (sākums, gaita, beigas) darbojas stabili un bez kļūdām. Visi intervāli tiek korekti apstādināti. | Loģika ir nevainojama, patstāvīgi ieviesti papildus stāvokļi (piemēram, pauze vai līmeņu pārslēgšanās), kas darbojas stabili. |
| 2. Koda kvalitāte ("Clean Code") | Kods ir grūti lasāms, mainīgo nosaukumi ir nejauši (a, b, x), nav izmantoti komentāri. | Kods ir daļēji sakārtots, izmantoti daži jēgpilni nosaukumi, bet palikuši lieki testa kodi (piem., nevajadzīgi console.log). | Kods ir strukturēts, mainīgie ir jēgpilni, pievienoti skaidrojoši komentāri pie galvenajām funkcijām. Liekais kods ir izdzēsts. | Kods ir modulārs, loģiski sadalīts pa atsevišķām funkcijām, pilnībā ievērojot labās prakses (Clean Code) principus. |
| 3. Atkļūdošana un sadarbība | Spēj pamanīt vizuālas kļūdas savā spēlē, bet kļūdu labošanā nepieciešams nepārtraukts skolotāja atbalsts. | Izmanto konsoli, lai atrastu vienkāršas sintakses kļūdas. Dalās ar kodu, bet nespēj mērķtiecīgi testēt cita darbu. | Patstāvīgi atrod un novērš savas loģikas kļūdas. Veiksmīgi testē klasesbiedra spēli un spēj izskaidrot atrasto kļūdu cēloni. | Atrod kļūdas, izskaidro to iemeslus, piedāvā risinājumus un palīdz klasesbiedram tos integrēt. |