Had je jednou z nejpopulárnějších arkádových her všech dob. Jeho jednoduchá a jedinečná hratelnost přitahuje hráče různých věkových kategorií. Pokud se chcete naučit vytvořit si vlastní hada na platformě Android, pak je tento průvodce speciálně pro vás.
K vytvoření hada na Androidu lze použít Javu nebo Kotlin, dva oblíbené programovací jazyky pro tuto platformu. Výběr jazyka závisí na vašich preferencích a zkušenostech s programováním. V této příručce Budeme používat jazyk Kotlin, protože je modernější a pohodlnější pro vývoj aplikací pro Android.
Než začnete kódovat, budete potřebovat vývojové prostředí (IDE) pro Android. K vývoji aplikací pro Android se doporučuje používat Android Studio, oficiální IDE od Googlu. Poskytuje všechny potřebné nástroje a knihovny pro vytváření vysoce kvalitních aplikací.
Poznámka: před vytvořením hadí hry je důležité mít základní přehled o komponentách Androidu, jako je Activity, Layouts, Views a také o základní syntaxi jazyka Kotlin. To vám pomůže lépe porozumět krátkému kódu a snáze postupovat podle níže uvedených kroků.
Krok 1: zahájení vývoje
Před zahájením vývoje hada na Androidu budete muset nainstalovat správné nástroje. Budete potřebovat:
- Nainstalovat Java Development Kit (JDK) do počítače.
- Nainstalujte Android Studio, integrované vývojové prostředí pro Android.
- Vytvořit nový projekt v Android Studio.
Po instalaci a konfiguraci potřebných nástrojů jste připraveni začít vyvíjet svého hada. Je důležité znát základní koncepty vývoje aplikací pro Android, jako jsou komponenty, životní cyklus a uživatelské rozhraní.
Postupně začněte vytvářet základní prvky hada, jako je herní síť, had a ovládání. Nezapomeňte také na vytváření animací, zvukových efektů a definování pravidel hry.
K popisu uživatelského rozhraní budete muset použít Javu k vývoji obchodní logiky vaší hry a XML. Nastavte správná rozšíření a nastavení projektu, abyste získali vhodnou platformu pro spuštění hry.
Po dokončení vývoje budete moci otestovat svou hru na emulátoru nebo na skutečném zařízení. Ujistěte se, že všechny prvky fungují správně a vypadají podle vašich představ.
V následujících částech se blíže podíváme na každý krok vývoje hada na Androidu. Jste připraveni začít?
Krok 2: Vytvoření herního okna
Po nastavení projektu a přidání potřebných knihoven můžeme začít vytvářet herní okno. V tomto kroku použijeme třídu SurfaceView Chcete-li zobrazit grafiku na obrazovce zařízení Android.
Nejprve vytvoříme novou třídu GameView který bude dědit ze třídy SurfaceView. Tuto třídu použijeme k zobrazení herních objektů a zpracování vlastního vstupu.
Pro začátek přidáme do třídy následující kód GameView:
public class GameView extends SurfaceView implements SurfaceHolder.Callback @Overridepublic void surfaceCreated(SurfaceHolder holder)/ Запуск потока игры при создании SurfacegameThread.setRunning(true);gameThread.start();> @Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height)/ При изменении размера Surface мы можем обновить размер игровых объектов> @Overridepublic void surfaceDestroyed(SurfaceHolder holder)/ Остановка потока игры при уничтожении Surfaceboolean retry = true;while (retry) catch (InterruptedException e) retry = false;>>>
V tomto kódu inicializujeme objekt GameThread a přidejte zpracovatel událostí pro SurfaceHolder. Poté při vytváření Surface vyvoláme metodu start() objektu gameThread pro spuštění herního toku. Při zničení Surface zastavíme tok a čekáme na jeho dokončení.
Nyní přidáme kód do třídy MainActivity vytvořit a zobrazit objekt GameView:
public class MainActivity extends AppCompatActivity // . >
Nyní, při spuštění aplikace, bychom měli vidět herní okno, i když prozatím bude prázdné. V následujících krocích přidáme grafiku a herní logiku, abychom vytvořili plnohodnotnou hru "hada" na Androidu.
Krok 3: implementace pohybu hada
Nyní je čas přidat hadí pohyb na naší hrací desce. Budeme používat rámec Android ke zpracování akcí uživatele a aktualizaci stavu hry.
Nejprve budeme potřebovat následující proměnné k uložení stavu hada:
- ArrayList snake je seznam bodů představujících prvky hada.
- int direction - proměnná pro uložení směru pohybu hada (0 - nahoru, 1 - doprava, 2 - dolů, 3-doleva).
- boolean gameOver-vlajka ukazující, zda hra skončila.
Pro začátek přidáme metody pro řízení pohybu hada. Vytvoříme metodu updateDirection (), která bude poslouchat akce uživatele (jako jsou stisky kláves) a aktualizuje hodnotu proměnné direction podle těchto akcí.
Kromě toho přidáme metodu updateSnake (), která aktualizuje pozici každého prvku hada v každém kroku hry v závislosti na aktuálním směru.
Nakonec vytvoříme metodu checkCollision (), která zkontroluje, zda had narazil na zeď nebo na vlastní tělo , a nastaví hodnotu vlajky gameOver na true, pokud k tomu dojde.
Nyní můžeme tyto techniky vyvolat v našem hlavním herním cyklu, abychom aktualizovali stav hada v každém kroku hry.
Takže jsme v naší hře implementovali základní logiku pohybu hada. Zbývá však ještě mnoho práce, aby byla hra zajímavá a přidala další funkce, jako je prodloužení délky hada při jídle.
V další části se podíváme na to, jak přidat ovládací prvky na hrací plochu a vytvořit jídlo pro hada.
Krok 4: generování jídla pro hada
V tomto kroku rozebereme, jak vygenerovat hadí jídlo. Jídlo bude prezentováno v podobě jablek, která se objeví na hrací ploše na náhodných místech.
Pro generování jídla budeme muset použít funkci generateFoodPosition (). V této funkci vybereme náhodnou pozici na hřišti, která se stane pozicí jablka.
Pro začátek přidejte následující kód do metody onCreate() :
private void generateFoodPosition()
Zde používáme třídu Random k generování náhodných čísel. Určujeme maximální hodnoty maxX a maxY pro Souřadnice jídla, které by neměly přesahovat hranice hrací plochy.
Poté použijeme metodu random() třídy nextInt k výběru náhodných souřadnic pro jídlo v rozmezí 1 až maxX a 1 až maxY . Poté vytvoříme nový objekt Position s těmito souřadnicemi a přiřadíme jej proměnné foodPosition .
Nyní pro použití této funkce a vytvoření hadího jídla přidejte do metody update následující kód() :
if (snakePosition.equals(foodPosition))
Zde kontrolujeme, zda se současná pozice hada rovná pozici jídla, což znamená, že had snědl jablko. V tomto případě prodlužujeme délku hada o 1, voláme funkci generateFoodPosition() pro vytvoření nové pozice jídla, zvětšíme počítadlo skóre o 10 a aktualizujeme textové pole účtu.
Nyní můžete spustit aplikaci a zjistit, že po každém snědeném jablku se délka hada zvyšuje a jídlo je generováno na novém náhodném místě.
V dalším kroku se podíváme na to, jak zvládnout střet hada se sebou samým.
Krok 5: zpracování kolizí
Aby byl náš had zajímavější, musíme přidat zpracování kolizí. V tuto chvíli, pokud had narazí do sebe nebo jde za hranice herního pole, hra jednoduše skončí bez jakýchkoli zpráv.
Můžeme však přidat logiku, která umožní určit, co přesně vedlo ke kolizi, a podle toho zpracovat událost. Pokud například had narazí do sebe, můžeme zastavit pohyb hada a odvodit zprávu o ztrátě.
K tomu použijeme metody ze třídy Snake, které jsme již vytvořili v předchozích krocích:
public boolean checkCollision()
// testujeme srážku hlavy hada s tělem
if (snakeParts.get(i).x == snakeParts.get(0).x && snakeParts.get(i).y == snakeParts.get(0).y)
// testujeme srážku hlavy hada s hranicemi herního pole