BAKALA RSK A PR ACE - Theses.cz

30
P ˇ R ´ IRODOV ˇ EDECK ´ A FAKULTA UNIVERZITY PALACK ´ EHO KATEDRA INFORMATIKY BAKAL ´ A ˇ RSK ´ A PR ´ ACE Strategick´ a hra pro Android Air Wars 2015 Jakub Hol´ y

Transcript of BAKALA RSK A PR ACE - Theses.cz

Page 1: BAKALA RSK A PR ACE - Theses.cz

PRIRODOVEDECKA FAKULTA UNIVERZITY PALACKEHOKATEDRA INFORMATIKY

BAKALARSKA PRACE

Strategicka hra pro Android

Air Wars

2015 Jakub Holy

Page 2: BAKALA RSK A PR ACE - Theses.cz

Anotace

Air Wars je real-time strategicka hra pro operacnı system Android. Proberemesi jejı vyvoj a pouzite technologie (OpenGL ES, hernı framework). Ukazeme sizaklad, ktery je nutny pro programovanı aplikacı na Android. Hra je zdarma dos-tupna v internetovem obchode Google Play.

Page 3: BAKALA RSK A PR ACE - Theses.cz

Dekuji vedoucımu prace RNDr. Arnostu Vecerkovi za cenne rady a volnost pritvorbe aplikace. Take dekuji vsem blızkym za jejich nekonecnou podporu.

Page 4: BAKALA RSK A PR ACE - Theses.cz

Obsah

1. Uvod 71.1. Historie Androidu . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2. Strategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.3. Archipelago . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2. Teoreticka cast 102.1. Dalvik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2. Zakladnı komponenty aplikace . . . . . . . . . . . . . . . . . . . . 102.3. Zivotnı cyklus aktivity . . . . . . . . . . . . . . . . . . . . . . . . 112.4. Vykreslenı grafiky . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4.1. OpenGL ES . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4.2. Vykreslenı pomocı OpenGL ES (nastin) . . . . . . . . . . 12

2.5. Hernı engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.6. Hernı framework . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.6.1. Podpora ruznych rozlisenı displeju . . . . . . . . . . . . . 142.7. Vyvoj Air Wars . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.8. Hernı mechanismy . . . . . . . . . . . . . . . . . . . . . . . . . . 142.9. Grafika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.10. Zvuky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.11. Testovanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.12. Pouzite algoritmy . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.13. Publikovanı aplikace . . . . . . . . . . . . . . . . . . . . . . . . . 19

3. Programatorska dokumentace 213.1. Struktura projektu v Eclipse . . . . . . . . . . . . . . . . . . . . . 213.2. Trıdy implementujıcı abstraktnı trıdu Screen . . . . . . . . . . . . 223.3. Ostatnı trıdy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4. Uzivatelska prırucka 254.1. Hlavnı menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2. Hernı obrazovka . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.3. Tipy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Zaver 28

Reference 29

5. Obsah prilozeneho CD 30

4

Page 5: BAKALA RSK A PR ACE - Theses.cz

Seznam obrazku

1. Ukazka mise ze hry Archipelago. . . . . . . . . . . . . . . . . . . . 92. Hlavnı zakladna, zakladna helikopter, zakladna letadel. Podpora

vlastnıch zakladen. . . . . . . . . . . . . . . . . . . . . . . . . . . 153. Atlas textur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164. Ukazka vyvojarske konzole Google Play . . . . . . . . . . . . . . . 205. Prechod obrazovek. . . . . . . . . . . . . . . . . . . . . . . . . . . 236. Hlavnı menu, Kampan, Bitva, O aplikaci. . . . . . . . . . . . . . . 267. Rozehrana hra s modem vyhernı bod. . . . . . . . . . . . . . . . . 268. Hra je zastavena a je zobrazeno menu. . . . . . . . . . . . . . . . 27

5

Page 6: BAKALA RSK A PR ACE - Theses.cz

Seznam tabulek

1. Podpora OpenGL ES v OS Android. . . . . . . . . . . . . . . . . 12

6

Page 7: BAKALA RSK A PR ACE - Theses.cz

1. Uvod

S prıchodem chytrych telefonu (smartphonu) se rozrostla obliba her prodotykove displeje. Tento jev dale posılil prıchod tabletu a phabletu 1. Hry se takstaly soucastı vetsiny mobilnıch zarızenı. Nalezneme pro ne aplikace zahrnujıcıvsechny hernı zanry. Dnesnı zarızenı jsou plna ruznych senzoru2, ktere mohouslouzit jako ovladacı prvek (napr. ovladanı kulicky pomocı naklonu zarızenı).Nektere hry se mohou pysnit i svou originalitou, napr. chytanı duchu pomocıfotoaparatu. Ukazeme si vyvoj strategicke hry Air Wars.

Existujı desıtky operacnıch systemu (OS) pro mobilnı zarızenı, mezi ne-jpouzıvanejsı se radı Android, iOS, Windows Phone, Symbian, Blackberry.V soucasnosti je nejrozsırenejsı OS Android a iOS. Android je open-source aiOS je uzavreny system. Pro vyvoj aplikacı na iOS je potreba mıt vyvojoveprostredı (IDE3) Xcode, ktere bezı pouze v OS X. Zato vyvoj pro Android jemozny v nekolika vyvojovych prostredıch, ktere se dajı spustit v ruznych OS(Windows, Linux, OS X). Hra Air Wars byla vytvorena pro OS Android.

1.1. Historie Androidu

V roce 2005 odkoupila firma Google malou start-up spolecnost Android Inc.vyvıjejıcı operacnı system Android. Android je open-source a je zalozen naLinuxovem jadru, ktery v soucasnosti vyvıjı firma Google. Android je urcenpredevsım pro mobilnı zarızenı s dotykovym displejem jako jsou smartphony,PDA, tablety a navigace. Dale je ale upraveny system pouzit napr. v autech(Android Auto), televizıch (Android TV), naramkovych hodinkach (AndroidWear), hernıch konzolıch, digitalnıch kamerach a jine elektronice. V roce 2007bylo zalozeno Open Headset Alliance (OHA), konsorcium velkyh spolecnostı jakojsou Google, HTC, Sony, Intel, Samsung, Nvidia, Qualcomm a dalsıch. OHA maza ukol vyvıjet otevrene standardy pro mobilnı zarızenı, coz se projevilo ve vetsıkompatibilite dostupnych zarızenı na trhu. Prvnı telefon s Android OS se dostalna trh v roce 2008. Google postupne vydava Android aktualizace (nazyva je podledezertu), ktere pridavajı dalsı funkcnost do systemu. V temze roce byl spusteninternetovy obchod Android Market. V roce 2012 byl spojen s Android Music aprejmenovan na Google Play.

