13# Block breaker 9.
V této poslední lekci na BlockBreaker si uděláme funkci Autoplay pro testování hry a zbytek bude už jen na vás co s hrou uděláte.
Jako první krok si uděláme vypínač pro testování. Ten bude součástí GameStatu, kde již máme například nastavení rychlosti. Vytvoříme si zde serializované pole s názvem autoPlay a typem bool (true/false).
Většina kódu bude v Paddle.cs a tak musíme udělat funkci, která bude vracet jestli je autoPlay true nebo false. Proto si vytvoříme veřejnou funkci, která bude vracet hodnotu bool s názvem isAutoPlayEnabled(). Ta bude vracet (return) hodnotu autoPlay;
V druhém kroku si otevřeme script Paddle.cs. Zde budeme volat funkci isAutoPlayEnabled(), aby jsme buď nechali hrát hráče, nebo posouvali pálku pod míček automaticky. Pro to si uděláme samostatnou funkci, která bude buď vracet polohu míče nebo polohu myši. Funkce bude private, bude vracet float (hodnotu polohy X) a dostane jméno GetPosX().
GetPosX je podtržené správně protože, nám funkce aktuálně nic nevrací a tak je to bráno jako chyba. To ale brzy napravíme. Tato funkce bude mít dvě větve první (if) pokud bude zapnutý autoplay bude vrace polohu míčku, (else) pokud ne bude vrace polohu myši. Podmínka pro if bude jen zavolání funkce isAutoPlayEnabled(). Není potřeba dopisovat další detaily protože true nebo false rovnou rozhodne.
Stejně jako jsme brali object typu GameStatus a z něj používali funkci autoplay, stejným způsobem můžeme z brát míček a z něj používat jeho polohu (transform.position.x)
Stále ještě nám Visual Studio podtrhává GetPosX, protože máme možnost, že nebude co vrátit v else. A tak doplníme Else o to co máme již dávno napsané v Update. A to řádek, kde ukládáme polohu myši a kde ošetřujeme maximum a minimum. K tomu přidáme řádek return mousePosInUnits;.
Již pokaždé funkce vrátí nějakou hodnotu a tak nám Visual Studio přestalo podtrhávat GetPosX. To ale má stále 0 referencí a tak jej musíme použít v místě, kde vytváříme vektor pro polohu pálky. Zde stačí nahradit původní proměnou mousePosInUnits za funkci GetPosX.
Mělo by být hotovo uložit, přepnout do unity a jediné co musíte udělat je v inspektoru GameStatus zapnout AutoPlay a můžete testovat vaše levely.
Pokud jste během testování narazili na problém, že vám pálka s míčkem na začátku začne ujíždět na nějakou stranu stačí pálce i míčku nastavit v inspektoru stejnou hodnotu na X. Já použil 7.5.
Nyní máte hotovo. Udělejte si další levely a máte první hru co je skutečně hra! 🙂
Zde si můžete zahrát co jsem vytvořil já.
0 Comments