Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| krouzek:auticko2 [2018/03/21 13:54] – vytvořeno admin | krouzek:auticko2 [2023/11/15 20:54] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 48: | Řádek 48: | ||
| </ | </ | ||
| + | Po této úpravě samozřejmě nebude funkce // | ||
| + | <code javascript> | ||
| + | //Funkce ktera bude volana znovu a znovu = herní loop | ||
| + | function render(){ | ||
| + | |||
| + | //Ovlivneni na zaklade stavu klaves | ||
| + | if(zmacknutoZrychli){ | ||
| + | | ||
| + | } | ||
| + | //todo: další akce | ||
| + | |||
| + | //todo přepočítání x,y na základě rychlosti - viz další část textu | ||
| + | |||
| + | //nastav aktualni stav do prvku | ||
| + | document.getElementById(' | ||
| + | document.getElementById(' | ||
| + | } | ||
| + | |||
| + | // | ||
| + | setInterval(render, | ||
| + | </ | ||
| + | |||
| + | Poznámka: aby byla hra skutečně stejně hratelná pro všechny, je třeba pamatovat, že 33ms není úplně spolehlivých - mezi jednotlivými snímky může uplynout i víc času. Jako námět pro rozšíření bychom tedy mohli měřit dobu skutečně uplynulou od minulého snímku a přenásobovat tím přírustky k pozici (= jak daleko se auto pohne) | ||
| + | |||
| + | === Rychlost === | ||
| + | {{ : | ||
| + | Dosud jsme autíčko pohybovali pouze ve chvíli zmáčknutí klávesy, a to jeho maximální rychlostí. Jak to ovšem funguje s reálnými pohybujícími se předměty? Rychlost se nezvyšuje skokově. Dokud držíme nohu na plynu, rychlost roste. Když nohu z plynu sundáme (nebo začneme brzdit), rychlost se začne snižovat (až klesne k nule). | ||
| + | |||
| + | Z programátorského hlediska budeme potřebovat v naší hře zavést novou proměnnou (případně dvě, pro každou ze souřadnic x,y) - rychlost. Měl by platit vzoreček: | ||
| + | < | ||
| + | polohaX_nova=polohaX_stara + rychlostX * uplynulyCas | ||
| + | </ | ||
| + | zjednodušeně (spoléháme se na správnost časování intervalem): | ||
| + | < | ||
| + | polohaX=polohaX + rychlostX | ||
| + | </ | ||
| + | což se dá napsat i způsobem: | ||
| + | < | ||
| + | polohaX+=rychlostX | ||
| + | </ | ||
| + | |||
| + | Toto se odehraje v každém výpočtu snímku (funkce // | ||
| + | |||
| + | |||
| + | == Setrvačnost == | ||
| + | Pro ještě lepší dojem z autíčka zkuste rychlost ovlivňovat i přirozeným zpomalováním (aerodynamickým odporem, třením pneumatik). Pozor, nestačí prostě nějakou hodnotu od rychlosti odečítat - rychlost může být i záporná = v opačném směru! Musíte udělat podmínku, která rychlost snižuje, pokud je rychlost větší než 0 a zvyšuje, pokud je menší než 0. | ||
| + | |||
| + | |||
| + | |||
| + | === Otáčení a rychlost jako vektor === | ||