Silnice

V další jednoduché hře pojedeme "proti všem" :-) S autíčkem ovládaným kurzorovými šipkami se budeme snažit co nejdéle vydržet na silnici, když ztratíme život za každou srážku s protijedoucím vozidlem. Ovšem protože jedeme jednosměrkou v protisměru, nebudeme to mít jednoduché. Body získáme za každé protijedoucí auto, které vyjede za okraj.



Sprites

Jak je vidět na obrázku, spriptů je opět jen několik a jednoduchých (ne každý má výtvarný talent :-) ). Červené je autíčko hráče, auto2 a auto3 jsou "protijezdci" :-), zed a kraj budou tvořit mantinely.



Obrázky máme připravené, můžeme je rozhýbat.

Objekty - auto

Objekt zed jsme již použili, jeho význam zůstává stejný, použil jsem ji na levý a pravý okraj "silnice". Aby nemohl "řidič" prchnout ze silnice nahoru nebo dolů, použil jsem pro tyto okraje další objekt kraj, kterému na rozdíl od zdi odtrhneme visible, čili nebude viditelný (ale události a akce pro něj budou fungovat).

Události a akce dalších objektů už byste většinou dali dohromady, jen něco přidáme nebo zkusíme obměnit. Například pro pohyb hráčova autíčka zkusíme na rozdíl od předchozí lekce jinou možnost, využít po stisku klávesy akci Start moving... s příslušným směrem, pokud nebude stisknuta žádná klávesa (nový event no key) bude stát.

auto
událostakcepoznámka
Create nastavení 3 životů, záložka score
zobrazení počtu životů, záložka score
Keyboard - Left - pohyb doleva (rychlost si zvolte), pohyb ostatními směry obdobně, to už zvládnete sami:-) doufám:-)
Keyboard - no key čtvereček uprostřed, tedy žádný směr = zastavit
Collision (se zdí a krajem) čtvereček uprostřed, tedy žádný směr = zastavit
Collision (s auto2, auto3) ztratili jsme život (nezapomeňte na relative), záložka score
Other - No more lives ("smrt") pozastavení programu na daný počet milisekund (zvolená 1s), záložka main2
vypsání zprávy (třeba GAME OVER..), záložka main2
zobrazení tabulky rekordů (možno volit font, barvy...), záložka score
restart the game:-), záložka main2




K vyzkoušení pohybu hráčova auta můžeme připravit místnost, tentokrát jsem pozadí nakreslil přímo pro danou velikost místnosti (nedalo to moc práce :-) ).
Pro protijedoucí auta vyzkoušíme další příkaz, který se vyskytuje ve všech programovacích jazycích (jen s drobnými odlišnostmi), takže vlastně opět zabrousíme malinko do programování (ale jen opravdu malinko:-) ).




Další auta - volba náhodného čísla

Pokud jste si hru vyzkoušeli, viděli jste, že auta po projetí spodním okrajem "vozovky" vyjíždí znovu zhora, ale většinou na jiné pozici - ta je náhodně zvolená. K volbě náhodného čísla vyzkoušíme příkaz random, který se používá ve všech programovacích jazycích.
Například random(50) - příkaz zvolí náhodné číslo od 0 do čísla uvedeného v závorce, v této ukázce tedy do 50

Ne vždycky chceme volit náhodná čísla od nuly, potom musíme zvolené číslo o něco zvětšit, stejně jako potřebujeme v naší hře.
Protože nechceme, aby nám auta jezdila po trávě za zdí mimo silnici, musí být jejich vodorovná souřadnice větší než 78 pixelů (viz obrázek), ke kterým by bylo přidáno náhodné číslo do 130 (zhruba šířka silnice). Exaktně matematicky to moc nevychází (2x78 + 130 se nerovná 320, což je šířka místnosti), něco je potřeba počítat na zeď (podle toho kam ji položíme), nějaké pixely zabere auto, po hrubém odhadu je potřeba hodnoty důkladně vyzkoušet:-)

auto3 - větší a pomalejší
událostakcepoznámka
Create nastavit směr dolů, rychlost např. 2
Collision (s auto (hráč)) vodorovná souřadnice (x) bude náhodná mezi 78 a 208, svislá souřadnice (y) bude nahoře (nad horním okrajem, ten je y=0)
Other - Outside Room (vyjede mimo) navýšení skóre o 1 bod
hup znovu nahoru

auto2 - menší a rychlejší, proto může vrazit i do auto3
událostakcepoznámka
Create nastavit směr dolů, rychlost např. 5
Collision (s auto (hráč)) vodorovná souřadnice (x) bude náhodná mezi 78 a 208, svislá souřadnice (y) bude nahoře (nad horním okrajem, ten je y=0)
Collision (s auto3) vodorovná souřadnice (x) bude náhodná mezi 78 a 208, svislá souřadnice (y) bude nahoře (nad horním okrajem, ten je y=0)
Other - Outside Room (vyjede mimo) navýšení skóre o 5 bodů
hup znovu nahoru


Úkoly:

Vytvořte hru podle lekce s vlastními obrázky. Můžete přidat i další místnost, do které se dostanete po najetí do horního okraje, nebo objekt, který bude přidávat životy.

Úkoly pro experty:

Podobně by se už možná dala vytvořit takováto hra: žabka skokanka nebo chytání předmětů