1Phablet je zarızenı kombinujıcı prvky chytrych telefonu a tabletu. Ma dotykovy displejs uhloprıckou mezi peti a sedmi palci.

2V mobilnıch zarızenıch jsou caste napr. akcelerometry, barometry, gyroskopy, proximitysenzory atd.

3Integrated development environment je software usnadnujıcı programovanı aplikacı.

7

Page 8: BAKALA RSK A PR ACE - Theses.cz

1.2. Strategie

Strategicke hry jsou oblıbene predevsım nutnostı taktickeho myslenı apecliveho planovanı postupu k dosazenı vıtezstvı. Cılem hry muze byt porazenısoupere nebo splnenı urcitych podmınek. Strategicke hry delıme do nekolikasubzanru:

• Real-time strategie (RTS) – veskera cinnost hracu probıha v realnemcase.

• Tahove strategie (TBS) – hraci se strıdajı po tazıch tzv. ”u kormidla jevzdy prave jeden hrac”. Klasicky prıpad tahove hry jsou sachy.

• Tower defense – v dnesnı dobe jsou velmi popularnı, mohou kombinovatprvky RTS a TBS. Stavıte v nich obranne jednotky nebo budovy, kteremusı zastavit utok soupere. Pozor, tyto hry jsou velmi navykove!

• Budovatelske strategie – mısto boje s neprıtelem se hrac soustredı nabudovanı a ekonomiku.

• 4X – eXplore: prozkoumavat okolı na mape, eXpand: rozsırit svou vladu,eXploit: vyuzitı natezenych zdroju, eXterminate: znicit ostatnı hrace.

• Takticke hry na hrdiny (TRPG) – spojuje prvky RPG her a strate-gickych her. V Japonsku jsou zname jako ”Simulation RPGs”.

1.3. Archipelago

Inspiracı pro Air Wars byla hra s nazvem Archipelago (obr 1.). Vlastnıte v nıostrovy generujıcı letadla, kterymi obsazujete dalsı ostrovy. Muzete nastoupit azproti trem pocıtacovym souperum a ruzne vytvaret tymy. Cılem hry je porazitsoupere zajmutım jejich ostrovu. Hra je dostupna na Google Play a stojı 58 Kc.Je tu i verze Lite, ktera je zdarma, ale obsahuje jen jednu misi.

Air Wars se hraje v rychlejsım tempu a ma vıce hernıch modu. Take vıcejednotek a rozmanitejsı mapy. Archipelago zase ma jednodussı hernı mechanismusa detekci kolizı letadel. Obema aplikacım vsak chybı hra pro vıce lidskych hracu(multiplayer).

Dalsı podobne hry jako Air Wars a Archipelago nebyly nalezeny.

8

Page 9: BAKALA RSK A PR ACE - Theses.cz

Obrazek 1. Ukazka mise ze hry Archipelago.

9

Page 10: BAKALA RSK A PR ACE - Theses.cz

2. Teoreticka cast

Pro programovanı aplikacı na Android je potreba nejdrıve stahnout a nain-stalovat JDK (Java Development Kit), pote si vybrat vhodne vyvojove prostredı.Pro vyvoj Air Wars bylo pouzito IDE Eclipse, nicmene oficialnı IDE je AndroidStudio. Instalacnı soubor pro Android Studio obsahuje potrebny Android SDK4

a AVD5 manazer. Pri pouzitı Eclipse se musı SDK a AVD manazer stahnout anainstalovat zvlast’. AVD manazer umoznuje nastavenı virtualnıch zarızenı. Tatozarızenı pouzıva Emulator, ktery slouzı ke spoustenı a ladenı aplikacı. Instalacnısoubor aplikace ma prıponu .apk.

2.1. Dalvik

Kazda spustena aplikace bezı na Androidu ve svem vlastnım procesu avlastnım virtualnım stroji Dalvik. Aplikace jsou bezne psany v jazyce Javaa kompilovany do bajtkodu6, pote jsou prelozeny do Dalvik bajtkodu aulozeny do souboru s prıponou .dex (Dalvik EXecutable) a .odex (Opti-mized Dalvik EXecutable). Hra Air Wars byla vytvorena pro Android odverze 2.2 (Froyo). V teto verzi byla pridana just-in-time (JIT) kompilacedo virtualnıho stroje Dalvik. Je to program, ktery prelozı bajtkod aplikacedo nativnıho kodu stroje, a tım zrychlı provadenı aplikacı na Androidu aznekolikanasobne. Dalsı prvky, ktere Android pridal do kazde verze, najdetenapr. na http://en.wikipedia.org/wiki/android_version_history. Nizsıverze Androidu v zarızenıch temer nenajdeme a Google Play podporuje zarızenıs Androidem od verze 2.2.

2.2. Zakladnı komponenty aplikace

Androidı aplikace se muze skladat z nasledujıcıch komponent:

• Activity (aktivita) – reprezentuje jednu obrazovku s uzivatelskymrozhranım. Aplikace muze mıt vıce aktivit.

• Service – bezı na pozadı a nema uzivatelske rozhranı. Pouzıva se prodlouhotrvajıcı operace nebo pro provadenı vzdalenych procesu. Napr.poustenı hudby zatımco je uzivatel v jine aplikaci.

• Content provider – umoznuje poskytnout data aplikace ostatnım ap-likacım.

4Android Software Development Kit je uplna sada vyvıjecıch nastroju pro programovanıaplikacı na Android.

5Android Virtual Devices manazer poskytuje graficke uzivatelske rozhranı pro pracis virtualnımi zarızenımi.

6Bajtkod je program, ktery se spoustı v behovem prostredı (musı byt nainstalovano nacılovem systemu). Dıky tomu je prenositelny na ruzne platformy.

10

Page 11: BAKALA RSK A PR ACE - Theses.cz

• Broadcast receiver – reaguje na prıchozı oznamenı jako napr. zapnutıdispleje, zmenı se stav pripojenı k internetu atd.

Z techto komponent pouzıva Air Wars jen jednu aktivitu, ktera vykresluje grafikupomocı OpenGL ES a stara se o uzivatelovu interakci.

2.3. Zivotnı cyklus aktivity

Pri programovanı aplikacı pro Android bychom meli znat chovanı aktivityv systemu. Toto chovanı se na Androidu nazyva zivotnı cyklus aktivity. Popisujestavy a prechody mezi temito stavy, ve kterych se aktivita nachazı. Aktivita muzebyt v jednom ze trı stavu:

• Running – tzv. top-level aktivita, zabıra obrazovku a prımo interagujes uzivatelem.

