+ All Categories
Home > Documents > Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta...

Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta...

Date post: 01-Jan-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
57
Z´ apado ˇ cesk´ a univerzita v Plzni Fakulta aplikovan´ ych v ˇ ed Katedra informatiky a v´ ypo ˇ cetn ´ ı techniky Bakal´ rsk´ a pr´ ace Mobiln´ ı hra typu ”rage game” na platformˇ e Android Plzeˇ n 2015 Luk´ s Maˇ ık (A12B0122P)
Transcript
Page 1: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Zapadoceska univerzita v Plzni

Fakulta aplikovanych ved

Katedra informatiky a vypocetnı techniky

Bakalarska prace

Mobilnı hra typu ”ragegame” na platforme

Android

Plzen 2015 Lukas Marık (A12B0122P)

Page 2: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Prohlasenı

Prohlasuji, ze jsem bakalarskou praci vypracoval samostatne a vyhradne spouzitım citovanych pramenu.

V Plzni dne 18. cervna 2015

Lukas Marık

Page 3: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Podekovanı

Rad bych touto cestou podekoval vedoucımu sve bakalarske prace panu Ing.Ladislavu Pesickovi za vstrıcny prıstup, odbornou konzultaci, metodicke ve-denı, ktere se staly podkladem pro vypracovanı teto prace.

Page 4: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Abstract

Abstrakt

Tato bakalarska prace se zabyva programovanım hernıch aplikacı do chytrychmobilnıch telefonu, ktere bezı na platforme Android. Prozkoumava jednotlivemozne hernı typy a jejich predstavitele v telefonnım svete. Dale se zamerujehernı typ zvany

”Rage Game“, popisuje jednotlive prvky, ktere musı tento typ

splnovat, a ukazuje nekolik jejich predstavitelu v hernım svete. V nasledu-jıcı rade se dozvıte jakym zpusoben a jakymi prostredky se naimplementujıjednotlive hernı prvky (hernı smycka, animace, kolize atd.). Pote se muzetepodıvat na implementaci me vlastnı hry typu

”Rage Game“ pro platformu

Android.

Abstract

This paper is based on programming game applications to the smart phones,which are running on android. It search individually possible types of gamesand their representative in the Word of smart phones. Further it focus ontypes of games called

”rage game“ , it describes simple elements , which must

this fulfil this type and it shows lot of their representative the a game Word.Next you will know in which way and which means of game elements areimplementing (game loop, animation, collision etc.) Then you can look onimplementation of my own game type

”Rage Game“ for platform Android.

Page 5: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Obsah

1 Uvod 1

2 Hernı svet 22.1 Typy her . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1.1 Adventura: . . . . . . . . . . . . . . . . . . . . . . . . 22.1.2 Akcnı hry: . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.3 Arkada: . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.4 Strategie: . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.5 Simulatory: . . . . . . . . . . . . . . . . . . . . . . . . 42.1.6 Hra na hrdiny: . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Hry typu”Rage game“ . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1 Super Meat Boy. . . . . . . . . . . . . . . . . . . . . . 62.2.2 Shobon Action . . . . . . . . . . . . . . . . . . . . . . 72.2.3 I wanna Be the Guy (IWBTG) . . . . . . . . . . . . . 8

3 O platforme Android 103.1 Pouzıvane verze . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2 Vyvojove nastroje a prostredı . . . . . . . . . . . . . . . . . . 10

3.2.1 Java Development Kit (JDK) . . . . . . . . . . . . . . 103.2.2 Android SDK . . . . . . . . . . . . . . . . . . . . . . . 103.2.3 Android Studio . . . . . . . . . . . . . . . . . . . . . . 113.2.4 Frameworky pro vyvoj her . . . . . . . . . . . . . . . . 11

4 Android aplikace 134.1 Zakladnı komponenty aplikace . . . . . . . . . . . . . . . . . 13

4.1.1 Aktivity (Activity) . . . . . . . . . . . . . . . . . . . . 134.1.2 Android Manifest . . . . . . . . . . . . . . . . . . . . . 14

5 Tvorba hry 155.1 Popis hry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155.2 Vykreslovanı jednotlivych objektu . . . . . . . . . . . . . . . 15

Page 6: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

OBSAH OBSAH

5.2.1 View . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155.2.2 SurfaceView . . . . . . . . . . . . . . . . . . . . . . . . 16

5.3 Tvorba Textur . . . . . . . . . . . . . . . . . . . . . . . . . . 175.4 Animace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5.4.1 Game Thread . . . . . . . . . . . . . . . . . . . . . . . 185.4.2 Game Loop (Hernı smycka) . . . . . . . . . . . . . . . 185.4.3 Tvorba animace . . . . . . . . . . . . . . . . . . . . . . 185.4.4 Naklon a detekce dotyku . . . . . . . . . . . . . . . . . 205.4.5 Kolize mezi objekty . . . . . . . . . . . . . . . . . . . . 215.4.6 Tvorba mapy . . . . . . . . . . . . . . . . . . . . . . . 245.4.7 Hudba a zvukove efekty . . . . . . . . . . . . . . . . . 255.4.8 Ulozenı stavu hry . . . . . . . . . . . . . . . . . . . . . 265.4.9 Prerusenı hry pri zmene aktivity . . . . . . . . . . . . 27

6 Programatorska dokumentace 286.1 GameView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286.2 GameMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.3 Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.4 Score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306.5 AttackController . . . . . . . . . . . . . . . . . . . . . . . . . 306.6 FloorController . . . . . . . . . . . . . . . . . . . . . . . . . . 316.7 Tiny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316.8 GameThreadGraphics . . . . . . . . . . . . . . . . . . . . . . 326.9 GameThreadLogic . . . . . . . . . . . . . . . . . . . . . . . . 32

7 Testovanı 337.1 Popis testovanı . . . . . . . . . . . . . . . . . . . . . . . . . . 337.2 Vysledky testovanı . . . . . . . . . . . . . . . . . . . . . . . . 337.3 Odlisne chovanı na nekterych zarızenı . . . . . . . . . . . . . 34

8 Zaver 35

A Instalace 38

B Uzivatelska dokumentace 39B.1 Menu hry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39B.2 Ovladanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39B.3 Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40B.4 Menu vyberu mapy . . . . . . . . . . . . . . . . . . . . . . . 41B.5 Prekazky a protivnıci . . . . . . . . . . . . . . . . . . . . . . 41B.6 Bossove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5

Page 7: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

OBSAH OBSAH

C ScreenShoty 46

D UML diagram nejvyznamnejsı trıd 49

E Struktura prilozeneho CD 50

6

Page 8: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

1 Uvod

Ukolem me prace je vytvorit mobilnı hru typu”rage game“, ktera bude spus-

titelna na platforme Android. Hry by mela byt spustitelna a hratelna naruznych modernıch telefonech s ruznou verzı operacnıho systemu Android.Prvnı ukolem tedy bude se seznamit s platformou Android a s programova-nım her pro tuto platformu.

Vytvorena hra ma mıt prıjemnou 2D grafiku a k ovladanı by mely slouzitpohybove a dotykove senzory. Hra by mela mıt vıce nez dvacet urovnı. Po-stupne se bude v urovnıch zvysovat obtıznost (tezsı prekazky, souperi, delkamapy).

Vybral jsem si naprogramovat klasickou 2D plosinovou arkadu. Uzivateltedy bude ovladat jednu postavu, ktera se v dane urovni bude muset dostatdo cıle. Pomocı nekolika protivnıku a ruznych prekazek, kterı budou v daneurovni rozmısteny tak, aby splnovaly prvky pro hru daneho typu

”rage game“.

1

Page 9: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

2 Hernı svet

Dnesnı hernı svet obsahuje jiz mnoho her, ktere se rozdelujı do nekolika obec-nych zanrovych skupin. Jednotlive zanry obsahujı mnoho podzanru, kterejsem charakterizoval v nasledujıcıch kapitolach.

2.1 Typy her

2.1.1 Adventura:

Je typ hry, kde hlavnı hrdina (hrac) resı rozlicne ukoly. Hra je vetsinou posta-vena na slozitem a propletenem prıbehu. Hlavnı hrdina vetsinou postupujeprıbehem a resı jednotlive logicke ukoly. Jen malokdy je pripojena akce vpodobe souboje.

- Textove adventury a graficke textove adventury:

Starsı typy her se v dnesnı dobe jiz nevyskytujı. Hracovi bylo vypisovanodenı hry do konsole a pote hrac pomocı prıkazu urcoval dalsı prubeh hry.Mezi nejznamejsı firmy, ktere se zamerovaly na tento zanr, patrı ceska firmaGolden Triangle. Jedna z jejıch nejznamejsıch textovek, na motivy romanu J.R. R. Tolkiena, byla hra Belegost. Ve svete Androidu se tyto hry nevyskytujı.

- Point and Click adventura:

Hra jiz obsahuje pestre graficke rozhranı pro uzivatele. Ovlada se pouzekurzorem (mysı), kde se klikanım na graficke predmety udava prıkaz, kterynase postava (avatar) pote programove vykona. Jedna z nejznamejsıch ces-kych

”Point and Click“ adventur je Polda (1,2,3,4,5,6). Existuje i mnoho

typu techto her pro Android: (napr.: Leisure Suit Larry: Reloaded, The LostCity).

- 3D adventury:

Hra obsahuje klasicke ovladanı pohybu a akcı. Dale se mohou delit na tzv.akcnı 3D adventury, ktere v sobe nemajı pouze resenı logickych ukolu a po-stupovanı prıbehem, ale navıc majı i nekolik akcnıch situacı v prıbehu. Mezi

