Mendelova univerzita v Brně Provozně ekonomická fakulta
Trosečník v džungli, adventura PJJ – popis hry
Anna Dobešová, cvičení čt 13:00-14:50
Brno 2013
Obsah
2
Obsah 1
2
Popis hry
3
1.1
Téma hry a podmínky ukončení ............................................................... 3
1.2
Popis tříd ................................................................................................... 4
1.1
Implementace požadovaných prvků......................................................... 4
Diagram tříd
6
Chyba! V dokumentu není žádný text v zadaném stylu.
3
1 Popis hry 1.1
Téma hry a podmínky ukončení
Hra je navržena jako typická adventura. Herní prostředí je plošinové, to znamená, že se bude skládat z několika obrazovek s pohledem shora, po nichž se může hráčův avatár pohybovat a řešit zadané úkoly. Námětem je trosečník, který havaroval s helikoptérou v džungli. Helikoptéru musí opravit do určitého časového limitu, nebo mu dojdou potraviny a zemře. Po zapnutí hry se objeví menu, kde má možnost provést nastavení hry, připojit se k serveru, spustit novou hru, či hrát uloženou hru. Po spuštění nové hry se objeví intro s popisem ovládání. Po stisku tlačítka start začne samotná hra. Objeví se první mapa, na které jsou různě umístěné palmy, avatár a helikoptéra, kterou má za úkol opravit. Trosečník se pohybuje pomocí šipek. Do inventáře (do něhož může nahlédnout pomocí tlačítka nahoře) sbírá předměty. Pokud přistoupí k interagujícímu objektu (např. helikoptéra), spustí se textový popis, který ho navádí ke splnění úkolu. Textové popisy se mění v závisloti na stavu splnění úkolu (zda hráč vlastní určitý předmět v inventáři, apod.). Na obrazovce pobíhá opice, která má bednu s nářadím. Trosečník ji ale nechytí, dokud jí nenabídne banán. Za tím účelem musí procházet ostatní scény a plnit úkoly. Postup splnění hry: Ve druhé scéně (vlevo) vzít čtyřlístek a nalákat na něj želvu. Želvu položit přes vodu, přejít a vzít bambus. Jít na třetí obrazovku umístěnou vlevo. Přejít na čtvrtou obrazovku dole a z ní na pátou scénu doprava. Tam vzít mravence, a list. Vrátit se k hrochovi na 3. Obrazovce a odehnat ho pomocí mravence. Nabrat vodu na list. Na první obrazovce zasadit bambus ke kameni. Zalít bambus vodou z listu. Přejít přes kámen, vzít banán, nabídnout ho opici. Posléze se objeví v inventáři nářadí od opice. Opravit helikoptéru. Během hry je navíc možné klackem odehnat lidojedy a zachránit kamarádku, která poradí s úkolem, jak zalt bambus. Během hry je možné sledovat postup na grafu: červené čáry je počet splněných úkolů za uplynulé minuty, které jsou znázorněné pomocí zelených čar. Z daných čísel a počtu provedených kroků se počítá skóre. Hráč se také může přihlásit na server, podívat se na seznam přihlášených hráčů, jejich uložená skóre, případně uložit svoje skóre.
Chyba! V dokumentu není žádný text v zadaném stylu.
4
1.2 Popis tříd Vzhledem ke složitosti hry budou posány pouze základní třídy. Třída Menu (potomek třídy World) je supertřídou, z ní se spouští celá hra. V kompozici obsahuje ostatní objekty. Mimo jiné třídu SceneCreator, která slouží k vytvoření scén, nebo samotného hráče: instanci třídy Player. Inventar je řešen jako samostatný svět. Dále následují potomci abstraktní třídy Actor. Abstraktní třída Item – předmět může být buď u hráče v inventáři, nebo bude mít svou pozici na mapě. Předmět má svůj obrázek a je přiřazen k hernímu úkolu. InteractiveObject, neboli interagující objekt, je abstraktní třída, ke které když hráč přijde, vypíše se text, případně se vykoná nějaká akce. Může být pohyblivý nebo nepohyblivý. Hra také obsahuje pevné actory se speciální funkcí: Button a TimerLabel (časovač). Dále je obsažena třída GameTasks, která zajišťuje plnění herních úkolů. Ve hře jsou také pomocné třídy, které slouží k její obsluze, načítání či ukládání dat, tak aby byla oddělena prezentační vrstva od datové (ačkoli prostředí Greenfoot samo o sobě není navrženo na správné oddělení vrstev aplikace). Tedy jsou implementovány třídy jako GUISetter k nastavování grafiky, SceneCreator k nastavení scén, Loader a Saver, které zajišťují načítání a ukládání hry.
1.1
Implementace požadovaných prvků
Během semestru byly požadovány a implmetovány tyto javovské prvky: 1. Základní prvky jazyka: původní návrh hry byl totožný se současnou kostrou hry. 2. IO operace a zpracování výjimek: hra obsahuje načítání scén ze souboru ve třídě SceneCreator a ukládání a načítání hry pomocí tříd Loader a Saver, které zároveň implementují rozhraní runnable. 3. Vlákna a kontejnery: nejvyužívanější z kontejnerů je ArrayList ve třídách Inventory, Loader (list stavů), SceneCreator (listScenes, listImages), atd. (jejich použití je četnější). Vlákna: třída Saver implementuje rozhraní runnable, TimerLabel využívá eventDispatchingThread, dále třídy s JFramy využívají vlákna: ClinetFrama a SettingFrame a jejich instance jsou navíc jako vlákna spouštěny ve třídě Menu. 4. GUI: hra obsahuje SettingFrame k nastavení hry, Plotter (graf k tobrazení průběhu hry) a ClientFrame ke komunikaci se serverem a dalšími hráči. 5. Síťová komunikace: hráč se může připojit k serverové aplikace (vytvořené v IDE Netbeans), která umožňuje hromadnou komunikaci
Chyba! V dokumentu není žádný text v zadaném stylu.
5
více hráčů, rozesílání seznamu připojených hráčů, ukládání skóre a zobrazování seznamu uložených výsledků. Podrobnější popis síťové komunikace je přoloženém souboru „Popis k realizaci síťové komunikace.txt“.
Chyba! V dokumentu není žádný text v zadaném stylu.
2 Diagram tříd
Obr. 1
Zjednodušený diagram tříd – agregace a asociace nejsou kvůli složistosti znázorněny
6
Chyba! V dokumentu není žádný text v zadaném stylu.
7
Seznam obrázků Obr. 1 Zjednodušený diagram tříd – agregace a asociace nejsou kvůli složistosti znázorněny
6
Chyba! V dokumentu není žádný text v zadaném stylu.
8