• Paused – v tomto stavu je tehdy, kdyz je aktivita stale viditelna, alecastecne prekryta napr. dialogovym oknem nebo pri uzamcenı obrazovky.Paused aktivita muze byt kdykoliv ukoncena systemem napr. pro ne-dostatek operacnı pameti.

• Stopped – tento stav nastane, pokud je aplikace zcela prekryta jinou aktiv-itou a nenı videt na obrazovce. Napr. kdyz uzivatel zmackne tlacıtko domu.System muze aktivitu v tomto stavu kdykoliv ukoncit.

System se muze rozhodount kdykoliv ukoncit aktivitu, ktera je ve stavupaused nebo stopped. Muze tak ucinit bud’ ”slusne”, zavolanım ukoncovacımetody finished nebo ”neslusne”(bez notifikace) a v tichosti ukoncit jejı beh. Ak-tivita ma nekolik metod, ktere muzeme prepsat a dostat tak informaci o zmenestavu aktivity.

2.4. Vykreslenı grafiky

Jsou dva zpusoby jak vykreslit grafiku na Androidu. Pomocı Canvasu neboOpenGL ES. Canvasem lze vykreslit jen 2D grafiku, nicmene jeho pouzitı jejednodussı nez OpenGL ES. Canvas je vhodny, kdyz nenı potreba vysokyvypocetnı vykon pro vykreslenı grafiky, napr. staticke, zrıdka pohybujıcı objekty(sachy, puzzle atd.). Nevyhodou je, ze vypocet vykreslenı probıha na procesoru aGPU7 nenı pouzito. OS Android od verze 3.0 predstavil hardwarovou akceleraci apresunul castecny vypocet vykreslenı z procesoru na GPU. Musı se vsak zapnoutv systemu. Vypocet OpenGL probıha na GPU.

7Graphical processing unit je graficky cip v zarızenı.

11

Page 12: BAKALA RSK A PR ACE - Theses.cz

2.4.1. OpenGL ES

OpenGL je prumyslovy multiplatformnı API8 standard pro vykreslenı (ren-derovanı) 2D a 3D grafiky, spravovany konsorciem Architecture Review Board(ARB). V roce 2006 se ARB stala soucastı konsorcia Khronos Group, kterevyvıjı otevrene API(vysvetlit) standardy. OpenGL ES je cast OpenGL API,ktera je urcena pro vestavene systemy jako smartphony, tablety, hernı kon-zole, PDA. Je nekolik verzı OpenGL ES a podporu jednotlivych verzı v 0S An-droidu znazornuje tabulka 1.. Dalsı pridane ci odebrane funkce muzete najıt na

Verze OpenGL ES Podpora Androidu od verze

1.0 1.0 (Alpha)

1.1 1.6 (Donut)

2.0 2.0 (Eclair)

3.0 4.3 (Jelly Bean)

3.1 4.4.2 (KitKat)

Tabulka 1. Podpora OpenGL ES v OS Android.

strance: http://www.khronos.org/api/opengles/. V Air Wars je jednoducha2D grafika, ktera jde bez problemu naprogramovat v OpenGL ES 1.0.

2.4.2. Vykreslenı pomocı OpenGL ES (nastin)

Pro vykreslenı grafiky musıme implementovat trıdu GLSurfaceView arozhranı GLSurfaceView.Renderer. Trıda GLSurfaceView je podtrıda trıdy View,ktera je ,zjednodusene receno, synonymem pro okno, do nehoz budeme vykreslo-vat. Mame tedy okno, nynı potrebujeme vykreslit grafiku. To udelame pomocırozhranı GLSurfaceView.Renderer, ktere se vykonava v oddelenem vlaknu. Ob-sahuje metodu onDrawFrame, ktera se vola pro vykreslenı aktualnıho snımku.Do teto metody budeme vkladat objekty pro vykreslenı.

OpenGL ES vykresluje objekty, skladajıcı se z vrcholu, do ctvercovehorozlisenı. Zarızenı ale vetsinou nemajı presne ctvercove rozlisenı, a protomusıme nastavit transformacnı matici. Pomocı Projection matrix (projekcnımatice) transformuje OpenGL ES objekty z ctvercoveho rozlisenı do rozlisenızarızenı. Objekty se vykreslujı pomocı vrcholu a kazdy vrchol ma souradnicex, y, z. OpenGL ES umı vykreslit trojuhelnık. Ctverec vykreslıme spojenımdvou trojuhelnıku a definovanım poradı vykreslenı vrcholu. To vse musımejeste ulozit do pole tzv. bufferu, a pote nastavit buffer ve vykreslovacımetode. Mame vytvorene objekty a muzeme je ”potahnout”texturou z obrazku.

8Application Programming Interface je sada podporgramu, protokolu a nastroju pro pro-gramovanı aplikacı.

12

Page 13: BAKALA RSK A PR ACE - Theses.cz

Srozumitelny tutorial pro vykreslenı jednoduchych objektu najdete napr. nahttp://www3.ntu.edu.sg/home/ehchua/programming/android/.

2.5. Hernı engine

Hernı engine (Game engine) je rozsahla sada nastroju pro tvorbu videoher.Sklada se z castı pro vykreslenı 2D a 3D grafiky, umelou inteligenci, vypocetfyziky, detekce kolizı, animace, zvuk, skriptovanı, prace se sıtı atd. Pro Androidexistuje cela rada game enginu. Mezi zname patrı napr.:

• Unreal Engine je jeden z nejvykonejsıch komercnıch multiplatformnıchenginu pro 2D i 3D hry.

• Unity 3D je dalsı komercnı multiplatformnı engine, ktery je ale dostupnys omezenımi i v bezplatne variante.

• libGDX je open source engine pro 3D a 2D hry.

• AndEgine je dalsı open source engine ale pouze pro 2D hry.

2.6. Hernı framework

Hernı framework je velmi odlehceny hernı engine. Programator ma vetsinouplnou kontrolu nad kodem. Pro Air Wars byl pouzit framework z knihy Begin-ning Android 4 Games Development [1]. V knize je framework podrobne popsan(temer radek pro radku). Framework je pod licencı GPL verze 3, ktera umoznujebezplatne pouzitı.

Framework umı pracovat se zvukem, s obrazky, vykreslit 2D grafiku pomocıOpenGL ES, pracuje s hernımi objekty, detekuje uzivatelske vstupy, obsahujezakladnı matematicke objekty a dalsı prakticke nastroje jako cıtac fps 9. Frame-work se sklada ze ctyr adresaru:

• framework/ – obsahuje vetsinou jen rozhranı (definuje pouze nazvy,parametry metod a atributu) jako Audio, Input, Color, Sound, Music,ktere jsou pouzity v dalsı trıdach. Dale obsahuje dulezitou abstraktnı trıduScreen, kterou pouzıvajı vsechny trıdy obsahujıcı metody pro vykreslenıgrafiky na obrazovku a metody pro reakci na uzivatelske vstupy.

• gameFramework/ – vetsina trıd tu implementuje rozhranı z adresareframework/. Napr. trıda AndroidMusic implementuje rozhranı Music apracuje s objektem MediaPlayer, ktery slouzı pro poustenı hudby a videa.Dale tu je trıda praujıcı s grafikou a soubory. Je tu i nejdulezitejsı abstraktnıtrıda GLGame, ktera rıdı chod celeho frameworku. Jsou tu take trıdy propraci s uzivatelskym vstupem.

9Frame per second = pocet vykreslenych snımku za sekundu

13

Page 14: BAKALA RSK A PR ACE - Theses.cz

• glFramework/ – obsahuje trıdy pro praci s OpenGL ES. Jsou tu trıdy proanimaci, vykreslenı grafiky, praci s pısmem, detekci kolize, praci s texturamia take fps cıtac.

• math/ – obsahuje trıdu reprezentujıcı objekty kruhu a ctverce. Tyto ob-jekty jsou pouzıvany pro zjistenı kolize, dotyku na objekty atd. Dale je tutrıda reprezentujıcı vektor a obsahuje metody pracujıcı s vektory.

Pro pouzitı frameworku musıme vytvorit trıdu implementujıcı abstraktnıtrıdu GLGame. Tato trıda potrebuje nastavit, pomocı metody getStartScreen,trıdu implementujıcı abstraktnı trıdu Screen. Ta je jako prvnı zobrazena, pospustenı aplikace ze systemu.

2.6.1. Podpora ruznych rozlisenı displeju

Ve frameworku existuje trıda Camera2D, ktera ma za ukol prizpusobit ap-likaci k ruznym rozlisenım displeju zarızenı. Pouzıva k tomu metodu glOrthof.Tato metoda umı zobrazit presne definovanou velikost rozlisenı. Dalsı metodaglViewportf umı transformovat (afinnı transformace) rozlisenı zarızenı do rozlisenınastavene metodou glOrthof. Stejne tak se prevedou souradnice dotyku uzivatele.

2.7. Vyvoj Air Wars

Vyvoj hry spocıval hlavne ve vymyslenı pravidel, grafiky, ovladanı a hernıchmechanismu. Pouzitı zmıneneho hernıho frameworku velmi usnadnilo pro-gramovanı teto hry. Duraz byl kladen predevsım na jednoduchost ovladanı ahernıch mechanismu. Nejdrıve bylo naprogramovano hlavnı menu a pote hracıobrazovka, na ktere se testovalo ovladanı a pohyb jednotek. Pote byly postupnepridavany dalsı obrazovky. Grafika se take postupne vylepsovala. Zvuky se dohry pridaly jako poslednı.

Air Wars je RTS hra pro Android, ktera lehce procvicı mysl stratega. Prodokoncenı kampane musı hrac splnit 12 misı. Dale tu ma moznost procvicovat sveschopnosti v sekci pro nahodne generovanı bitev dle poctu nepratel a zvolenehohernıho modu. Hra obsahuje napovedu a take moznost zmenu jazyka hry naanglickou nebo ceskou. Obsazena je i kratka prıbehova linie.

2.8. Hernı mechanismy

Hrac muze nastoupit az proti trem pocıtacovym hracum. Ti jsou oznacenicervenou, zelenou nebo zlutou barvou. Lidsky hrac je vzdy oznacen modroubarvou. Hrac zacına s hlavnı zakladnou (existujı 3 druhy zakladen obr. 2.), pro-tihraci mohou zacınat s vıce zakladnami. Na mape jsou i neutralnı zakladny,ktere muzou byt zajmuty hraci. Kazda zakladna generuje pocet jednotek. Vetsı

14

Page 15: BAKALA RSK A PR ACE - Theses.cz

zakladny generujı jednotky rychleji. Ve hre jsou dva druhy jednotek, letadla a he-likoptery. Letadla se pohybujı dvakrat rychleji nez helikoptery a jsou tak vhodnepro rychle utoky nebo podporu slabsıch zakladen. Jednotky z neutralnı zakladnyse k hraci pripojı, pokud hrac utocı s vetsım poctem jednotek, nez je na neutralnızakladne.

V Air Wars jsou dva hernı mody, Znicenı a Vyhernı body. Ukolem, moduznicenı, je zajmout vsechny nepratelske zakladny. Cılem, modu vyhernı body, jenacerpat potrebne mnozstvı barelu ropy z vyhernıch bodu nebo zajmout vsechnyzakladny protihracu.

Obrazek 2. Hlavnı zakladna, zakladna helikopter, zakladna letadel. Podporavlastnıch zakladen.

Pro zajmutı zakladny je potreba znicit vsechny jednotky na zakladne. Prikazdem utoku nebo presunu jednotek se vzdy odecte polovina jednotek nazakladne. Hrac muze presouvat jednotky mezi svymi zakladnami, avsak zakladnyletadel lze podporovat pouze letadly a zakladny helikopter pouze helikopterami.Zastavenı generovanı jednotek na deset sekund v hlavnı zakladne nastane tehdy,pokud byly zniceny vsechny letadla nebo helikoptery na zakladne.

2.9. Grafika

Veskera grafika, pouzita v Air Wars, byla vytvorena ve freeware programPaint.NET. Nektere obrazky byly stahnuty z webu http://pixabay.com/cs/

a nasledne upraveny. Stazene obrazky jsou pod licencı CC0, ktera umoznuje ikomercnı uzitı a nenı nutne uvadet zdroj.

Hra je ve skutecnosti vykreslena v rozlisenı 800x444 a nikoli 800x480 pixelu,jak je psano v uzivatelske prirucce (4.). Je to kvuli systemove liste Androidu,ktera ma rozlisenı 800x36 pixelu.

Hra obsahuje pouze dva obrazky velikosti 2048x2048 tzv. atlasy textur (obr.3.). Soubory jsou ve formatu .png (podporuje pruhlednost). Atlas textur je ulozenv promenne pomocı trıdy Texture ve trıde Assets. Je tu jeste trıda TextureRegion,pomocı ktere se ulozı do promennych jednotlive textury z atlasu textur. Tytopromenne se prımo pouzıvajı pro vykreslenı v metode present. V teto metode

15

Page 16: BAKALA RSK A PR ACE - Theses.cz

