Mobilní hra Block Runner ročníkový projekt David Novák, 1.E květen 2014



Podobné dokumenty
Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek Šibenice ročníkový projekt Tadeáš Váša, 1E květen 2014

Gymnázium, Praha 6, Arabská 14. předmět Programování, vyučující Tomáš Obdržálek. Počítačová hra Fotbalový Manažer. ročníkový projekt.

V Dolních Břežanech dne 10. května 2014

Matematika. Gymnázium, Praha 6, Arabská 16. předmět Programování, vyučující Tomáš Obdržálek. dokumentace ročníkového projektu.

Gymnázium, Praha 6, Arabská 16. předmět Programování, vyučující Tomáš Obdržálek Lodě Dokumentace ročníkového projektu Martin Karlík, 1E 17.5.

Piškvorky. Gymnázium, Praha 6, Arabská 16. Kristofer Filip, 1.E. Květen Stránka 1. předmět programování, vyučující Tomáš Obdržálek

Vědomostní test. Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek

Obsah Anotace :... 1 Anotation 2

Gymnázium, Praha 6, Arabská 14. předmět Programování, vyučující Tomáš Obdržálek. Program pro kontrolu správného vývoje dítěte.

Úvodem... 9 Kapitola 1 Karetních

PROJEKT MINY - DOKUMENTACE

Návod k ovládání aplikace

MOBILNÍ MULTIPLAYEROVÁ HRA THE HUNT. Y39PDA, školní rok 2010/2011 Ondřej Šíma

[BAL-MLP] Multiplayer

Elektronické učebnice popis systému, základních funkcí a jejich cena

Instalace souborů VHOPE a souborů knihovny VHOPE

Satori. Uživatelský manuál

Přidání Edookitu na plochu (v 1.0)

Aplikace GoGEN Smart Center

NÁVOD K POUŽITÍ. IP kamerový systém.

Gymnázium Arabská. Hra Pexeso. ročníkový projekt předmět programování vyučující Tomáš Obdržálek autor Ondřej Novák školní rok 2013/2014

CorelDRAW Graphics Suite X5

NÁVOD KE SLUŽBĚ IPTV

Gymnázium, Praha 6, Arabská 14. Loydova patnáctka. Dokumentace ročníkového projektu. Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1.

NÁVOD KE SLUŽBĚ IPTV

Xiaomi Smart home Gateway. uživatelská příručka

Instalační manuál k aplikaci LARA Dio pro Android

Mobilní aplikace pro WinSignals Online

Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě

Postřehová hra. Zadání projektu. 1 Moje cíle

Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek. Napking 87

Instalace a od-instalace aplikace Google / Android

Návod ke službě IPTV

Další nutný soubor je laydiv.js, ve kterém jsou uloženy funkce pro zobrazování virů na ploše a funkce pro odkaz na Teachers Guide.

Uživatelská příručka T UC-One pro windows

Tutoriál. DynaMed ~ Aplikace DynaMed na zařízeních android.

Mobilní aplikace pro WinSignals 3.0 Online

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

Manuál pro mobilní aplikaci Patron-Pro. verze pro operační systém Symbian

Ovládání TV platformy a funkce Chytrá TV. RETE tv

Pro správné zobrazení mapové aplikace je potřeba mít nainstalovaný zásuvný modul Flash Adobe Player.

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

HERNÍ ENGINE PRO TVORBU DIDAKTICKÝCH HER VE FLASHI

Předpoklady správného fungování formulářů

Návod ke službě IPTV

BO:S:S Boccia Score System

Uživatelský manuál - základ PiPO U6

Zadání soutěžních úloh

Instalace pluginů pro formuláře na eportálu ČSSZ

gdmss Lite Android DVR Mobile Client Návod k obsluze aplikace

Testování operačního systému Windows Phone 8

Instalace SW VIS z internetu - instalace RunTime VFP9

NÁVOD KE SLUŽBĚ IPTV M.NET TV

Point of View TAB-P731N- Android 4.0 Tablet PC. Čeština. Obsah

Konfigurace PPPoE připojení v OS Microsoft Windows 98, ME

Karty Prší. Anotace: Abstract: Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek

CUZAK. Instalační příručka. Verze

Návod na provedení upgrade IS Harmonik

SafeLine PŘÍRUČKA UŽIVATELE. Vážený zákazníku,

NAS 232 Aplikace AiFoto pro mobilní zařízení. Správa fotografií na vašem NAS z mobilního zařízení

Kudyšel comfort. Manuál k programu

Příručka aplikace KNetWalk. Fela Winkelmolen Eugene Trounev

Zadání soutěžních úloh

HERNÍ PLÁN MAD MECHANIC APOLLO GAMES APKSOFT s.r.o.

X39NUR report D3 NA PŘEHRÁVAČ MÉDIÍ LOW-FIDELITY prototyp