2

Page 10: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Hernı svet Typy her

nejznamejsı akcnı 3D adventury bych zaradil urcite serii Tomb Raider/LarraCroft. Hernı svet Androidu obsahuje velke mnozstvı takovych her.

2.1.2 Akcnı hry:

V dnesnım hernım svete, kde prevlada 3D grafika rozlisujeme dva zakladnıtypy techto her a to jsou:

- FPS (First Person Shooter): Strılecka z prvnı osoby, kde kamera jepostavena na urovni ocı nası postavy. Hrac na obrazovce vidı ze sve postavypouze ruku se zbranı.

- TPS (Third Person Shooter): Strılecka z tzv. tretı osoby, kde kameraje postavena mimo hlavnıho hrdinu, pricemz se kamera pohybuje za zadyhlavnıho hrdiny.

Svet Androidu obsahuje mnoho obou typu her. Spousta znamych pocıta-covych her se dockala take sveho predelanı pro Android: napr.: Grand theftauto, May Payne, Duke Nuke a spousta dalsıch.

2.1.3 Arkada:

Tento typ her je zalozen na jednoduchem prıbehu. Hry vetsinou obsahujınekolik urovnı se zvysujıcı se obtıznostı. Nektere z techto her mohou mıt icasove omezena kola. Hry jsou zalozeny na sikovnosti a rychlosti uzivatele.Dale se rozdelujı na:

• Bojove hry.

• Plosinove hry.

• Sportovnı hry.

• Zavodnı hry.

• Logicke hry.

Za nejznamejsı arkadovou hru, jak pocıtacovou i mobilnı, lze povazovat seriiher Super Mario.

3

Page 11: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Hernı svet Typy her

2.1.4 Strategie:

V techto hrach vetsinou ovladame skupinu vojsk nebo osadnıku a stavımeinfrastrukturu nası osady. Existuje nekolik podzanru:

- Tahove strategie: Hra je rozdelena na kola, kde v jednom kole hrajejeden z hracu (s omezenym poctem pohybu a staveb). Nejznamejsı hra jakpro PC, tak pro Android je saga Heroes of Might and Magic.

- Realtimove strategie: Prubeh hry nenı rozdelen na kola, ale probıhajıtu veskere akce hracu a objektu v realnem case (napr.: serie Warcraft, Star-Craft). Pro Android se vyskytuje i nekolik her tohoto zanru jako naprıkladAutumn Dynasty. K tomuto typu strategie lze priradit dalsı podzanr, ktery jevelice oblıben v mobilnım svete a tımto zanrem je tzv. Tower Defense. Naurcenych cestach se zde protivnıci pohybujı z bodu A do bodu B a uzivatelma za ukol stavet objekty zneskodnujıcı tyto protivnıky. Behem nasledujı-cıch levelu se hodnota protivnıkova zdravı zvetsuje a uzivatel ma moznostupgradu svych vezı.

- Budovatelske strategie: Hrac se zde soustredı spıse na budovanı aekonomiku nezli na boj. Ve vetsine prıpadu system boje v techto hrach anizabudovany nenı. Hrac se zde muze stat starostou mesta, majitelem zoo parkunebo zabavneho parku a dokonce se muze stat i bohem starajıcı se o sve verıcına planete Zemi. Pro platformu Android si muzeme najıt nespocet her tohototypu. Mezi nejznamejsı jak mobilnı tak i pocıtacovou je hra SimCity. Prvnıdıl teto veleuspesne hernı serie vysel jiz roku 1989. Jednou z neznamejsıchdılu pro iPhone je SimCity IPhone(3000), ktery vznikl kolem roku 2008. TakeAndroid se dockal sveho zpracovanı a to roku 2010 hrou SimCity Deluxe.

2.1.5 Simulatory:

V simulatorech si muze kazdy uzivatel v pohodlı domova vyzkouset rıdit skorovsechny dopravnı prostredky.

Simulatory v dnesnı dobe nemusı byt jenom pro nejaky dopravnı prostre-dek, ale existujı i simulatory kde se uzivatel muze stat kozou, konem, psema dalsımi zvıraty.

V obchode GooglePlay si muzeme v podkategorii Simulatory najıt simu-lator pro Android, ktery chceme.

4

Page 12: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Hernı svet Typy her

2.1.6 Hra na hrdiny:

Znamejsı ve zkratce RPG (Role playing game), kde hrac je prenesen do ote-vreneho virtualnıho sveta. Hrac zde hraje za svojı postavu (avatara), kterezvysuje pomocı nejruznejsıch ukolu jejı hernı level. S hernımi zkusenostmi(XP) se zvysujı schopnosti nası postavy. Tyto schopnosti se dajı take zvy-sovat pomocı aktualnıho brnenı nebo zbranı jake ma nase postava na sobe.Brnenı, zbrane a ruzne doplnky hrac nachazı putovanım po virtualnım svetea nebo je dostava z ukolu.

Tento typ se da rozdelit to trı odvetvı:

-Akcnı RPG: Neboli tzv.”diablovky“, kde tento nazev je od prvnı hry

tohoto typu naprogramovanou firmou Blizzard a to hrou Diablo (1996). Vtechto hrach je kladen duraz spıse na akcnı stranku hry nikoliv na prıbehovou.

-Epicke RPG: Oproti akcnı RPG se to v techto hrach ma presne naopak.Tedy velkou strankou her je prıbehova linie.

-MMORPG (Massive multiplayer online role playing game): Jakjiz z nazvu vyplyva, jedna se pro vıce hracu bezıcı po pocıtacove sıti. Hraczde v realnem case potkava ostatnı hrace, se kterymi muze ruzne smlou-vat, vymenovat veci anebo i bojovat. Hrac se zde muze zamerovat bud’tona PvP (Player vs. Player), kde si svoji postavu zamerne trenujeme na boj sostatnımi hraci, a nebo na PvE (Player vs. Enemy), kde nası postavu prizpu-sobujeme pro boj s ruznymi Bossy (nejtezsı, finalnı nepratele) a prochazenımvselijakych tzv. Dungeonu s ostatnımi hraci. Lze take samozrejme si postavupripravit na obe tyto cesty. Myslım si, ze nejhranejsı hrou tohoto zanru naPC je hra World of Warcraft od spolecnosti Blizzard, kdy prvnı datadisk,ktery rozsiruje puvodnı hru, vysel v roce 2004.

Akcnı a Epicke RPG je zastoupeno v nekolika hrach v obchode Google-Play. MMORPG hry pro platformu Android take existujı. Mezi nejlepsı free-to-play (zdarma dostupne) hry tohoto typu patri:

• Arcane Legends: Tato hra je ve 3D grafice. Hrac ji muze hrat jaksam, tak s ostanımi pripojenymi hraci.

• Avabel online: Hernı svet obsahuje spoustu hernıch ukolu, ktere hracevedou dejem hry.

5

Page 13: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Hernı svet Hry typu”

Rage game“

• Brave Trials: Hra obsahuje vıce jak 120 schopnostı, ktere se vasehernı postava muze naucit.

• Dungeon Hunter: Tato hra ma hodne verzı (poslednı je verze 5) aje jedna z nejpopularnejsıch her mezi hraci.[5]

2.2 Hry typu”Rage game“

Tento typ her se zacal rozvıjet v nedavne dobe. Zatım je znamo mezi hracskoukomunitou jenom par titulu.

Hry jsou vetsinou Plosinove Arkady (viz kapitola 2.1). Vyznacujı se vy-sokou obtıznostı. Jako hrac techto her nemate zadne pomocne atributy hry,jako jsou zivoty a bonusy. Nektere hry ale poskytujı bud’to mensı pomoc for-mou tzv.“checkpointu“ anebo ulozenım dane hry po skoncenı jednoho kola.Hrac by se mel pripravit, ze bude neustale umırat a opakovat jednotliva kola.

2.2.1 Super Meat Boy.

Tato hra je asi nejvetsı inspiracı pro moji praci. Super Meat Boy je nezavislavideo hra, kterou navrhnul Edmund McMillen a Tommy Refenes. Vyvoj nateto hre zacal uz v roce 2009. Hra vysla na kratkou dobu v roce 2010, ale bylavyvojari vzata zpet pro dodelanı. Finalnı verze tedy vysla az o rok pozdeji ato v roce 2011, screenshot hry muzete videt na obrazku c. 2.1. Sveho zastanceve svete mobilnıch telefonu ale stale nema.

V roce 2010 take hra dostala ocenenı za nejnarocnejsı hru z IGN (ImagineGames Network). Kritici velmi chvalili presne hernı ovladanı, retro grafiku asoundtrack. Od roku 2012 se prodalo kolem dvou milionu titulu.

Jedna se o plosinovou arkadu skladajıcıch se z nekolika hernıch levelu ajejich finalnıch Bossu (viz Obrazek 2.2). Jednotlive urovne zvysujı stale svojiobtıznost a rozlehlost. Hrac ma pouze jeden jediny ukol a to proskakat seod bodu A do bodu B s tım, ze uprostred jedne urovne nenı mozne pouzitjakykoliv checkpoint, takze pri umrtı hrac musı opakovat cele kolo od zacatku.Po uspesnem zdolanı urovne se ulozı do pameti jako dokoncena.

Spoustu hracu se take snazı dokoncit dane kolo ve stanovenem case, ktery

6

Page 14: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Hernı svet Hry typu”

Rage game“

Obrazek 2.1: SuperMeatBoy

nam otevre tu samou uroven, ale jeste ve vetsı obtıznosti. Tım se stava veliceobtızne dokoncit hru na sto procent.