je potreba, jeste pred pouzitım textur, nacıst atlas textur pomocı trıdy Sprite-Batcher a metody beginBatch. Metoda drawSprite nastavı objekt (ctverec) apripojı k nemu texturu. Tato metoda ma argumenty souradnice x, y, velikostsırka, vyska, konkretnı textura. Tohle vse se ulozı do bufferu. Pote se musı za-volat metoda endBatch, ktera buffer posle do GPU na vykreslenı. Tyto metodyse pouzıvajı napr. takto:

batcher.beginBatch(Assets.backgrounds);

batcher.drawSprite(400, 222, 800, 444, Assets.mainMenuBackground);

batcher.drawSprite(400, 390, 350, 70, Assets.titleAbout);

batcher.endBatch();

Proc se vlastne pouzıvajı atlasy textur? Nacıtanı obrazku je vypocetne drahyproces, a proto je lepsı nacıst napr. jeden velky obrazek nez vıce mensıch. Atlasytextur by mely mıt velikost, ktera je mocninou dvojky.

Nejjednodussı zpusob, pro vykreslenı textu, je pouzıt texturu. K tomuto uceluslouzı v hernım frameworku trıda Font. Kazde pısmenko vykresluje jako tex-turu. Nicmene to vypada dosti ”kostrbate”, protoze vetsina pısmen nenı od sebevzdalena stejne. Trıda Font byla proto pouzita jen pro vykreslenı cıslic. Vsechentext byl vytvoren v programu Paint.NET a pracuje se s nım jako s pruhlednymobrazkem.

Bylo vytvoreno kolem 220 obrazku, ktere jsou ulozeny v atlasech textur.

Obrazek 3. Atlas textur.

16

Page 17: BAKALA RSK A PR ACE - Theses.cz

2.10. Zvuky

O hudbu se starajı dva soubory music a battleMusic. Tyto soubory bylystazeny z webu http://www.newgrounds.com/. Soubory jsou pod licencı CC3,ktera umoznuje pouze nekomercnı uzitı a pozaduje vystavit jmeno skutecnehoautora. Soubor click pro zvuk tlacıtka byl vytvoren pomocı programu sfxr. Pro-gram sfxr je generator jednoduchych zvukovych efektu. Je pod licencı MIT anajdete jej na adrese http://www.drpetter.se/project_sfxr.html. Vsechnytri soubory jsou ve formatu .ogg. Nacıtajı se ve trıde Assets pomocı rozhranıMusic a Sound. Rozhranı Music slouzı pro dlouhotrvajıcı zvuky, napr. hudbave hre. Rozhranı Sound je urcena pro kratke zvuky, napr. kliknutı na tlacıtko.Pracuje se s nimi, napr. takto:

Music gameMusic;

gameMusic = game.getAudio().newMusic("music.ogg");

gameMusic.setLooping(true); //nastavenı nepretrziteho hranı

gameMusic.setVolume(0.3f); //zmena hlasitosti

gameMusic.play(); //spustenı muziky

gameMusic.pause(); //pauznutı muziky

Sound clickSound;

clickSound = game.getAudio().newSound("click.ogg");

clickSound.play(0.7f); //spustenı zvuku s~danou hlasitostı

2.11. Testovanı

Testovanı aplikace probıhalo vetsinou na fyzickem zarızenı, protoze emulatorje neskutecne pomaly. V diskuzıch na internetu lide doporucovali ruzne rady projeho zrychlenı, ale zadne nezrychlily emulator natolik, aby mohl byt normalnepouzıvan. Fps cıtac zobrazoval pouhopouhe 1 az 3 snımky. Mimochodem, Dalvikma hranici na 60 fps. Emulator byl pouzit jen parkrat pro ladenı aplikace.Testovanı probıhalo na 7”tabletu s Androidem 4.0.3, jednojadrovym procesoremARMv7 1GHz, 512 MB ram, GPU Mali-400 MP, 800x480 rozlisenı displeje. Nazarızenı se fps nidky nedostaly pod 55 snımku, vetsinou se drzely kolem 58.

2.12. Pouzite algoritmy

Algoritmus pro generovanı nahodnych rozlozenı zakladen na mape. Mapa jerozdelena na 18 polıcek. Chceme nahodne polozit zakladnu do jednoho polıcka.Vygenerujeme si nahodne cıslo rand v rozsahu od 0 do 17, ktere bude reprezen-tovat pozici. Polozıme zakladnu na pozici rand. Musıme si nekde vest zaznam,ktera polıcka jsou stale volna, abychom nevlozili dve zakladny na stejne mısto.Vytvorıme si pole filled o velikosti 18, ktere bude reprezentovat volnou nebookupovanou pozici. Vzdy kdyz vlozıme zakladnu na pozici rand zmenıme v poli

17

Page 18: BAKALA RSK A PR ACE - Theses.cz

filled[rand] hodnotu. Musıme testovat zdali po vygenerovanı cısla rand je tatopozice volna. Takto muzeme vlozit vsechny zakladny. Prıklad, chceme vlozitzakladny do vsech polıcek. S rostoucım poctem okupovanych polıcek se generatornahodnych cısel nebude ”trefovat”na volna polıcka a bude muset byt volan casteji.To znamena, ze budeme muset volat generator vıce nez 18 krat. To je nezadoucı.Existuje elegantnejsı resenı. Vytvorıme si seznam freePos s cısly od 0 do 17, kterebudou reprezentovat volne pozice. Vygenerujeme si nahodne cıslo rand od 0 dovelikost seznamu freePos, ktere bude indexem do seznamu freePos. Zakladnu tedyvlozıme na pozici, kterou zıskame ze seznamu freePos a indexu rand. Po vlozenızakladny musıme odstranit polozku v seznamu s indexem rand. Tım padem budegenerator nahodnych cısel volan jen 18 krat.

int rand,size;

List<int> freePos = new List<int>();

for(int i=0;i<18;i++){ //naplnıme seznam freePos

freePos.add(i);

}

for(int i=0;i<18;i++){

size = freePos.size() - 1;

rand = randomGenerator(0,size); //nahodne cıslo 0 az size

insertBase(freePos.get(rand)); //insertBase(num) vlozı

//zakladnu na pozici num

freePos.remove(rand);

}