Hodnocení soutěžních úloh

Zadání soutěžních úloh

Mobilní aplikace pro WinSignals Online

Návod ke službě IPTV

Gymnázium, Praha 6, Arabská 16 Předmět Programování, vyučující Tomáš Obdržálek Hledání Min Ročníkový projekt Filip Mašát, 1.

Vítejte ve hře Planet Territory

TELEFONNí LiNKA PREMiUM PRŮVODCE APLIKACí T UC-ONE - PC

POVLTAVSKÉ SETKÁNÍ BALTÍKŮ - 9.ročník a

PŘÍRUČKA UŽIVATELE. Vážený zákazníku,

Obsah. Proč právě Flash? 17 Systémové požadavky 17. Jak používat tuto knihu 18 Doprovodný CD-ROM 19

BEYOND: Two Souls BEYOND Touch Aplikace

Návod k využívání interaktivních funkcí

CommonTestsAndGames03

Návod pro používání Automaticky Čtených Učebních Pomůcek vytvořených v rámci projektu ARET

Mobilní aplikace. Uživatelský manuál

IBRIDGE 1.0 UŽIVATELSKÝ MANUÁL

Popis ovládání aplikace - Mapový klient KÚPK

plussystem Příručka k instalaci systému

SDC aplikace. Zrychlený návod na zprovoznění

Cesta po Evropské unii Cesta za poznáním. Jak hrát tuto hru?

Steam. 1. Klienta STEAM stáhnete zde: kliknutím na tlačítko (Nainstalovat službu Steam).

Odpadové hospodářství v ORP Ústí nad Labem

Univerzální rezervační systém. Uživatelská příručka

Mini PC ITV26. Návod k použití

MATURITNÍ PRÁCE dokumentace

Návod pro práci s aplikací

Aplikace gdmss, idmss V

Kapitola 1: Úvod. 1.1 Obsah balení. 1.2 Požadavky na systém. Česky

VÁŠ PARTNER NA CESTÁCH

Programátorská dokumentace

Obsah. Moje menu 4. Ovladač 6. Ovládání sledovaného pořadu 8. Zpětné zhlédnutí 10. Nahrávání 12. Můj seznam kanálů 13.

Základy práce na PC. Ing. Jan Roubíček

CATE VLT HERNÍ PLÁN - NÁVOD PRO HRU

BARVY. Příkaz barva. Barvy TrueColor. Se objeví dialogové okno

Transkript:

Gymnázium, Praha 6, Arabská 16 Předmět programování, vyučující Tomáš Obdržálek Mobilní hra Block Runner ročníkový projekt David Novák, 1.E květen 2014 Anotace Cílem ročníkové práce bylo vytvořit hru, kde na hráče budou najíždět překážky, kterým se on bude muset vyhýbat nebo je sbírat. Hra byla vyvíjena pro operační systém mobilních telefonů Android KitKat (4.4) a je určena pro jednoho hráče. The purpose of this project was to create a game where the player must dodge obstacles that are moving towards him. This game was developed for a mobile operating system android KitKiat (4.4) and is primarly designed for singleplayer. Zadání projektu Tři typy překážek, které budou interkatovat s hráčem Překážka A: hráč se jí bude muset vyhýbat. Pokud do hráče překážka najede, hra skončí. Překážka B: hráč ji bude moct sbírat. Pokud ji hráč sebere, dostane skóre. Překážka C: hráč ji bude moct zničit (tzn. zmáčknout na obrazovku, než do ní najede). Pokud před kolizí nezmáčkne na obrazovku, tak hra skončí. Generování překážek bude probíhat pomocí třídy Random Score hráče se bude počítat podle času, stráveného v jedné hře a podle překážek B, které sebere. Score se bude ukládat v telefonu. Jako textury budou použity barevné čtverce Návod na instalaci a spuštění Pro spuštění hry je potřeba zařízení s operačním systémem Android verze 2.2 a vyšší (plná funkčnost je ovšem zaručena jen pro verzi 4.4). Dále je potřeba mít na zařízení s Androidem nainstalováno jakéhokoli správce souborů (například Toal Commander, který lze zdarma stáhnout v google play store). Pro nainstalování aplikace postupujte podle následujících kroků: 1. Přesuňte instalační soubor apk do zařízení. Mobilní hra BlockRunner dokumentace 1

2. Ve správci souborů otevřte adresář s instalačním souborem, onen soubor otevřte poklepáním. 3. Pokračujte dle pokynů systému android pro nainstalování aplikace. Mobilní hra BlockRunner dokumentace 2