Obrazek 2.2: SuperMeatBoy-Boss[13]

2.2.2 Shobon Action

Jedna se o 2D arkadu vyrobenou japonskym programatorem Chiku, ktery jiroku 2007 naprogramoval za tri dny. Mezi hracskou komunitou je znama spısepod nazvem Cat Mario (viz Obrazek 2.3). Hra se da povazovat za parodiihry Super Mario Bros (1985).

Hra ma malo urovnı (cca. 5 urovnı) a v kazde urovni je jeden zachytnybod. Hra nema uloznı system, takze jedina mozna cesta jak hru dohrat je,hrat hru od zacatku az do konce v jednom kuse. To je i pri velmi malempoctu urovnı velice obtızne.

Hrac predstavuje kocku, ktera prochazı urovnemi velmi podobnym jakove hre Super Mario Bros. Jednotlive urovne se dajı rozdelit do nekolika castı,

7

Page 15: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Hernı svet Hry typu”

Rage game“

Obrazek 2.3: Shobon Action

kde jednotliva cast obsahuje nekolik skrytych hrozeb (viz Obrazek 2.4), kjejich nalezenı a naslednemu zjistenı jak danou cast udelat, hrac jiste obetujenekolik svych zivotu. Hrac zacına se tremi zivoty. Pocet zivotu se sice odecıta,ale nema vliv na beh hry. Pouze nas informuje, do jakeho velkeho mınusu sehrac dostal v poctu zivotu.

Obrazek 2.4: Shobon Action - Past [10]

Hru je mozne si stahnout i pro platformu Android v obchode GooglePlay.V tomto obchode lze vyhledat pod nazvem Cat Mario nekolik titulu, alepouze jeden titul odpovıda prvnı verzi hry pro osobnı pocıtace.

2.2.3 I wanna Be the Guy (IWBTG)

Jako poslednı rage-game hrou, kterou zde uvedu, je titul naprogramovanynezavislym developerem Michaelem ”Kayin”O’Reilliem. Hra spatrila svetlosveta roku 2007 a zdrojovy kod pro hru byl dostupny roku 2011. Jejı uvodnıimage muzete videt na obrazku 2.5.

Da se rıci, ze hra bere prvky z obou dvou zminovanych her v predcho-

8

Page 16: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Hernı svet Hry typu”

Rage game“

Obrazek 2.5: IWBTG

zıch kapitolach. Hra disponuje spoustou tezkych prekazek, a take ma plnoskrytych hrozeb.

Hra se sklada z nekolika urovnı, kde na konci kazde urovne ceka Boss (po-slednı prekazka, jejız zdolanı znamena uspesne dokoncenı urovne). Bossovejsou postavy ze znamych starych video her, jako napr.: Mike Tyson (Punch-Out), Dracula (Castlevanie) nebo Bowser (finalnı boss ze hry Super Mario).Pri neuspesnem zdolanı prekazky hrac umıra a musı znovu opakovat danouuroven (viz Obrazek 2.6).

Obrazek 2.6: IWBTG Game over

Originalnı hru na platformu Android sehnat nelze, ale existuje spoustapredelavek jako naprıklad:

• I wanna Be The Challenger

• I wanna Be The Phoenix

• I wanna Be The Four Elements

9

Page 17: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

3 O platforme Android

Android je jeden z nejrozsahlejsıch operacnıch systemu pro chytre telefony,PDA a tablety. Je zalozeny na open source platforme neboli software s ote-vrenym kodem.[6]

3.1 Pouzıvane verze

Prvnı verzi systemu Android, kterou vydala spolecnost Google dne 5. listo-padu 2007, byla verze 1.0.

Nejnovejsı a zaroven nejpouzıvanejsı verze systemu Android jsou An-droid 4.0/4.0.1/4.0.2(Ice Cream Sendwich) a Android 5.0 (Lolli-pop). [8, 6]

3.2 Vyvojove nastroje a prostredı

Android aplikace jsou primarne urceny pro programovacı jazyk Java. Protojsem si k implementaci vybral vyvojove prostredı Eclipse, ktere umoznujezdarma si stahnout nastroje pro vyvoj aplikacı pro Android.[8]

3.2.1 Java Development Kit (JDK)

JDK je zakladnı nastroj pro praci v programovacım jazyku Java. Obsahujezakladnı nastroje a knihovny pro vyvoj aplikacı. Zakladnı soucast je JREslouzıcı pro spustenı, dale take prekladac, debugger atd.

3.2.2 Android SDK

Dalsı dulezita cast je Android SDK balıcek, se kterym komunikuje prımo Ec-lipse. Tento balıcek obsahuje vse potrebne pro vyvoj aplikacı pro tuto plat-formu. Obsahem toho instalacnıho balıcku je SDK Manager, se kterym

10

Page 18: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

O platforme Android Vyvojove nastroje a prostredı

muzeme stahnout odpovıdajıcı platformy Androidu. Pomocı SDK managerumuzeme nastavit tzv. Virtualnı mobilnı zarızenı AVD, ktere nam umoz-nujı vytvaret emulatory jednotlivych typu zarızenı a testovat na nich nasıaplikaci. [8]

3.2.3 Android Studio

Jedna se o vyvojove prostredı specializovane na tvorbu aplikacı pro Android.Google jej uvedl v cervnu roku 2013 a potom dale rozvıjel az do dnesnı doby.Cele prostredı obsahuje vse, co je pro vyvoj potreba a celkove se zde pracujelepe nez v Eclipse. Pro implementaci sve hry jsem ho vsak nepouzil, zustaljsem u znameho vyvojoveho prostredı Eclipse.

Pro vyvoj mobilnıch aplikacı pro Android je dnes tou nejlepsı cestou ato hlavne z toho duvodu, ze Google ukoncil prace na Eclipsu s rozsırenımAndroid Development Tools. [15]

3.2.4 Frameworky pro vyvoj her

Na internetu je mnoho frameworku, ktere programatorovi pomahajı s tvorbouhry pro platformu Androidu pomocı programovacıho jazyka Java ci jinychjazyku. Frameworky se starajı o fyzikalnı stranku hry, optimalizaci hry prolepsı vykon, UI a mnoho dalsıch. Nektere z nich dokonce umoznı vyvoj herbez jake koliv znalosti programovanı (napr. GameMaker)[12].

• Corona SDK: siroce pouzıvany framework u hernıch vyvojaru. Tvorıjednoduchou implementaci a vyvoj pomocı tohoto frameworku je velicerychly. Pouzıva programovacı jazyk Lua. Podporuje IOS, Android aWindows Mobile.[9]

• Edgelib: 2D a 3D hernı engine. Framework je multiplatformnı, pod-poruje Android, iOs, Windows Phone a Symbian.[3]

• Unity Mobile mobilnı verze popularnıho frameworku pro vyvoj herUnity3D. Od ostatnıch frameworku podporuje i BlackBerry a Tizen.[14]

• Emo framework zalozeny na OpenGL ES a OpenGL AS. Umoznujevytvorit hru jak pro Android tak pro IOs. [11]

11

Page 19: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

O platforme Android Vyvojove nastroje a prostredı

Zadny z internetovych frameworku jsem v implementaci nepouzil. Jedenz hlavnıch duvodu bylo kompletnı pochopenı a naucenı implementace vsechpotrebnych hernıch prvku (napr. tvorba animace, fyzikalnı podstatu hry,kolize mezi hernımy prvky a jine).

12

Page 20: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

4 Android aplikace

Aplikace, ktere se dajı vytvorit v tomto operacnıch systemu, se delı do trıkategoriı :

• Aplikace na popredı: Typickym prıkladem jsou hry nebo aplikacepracujıcı s mapami (napr. navigace). Tyto aplikace se dajı kdykolivpozastavit, z duvodu nejake udalosti (hovor, SMS atd..).

• Aplikace na pozadı: Bezı mimo beh zarızenı. Jsou to naprıklad apli-kace sledujıcı telefonnı hovory a SMS.

• Aplikace s prerusovanou cinnostı: Jedna se vlastne o spojenı pred-chozıch dvou typu. Bezı na pozadı, ale ocekava se komunikace s uziva-telem. Typickym prıkladem je prehravanı mediı.[8]

4.1 Zakladnı komponenty aplikace

Kazda aplikace je slozena z nekolika komponentu. Hry reprezentujı aplikacena popredı, protoze pouzıvajı graficke rozhranı. Pro implementaci hry budetedy nejdulezitejsı pochopit, jak funguje prvnı komponenta Aktivity, ktera jepopsana v nasledujıcı kapitole. [8]

4.1.1 Aktivity (Activity)

Aktivita nam poskytuje dialogove okno, ktere typicky vyplnuje celou obra-zovku nebo predstavuje tzv.

”plovoucı okno“. Aplikace je vetsinou sestavena

z nekolika aktivit, kde hlavnı aktivita se stara o beh cele aplikace. Tato hlavnıaktivita je spustena jako prvnı.

Mezi jednotlivymi aktivitami se da prepınat. Po prepnutı se predchozıaktivita ulozı do zasobnıku, ktery funguje na systemu LIFO (last in, firstout), tım je zajisteno, ze se vzdy budeme moci vratit z jedne aktivity prespredchozı az na tu hlavnı.[8]

Aktivita ma svuj zivotnı cyklus, ktery se sklada z nekolika dulezitychmetod (viz Obrazek 4.1).

13

Page 21: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Android aplikace Zakladnı komponenty aplikace

Obrazek 4.1: Zivotnı cyklus Aktivity [1]

