5.1 Izvēlies spēles uzlabojumus un saplāno darbu
Šodien: Izmēģini spēles pamatu un izvēlies trīs paveicamus uzlabojumus.
Īsā teorija
Darba plānā raksti konkrētu darbību, piemēram, “Pievienot uzvaru pie 30 punktiem”.
Izvēlies trīs obligātus uzlabojumus. Papildu ideju īsteno, kad tie darbojas.
Šajā tēmā sagatavosi ekrānus, spēles datus un bonusu. Pēdējās divās nodarbībās pabeigsi savu noslēguma projektu.
# Mana spēle
- [ ] Izveidot sākuma un beigu ekrānu.
- [ ] Pievienot trīs dzīvības.
- [ ] Pievienot savācamu bonusu.
Sākuma kods un darba vieta
Vide: mācību lapa → VS Code
-
VS Code ar
File → Open Folder
atver
Desktop/datorika9-tema5. Ja mapes nav, izveido to darbvirsmā. - Šajā mācību lapā nospied Kopēt sākuma kodu .
- VS Code nospied Ctrl+N un ielīmē kodu ar Ctrl+V .
-
Saglabā ar
Ctrl+Shift+S
tēmas mapē kā
51.html.
Jauna tēma: izmanto atsevišķu mapi un GitHub projektu
datorika9-tema5
. Saglabājot pirmo darbu, izpildi Source Control atgādni zem 3. uzdevuma. Iepriekšējās tēmas mapi paturi.
Atvērt pilno sākuma kodu
<!DOCTYPE html>
<html lang="lv">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mana spēle</title>
<style>
body { font-family: Arial, sans-serif; max-width: 680px; margin: 24px auto; padding: 16px; line-height: 1.6; }
button, input { font: inherit; padding: 10px; margin: 4px; }
button { cursor: pointer; }
img { max-width: 100%; height: auto; }
[hidden] { display: none !important; }
#laukums { position: relative; width: 300px; height: 220px; max-width: 100%; background: #edf5ff; outline: 2px solid #245b91; overflow: hidden; }
#speletajs, #pretinieks, #moneta { position: absolute; width: 30px; height: 30px; }
#speletajs { background: #245b91; left: 20px; top: 160px; }
#pretinieks { background: #b3261e; left: 220px; top: 160px; }
#moneta { background: #ffca28; left: 140px; top: 160px; border-radius: 50%; }
</style>
</head>
<body>
<h1>Izvairies no pretinieka</h1>
<p>Ar pogām vai bultiņām pārvieto zilo kvadrātu. Izvairies no sarkanā.</p>
<div id="laukums">
<div id="speletajs"></div>
<div id="pretinieks"></div>
</div>
<button id="sakt">Sākt</button>
<button id="paKreisi">←</button>
<button id="paLabi">→</button>
<button id="uzAugsu">↑</button>
<button id="uzLeju">↓</button>
<button id="atjaunot">Sākt no jauna</button>
<p id="punkti">Punkti: 0</p>
<p id="stavoklis">Nospied Sākt.</p>
<script>
let x = 20;
let y = 160;
let pretiniekaX = 220;
let punkti = 0;
let aktiva = false;
let taimeris = null;
const solis = 10;
const pretiniekaAtrums = 3;
const speletajs = document.getElementById("speletajs");
const pretinieks = document.getElementById("pretinieks");
function paradit() {
speletajs.style.left = x + "px";
speletajs.style.top = y + "px";
pretinieks.style.left = pretiniekaX + "px";
document.getElementById("punkti").textContent = "Punkti: " + punkti;
}
function saduras(a, b) {
const p = a.getBoundingClientRect();
const q = b.getBoundingClientRect();
return p.left < q.right && p.right > q.left &&
p.top < q.bottom && p.bottom > q.top;
}
function parbaudit() {
if (saduras(speletajs, pretinieks)) {
aktiva = false;
clearInterval(taimeris);
document.getElementById("stavoklis").textContent = "Sadursme! Spēle beigusies.";
}
}
function kustinat(dx, dy) {
if (!aktiva) { return; }
x = x + dx * solis;
y = y + dy * solis;
const laukums = document.getElementById("laukums");
const robeza = laukums.clientWidth - 30;
x = Math.max(0, Math.min(robeza, x));
y = Math.max(0, Math.min(laukums.clientHeight - 30, y));
paradit();
parbaudit();
}
function cikls() {
pretiniekaX = pretiniekaX - pretiniekaAtrums;
if (pretiniekaX < 0) {
pretiniekaX = document.getElementById("laukums").clientWidth - 30;
punkti = punkti + 1;
}
paradit();
parbaudit();
}
function sakt() {
if (aktiva) { return; }
x = 20;
y = 160;
pretiniekaX = document.getElementById("laukums").clientWidth - 30;
punkti = 0;
aktiva = true;
speletajs.style.backgroundColor = "";
document.getElementById("stavoklis").textContent = "Spēle notiek.";
clearInterval(taimeris);
paradit();
taimeris = setInterval(cikls, 30);
}
document.getElementById("sakt").addEventListener("click", sakt);
document.getElementById("paKreisi").addEventListener("click", function () { kustinat(-1, 0); });
document.getElementById("paLabi").addEventListener("click", function () { kustinat(1, 0); });
document.getElementById("uzAugsu").addEventListener("click", function () { kustinat(0, -1); });
document.getElementById("uzLeju").addEventListener("click", function () { kustinat(0, 1); });
document.getElementById("atjaunot").addEventListener("click", function () { location.reload(); });
document.addEventListener("keydown", function (notikums) {
if (notikums.key === "ArrowLeft") { notikums.preventDefault(); kustinat(-1, 0); }
if (notikums.key === "ArrowRight") { notikums.preventDefault(); kustinat(1, 0); }
if (notikums.key === "ArrowUp") { notikums.preventDefault(); kustinat(0, -1); }
if (notikums.key === "ArrowDown") { notikums.preventDefault(); kustinat(0, 1); }
});
paradit();
</script>
</body>
</html>
1. uzdevums
Izvēlies spēles pamatu
Vide: VS Code → pārlūks
-
Sāc ar
51.html. Ja vēlies, jaunajā failā vari izmantot savu 4. tēmas spēli. - Pārlūkā pārbaudi kustību, punktus, sadursmi un sākšanu no jauna.
- Izvēlies spēlei savu tēmu un nosaukumu.
Gatavs, kad: Tev ir darbojošs pamats, kuru vari pielāgot.
2. uzdevums
Izveido īsu darbu plānu
Vide: VS Code
-
Izveido tēmas mapē
README.md. - Ieraksti spēles nosaukumu un trīs darbus pēc teorijas parauga. Pielāgo tekstu savai iecerei.
- Pie darbiem norādi nodarbību: ekrāni — 5.2, dzīvības — 5.3, bonuss — 5.4. Pārbaude un publicēšana būs 5.5–5.6.
Gatavs, kad: README ir trīs konkrēti darbi ar vietu tēmas plānā.
3. uzdevums
Sāc iecerēto versiju
Vide: VS Code → pārlūks
-
Failā
51.htmlnomaini spēles nosaukumu, vadības norādi un abu tēlu krāsas. - Saglabā un pārbaudi, ka izmaiņas nav salauzušas kustību un sadursmi.
- Mutiski izstāsti klasesbiedram trīs plānotos uzlabojumus. Ja kāds ir pārāk plašs, saīsini to README.
-
Nosūti un iesniedz
51.htmlkopā arREADME.md.
Gatavs, kad: Ir personalizēta darbojoša spēle un īss nākamo darbu plāns.
Iesniedz 3. uzdevuma rezultātu
Iesniedz pabeigto
51.html
un README.md skolotāja norādītajā vietā. Šo pašu versiju saglabā arī GitHub.
Stunda ir ieskaitīta, ja 3. uzdevuma rezultāts atbilst visiem šiem punktiem:
- 51.html ir savs nosaukums, vadības teksts un tēlu krāsas.
- Kustība, sadursme un sākšana no jauna darbojas.
- README satur trīs konkrētus darbus ar nodarbību numuriem.
1. un 2. uzdevums sagatavo šo rezultātu. Papildu uzdevums nav vajadzīgs ieskaitei.
Saglabā un nosūti uz GitHub — pogu atgādne
Vide: VS Code / Source Control → GitHub pārlūkā
- Ar File → Save All saglabā failus. Atver Source Control ar Ctrl+Shift+G .
- Pie Changes nospied + (Stage All Changes). Pārbaudi, ka vajadzīgie faili pārvietojas uz Staged Changes .
-
Ziņas laukā ieraksti īsu izmaiņu, piemēram,
Pabeigts 5.1 darbs. Spied Commit . -
Ja šī tēmas mape vēl nav GitHub, spied
Publish to GitHub
un izveido publisku projektu
datorika9-tema5. Jau publicētam projektam spied Sync Changes . Ja pogas nav, atver … → Push . - Pārlūkā atver savu GitHub projektu un pārbaudi faila pēdējās izmaiņas.
Ja Source Control rāda Initialize Repository , vispirms nospied to. Ja parādās kļūda vai sapludināšanas pieprasījums, izmanto palīdzību un palūdz skolotāja atbalstu.
Papildu uzdevums: Izvēlies vienu papildideju
Sāc, kad 3. uzdevums ir gatavs un iesniegts. Ja vēlies paturēt obligāto versiju, saglabā kopiju ar citu nosaukumu.
-
README beigās pievieno vienu vēlmi zem virsraksta
## Ja paliek laiks. - Nosauc pārbaudāmu rezultātu, piemēram, “Pauzes poga aptur kustību”.
Ja kaut kas neizdodas
-
Neredzi izmaiņas?
VS Code nospied Ctrl+S. Pārlūkā nospied Ctrl+R. Pārbaudi, ka atvērts tieši
51.html. - Kods redzams kā teksts? Saglabā ar galotni .html. Windows ieslēdz View → Show → File name extensions un pārbaudi, ka beigās nav .txt.
- Poga nestrādā? Pārbaudi, vai neizdzēsi pēdiņu, iekavu vai elementa id. Salīdzini savu laboto vietu ar sākuma kodu.
- Nesaproti nākamo soli? Atrodi pirmo nepabeigto soli un parādi skolotājam tieši šo vietu.