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.
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.
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álost | akce | pozná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:-) ).
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álost | akce | pozná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 |
událost | akce | pozná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 |
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.
Podobně by se už možná dala vytvořit takováto hra: žabka skokanka nebo chytání předmětů