• onCreate(): Metoda volana pri vytvorenı aktivity.

• onStart(): Metoda volana pri spustenı dane aktivity, anebo kdyz seuzivatel chce vratit k teto aktivite.

• onRestume(): Metoda je volana, kdyz se aktivita dostava na popredı.

• onPause(): Metoda volana, kdyz se uzivatel presune do jine aktivity.

4.1.2 Android Manifest

Jedna se o XML soubor, ktery operacnımu systemu sdeluje, jake komponentyjsou k dispozici. Dale specifikuje parametry aplikace – nazev, verze. Pomocıandroid manifestu muzeme davat aplikaci ruzne opravnenı (napr. prıstupk fotografickemu zarızenı, nebo nadefinovat ruzne atributy aplikace (naklonobrazu, nazev aplikace, sırka a vyska layoutu atd.). [8, 6]

14

Page 22: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

5 Tvorba hry

Pro tvorbu hry jsem si vybral prostredı Eclipse. Duvodem volby bylo, zeje mi dobre zname, dobre se mi s tımto prostredı pracuje, a na mojı 2Dbylo dostatecne. Pri slozitejsıch 3D hrach uz se doporucuje pouzıvat nejlepeOpenGL ES.

Nejdrıve je treba se naucit, jak se hry v tomto prostredı delajı - jakvykreslovat jednotlive objekty a kam, tvorenı animace a kolizı mezi objekty.Jelikoz je hra ovladana dotykem a naklonem, proto jsem se musel naucitpracovat s temito ovladacımi prvky.

5.1 Popis hry

Rozhodl jsem se udelat hru hernıho typu”Rage Game“ (viz kapitola 2). Hra

by mela byt ovladana naklonem zarızenı. Podle velikosti naklonu by melapostava, za kterou hrac hraje chodit rychleji nebo pomaleji. Postava by melaumet skakat a tato akce by se vyvolala kliknutım na obrazovku telefonu.

Hra by mela mıt velky pocet urovnı (pres dvacet urovnı), kde v kazdeurovnı by mel hrac za ukol se dostat ze startu do cıle. Dve z dvaceti kol byobsahovaly souboj postavy s Bossem, kde by se uzivatel pomocı nastroju namape snazil Bosse zneskodnit.

5.2 Vykreslovanı jednotlivych objektu

Nynı se podıvame na dve moznosti, jak vykreslovat nase objekty na obra-zovku telefonu.

5.2.1 View

View je zakladnım grafickym prvkem systemu Android. Stara se o vykres-lovanı objektu a zachytavanı udalostı. Pro hry je vsak nepouzitelny, a toz jednoho prosteho duvodu. Metoda vykreslovanı View je totiz volana na

15

Page 23: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Vykreslovanı jednotlivych objektu

holder.addCallback(new SurfaceHolder.Callback() {

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

}

@Override

public void surfaceChanged(SurfaceHolder holder,

int format,int width, int height) {

}

});

Ukazka zdrojoveho kodu 5.1: Zpetne volanı [4]

stejnem GUI vlakne (Thread). Proto je potreba najıt takovy graficky prvek,ktery lze spustit na vlastnım vlakne, aby se prekreslovanı delalo rychleji anezpomalovalo ostatnı cinnosti nası aplikace.

5.2.2 SurfaceView

Je to potomek trıdy View. Jeho jednım z cılu je poskytnout View se sekun-darnım Vlaknem ( Thread). Prıstup je zajisten pomocı trıdy SurfaceHolde,ktery lze zıskat volanım metody getHolder()[4]. K volanı metody onDraw() jezde treba predat jako parametr trıdu Canvas. Canvas lze chapat jako jakousitabuli, kde muzeme kreslit prakticky, co chceme. Kdyz je vse pripraveno prozacatek vykreslovanı, je treba jeste v SurfaceHolder nastavit zpetne volanı(viz Ukazka 5.1), slouzıcı k nastavenı nasledujıcıch trı zakladnıch metod.

• surfaceDestroyed (SurfaceHolder holder): metoda volana pri znicenı na-seho povrchu.

16

Page 24: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Tvorba Textur

public void surfaceCreated(SurfaceHolder holder) {

Canvas c = holder.lockCanvas(null);

onDraw(c);

holder.unlockCanvasAndPost(c);

}

Ukazka zdrojoveho kodu 5.2: Implementace metody surfaceCreated[4]

• surfaceChanged (SurfaceHolder holder, int format,int width, int heigh) : metoda volana pri strukturalnı zmene.

• surfaceCreated(SurfaceHolder holder) : metoda volana pri prvnım spus-tenı.

Pred zacatkem vykreslovanı na platno je potreba dane platno uzamknoutpomocı naseho SurfaceHolder a po dokoncenı volanı metody onDraw() opetodemknout (viz Ukazka 5.2).

Kdyz to shrneme je tedy potreba vytvorit trıdu GameView , ktera budepotomkem SurfaceView. V teto trıde vytvorit instance SurfaceHolder a pridatjı a nastavit metody zpetneho volanı.

5.3 Tvorba Textur

Veskere textury jsem kreslil sam a pro jejich tvorbu jsem se rozhodl pouzıtprogram pro tvorbu vektorovych obrazku Inkscape. Dale pro export obrazkudo bitmapoveho formatu (.png a .gif) jsem pouzil grafickeho nastroje GIMP.Celkem jsem vytvoril 44 obrazku, nektere z nich jsou obsazeny v prıloze.

5.4 Animace

V teto kapitole bude popsana zakladnı hernı smycka. Dale se podıvame navse potrebne pro tvorbu animace ve 2D hre.

17

Page 25: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

5.4.1 Game Thread

Z predchozı kapitoly bylo receno, ze pro vykreslovanı bude pouzıvan Sur-faceView, ktery muze pracovat na sekundarnım vlastnım vlaknu. Je trebavytvorit nase vlastnı vlakno, ktere pak muzeme spustit v metode surfaceCre-ated kodem gameLoopThread.start(); a pri prıchodu prerusovacı udalosti izastavit pomocı metody surfaceDestroyed kodem gameLoopThread.join();.

V metode run nasledne bereme Canvas z naseho SurfaceHolderu, a potejej uzamkneme a zavolame v nasem GameView metodu onDraw().

Dale toto vlakno muzeme uspat na urcitou dobu a tım urcit, kolikrat nammuze probehnout za sekundu. Tak se ve hre urcuje tzv. FPS (pocet snımkuza sekundu).

5.4.2 Game Loop (Hernı smycka)

Kazdy objekt ve hre (hlavnı hrdina, protihraci, strely, atd.) ma svoje zakladnıdve metody onDraw() a update().

• onDraw(Canvas c): vykresluje nam nas objekt na platno zadane v pa-rametru.

• update(): provadı veskere zmeny v objektu, naprıklad: zmena x a ysouradnic a pozici ve Sprites (viz dalsı podkapitola).

5.4.3 Tvorba animace

Textura objektu je ve forme tzv. Sprites. Jedna se vlastne o jeden obrazek, kdejsou presne vedle sebe postaveny mozne polohy naseho objektu (viz Obrazek5.1).

Na obrazku muzeme videt celkovy pocet sloupecku a radku, ktere tentoobrazek rozdelı do pomyslnych obdelnıku. Pomocı techto udaju si muzemespocıtat opravdovou sırku a vysku naseho objektu.

Animace se provadı tak, ze je v jednom case vykreslena pouze cast na-seho Sprites s jednou polohou objektu. Mame Sprites pozice s cıslem radku

18

Page 26: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

Obrazek 5.1: Sprites Tiny

(animR) a sloupecku (animC), kterou menıme. Tım vykreslujeme stale jinoupolohu naseho obrazku (viz Ukazka 5.3).

19

Page 27: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

int srcX = animC*width;

int srcY = animR*height;

//odkaz na vybrany obdelnık z textury

Rect src = new Rect(srcX, srcY, srcX + width, srcY + height);

//Obdelnık na ktery se vykreslı vybrany obdelnık z textury

Rect dst = new Rect(x, y, x+ width, y+ height);

canvas.drawBitmap(btm,src ,dst,null);

Ukazka zdrojoveho kodu 5.3: Animace[4]

Naprıklad pro pohyb doprava meho hlavnıho hrdiny Tinyho v metodeupdate() nastavıme animR nejdrıve na hodnotu tri pro pohyb leve nohy do-predu a prave ruky nahoru, a pak animC na pocatek animace (hodnota 0).Pri dalsım volanı update metody inkrementuji hodnotu animC dokud nedo-sahne hodnoty pet, pote se nastavı animR na ctyri a animC zase na nulu.Vlastne stale prepıname mezi dvema radky Sprites a stale inkrementujemeanimC do urcite hodnoty. Tım docılıme celkem pekne animace pro pohybdoprava s pohybem vsech koncetin.

5.4.4 Naklon a detekce dotyku

Pro zıskanı souradnic naklonu telefonu je potreba dvou trıd SensorManagera SensorEventListener.

Nejdrıve je potreba si nastavitSensorEventListener, kde pri inicializaci jepotreba implementovat dve metody:

• onSensorChanged(SensorEvent se)

• onAccuracyChanged(Sensor sensor, int accuracy).

Stacı implementovat prvnı z metod, ktera je volana, kdyz se hodnotysenzoru zmenı. Pro naklon je potreba senzor Akcelerometr. Nejdrıve, nez za-

20

Page 28: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

cneme cıst hodnoty senzoru, musıme pres metodu se.sensor.getType() osetrit,jestli nam tuto metodu zavolal prave ten senzor, od ktereho data chceme. Ak-celerometr nam vracı hodnotu souradnice sveho naklonu. (viz Obrazek 5.2).

