ebSkola

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

  1. VS Code ar File → Open Folder atver Desktop/datorika9-tema5 . Ja mapes nav, izveido to darbvirsmā.
  2. Šajā mācību lapā nospied Kopēt sākuma kodu .
  3. VS Code nospied Ctrl+N un ielīmē kodu ar Ctrl+V .
  4. 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.

Lejupielādēt 51.html

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

  1. Sāc ar 51.html . Ja vēlies, jaunajā failā vari izmantot savu 4. tēmas spēli.
  2. Pārlūkā pārbaudi kustību, punktus, sadursmi un sākšanu no jauna.
  3. 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

  1. Izveido tēmas mapē README.md .
  2. Ieraksti spēles nosaukumu un trīs darbus pēc teorijas parauga. Pielāgo tekstu savai iecerei.
  3. 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

  1. Failā 51.html nomaini spēles nosaukumu, vadības norādi un abu tēlu krāsas.
  2. Saglabā un pārbaudi, ka izmaiņas nav salauzušas kustību un sadursmi.
  3. Mutiski izstāsti klasesbiedram trīs plānotos uzlabojumus. Ja kāds ir pārāk plašs, saīsini to README.
  4. Nosūti un iesniedz 51.html kopā ar README.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ā

  1. Ar File → Save All saglabā failus. Atver Source Control ar Ctrl+Shift+G .
  2. Pie Changes nospied + (Stage All Changes). Pārbaudi, ka vajadzīgie faili pārvietojas uz Staged Changes .
  3. Ziņas laukā ieraksti īsu izmaiņu, piemēram, Pabeigts 5.1 darbs . Spied Commit .
  4. 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 .
  5. 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.

  1. README beigās pievieno vienu vēlmi zem virsraksta ## Ja paliek laiks .
  2. Nosauc pārbaudāmu rezultātu, piemēram, “Pauzes poga aptur kustību”.
Ja kaut kas neizdodas

Palīdzība Git, kontam un darba atvēršanai

Skolotājam: sasniedzamo rezultātu saistība

Šajā nodarbībā vingrina šādu rezultātu daļas no 9. klases saraksta . Piesaiste pati par sevi nenozīmē visa rezultāta apguvi.

Kursa nosacījumi un satura pārklājums