Hra na plátně (Canvas)
AktuálníVykreslíme herní svět na canvas a rozhýbeme objekty v herním cyklu.
- Kreslení, souřadnice, herní smyčka
3D kroužek ZŠ a MŠ Všeň
Programujeme tak, aby to šlo i doma: stačí prohlížeč a textový editor. Klidně Notepad. Na kroužku používáme i VS Code (ten je potřeba instalovat).
Pro děti 1.–5. třídy
Děláme hry v JavaScriptu na canvasu.
Vykreslíme herní svět na canvas a rozhýbeme objekty v herním cyklu.
Ovládání pomocí klávesnice, pohyb po obrazovce, hranice a jednoduché překážky.
Padající / létající objekty, které hráč sestřeluje. Body a jednoduché kolize.
V této jednoduché pohádce jsme si ukázali základy použití proměnných, funkcí a objektů. Při stisku F5 (obnovení stránky) se spustí naše hra.
Programujeme hlavně v JavaScriptu a hry kreslíme do canvas. Doma stačí prohlížeč a textový editor – klidně jen Notepad.
Vytvoříš složku a v ní dva soubory: index.html a game.js. Otevřeš index.html v prohlížeči. Po změnách dáš F5 (obnovit). Když se něco pokazí, koukneš do F12 → Console.
V Notepadu dej Uložit jako… → Typ: Všechny soubory,
a soubor pojmenuj přesně index.html (ne index.html.txt).
Doporučený postup (stejný jako v kroužku). Zvládneš to i jen s Notepadem. VS Code je také možné použít, ale je potřeba ho nainstalovat.
Např. Plocha → 3Dkrouzek. Všechno budeme ukládat sem.
Ve složce udělej index.html a game.js.
Pozor na koncovky – nesmí to být .txt.
Otevři index.html v prohlížeči. Po úpravě dej F5. Když něco nejde: F12 → Console.
Vlož přesně do souborů. Pak jen upravuj čísla a barvy.
<!doctype html>
<html lang="cs">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Moje Canvas hra</title>
<style>
body { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; margin: 24px; }
canvas { border: 1px solid #e5e5e5; border-radius: 12px; }
</style>
</head>
<body>
<h1>Moje Canvas hra</h1>
<canvas id="game" width="420" height="280"></canvas>
<p>Tip: otevři F12 → Console.</p>
<script src="game.js"></script>
</body>
</html>
const canvas = document.getElementById("game");
const ctx = canvas.getContext("2d");
let x = 40;
let y = 40;
let vx = 2;
let vy = 2;
function tick() {
// vyčistit plátno
ctx.clearRect(0, 0, canvas.width, canvas.height);
// pohyb
x += vx;
y += vy;
// odraz od okrajů
if (x < 0 || x > canvas.width - 30) vx *= -1;
if (y < 0 || y > canvas.height - 30) vy *= -1;
// nakreslit "hráče"
ctx.fillRect(x, y, 30, 30);
requestAnimationFrame(tick);
}
tick();
index.html a game.js (bez .txt)Nejdřív věci, které používáme v kroužku. Online editory jsou až na konci (nejsou nutné, ale hodí se).
index.html + game.js. Online editory jsou jen alternativní cesta.
E-mail: jakub.prokopec@gmail.com
Web: www.3dkrouzek.cz
Škola: ZŠ a MŠ Všeň