Obrazek 5.2: Akcelerometr[7]

Hra je nastavena na orientaci tzv.”landscape“ android:screenOrientation=”landscape”

(aplikace bezı pouze na orientaci na sırku). Orientace se nastavuje v AndroidManifestu (viz. Kapitola 4.1.2).

Kdyz nastavıme tuto orientaci v manifestu, zamezıme aplikaci, aby me-nila svuj obraz pri zmene orientace telefonu (dalsı orientace je tzv.

”portrait“,

neboli orientace na vysku). Pri nasem nastavenı nas tedy bude zajımat pouzey-ova souradnice. Pomocı teto souradnice muzeme zvysovat rychlost nasehohrdiny. Hodnota souradnice urcuje, na jakou stranu se bude nase postavapohybovat - vlevo ci vpravo. Pro detekci dotyku na obrazovku stacı prepsatmetodu onTouchEvent(MotionEvent event). Tu muzeme prekryt ve trıde de-dıcı Activity a nebo jı muzeme dokonce prekryt i ve trıde gameView dedıcıSurfaceView (viz Kapitola 5.1.2). V metode pomocı trıdy MotionEvent do-staneme x-ove a y-ove souradnice zachyceneho dotyku na display (viz Ukazka5.4).

5.4.5 Kolize mezi objekty

Pri resenı hernıch kolizı lze pouzıt tri zakladnı hernı algoritmy. Vsechny tytoalgoritmy jsem vyuzil ve sve praci, protoze pro kazdy objekt a situaci se hodıalgoritmus jiny.

21

Page 29: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

public boolean onTouchEvent(MotionEvent event) {

Log.i("Tiny touch:", "x: "

+ event.getX() + " y: " + event.getY());

}

Ukazka zdrojoveho kodu 5.4: Zachycenı naklonu

- Bounding Rectangle/Box Collision:

Tento algoritmus vyuzıva pro detekci kolize obdelnık (Bounding Rectan-gle Collision) nebo souradnice obdelnıku kolem objektu (Bounding Box Col-lision).

Pomocı metody rect1.intersect(rect2) nebo pomocı souradnic se zjistı de-tekce dvou objektu.

Pro detekci naseho hrdiny s neprateli je tento algoritmus nevhodny (vizObrazek 5.3), protoze program vyhodnotı kolizi a pritom se dva objektynedotkly.

Obrazek 5.3: Kolize - Bounding Rec. Collision

Tuto metodu jsem pouzil pri detekci pohybujıcıch se objektu s podlahounebo stenou. Jednotlivy objekt je popsan celkem sesti obdelnıky - hornım,dolnım, levym, pravym, spodnım a okolnım (viz Obrazek 5.4).

Spodnı a okolnı obdelnık (na obrazku vyobrazeny oranzovou barvou)slouzı k tomu, kdyz se nas objekt nejakou rychlostı priblizuje k podlaze neboke stene, tak se jeho rychlost postupne zmensuje a nas objekt dopadne napodlahu bez vniknutı do textury podlahy nebo steny. Rychlosti jsou zmen-sovany a prizpusobovany tak, aby zpomalenı nebylo zaznamenano lidskymokem a uzivateli se zdalo, ze dopad byl presny.

22

Page 30: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

Obrazek 5.4: Kolize obdelnıky

- Per-Pixel Collision:

Jak z nazvu vyplyva, pro detekci se bude pracovat s jednotlivymi pi-xely objektu. Nejdrıve se zjistı pomocı Bounding Rectangle Collision (po-psan vyse) jestli je potreba vyhodnotit tento algoritmus, a pote se projedouvsechny pixely obou objektu. Kolize se vyhodnotı jako pravdiva, kdyz senajdou na stejnem mıste dva pixely, ktere nemajı pruhlednou barvu. Tatometoda je sice velice narocna na system, ale za to nejpresnejsı pro detekcikolize. Z toho duvodu jsem tuto metodu pouzil pro detekci hlavnıho hrdiny

”Tiny“ s neprateli. Bohuzel se tato metoda ukazala nevhodna pro detekci s

kterymkoliv rotacnım objektem, jako je ve hre neprıtel Reaper (viz kapitolaB.5). Pri rotovanı objektu se stale v pameti udrzuje bez rotace, a tak nammetoda pracuje s nerotovanym obrazkem. Proto jsem pro rotacnı objektymusel pouzıt nasledujıcı metodu detekovanı kolize.

- Separating Axis Theorem:

Metoda urcena pro zpusob jak zjistit jestli se dva konvexnı tvary protınajı.

Objekty jsou popsany okolnımi vektory, ktere jsou prepocıtavany prizmene polohy nebo pri rotaci objektu. Pri kontrole kolize se matematickyspocıta, jestli nektery z vektoru jednoho objektu protnul nektery vektor dru-heho objektu [2].

Jak jsem jiz zmınil, tuto metodu jsem pouzil pro detekci kolize hlavnıpostavy

”Tiny“ s prekazkou Reaper (viz Kapitola B.5).

23

Page 31: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

5.4.6 Tvorba mapy

Pri tvorbe mapy pro 2D hru je potreba si nejdrıve rozdelit display na nekoliktzv.

”bunek“. Pri me aplikaci jsem si rozdelil display na 25 bunek na sırku a

10 bunek na vysku.

Po dokoncenı dostanu velikost jednotlivych bunek, ktere budou ruznevelike v zavislosti na displeje daneho zarızenı. Pokud tedy chceme, aby nakazdem zarızenı vypadala nase hra stejne velka, muzeme vyuzıt techto hodnotpro prepocıtanı a zmenenı velikosti jednotlivych textur pri nacıtanı hry.

Pri tvorbe mapy pak stacı do jakehokoliv souboru ulozit matici znaku.Kazdy znak predstavuje hernı objekt, jako naprıklad:

• 0: volna plocha

• 1: podlaha

• 2: stena

• S: start

• F: cıl

• T: zacatecnı souradnice pro hlavnıho hrdinu”Tiny“

• 3: pozice pro Slim (viz Kapitola B.5)

• 4: pozice pro pilu (Saw)

Jednotlive objekty a jejich urcovacı znaky jsou vıce popsany v prılohach(viz Prıloha B.5).

Pomocı pozice znaku v matici a udajıch o velikosti bunky se spocıta sou-radnice objektu. Naprıklad pro mapu (viz Obrazek 5.5) by soubor s mapouvypadal takto:

00000000000000000040000000111100

24

Page 32: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

0000000000000000

Obrazek 5.5: Mapa

Veskere objekty majı jinou velikost, tak je potreba po zıskanı pozice jesteprepocıtat souradnice, aby se nam objekt umıstill presne tam, kde potrebu-jeme (napr. pila na obrazku 5.5).

5.4.7 Hudba a zvukove efekty

Jednotlive zvukove efekty i hudba na popredı by mely byt ulozeny v syste-move slozce aplikace raw, ktera je read-only (pouze pro ctenı).

Pro hudbu vyuzijeme trıdu MediaPlayer. Tento prehravac se vytvarı me-todou create(Context context, int resid).

• context: Rozhranı pro globalnı informace o aplikacnım prostredı. Jeto abstraktnı trıda, jejız realizace je zajistena Android systemem.

• resid: Id zvukoveho souboru zıskane z R.raw.<nazev>.

Po vytvorenı prehravace metodou mp.start() a mp.stop() poustıme nebovypıname hudbu. Opakovanı pısnicky po dohranı je zajisteno v metode up-date() (viz Kapitola 5.2.2.). V teto metode se pomocı metody mp.isPlaying()zjistı, jestli hudba stale porad hraje, jestli ne je pustena znovu.

25

Page 33: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

public final int play (int soundID, float leftVolume,

float rightVolume, int priority, int loop, float rate)

Ukazka zdrojoveho kodu 5.5: Metoda pro prehravanı

Zvukovych efektu mame ve hre samozrejme nekolik. Na to je potrebajina trıda nez MediaPlayer a to trıdy SoundPool. Jedna se vlastne o kolekcizvukovych efektu, ktere lze vlozit pomocı metody load(Context kontext, intid) podobne jako u Media player, do pameti ze zdroje uvnitr aplikace neboze souboru. Tedy hlavnı vyhodou oproti MediaPlayer je pocet zvukovychsouboru.

Dalsı vyhodou je prehravanı s tım, ze se da nastavit prava i leva hlasitostzvuku (viz Ukazka 5.5).

Pri volanı metody play se musı zadat ID naseho zvukoveho efektu, kterydostaneme pomocı R.raw.<nazev efektu>. Pote zadam prioritu prehravanı afrekvenci prehravanı.

Hudba na pozadı a veskere zvukove efekty jsou volne dostupne ke stazen.

5.4.8 Ulozenı stavu hry

Pro ulozenı stavu hry a jejıho zapamatovanı i po vypnutı aplikace se dapouzıt nekolik zpusobu. Jednım takovym zpusobem je vyuzıt trıdu Shared-Preferences, ktera se hojne pouzıva pri zapamatovanı prihlasovacıch udaju,hesel, apod. Tato trıda vyuzıva formatu klıc-hodnota k ulozenı jednoduchychdat do vnitrnı pameti aplikace.

Ja jsem se vsak rozhodl jıt jinou cestou, vytvoril jsem si do internı pametitelefonu soubor, ktery pomocı prıslusnych utilit FileOutputStream a Input-StreamReader prepisuji nebo ctu. Pri vytvarenı instance trıdy FileOutput-Stream se nastavı cesta k souboru a mod Context.MODE PRIVATE, kteryumoznı prıstup k souboru pouze nası aplikaci. Struktura souboru se sklada znekolika radku, kde na kazdem z nich jsou data ve formatu:

