Dalším vylepšením plošinovky je střelba hráče po nepřátelích, k tomu je potřeba přidat další objekty a proměnné. Pro ukázku jsem si vypůjčil rozdělanou plošinovku jednoho z vás.

Plošinovka - střelba



Po místnosti budou rozmístěné "zbraně", které bude moci hráč "sebrat" a tím získá "munici" pro střelbu. Abychom věděli, kolik munice má hráč ještě k dispozici, přidáme proměnnou, nazvu ji třeba munice, do které při vytvoření hráče vložíme číslo 0. Název proměnné může být libovolný, bez diakritiky, a nesmí být stejný jako název nějakého objektu nebo spritu.

Tuto proměnnou munice zvětšíme, pokud hráč najde "zbraň" s náboji, čili potřebujeme další sprite a objekt, který nebude nic dělat, jen čekat, až ho hráč "zvedne". Do kolize hráče se "zbraní" přidáme změnu proměnné munice například o 10 (relative - přidáváme) a zničení objektu (Other - tedy nikoli hráče ale druhého objektu, čili zbraně).


 

Dále potřebujeme projektily (kulky příslušné ráže:-) ), samozřejmě sprity i objekty. Střílet budeme například mezerníkem, při jeho stisknutí zkontrolujeme, jestli máme munici, potom vytvoříme kulku a zmenšíme proměnnou munice o jedničku. Problém ale je vystřelit ve směru, kam jsme otočení. Pro tento účel využijeme proměnnou GM s názvem sprite_index, ve které je uložen název aktuálního použitého spritu pro daný objekt. V našem příkladě se pro pohyb hráče doleva používá sprite s názvem hrac_l a doprava hrac_p (pozor, GM nezná diakritiku, názvy s háčky a čárkami jsou pro něj problém!). Pokud jste pro pohyb po žebříku využili ještě jiný sprite než hrac_l nebo hrac_r, potom to znamená, že ze žebříku nemůžete střílet, protože v uvedených akcích pro klávesu Space pro jiný sprite akce není.
Celá událost pro stisk mezerníku bude vypadat takto:


Přitom pro kulku doleva bude hodnota direction 180 (viz obrázek), zatímco pro střelbu doprava je směr 0.



Zbývá už jen "zničit" kulku, když narazí do zdi (nebo se dostane mimo místnost) a zabít nepřítele, když bude zasažen, případně přidat body za jeho "likvidaci" :-) To už by mělo být jednoduché pro toho, kdo doposud probírané lekce pochopil.


Úkoly:

Přidej do své plošinovky možnost střelby po nepřátelích.