4. Poúspěšnémnainstalováníspusťteaplikacipoklepánímnajejíikonuvpřehleduaplikací. Programovánínamobilníplatformu Při programování na mobilní platformu se musí vzít v úvahu rozdínost každého zařízení. Každý programátor chce udělat aplikaci pro co největší okruh zařízení. Největší rozdíl, který se v tomto projektu řeší, je rozdílná velikost obrazovky. Velikost všech grafických objektů se proto počítá relativně k výšce a šířce displeje. Takto se dosáhne co nejpodobnějšího vizuálního zobrazení na všechzařízeních. Vykreslováníherníscény Pro vykreslování herní scény byla zvolena třída SurfaceView, která umožňuje vykreslovat na obrazovku pomocí plátna (Canvas) v samostatnémvlákně.naplátnojsoupostupněvykreslovány pixely,zekterýchjepotévytvořenabitmapa,kterájezobrazovánanaobrazovcezařízení.vprojektu byla použita metoda třídy Canvas drawrect()která vykreslí na plátno obdélník. Obdélník jev metodědefinovánpětiparametryatopočetpixelůzlevaobdélníku,zprava,zhoraazdola.potéještě barva. Následující metoda vykreslí zelený obdélník přes celou obrazovku: canvas.drawrect(0,0,0,0,color.green). Toto vykreslování je poněkud nepraktické pro vykreslování hráčeapřekážek,protobylavytvořena třída GObject, která umožnuje vykresování obdélníků definovaných jako souřadnice x a y(které MobilníhraBlockRunner dokumentace 3

určují místo středu obdelníku), výšky a šířky, také lze určit vrstvu. Třída umožňuje k objektu třídy GObjectpřichytávat děti stejné třídy, objekt se poté stává jejich rodičem. Každý objekt může mít jen jednoho rodiče a neomezený počet dětí. Souřadnice 0,0 dětí je v levém dolním rohu rodiče. Děti se pohybují společně s rodiči. Na GObject lze volat doteky, které se následně zavolají na všechny děti. Děti jsou uloženy v kolekci, a jsou řazeny podle vrstvy tak, aby byly nejdříve vykreslovány ty v nižší vrstvě a poté ty ve vyšší, což bude mít za následek překrytí dětí v nižší vrstvě dětmi ve vyšší. Samotná třída GObjectnic nevykresluje a představuje jen plochu na obrazovce. K vykreslování čtverců je použita třída Rectangle, která rozšiřuje třídu GObject. Ve vykreslování hraje důležitou roli také třída Scene, která rozšiřuje třídu GObject. Třída Scene slouží jako rodič všech objektů, které se mají vykreslovat na herní scénu, umožnuje nastavit barvu pozadí (background color) a volají se na ní všechni doteky. Proces vykreslování Ve vlákně, které vykresluje na obrazovku, je smyčka, ve které se nejdříve získá od SurfaceViewplátno, na které se vykresluje. Následě se na objekt třídy Scenezavolá metoda draw()které se ono plátno předá. Úkol metody draw()je, zavolat metody draw()na všech dětech a zavolat metodu ondraw()na aktuálním objektu, ve které samotné vykreslování probíhá. Když se metoda draw()vrátí, plátno se předá tříde SurfaceView, která se postará o jeho zobrazení na obrazovku. Následně se na objektu třídy scene zavolá metoda actualize() (o té více níže). Není potřeba procházet smyčkou moc často, proto je jsou její průchody omezeny na 60 průchodů za vteřinu (z toho vyplívá, že je zobrazeno 60 snímků za vteřinu). Vlákno vždy na konci smyčky počká tak dlouho, aby celý jeho průchod trval šedesátinu vteřiny. Aktualizování herní scény Výpočty pro aktualizování jednoho snímku svojí náročností nevyžadují samostatné vlákno, proto se provádějí ve stejném vlákně jako vykreslování. Hned po předání plátna, se na objektu třídy Scene zavolá metoda actualize(), která zavolá tutéž metodu na všech dětech. K aktualizování objektů třídy GObject, byla vytvořena abstraktní třída UpdateHandler, která obsahuje metodu callupdate() a abstraktní metodu onupdate(). Metoda callupdate()vypočítá čas od posledního zavolání a předá ho metodě onupdate(), která se používá k samotnému aktualzování. Takto lze aktualizovat herní scénu v závislosti na čase. Objekt třídy UpdateHandler se přichycuje k objektu třídy GObject, jehož metoda actualize() zavolá metodu callupdate() všech přichycených objektů třídy UpdateHandler. Hráč Mobilní hra BlockRunner dokumentace 4