<cıslo kola>;<minuty dokoncenı>;<sekundy dokoncenı>

Pri jeste nedohranem kole jsou hodnoty minuty dokoncenı a sekundy dokoncenı

26

Page 34: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Tvorba hry Animace

nastaveny na N:N. Pocet radku souboru mi urcuje pocet otevrenych kol vehre. Pri prvotnım spustenı se tedy vytvorı soukromy soubor score.txt, kterybude mıt ze zacatku pouze jeden radek: 1:N:N. Tento radek aplikaci sdelı,ze je otevrene pouze jedno kolo a zatım nebylo nikdy dohrane. Pri dohranıjednoho kola se zmenı cas (nebo nezmenı, podle toho jestli je vetsı, nez casktery byl uz nekdy zahran). Jestli se prepisuje radek, s hodnotou N:N, pridase do souboru novy radek a tım se uzivateli otevre nova uroven.

5.4.9 Prerusenı hry pri zmene aktivity

Pri jakekoliv aplikaci je dulezite osetrit, co se stane, kdyz beh nası aplikacenarusı nektera z jinych aktivit (naprıklad prıchozı hovor).

V aplikacıch, kde na pozadı nebezı zadne dalsı vlakno nebo nektery vypo-cet, se stopnutı v podstate resit nemusı, ale naprıklad ve hrach vede narusenık padu aplikace pri snaze jejıho znovu najetı.

Tento pad zpusobujı prave bezıcı vlakna, protoze pri znovu najetı aplikacese vola metoda onResume() (viz Obrazek 4.1). Tato metoda se v nasemSurfaceHolder (viz Kapitola 5.1.2) bude snazit opet zapnout vlakno, o kteremsi system myslı, ze stale bezı.

Kdyz se podıvame na nas SurfaceHolder, kde jsme nastavovali metodujako surfaceCreated, a zaroven metodu surfaceDestroyed, ktera by mela bytvolana pri prerusenı aplikace zjistıme, ze tato metoda nenı volana pri vsechdruzıch prerusenı. Je tedy vhodne presunout vypnutı vlaken a tım nastavitstopnutı hry do metody onPause(), ktera je volana vzdy.

Tım se osetrı neprıjemny pad hry pri prıchozım hovoru ci jinych narusenıbehu nası aplikace.

27

Page 35: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

6 Programatorska dokumentace

Program se sklada celkem z 29 trıd. Vsechny trıdy jsou popsany v Javadocdokumentaci, kterou lze nalezt na prilozenem CD ve slozce Javadoc. Nasle-duje popis nejvyznamnejsıch trıd. Nejvyznamnejsı trıdy je mozne videt i vUML diagramu v prılohach.

6.1 GameView

Trıda, ktera se stara o celkove denı hry. Nejprve nacte vsechny textury aupravı jejich velikost podle pouzıvaneho rozlisenı displeje. Zobrazuje aktualnıhernı scenu, spoustı jednotlive hernı efekty a hudbu. Vola metody update()a onDraw(Canvas canvas) vsech hernıch prvku. V poslednı rade spoustı apozastavuje hernı smycku.

Vybrane metody:

• update(): Zavola metodu update() vsech aktualne pouzıvanych her-nıch prvku.

• onDraw(): Zavola metodu pro vykreslenı vsech aktualne pouzıvanychhernıch prvku onDraw(Canvas canvas). Parametr canvas je instanceplatna, na ktery se pvky vykreslı.

• setInGame(int inGame): Prepne do casti hernı aplikace podle pa-rametru inGame (0 - hlavnı menu, 1 - vyber mapy, 2 - tutorial, 3 - hraa 4 - seznam skore).

• playSoundEffect(int i): Spustı zvukovy efekt podle indexu preda-nem v parametru i.

• startGame(String mapa): Nacte mapu pro vybranou uroven zesouboru predanem v parametru mapa. Zavola metodu trıdy Map (vizKapitola 6.3) pro vytvorenı mapy. V poslednı rade nastavı souradnicehlavnı postave a spustı danou uroven.

• finishGame(): Metoda je zavolana, kdyz hlavnı hrdina dokoncı uro-ven. Vytvorı a spustı animaci tabulky, ktera se postupne objevuje na

28

Page 36: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Programatorska dokumentace GameMenu

obrazovce. Tabulka obsahuje informace o case dokoncenı urovne a tla-cıtka pro navrat do menu hry, pro restartovanı urovne a spustenı dalsıurovne.

6.2 GameMenu

Trıda zobrazujıcı cast pro vyber levelu. Na obrazovce se zobrazı sest oken.Jednotliva okna majı v sobe bud’ cıslo (cıslo mapy) nebo zamek. To zna-mena, ze je dana uroven zamcena a hrac musı dohrat predchozı kolo, aby jiodemknul. Jelikoz ve hre je celkem dvacet kol a oken je zobrazeno pouze sest,je v pravem dolnım rohu tlacıtko, kterym zobrazıme dalsıch sest oken.

Vybrane metody:

• loadScore(LinkedList<Integer> finished): V parametru je pre-dan seznam dokoncenych kol. Tento seznam pote urcı, jaka okna budoumıt cıslo a jaka budou mıt zamek.

• onDraw(Canvas canvas): Vykreslı sest oken na platno predane vparametru. Dale v kazdem okne vykreslı cıslo mapy, a nebo zamek.Cıslo se zobrazı, kdyz je index okna v seznamu dokoncenych kol, nebokdyz je index o jedno vetsı nez poslednı dokoncene kolo.

• getTouch(float x,float y) Podle x-ove a y-ove souradnice dotyku nadisplej metoda zkontroluje, zda se uzivatel nedotkl nektereho okna scıslem. Jestli ano, spustı metodu pro start dane urovne ve trıde Game-View.

6.3 Map

Tato trıda se stara o vytvorenı a vykreslenı mapy. Uchovava v sobe dvaseznamy, seznam podlah a sten vyskytujıcıch se na mape a seznam prekazeka protivnıku.

Vybrane metody:

29

Page 37: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Programatorska dokumentace Score

• loadMap(InputStreamReader inputStream)): Nacte vsechny hernıprvky dane mapy.

• reset(): Vymaze data v obou seznamech.

6.4 Score

Trıda spravujıcı soubor score.txt, kde jsou ulozene casy dokoncenı jednotli-vych urovnı.

Vybrane metody:

• checkScore(): Zkontroluje jestli soubor score.txt existuje pokud ne,vytvorı jej.

• getOpenLevel(): Metoda vracı seznam dokoncenych kol.

• updateList(int mapa,float finishedtime): Metoda je volana, kdyzuzivatel dokoncı uroven (index urovne je predan v parametru mapa).Zkontroluje se, jestli uzivatel nedosahl noveho rekordu dane urovne.Jestli ano, zapıse novy cas dokoncenı do souboru.

6.5 AttackController

Trıda kontroluje kolize mezi hlavnı postavou a neprateli.

Vybrane metody:

• controlTinyEnemyCollisions(): Spustı kontrolu kolizı mezi hlavnıpostavou a vsemi neprateli.

• isPixelCollision(int width1,int height1,Bitmap btm1,Rect rec1,intwidth2,int height2,Bitmap btm2,Rect rec2): Kontroluje pixelo-vou kolizi (viz Kapitola 5.4.5) mezi dvema zadanymi texturami.

• isRotateObjectCollision(Enemy enemy,Tiny tiny): Spustı kon-trolu kolize mezi rotacnım objektem a hlavnım hrdinou. Kolize se kont-roluje pomocı algoritmu Separating Axis Theorem (viz Kapitola 5.4.5).

30

Page 38: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Programatorska dokumentace FloorController

6.6 FloorController

Trıda kontroluje kolize pohybujıcıch se hernıch objektu s podlahou a stenami.

Vybrane metody:

• controlCollisions(): Spoustı kontrolu kolize vsech pohybujıcıch sehernıch objektu s podlahou a stenami. Hernım objektum pri zachycenıkolize rekne, kam se mohou a nemohou pohybovat.

6.7 Tiny

Trıda predstavujıcı funkcionalitu hlavnı postavy ”Tiny”.

Vybrane metody:

• update(): Spustı update daneho objektu. Posune souradnice objektupodle x-ove a y-ove rychlosti. Podle pohybu nastavı promenne animCa animR a urcı, ktera cast Sprites se ma vykreslit (viz Kapitola 5.4.3).

• setTiltThePhone(float y): Nastavı x-ovou rychlost hlavnıho hrdinypodle y-ove souradnice naklonu zarızenı, predane v parametru.

• setDead(boolean dead): Nastavı cast Sprites na umrtı. Dale vytvorıkrev a spustı jejı animaci.

• setJump(): Zkontroluje, jestli postava muze provest skok (podle hod-noty promenne number jump, ktera nesmı byt vetsı nez 2) a poprıpadespustı schopnost skoku.

• onDraw(Canvas canvas): Vykreslı hlavnı postavu na platno preda-nem v parametru. Jestli existuje nejaka krev, vykreslı i ji.

• nearDownFloor(Floor fl): Metoda je volana, kdyz postava pada napodlahu zadanou v parametru. Kontroluje y-ovou rychlost jestli nenıvetsı nez vzdalenost mezi postavou a podlahou, poprıpade zmensujey-ovou rychlost.

31

Page 39: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Programatorska dokumentace GameThreadGraphics

6.8 GameThreadGraphics

