https://scratch.mit.eduZde najdete Scratch

Jak naprogramovat skok

V mnoha hrách se používá skok, skákání. Jak naučit postavu skákat, aby to vypadalo přirozeně? Ukážeme Vám jednoduchý způsob, jak takový přirozený skok udělat.

Skok využijete ve spoustě her, například v naší hře Ninja Run postava běží dopředu a po odraze skočí – musí přeskakovat bedny. Problém je, jak skok naprogramovat, aby vypadal přirozeně. Není to nic těžkého.ninjarun

Špatný způsob

Skok není nic jiného, než pohyb nahoru následovaný pohybem dolů.  Začátečníci to ovykle zkusí naprogramovat například takto:skok1

Tedy že 20x opakují posun postavy o 10 bodů nahoru a potom opět 20x opakují posun postavy o 10bodů dolů (čísla 20 a 10 jsou vybrána jen pro příklad).

Výsledek ale nevypadá přirozeně, postava se pohybuje stále stejně rychle nahoru, kde se jakoby odrazí a opět rovnoměrně padá dolů.

Lepší způsob

Lépe je naprogramovat skok nerovnoměrný, jak postava stoupá, její rychlost se postupně zpomaluje, až se v mrtvém bodě skoro zastaví a pak zase nabírá postupně rychlost opačným směrem.

Podívejte se na rozdíl v našem příkladu. Levá baletka skáče špatně, pravá dobře (skok spustíte klávesou mezerník)

A jak to udělám. Budeme postupně snižovat počet bodů, o které se posuneme nahoru. Až se dostaneme k jedničce, začneme zase zvyšovat (ale směrem dolů). Tedy 20,19,18…2,1,-1,-2,…,-18,-20.skok2

K realizaci potřebujeme jednu lokální proměnnou, kterou postupně snižujeme a pak zase zvyšujeme.

Samozřejmě konkrétní parametry skoku (kolikrát opakovat) lze nastavit dle potřeby.

Celý kód příkladu najdete zde https://scratch.mit.edu/projects/133028922/

Víte že v pokročilejších herních enginech (např. Unity) máte k dispozici nástroje simulující reálnou fyziku. Velmi snadno se tam vytváří skoky, dopady, práce s gravitací, odrážení a kutálení apod. Scratch to bohužel nepodporuje a proto vše musíme vytvářet ručně.

 

Share This