Hráče ztvárňuje třída Player, která rozšiřuje třídu Rectangle. Hráč má zelenou barvu a může se svisle pohybovat mezi třemi polohami. Hráč má meč, kterým může máchnout. Hráče ovládá třída Controller. Meč Hráčův meč ztvárňuje třída Sword, která rozšiřuje třídu rectangle. Je to bílý obdelník, který se po určitý časový úsek zobrazí před hráčem a dokáže zničit jeden typ nepřítele. Ovládání hráče Hráče ovládá třída Controller, která rozšiřuje třídu GObject. Třída Controller na základě doteků ovládá hráče. Překážky (nepřátelé) Překážku ztvárňuje třída Enemy, která rozšiřuje třídu Rectangle. Nepřátele vytváří třída EnemiesFactory, která zajišťuje vytvoření nepřítele. Třída Enemy má dvě abstraktní metody collideswithplayer() a collideswithsword(), Které jsou volány při kolizi s hráčem nebo s mečem. Ve hře se vyskytují tři typy nepřátel: červení RedEnemy, žlutí YellowEnemya modří BlueEnemy. Červení nepřátelé reagují jen na kolizi s hráčem. Pokud k ní dojde, ukončí se hra a vyskočí GameOver dialog. Žlutí nepřátelé při kolizi s hráčem přidají hráči score a sami zmizí. Modří reagují na kolizi s hráčem, ale i na kolizi s mečem. Pokud dojde ke kolizi s hráčem, hra se ukončí stejně jako při kolizi hráče s červeným nepřítelem. Pokud dojde ke kolizi s mečem, modrý nepřítel zmizí a přidá hráči score. Pohyb nepřátel Nepřátelé se posouvají naproti hráči. Pohybu nepřátel bylo dosáhnuto za pomocí třídy EnemiesMovingHandler, která rozšiřuje třídu UpdateHandler. Třída EnemiesMovingHandler hýbe všemi objekty třídy Enemy v množině nepřátel (HashSet). Takto jen stačí z objektu třídy HashSet odstranit nepřítele a třída EnemiesMovingHandler s ním nebude hýbat. Rychlost pohybování nepřátel se v průběhu hry zvětšuje. Kontrola kolizí Kontrola kolizí není realizována přes třídu UpdateHandler, protože ji není potřeba volat tak často. Také by mohla zpomalovat proces aktualizování, protože kontrola kolizí je výpočetně náročná. Kontrolu kolizí zajištuje třída CollisionChecker, která obsahuje vlákno, které ve smyčce kontroluje všechny nepřátele na obrazovce, zda nekolidují s hráčem nebo s jeho mečem. Pokud se zijstí kolize, zavolá se na příslušném objektu třídy Enemypříslušná metoda. Mobilní hra BlockRunner dokumentace 5

Generování nepřátel Generování nepřátel probíhá ve tříde EnemiesManager. Třída EnemiesManagermá za úkol generovat a přidávat nepřátele do hry. Třída EnemiesManager obsahuje vlákno, ve kterém probíhá generování a přidávání nepřátel. Modří a červení nepřátelé se přidávají náhodně na jednu ze tří pozic vždy, když předchozí nepřítel urazí jednu čtvrtinu herní plochy. Žlutý nepřítel se pod 50% pravděpodobností může přidat vždy, když předchozí červený nebo modrý nepřítel urazí jednu osminu obrazovky. Hraní a ovádání hry Hra se ovládá doteky na obrazovku, obrazovka je rozdělena do tří částí (viz. obrázek). Pro posouvání hráče slouží pravá strana obrazovky. Pro švihnutí mečem se stačí dotkout levé strany. Obrazovka je rozdělena v polovině. Hráč se nachází na pravé straně herní scény, proti němu najíždějí nepřátelé zleva. Modrému nepříteli se hráč musí vyhýbat. Žlutý objekt hráč musí sbírat. Modrému nepříteli hráč může a) uhnout b) najet do něj s vytaženým mečem. Pokud hráč nabourá do červeného nebo modrého nepřítele, hra skončí a zaznamená se hráčovo score. Závěr V rámci tohoto projektu byla vyvinuta hra, která je plně funkčí na mobilní platformě. Hra ovšem bude dále vyvíjena. Nasledující cíle jsou: přidání textur, hra více hráčů a vykreslování pomocí Mobilní hra BlockRunner dokumentace 6

OpenGL. V rámci tohoto projektu byl také vyvinut systém vykreslování na plátno, kde stačí specifikovat souřadnice a rozměry a který není součástí základních knihoven Androidu. + Prohlášení Prohlašuji, že jsem jediným autorem tohoto projektu, všechny citace jsou řádně označené a všechna použitá literatura a další zdroje jsou v práci uvedené. Tímto dle zákona 121/2000 Sb. (tzv. Autorský zákon) ve znění pozdějších předpisů uděluji bezúplatně škole Gymnázium, Praha 6, Arabská 14 oprávnění k výkonu práva na rozmnožování díla ( 13) a práva na sdělování díla veřejnosti ( 18) na dobu časově neomezenou a bez omezení územního rozsahu. Podpis Mobilní hra BlockRunner dokumentace 7