Algoritmus pro pocıtacoveho hrace. Hlavnı ide je takova, ze hrac ma nekolikmoznostı napr. utok na neutralnı zakladny, utok na souperovy zakladny, podporuvlastnı nejslabsı zakladny, utok na neutralnı vyhernı bod, podpora vyhernıhobodu atd. Za nejakou dobu se hrac rozhodne provest zmınenou moznost.Pocıtacovym hracum je pridelena role. Jsou 3 role, utocnık, neutralnı a obrance.Utocnık ma vetsı sanci, ze se rozhodne utocit, nez hraci neutralnı nebo obrance.Tım padem bude utocnık casteji utocit nez branit. Neutralnı hrac ma stejnousanci, zda se rozhodne utocit nebo branit. Obrance tedy ve vetsine prıpadu volıobranu. Kazda moznost ma take alternativnı moznost. To znamena, ze pokudnelze provest prvnı moznost, zvolı se druha moznost. Pokud ani druhou moznostnelze provest, rozhodne se zadnou moznost neprovadet. Dale je tu ovlivnenı po-mocı vyhernıch bodu. Pokud je nektery hrac blızko vıtezstvı, napr. zbyva jednomuhraci poslednıch 30 barelu k vıtezstvı, tak se ostatnı hraci budou snazit zıskatprotihracovi vyhernı body. Delka mezi rozhodnutımi nenı konstantnı. Pocıtacovıhraci se opakovane rozhodujı mezi 3 az 7 sekundami. Hrac se rozhodne provestmoznost a pote bude 3 az 7 sekund cekat (premyslet), nez se rozhodne provestdalsı moznost. Po vyberu moznosti nenı bran do uvahy budoucı vyvoj hry,jako napr. u Minimaxu. Proto toto rozhodovanı pocıtacovych hracu nenı tolikvypocetne narocne a nenı potreba ho vkladat do samostatneho vlakna.

18

Page 19: BAKALA RSK A PR ACE - Theses.cz

Algoritmus pro testovanı konce bitvy. Do pole activePlayers se ukladajı hod-noty true nebo false, podle toho zdali hrac jeste hraje nebo nikoliv. Pole mavelikost 4 a lidsky hrac je na indexu 0. Pomocı metody checkActivePlayers setoto pole projde a nastavı. Lisky hrac je vyrazen, pokud nema zadne zakladny,ani zadne jednotky na presunu. Pri hernım modu vyhernı body se jeste kon-troluje stav pole holdingVPTimes velikosti 4, coz je pole reprezentujıcı hodnotynaplnenych barelu. Kdyz je jedna z hodnot mensı nez 1, bitva se ukoncı.

2.13. Publikovanı aplikace

Google Play je nejvetsı distribucnı obchod aplikacı k OS Android, mimo tonabızı i filmy, hudbu a elektronicke knihy. Mezi dalsı obchody patrı AmazonAppStore, Slide ME, Samsung Apps a dalsı. Pro publikovanı her na Google Playexistuje tzv. vyvojarska konzole Google Play (developer console Google Play). Pozaregistrovanı a zaplacenı jednorazoveho poplatku 25 dolaru Vas ceka moznostpublikovanı aplikacı zdarma. Pro prodavanı aplikacı si musıte jeste vytvorit ucetobchodnıka. Abyste mohli publikovat aplikaci, musıte ji take spravne podepsat.Pri vyvoji(ladenı) aplikace Vam ji podepisuje Android SDK, a proto ji muzetespoustet v emulatoru nebo instalovat na zarızenı. Nicmene ji musıte podepsatVami vytvorenym klıcem, pokud ji chcete publikovat v Google Play. Vyexportu-jete aplikaci s Vasım podepsanym klıcem a pote ji muzete nahrat na Google Play.Pred samotnym publikovanı hry musıte jeste vybrat jmeno, napsat popis, vytvorita nahrat ikonu velkou 512x512 pixelu a take obrazek oznacen jako hlavnı grafikavelky 1024x500 pixelu. Dale zvolıte typ, kategorii a hodnocenı obsahu, ktere jeodrazem cılove skupiny uzivatelu. Jeste musıte zadat do jakych zemı se ma hradistribuovat. Nynı muzete konecne publikovat svou aplikaci.

Kdyby jste chteli aplikaci aktualizovat, musıte v souboru AndroidMani-fest.xml zvysit cıslo u android:versionCode (stacı o jednicku). Tohle musıte udelatpri kazde aktualizaci, jinak Vam nepujde nahrat novy soubor .apk. Vyvojarskakonzole nabızı moznosti, jak hru predpripravit pro publikovanı pomocı alfa a betatestovanı.

Pri vyhledavanı aplikacı na Google Play se Vam zobrazı jen ty aplikace, kterejsou s Vasım zarızenım kompatibilnı. To se pozna podle obsahu v souboru An-droidManifest.xml. Zda se aplikace zobrazı na prednıch pozicıch ve vysledku vyh-ledavanı, zavisı na poctu stazenı, recenzı a hlavne hodnocenı.

Air Wars lze nainstalovat ze stranky na Google Play:https://play.google.com/store/apps/details?id=com.strategy.air_wars.

19

Page 20: BAKALA RSK A PR ACE - Theses.cz

Obrazek 4. Ukazka vyvojarske konzole Google Play

20

Page 21: BAKALA RSK A PR ACE - Theses.cz

3. Programatorska dokumentace

Bylo naprogramovano 19 trıd a vsechny jsou ulozeny v adresari game/. Z tohoje 12 trıd urceno pro vykreslenı obrazovek, 1 trıda implementujıcı pocıtacovehohrace, 1 trıda uchovavajıcı textury a zvukove soubory, 2 trıdy pro hernı objekty,1 trıd pro uchovavanı a ukladanı nastavenı, 1 trıda implementujıcı logiku hry.

Hernı framework pracuje pouze s jednou aktivitou, to ma za nasledek, ze seaplikace, po stisku systemoveho tlacıtka zpet, ukoncı. Aby systemove tlacıtkozpet pracovalo korektne s obrazovkami, musela byt prepsana metoda onBack-Pressed. Po prepsanı obsahuje prıkaz switch, ve kterem se kontroluje promennaactualScreen (tuto promennou menı kazda nove vytvorena obrazovka) ve trıdeSettings a podle hodnoty teto promenne se provadı akce, vetsinou prechod najinou obrazovku.

3.1. Struktura projektu v Eclipse

Androidı projekt v Eclipse ma nasledujıcı polozky:

• src/ – obsahuje adresare framework/, game/, gameFramework/, gl-Framework/, math/. V nich jsou ulozeny veskere zdrojove souboryv Jave.

• gen/ – obsahuje automaticky generovane soubory v Jave. Nemely by bytmodifikovany.

• assets/ – zde jsou umısteny veskere dodatecne soubory jako obrazky,hudebnı soubory, konfiguracnı soubory atd. Obsahuje allitems.png, back-grounds.png, battlemusic.ogg, music.ogg, click.ogg.

• bin/ – obsahuje kompilovane soubory, pripravene pro instalaci aplikace nazarızenı.

