==== Úloha: Autíčko ==== Vaším úkolem bude vytvořit hru, ve které se jezdí autíčkem. Autíčko je ovládáno šipkami, které mění jeho směr a zvyšují-snižují jeho rychlost. K tomuto cíli se budeme dostávat postupně: === Autíčko === Auto může být reprezentováno elementem ''
Autíčko musí mít v css ''position:absolute'' a parkoviste ''position:relative'' (a nějakou šířku ''width'' a výšku ''height'' - např ''width:500px;height:500px''. Pro jistotu na začátek parkovišti nastavte také nějakou světlou backgroundColor - ať vidíte svou herní plochu.
Hodnoty css auticka ''left:100px'' a ''top:100px'' znamenají odstup od levého a vrchního kraje). Změnou těchto hodnot se pak autíčko posouvá.
Zkuste si teď pohybovat autíčkem doprava; použijeme //setInterval// funkci, která nám umožní opakovat volání funkce změny koordinátů autíčka každých X milisekund.
var x=0; //pocatecni pozice
function render(){
x+=1; //posun doprava
document.getElementById("auticko").style.left=x+"px";
}
Modifikací posunu y (''top'' vlastnosti v css) tedy naše nahoru otočené autíčko můžeme rozjíždět v ose y (nahoru a dolů).
Použijeme k tomu zachytávání klávesnice:
/* Ovladani klavesnici */
document.addEventListener('keydown', function(event){
const keyName = event.key;
if(keyName === 's' || keyName === 'S'){
dolu();
}
if(keyName === 'w' || keyName === 'W'){
nahoru();
}
});
V tomto zjednodušeném případě si vysvětlíme, jak funguje rychlost a přidávání/ubírání plynu. My totiž nechceme, aby zmáčknutí W posunulo auto nahoru. Chceme aby zmáčknutí (resp. později držení) W zvýšilo **rychlost** autíčka. Rychlost se pak přičítá k pozici (jako jsme kódem ''x+=1'' nahoře ve funkci //render// přičítali jedničku, teď můžeme přičíst (resp. odečíst) ''y+=rychlostY''.
=== Otáčení autíčka ===
Otočení nehybného autíčka lze pomocí CSS udělat poměrně jednoduše - jde o vlastnost ''transform:rotate(7deg)''. Hodnotu 7 si, podobně jako u rychlosti, budeme držet v proměnné ''rotace'' - klávesy A a D budou tento úhel rotace zvyšovat/snižovat.