Space Invaders je prastará videohra. My ji naprogramujeme na micro:bitu.
Cílem hry je sestřelovat mimozemšťany předtím, než přistanou a zničí naši planetu. V původní verzi je mimozemšťanů plná obrazovka, v naší micro:bit verzi si musíme vystačit jenom s jedním. O střílení ale nepřijdeme.
Jak naprogramovat pohyb hráče
Pomocí tlačítek A a B
První krok je vytvoření nové proměnné „Hráč“, kterou nastavíme na sprite ve spodní části obrazovky (pozice y bude 4) v sekci při startu. Poté přidáme příkazy při stisknutí tlačítka a nastavíme pohyb vlevo (posun o –1) pro tlačítko A a vpravo (posun o 1) pro tlačítko B.
Vytvoření střely a práce se sprity v micro:bitu
Abychom mohli střílet, vytvoříme novou proměnnou „Střela“. Při stisknutí tlačítek A a B dohromady nastavíme proměnnou Střela na nový sprite ve spodní části obrazovky (pozice y bude 4). Aby měla střela stejnou pozici jako hráč, nastavíme x pozici na příkaz z Raketa vrať x. Následně přidáme smyčku opakuj 4krát, protože chceme střelu posouvat směrem nahoru.
Přidáme příkaz pro Střela změň y o –1, a aby střela nezmizela z obrazovky moc rychle, chvíli počkáme – příkazem čekej, nastaveným například na 50 ms. Jakmile se smyčka přehraje a střela doletí až k hornímu okraji obrazovky, můžeme ji zase smazat příkazem smaž Střela.
Programování náhodného pohybu mimozemšťanů
Vytvoříme v novou proměnnou Mimozemšťan a v sekci opakuj stále ji nastavíme na nový sprite. Aby byla hra zábavnější, bude se objevovat vždy náhodně na horním okraji obrazovky. Pozici y nastavíme na 0 a pozici x na příkaz náhodné číslo od 0 do 4.
Poté stejně jako u střely přidáme smyčku opakuj 4krát, tentokrát budeme ale mimozemšťanem pohybovat směrem dolů – příkazem pro Mimozemšťan změň y o 1. Jakmile se smyčky přehrají a mimozemšťan bude úplně dole, smažeme jej příkazem smaž Mimozemšťan.
Nezapomeneme přidat příkazy čekej, aby byla hra hratelná a mimozemšťan nelétal nadsvětelnou rychlostí.
Detekce kolizí: Jak nastavit skóre a konec hry
(Game Over)
Hráč se může pohybovat vlevo a vpravo, může i střílet a mimozemšťané neustále přilétají. Je na čase přidat vzájemnou interakci. Během letu střely budeme kontrolovat, zda nezasáhla mimozemšťana. Přidáme podmínku když a nastavíme ji na Střela dotýká Mimozemšťan. Pokud je to pravda, smažeme mimozemšťana – příkazem smaž Mimozemšťan, a zvýšíme skóre – změň skóre o 1.
Chceme ještě vědět, zda mimozemšťan nepřistál na hráči – použijeme stejnou podmínku, jen ji změníme na když se Mimozemšťan dotýká Hráč, a umístíme ji do sekce opakuj stále.
Pokud se opravdu dotýká, pak ukončíme hru příkazem konec hry. Nakonec stačí nahrát program do micro:bitu a zkusit nahrát do největší skóre. Hodně štěstí s programováním i hraním!