• res/ – zde jsou ulozeny dalsı soubory nutne pro beh aplikace. Napr. ikonkypro ruzna rozlisenı, lokalizacnı soubory, soubory s definovanymi retezci, xmlsoubory s rozlozenım prvku uzivatelskeho rozhranı.

• AndroidManifest.xml – popisuje aplikaci. Definuje jake aktivity jsoupouzıvany, minimalnı verze systemu pro beh aplikace, nutna systemova pov-olenı (napr. prıstup k sd karte nebo prıstup k sıti). Pro ladenı je potreba nas-tavit promennou android:debuggable=”true”. Pri publikovanı nezapomentetuto polozku smazat.

21

Page 22: BAKALA RSK A PR ACE - Theses.cz

3.2. Trıdy implementujıcı abstraktnı trıdu Screen

Kazda trıda implementujıcı abstraktnı trıdu Screen musı definovat metodyupdate, present, pause, resume, dispose. Metoda update je urcena ke sledovanıuzivatelovych vstupu a aktualizaci denı ci nastavenı hry, metoda present je urcenapro vykreslenı grafiky a metody pause, resume, dispose jsou urceny pro akce prizmenach stavu zivotnıho cyklu aktivity. Kazda trıda obsahuje nastavenı kamery,pracuje s uzivatelovymi vstupy a objekt SpriteBatcher, ktery ma na starostivykreslenı grafiky. Temer vsechny trıdy obsahujı nadpisy, nejaka tlacıtka a majıvykresleny obrazek na pozadı, krome trıdy SplashScreen. Nasleduje 12 trıd a jejichstrucny popis:

• AboutScreen – obsahuje udaje o aplikaci a tlacıtko pro zmenu jazyka hry.

• BattleScreen – obsahuje tlacıtka pro zmenu poctu nepratel, modu hry,vyber mapy, pro pokracovanı ulozene hry a tlacıtko pro zacatek nove hry.

• CampaignScreen – obsahuje tlacıtko pro prechod na obrazovku Sto-ryScreen1, vyber mise, pokracovanı v ulozene hre a tlacıtko pro zacateknove hry. Dale obsahuje informace o misi a po dokoncenı kamapane pribydedalsı tlacıtko pro prechod na obrazovku CompletedCampaignScreen.

• CompletedCampaignScreen – obsahuje obrazek, text a tlacıtko proprechod na obrazovku CampaignScreen.

• GameScreen – je hlavnı hracı okno a je ze vsech trıd nejkompliko-vanejsı. Zobrazuje zakladny, vyhernı body, letadla, helikoptery a dalsı.Obrazovka muze byt v jednom ze dvou stavu, pauznuta nebo nepauznuta.V pauznutem stavu se zobrazı nabıdka tlacıtek a v tom druhem se manip-uluje se zakladnami. Jako jedina vytvarı instanci trıdy Control.

• HelpScreen1 – obsahuje text, obrazky napovedy a tlacıtko pro prechodna obrazovku HelpScreen2.

• HelpScreen2 – obsahuje druhou cast napovedy a tlacıtko pro prechod naobrazovku HelpScreen3.

• HelpScreen3 – obsahuje tretı cast napovedy a tlacıtko pro prechod naobrazovku MainMenuScreen nebo GameScreen.

• MainMenuScreen – je hlavnı menu hry a obsahuje logo, tlacıtkapro prechod na obrazovky CampaignScreen, BattleScreen, HelpScreen1,AboutScreen a animovane tlacıtko pro zapnutı nebo vypnutı zvuku ve hre.

• SplashScreen – se zobrazı jako prvnı obrazovka po spustenı aplikace AirWars ze systemu. Trva 4 sekundy a obsahuje posuvne casti napisu Air Wars.

22

Page 23: BAKALA RSK A PR ACE - Theses.cz

• StoryScreen1 – obsahuje text prıbehove linie a tlacıtko pro prechod naobrazovku StoryScreen2.

• StoryScreen2 – obsahuje druhou cast textu prıbehove linie a tlacıtko proprechod na obrazovku CampaignScreen.

Obrazek 5. Prechod obrazovek.

3.3. Ostatnı trıdy

• Aircraft a Base – tyto trıdy slouzı jako objekty, se ketrymi se manipulujena obrazovce GameScreen. Obsahujı atributy jako souradnice, pocet jed-notek, velikost, cıslo hrace aj. Obe trıdy obsahujı metodu update, kteraaktualizuje souradnice u trıdy Aircraft a pocet jednotek u trıdy Base.Trıda Aircraft dale obsahuje metody end a routeEnd pro testovanı dosazenıcılovych souradnic. Trıda Base dale obsahuje metody pro prılet helikopternebo letadel na zakladnu, vyberu castı zakladny aj.

• Control – uchovava seznamy letadel, helikopter, zakladen, vyhernıch bodu,aktivnıch hracu. S temito seznamy se manipulujeme na obrazovce Game-Screen. Dale obsahuje metody pro ukladanı her, nacıtanı ulozenych her,kontrolu konce bitvy, dava prıkazy k aktualizaci jednotek a zakladen,posılanı jednotek na nepratelske nebo vlastnı zakladny aj.

• Settings – je staticka trıda, ktera ma za ukol uchovavat nastavenı hrydlouhodobe i kratkodobe. Obsahuje tedy metody pro ulozenı, nactenı

23

Page 24: BAKALA RSK A PR ACE - Theses.cz

atributu ze souboru. Uchovava napr. jazyk hry, otevrene mise v kampani,zapnutı zvuku atd.

• Ai – je trıda simulujıcı pocıtacoveho hrace. Pro svuj vypocet pouzıva sez-namy ze trıdy Control, ktere si rozdelı do dalsıch specifictejsıch seznamunapr. neutralnı zakladny, zakladny drzene neprately atd.

• Assets – je staticka trıda, ktera uklada veskere pouzite obrazky a zvuky.Atlas textur je obrazek slozeny z presne umıstenych mensıch obrazku (tzv.textury). Textury se uchovavajı v promennych, ktere se pote pouzijı provykreslenı.

Vsechny jmena atributu a metod byly nazyvany podle jejich ucelu. Zdrojovesoubory obsahujı i popis atributu a slozitejsıch metod.

24

Page 25: BAKALA RSK A PR ACE - Theses.cz

4. Uzivatelska prırucka

Systemove pozadavky:

• Verze Android 2.2 nebo vyssı

• Pristup k sd karte

• Prıstup k uzamcenı obrazovky