Hernı vlakno nejdrıve spustı kontrolu kolizı hernıch objektu s podlahou a ste-nami pomocı trıdy FloorControler. Dale uzamyka platno, na ktere se ve trıdeGameView vykreslujı hernı objekty. V poslednı rade vola metody update() aonDraw(Canvas canvas) trıdy GameView a znovu odemyka platno.

6.9 GameThreadLogic

Dalsı hernı vlakno, ktere spoustı kontrolu kolizı mezı hlavnım hrdinou a ne-prateli trıdy AttackController. Vytvorenı druheho hernıho vlakna bylo dule-zite, protoze kontrola kolizı mezi hlavnım hrdinou a neprateli je velice na-rocna na system. Kdyz byla veskera kontrola kolizı spolecne s volanım metodupdate() a onDraw(Canvas canvas) v jednom vlakne, tak hra na nekterychzarızenı bezela pomalu.

32

Page 40: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

7 Testovanı

Moje aplikace byla testovana na nekolika zarızenıch (viz Tabulka 7.1). Tes-tovanı probehlo na verzı Androidu 2.3.6, 4.0,4.1.2, 4.2.2 a 4.4.2. Az na jedenproblem, ktery vznikl u starsıho telefonu s verzı 2.3.6 (viz. Podkapitola 7.2),bezela hra bez problemu.

Zarızenı Android verze Display rozlisenı

Galaxy Samsung Xcover 2.3.6 320x480HTC One V T320e 4.0 480x800Samsung Nexus S 4.1.2 480x800HTC One X 4.2.4 720x1280Sony Xperia T 4.0 720x1280

Tabulka 7.1: Prehled testovacıch zarızenı

7.1 Popis testovanı

Testovanım aplikace se venovala skupina uzivatelu. Hlavnım predmetem tes-tovanı bylo odzkouset hratelnost. Nejdrıve se testoval pohyb postavy, jestli sena vsech zarızenıch chova stejne (chodı stejne rychle a skace stejne vysoko).Dale se zkouselo, jestli hlavnı hrdina pri pohybu nepronika do textur pod-lahy a sten, tım by ve hre vznikaly tzv. hernı bugy, ktere majı velky dopadna hratelnost.Take jsem kontroloval vzhled aplikace v jednotlivych zarızenı(stejna velikost textur na ruznych rozlisenıch).

V poslednı rade se testovalo, jestli pro nektery typ prıstroje nenı hra prılisnarocna, koukalo jestli hra bezı plynule bez sekanı.

7.2 Vysledky testovanı

Testovanı prineslo zakladnı informace o chodu aplikace. Pomohlo objevit pro-blemy naprıklad s hernımy bugy (pronikanı postavy do textu podlah a sten)a narocnost pro nektera zarızenı. Tyto problemy se podarilo opravit a nynıby mela aplikace bez sebemensıch zavad fungovat. U jednoho zarızenı se ale

33

Page 41: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Testovanı Odlisne chovanı na nekterych zarızenı

objevil problem s prılis malym displayem (viz Podkapitola 7.3), ktery se minepodaril vyresit tak, aby to i na tomto zarızenı bezelo stejne jako na ostat-nıch.

7.3 Odlisne chovanı na nekterych zarızenı

Jeden z vaznych problemu vznikl na zarızenı Galaxy Samsung Xcover GT-S5690. Duvodem je prılis male rozlisenı a to pouze 320x480. Jelikoz jsem sesnazil, aby hra vypadala a byla hratelna na vsech zarızenı, stejne tak je trebapred spustenım samotne hernı smycky nastavit velikosti obrazku a rychlostipohybu jednotlivych objektu. Zjistil jsem, ze problem vznikl u rychlosti.

Nove rychlosti se prepocıtavajı od defaultnıch hodnot, ktere jsou pro rozli-senı 720x1280. Ku prıkladu y-nova pocatecnı rychlost naseho hlavnıho hrdinyje 20px a celkova gravitace hry je nastavena na 3px pro toto rozlisenı. Po pre-pocıtanı naprıklad na rozlisenı 480x800 je gravitace snızena na 2px a y-novarychlost na 14. Pri malem rozlisenı jako je 320x480 vznikajı po prepocıtanıdesetinna cısla (gravitace nemuze byt 1.5px potrebujeme cele cıslo). To mazasadnı vliv na hratelnost hry a to naprıklad, tım ze nas hlavnı hrdina skacevyse nez by mel.

Myslım si, ze tento problem nevadı, protoze vsechna novejsı zarızenı majıvetsı rozlisenı nez 320x480.

34

Page 42: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

8 Zaver

Hry jsou soucastı mobilnıch telefonu od dob, kdy umely vıce nez jenom telefo-novat. Hry jsou dobre na uvolnenı od kazdodennıho stresu anebo take dobreposlouzı ke zkracenı casu pri ceste v dopravnıch prostredcıch. Postupem casuse mobilnı zarızenı zdokonalovala a stale se zdokonalujı, stejne i hry v nichnainstalovane. V dnesnı dobe chytrych telefonu, dosahly hry dokonce urovneher pro domacı pocıtace pred par lety.

Myslım si, ze hra do mobilnıch zarızenı by mela mıt nenarocnou ovlada-telnost, jednoduchy prıbeh a chytlavou grafiku, aby zaujala co nejvetsı pocetuzivatelu.

Cılem me bakalarske prace bylo prozkoumanı a analyzovanı her typu,ktery se v mobilnıch zarızenıch temer nevyskytuje, a to zanru

”Rage Game“.

Dalsım cılem bylo vymyslet a vytvorit hernı aplikaci pro mobilnı platformuAndroid. Navrhl jsem a zrealizoval hru pro platformu Android ovladanounaklonem zarızenı, ktera zahrnuje prvky ”Rage Game”. Hra obsahuje vıcejak 20 hernıch urovnı. K testovanı hry bylo prizvano nekolik dalsıch uzivatelua take se testovalo na nekolika mobilnıch zarızenı s ruznou verzı operacnıhosystemu Android. Bylo testovano chovanı aplikace v ruznych situacıch (napr.shozenı aplikace, reagovanı na prıchozı hovor atd.).

Hernı aplikace byla uspesne naimplementovana a je dostupna na zarı-zenı s verzı operacnıho systemu Android vyssı nez 2.3.3 a splnuje vsechnypozadavky, ktere byly v zadanı prace.

35

Page 43: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Literatura

[1] Sajboch, A.: Rozsırenı informacnıho systemu EPI, s.r.o. na mobilnı plat-formu Android. URL:<http://www.kiwiki.info/index.php/>, [on-line], cit. 2009-01-19.

[2] Bittle, W.: SAT (Separating Axis Theorem). URL:<http://www.dyn4j.org/2010/01/sat/#sat-intro3l/>, [online], cit. 2015-06-10.

[3] B.V., E. I. M.: Cross-platform mobile development at your fingertips.URL:<http://www.edgelib.com/index.php/>, [online], cit. 2014-08-10.

[4] edu4java: Android Game Programming. URL:<http://www.edu4java.com/en/androidgame/androidgame1.html/>, [online], cit. 2015-06-10.

[5] Hindy, J.: 15 best Android MMORPGs. URL:<http://www.androidauthority.com/best-android-mmorpgs-578250/>, [on-line], cit. 2015-05-1.

[6] Hoog, A.: Android Forensics. 225 Wyman Street,USA: Elsevier Inc.,2011, ISBN 978-1-59749-651-3.

[7] Ivar, L.: Android Accelerometer App. URL:<http://larsivar.com/wp/?p=87>, [online], cit. 2011-08-20.

[8] Jırı Vavru, M. U.: Programujeme pro Android. U Pruhonu22,Praha:Graga Publishing a.s., 2013, ISBN 978-80-247-4863-4.

[9] Labs, C.: Build 10x Faster. URL:<https://coronalabs.com/>, [on-line], cit. 2015-06-1.

[10] Neoblast: Open Syobon Action DC Released! URL: <http://dreamcast-talk.com/forum/viewtopic.php?f=5&t=4635y/>, [on-line], cit. 2009-01-19.

36

Page 44: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

LITERATURA LITERATURA

[11] emo-framework project: Emo open source framework for games.URL:<http://www.emo-framework.com/>, [online], cit. 2011-04-5.

[12] Reynolds, C.: Top IOS and Android Mobile Game DevelopmentTools, Frameworks, Engines and Resources. URL: <http://www.mobyaffiliates.com/>, [online], cit. 2012-10-22.

[13] Ryuchi: Super Meat Boy. URL: <http://gameload.blog.cz/1305/super-meat-boy/>, [online], cit. 2013-05-14.

[14] Technologies, U.: Mobile Development. URL:<https://unity3d.com/>, [online], cit. 2014-04-27.

[15] Zapata, B. C.: Android Studio Application Development. 35 LiveryStreet,UK: Packt Publishing, 2013, ISBN 978-1-78328-527-3.

37

Page 45: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Prılohy

A Instalace

Pred instalacı aplikace je nutne si v nastavenı telefonu povolit instalaci zneznamych zdroju. Vetsinou se nachazı v Nastavenı -> Zabezpecenı -> Ne-zname zdroje.

V prilozenem CD lze nalezt soubor Tiny.apk, ktery si presunute do ja-kehokoliv adresare ve vasem mobilnım zarızenı se systemem Android. Dalese v prilozenem CD nachazı soubor TinyTest.apk, ktery slouzı k testovanı apo jeho nainstalovanı dostaneme hru, ktera ma od zacatku dostupne vsechnyurovne. Pomocı nektere utility na prohledavanı slozek (napr. ES File Explo-rer) najdete soubor Tiny.apk. Po kliknutım na soubor se nejdrıve zarızenızepta jestli chceme tuto aplikaci nainstalovat a pote probehne instalace. Pouspesne instalaci muzeme spustit aplikaci Tiny a zacıt hrat.

38

Page 46: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

B Uzivatelska dokumentace

Vytvorena hra, je podle zadanı, typu”Rage Game“. Jedna se o arkadu (viz

Kapitola 3.) s vysokou obtıznostı. Ve hre se nevyskytujı skryte prvky jakoje to mu ve hre Shobon Action (viz Kapitola 3.2.2), ale aby hra splnovalaprvky

”Rage Game“ jsou jednotlive prekazky dany, tak aby jejich prekonanı

bylo obtızne.

Hrac ve hre hraje za plechovku”Tiny“, ktera se v jednotlivych kolech

snazı dostat ze startu do cıle. Ve hre na hrace ceka vıce nez dvacet kol. Dve ztechto kol jsou kola s Bossem, ktereho musı hrac zneskodnit pomocı objektuna mape (napri. bodak, ktery pri dotyku hlavnıho hrdniny, spadne na Bosse).

V jednotlivych urovnıch musı hrac prekonavat mnozstvı nastrah (viz Pod-kapitola 6.5). Pri stretnutı s temito nastrahami hlavnı hrdina umıra a hracje nucen dane kolo opakovat.

Veskere textury a graficke prvky jsem vytvoril sam s pouzitım programupro vektorovou grafiku Inkscape a dale program pro praci s rastrovou grafikouGIMP.

B.1 Menu hry

Jako prvnı se hraci objevı menu hry, ktere je animovane a hrac se pomocıneho muze dostat do dalsıch castı hry (Vyber mapy, tutorial, Skore) anebomuze pomocı tlacıtka

”Exit“ ukoncit celou hru (viz Obrazek B.1).

Dale muze pomocı tlacıtek v pravem hornım rohu vypnout zvuk pro efektya pro hudbu.

B.2 Ovladanı

Pohyb hlavnıho hrdiny se ovlada naklonem telefonu s tım, ze cım vıc jetelefon naklonen, tım se nas hrdina pohybuje rychleji (doprava nebo dolevapodle naklonu).

39

Page 47: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Uzivatelska dokumentace Tutorial

Obrazek B.1: Menu

Skok a nasledny tzv.”dvoj-skok“ se udela dotykem na jakoukoliv cast

display.

B.3 Tutorial

Tuto cast hry bych doporucoval zacınajıcımu hraci pustit jako prvnı. Tatomapa je velice kratka, ceka zde na hrace jeden preskok pres propast a jednavelka zed’. Ale hrac se tu pomocı jednoduchych informacnıch tabulek (vizObrazek B.2) naucı ovladat hru a jednotlive schopnosti, ktere muze s hlavnımhrdinou delat.

Obrazek B.2: Menu

Mezi jednotlive schopnosti hrdiny patrı dvoj-skok a drzenı o zed’. Kdyzse hrdina chytı o zed’ pada po nı pomaleji, ale obnovı se mu pocet moznych

40

Page 48: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Uzivatelska dokumentace Menu vyberu mapy

skoku, takze touto schopnostı muze vyskakat i na velikou zed’, kterou bydvoj-skokem nepreskocil.

B.4 Menu vyberu mapy

Do teto sekce se hrac dostane pri zmacknutı tlacıtka”Play“ v hernım menu.

Je zde videt sest oken a jednotliva okna majı v sobe bud’to cıslo (cıslo mapy)nebo zamek, to znamena ze je dana uroven zamcena a hrac musı dohratpredchozı kolo, aby odemknul tuto uroven. Jelikoz ve hre je celkem dvacet

Obrazek B.3: Menu

kol a oken je zobrazeno pouze sest je pravem dolnım rohu tlacıtko, kterymzobrazıme dalsıch sest oken. Po zobrazenı dalsıch sesti oken se v levem dolnımrohu zobrazı tlacıtko, pomocı nehoz se zase vratıme na puvodnı (viz ObrazekB.3).

B.5 Prekazky a protivnıci

Dotyk naseho hrdiny s vypsanymi protivnıky je, az krome stretnutı se strel-cem (Shoter), smrtelne. Po umrtı musı hrac absolvovat celou uroven znovu.

Slim

Obrazek B.4: Slim

Slim je protivnık, ktery jde pouze jednım smerem a nevadı mu ani pad dopropasti. Jeho zdolanı je pomerne jednoduche, ale v nekterych situacı muzezneprıjemnit hranı (viz Obrazek B.4).

41

Page 49: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Uzivatelska dokumentace Prekazky a protivnıci

Saw

Obrazek B.5: Saw

Pila, ktera se neustale tocı se muze vyskytovat ve vodorovne poloze anebona stenach. Ve vodorovne poloze se da prekonat nejlepe dvoj-skokem aneboskocenım s velkym naklonem telefonu. Na stenach jsou uz pily o dost mensı(viz Obrazek B.5).

Bayonet

Obrazek B.6: Bayoner

Jedna se o jednoduchou snadno prekonatelnou prekazku. Vyskytuje sena mıstech kdy je potreba hraci omezit seskok dolu anebo ztızit danou castmapy(viz Obrazek B.6).

42

Page 50: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Uzivatelska dokumentace Prekazky a protivnıci

Bottle

Obrazek B.7: Bottle

Tento protivnık strılı v pravidelnych intervalech nad sebe strely. Jednot-live strely majı pokazde nahodnou x-ovou a y-ovou rychlost(viz Obrazek B.7).

Slarm

Obrazek B.8: Slarm

Pohybuje se jak doprava tak doleva v urcite vzdalenosti. V pravidelnychcasovych intervalech vystrelı do obou stran. Hrac muze poznat kdy Slarmstrılı tım, ze Slarm se pred vystrelenım prikrcı(viz Obrazek B.8).

Shoter

Obrazek B.9: Shoter

Neustale sleduje hlavnıho hrdinu. Kdyz je hrdina v dosahu tak po nemvystrelı rychlou ranu a chvıli nabıjı, pote strılı znovu. Jako u jedineho pro-tivnıka se o nej nemuze Tiny zranit(viz Obrazek B.9).

43

Page 51: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Uzivatelska dokumentace Bossove

Reaper

Obrazek B.10: Reaper

Neustale se tocıcı tyc s bodaky. Hrac tedy musı dobre vycasovat kdy tutoprekazku preskocit. Ve hre se vetsinou vyskytujı az tri za sebou pro obtıznejsızdolavanı(viz Obrazek B.10).

B.6 Bossove

Kazda desata uroven ve hre je urcena pro prekonanı bosse. V kazde mapejsou objekty pomocı niz lze bosse poranit anebo i znicit.

Prvnı Boss

Obrazek B.11: Prvnı Boss

Ohromny boss usıdleny uprostred mapy, ktery neustale okolo sebe strılıstrely. Hrac zde ma za ukol vyskakat jak na prave tak i na leve strane mapynahoru. Nahore se hrac dostane na plosinu kde je take chranen proti strelam.Na konci teto plosiny je bodak, ktery hrac musı shodit na bosse (tım ze nanej skocı) a tım bosse zranit (viz Obrazek B.11).

Po zranenı boss ztratı pulku sveho tela (kde byl trefen) a zaroven nadanou stranu jiz nemuze strılet a uzivatel se muze v klidu dostat dolu.

Po zranenı na obou stranach boss umıra a hrac vyhrava hru.

44

Page 52: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

Uzivatelska dokumentace Bossove

Druhy Boss

Mapa urovne se sklada z nekolika pater. Hrac spolu s Bossem zacına navrchnım patre. Boss (viz Obrazek B.12) je dvakrat vetsı nez hracova postava.Boss neustale skace ze strany na stranu. Pri dopadu znicı pod sebou castpodlahy patra. Ukolem hrace je neustale se vyhybanı a snazenı se nespadnoutdo proprasti pod poslednı podlahou drıve, nez Boss. Kdyz spadne Boss dopropasti drıve nez hrac, tak hrac vyhrava danou uroven.

Obrazek B.12: Druhy Boss

Tento Boss je finalnı casti me hry. Po dokoncenı teto urovne je hra dohranaa hraci se objevı obrazovka s gratulacı a podekovanım.

45

Page 53: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

C ScreenShoty

- Uroven 7.

46

Page 54: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

ScreenShoty

- Uroven 12.

47

Page 55: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

ScreenShoty

- Prvnı Boss.

48

Page 56: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

D UML diagram nejvyznamnejsı trıd

49

Page 57: Bakal a rsk a pr ace Mobiln hra typu rage game na …...Za pado ceska univerzita v Plzni Fakulta aplikovany ch v ed Katedra informatiky a vy po cetn techniky Bakal a rsk a pr ace Mobiln

E Struktura prilozeneho CD

1. doc: - obsahuje dokument bakalarske prace ve formatu PDF.

2. projekt: - Projekt aplikace v Eclipse (zdrojove kody, textury, apod.).

3. apk: - ma v sobe dva soubory Tiny.apk a TinyTest.apk, pomocı nichmuzeme nainstalovat aplikaci na mobilnı zarızenı. TinyTest.apk slouzık testovanı a po nainstalovanı dostaneme hru, ktera ma od zacatkudostupne vsechny urovne.

4. tex: - Zdrojovy kod dokumentu se seznamem literatury a obrazky.

5. Javadoc: - Javadoc dokumentace k projektu.

50


Recommended