Jazyk hry se automaticky nastavı dle jazyku systemu Android. Pokud mamesystem Android v cestine, nastavı se jazyk hry na cestinu. Jinak se nastavı naanglictinu. Nastavenı a rozehrane bitvy se ukladajı do souboru .airwars, .air-warsc, .airwarsb. Tyto soubory se ukladajı do korenoveho adresare bud’ na sdkartu (prioritne) nebo do internı pameti prıstroje. Pro pohodlne ovladanı se AirWars hraje v landscape10 modu. Hra byla vytvorena pro rozlisenı 800x480 pixelu,tedy s pomerem stran 5:3. Na zarızenıch s ruznym rozlisenım se muze hra mırneroztahnout ci zuzit.

4.1. Hlavnı menu

Pred nactenım hlavnıho menu (obr. 6.) se zobrazı 4 sekundova uvıtacı obra-zovka tzv. splash screen. Hlavnı menu obsahuje tlacıtko pro vypnutı nebo zapnutızvuku a 4 polozky:

• Kampan – Obsahuje prıbehovou linii a 12 mısı. Lze pokracovat v poslednırozehrane hre.

• Bitva – Umoznuje hru s nahodnym rozestavnım zakladen, danym poctemnepratel a hernım modem. Lze pokracovat v poslednı rozehrane hre.

• Napoveda – Sklada se ze 3 obrazovek: utok, podpora a hernı mody.

• O aplikaci – Obsahuje informace o hudbe a moznost zmenu jazyka hry.

10landscape/portrait mod = vodorovne/svisle natocenı displeje

25

Page 26: BAKALA RSK A PR ACE - Theses.cz

Obrazek 6. Hlavnı menu, Kampan, Bitva, O aplikaci.

4.2. Hernı obrazovka

Hernı obrazovka (obr 7.) se sklada z 18 polı. Na kazdem polıcku muze bytjedna zakladna nebo vyhernı bod. Lidsky hrac ma vzdy modrou barvu. Cıslana hornım okraji obrazovky signalizujı pocet naplnenych barelu ropy. Barely sepostupne odecıtajı a vyhrava hrac, ktery dosahne na 0 jako prvnı. Pri sisknutısystemoveho tlacıtka zpet se zobrazı menu a hra se zastavı (obr 8.). Hrac mana vyber pokracovat, zobrazit napovedu nebo jıt zpet do kampane nebo bitvy.Hra se automaticky ulozı pokud jsou zvoleny poslednı dve moznosti. Ovladanıse snazı byt co nejvıce intuitivnı. Pro vıcenasobne vybranı zakladen je potrebapridrzet prst a posunovat s nım pres vsechny zakladny, ktere chcete vybrat. Prstmuzete pustit na prazdnem polıcku nebo na nepratelske zakladne, na kterouchcete utocit.

Obrazek 7. Rozehrana hra s modem vyhernı bod.

26

Page 27: BAKALA RSK A PR ACE - Theses.cz

Obrazek 8. Hra je zastavena a je zobrazeno menu.

4.3. Tipy

V hernım modu znicenı je dobre nejdrıve obsazovat neutralnı zakladny. Kdyzzautocıte s vetsım poctem jednotek, nez je na neutralnı zakladne, jednotky nanautralnı zakladne se k vam pripojı. Myslete na to a utocte vzdy s vetsım poctem.Kdyz je souperu vıce nez jeden, tyto neutralnı zakladny se obsazujı velmi rychlea je tedy potreba byt neustale ve strehu. Take pamatujte na to, ze vetsı zakladnygenerujı jednotky rychleji. Prijıt tedy o hlavnı zakladnu je casto, pro nasledujıcıprubeh hry, osudove. Dale je dobre mıt prehled o celkovych poctech jednotekkazdeho soupere, i kdyz je to pri rychlem tempu hry docela obtızne sledovat.Pocıtacovy hraci totiz vetsinou utocı na nejslabsıho soupere.

Pro hernı mod vyhernı body platı take vyse zmınene tipy. Navıc do hrypridava moznost ukoncit hru zıskanım 120 naplnenych barelu. Kazdou sekundu jenaplnen barel pri drzenı jednoho vyhernıho bodu. Kazdy vyhernı bod zacına jakonautralnı a ukazuje pocet obrannych jednotek. Pred obsazenım musı byt obranejednotky zniceny. Nemohou se tedy pridat k hraci jak je tomu u neutralnıchzakladen. Cım vıce vyhernıch bodu vlastnıte, tım rychleji plnıte barely. Jetedy dulezite si hlıdat pocet naplnenych barelu u kazdeho soupere. Klidnemuzete prijıt o vsechny zakladny, ale kdyz vlastnıte alespon jeden vyhernı bods dostatecnym poctem obrannych jednotek a nezbyva mnoho barelu k naplnenı,muzete dosahnout vıtezstvı.

27

Page 28: BAKALA RSK A PR ACE - Theses.cz

Zaver

Air Wars je 2D rts hra pro jednoho hrace. Pouzıva efektivnı hernı framework, po-mocı nehoz vykresluje 2D grafiku, poustı hudbu, reaguje na uzivatelovy vstupya korektne se chova v systemu Android. Hra obsahuje napovedu a hernı mech-anismy jsou natolik jednoduche, ze je hra vhodna pro kazdou vekovou skupinu.Pro snadnou dostupnost je hra publikovana na Google Play.

Hre by slusela nova moznost hry pro vıce lidskych hracu, treba pres bluetoothnebo lokalnı sıt’. Pokrocilejsı inteligence pocıtacoveho hrace. Delsı kampan, novemapy a hernı mody. Vıce zvuku by take neuskodilo.

28

Page 29: BAKALA RSK A PR ACE - Theses.cz

Reference

[1] Zechner, Mario. Green, Robert. Begining Adnroid 4 Games Development.Apress, New York, 2011.

[2] The developer’s guides. Guide for developing android application. [online],http://developer.android.com/develop/index.html.

[3] Gargenta, Marko. Learning Android. O’Reilly Media, Sebastopol, 2011.

[4] Jackson, Wallace. Android Apps for Absolute Beginners. Apress, New York,2011

[5] Komatineni, Satyo. MacLean, Dave. Pro Android 4. Apress, New York, 2012

29

Page 30: BAKALA RSK A PR ACE - Theses.cz

5. Obsah prilozeneho CD

Strucny popis obsahu prilozeneho CD:

bin/

Obsahuje instalacnı soubor AirWars.apk.

doc/

Obsahuje dokumentaci v PDF formatu doku.pdf, originalnı soubor doku.texa vsechny obrazky pouzite v dokumentaci.

src/

Obsahuje celou strukturu projektu z vyvojoveho prostredı Eclipse.

readme.txt

Instrukce pro instalaci a spustenı aplikace Air Wars, vcetne pozadavkupro jeho provoz.

30