Gymnázium, Praha 6, Arabská 14 Dokumentace ročníkového projektu Předmět: Programování Vyučující: Tomáš Obdržálek Matěj Kovařík, 1E 18. května 2014
1. Úvod 1.2 Anotace Česky Cílem tohoto projektu bylo vytvořit hru zvanou. Tato hra vychází z populární hry Space Invaders Hra byla vytvořen v programovacím jazyce Java ve vývojovém prostředí Netbeans. Úkolem hráče je zabránit plošinou mimozemským lodím přistát na zem. Po dotyku lodě se zemí hra skončí. Anglicky The goal of the project was to crate a game called. This game come from popular game Space Invaders. The game was created in programming language Java in development environment Netbeans. The task of a player is prevent alien spaceships landing on the ground. After spaceship touching with ground the game will end. 1.3 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. 1.4 Zadání Projektu 1.4.1 Povinné funkce Vytvoření hry v programovacím jazyce Java pomocí knihovny Swing Výstup hry z okna. Hra měří skóre hráče nahrané v poslední hře. Hra se okamžitě ukončí po stisknutí klávesy Escape (Esc). Pokaždé před startem hry si hráč muže zvolit ze tří obtížností. - 1 -
1.4.2 Bonusové funkce Program ukládá nejvyšší dosažené skóre. 2. Hra 2.1 Původ a princip hry Tato hra je podobná Space Invaders, vyvinutá Japoncem Tomohiro Nishikadem v roce 1978. Úkolem je zde zabránit mimozemšťanům dosáhnutí dna obrazovky. Avšak zde se po lodích střílí a lodě jsou pravidelně seřazeny do zástupů. Space Invaders obtížnosti nemá, ale po každé střelené lodi se jejich pohyb zrychluje. Takže hra je stále obtížnější a obtížnější. Ve hře Aliens Atack se nepřátelé chytají. Také lodě se generují náhodně. Celkové provedení hry je podstatně jednodušší. Plošina se ovládá pomocí kláves s a d. Hra se múže ukončit klávesou Escape 1Výstupní okno programu 2.2 Spuštění Hra se otevře spuštením souboru JAR s názvem Aliens. Nachází se ve složce také s názvem Aliens. Další soubory ve složce jsou nutné ke spravnému fungování aplikace a musejí zůstat ve složce s hrou. Soubory se zdrojovými kódy se nacházejí v druhé složce Aliens_sourceFiles. Dále ve složce src. Hlavní spouštěcí třída se jmenuje - 2 -
AnimatedPanel. Také je nutné mít v počítači nainstalované běhové prostředí Java. (Java SE Runtime Environment 7) Žádná instalace není potřeba. 2.3 Postup V prvé řadě jsem si stáhnul z webu pixabay.com obrázek vesmírné lodě. Obrázek je licencován jako Creative Commons. Tudíž jsem se nedopustil žádného porušení autorských práv. Poté jsem pomocí programu na vektorovou grafiku Inkscape vytvořil obrázek plošiny. Dále jsem vytvořil třídu spaceship, která zastupuje vesmírnou loď. Má parametr souřadnice y. Další třída byla catcher, která zastupuje plosinu. Catcher má parametr souřadnice x. Dalším postupem bylo nahrání těchto dvou obrázků do canvasu. Hlavní myšlenka kódu je vytváření objektů v časovači a přidávání do kolekce. V kódu jsou dva časovače Jeden má za úkol přidávání lodí do kolekce. Druhý časovač prochází kolekce a zjišťuje detekci s plošinou nebo se dnem. V prvním případě se loď odebere z kolekce, zmizí a program běží dál. V druhém se program zastaví. Dále jsou v kódu metody KeyListener, které umožňují ovládání plošiny pomocí kláves. Zásadní metodou je paintcomponent, kde se vše vykresluje. Poslední metodu je main, která se spouští jako první. Od ní se vše vyvíjí. 2.4 Struktura kódu Timer2 = Generuje lodě, přidává je do kolekce. KeyTyped = Posouvá plošinu. paintcomponent = Vykresluje lodě, plošinu a skóre. Timer = Detekuje srážky s lodí a plošinou, zapisuje do souboru points.txt. Ukončuje program. main = Spouští program, vykresluje okno, načítá soubor s nejlepším skórem a pracuje s obtížnostmi 2.5 Potíže Průběhem práce jsem narazil na několik problému, které se mi obtížně řešili. Prvním byl posun lodi, aniž bych je nějakým způsobem ovládal. To jsem vyřešil časovačem. Časovač je metoda, která se zavolá vždy po nějakém časovém úseku. Dalším problémem byla podmínka, která detekovala srážku s plošinou. U té jsem trávil nejvíce času, ale nakonec jsem zjistil, že jsem nevyřešil problém s různým rozlišením. - 3 -
3. Závěr 3.1 Zhodnocení projektu Práce na tomto projektu pro mě byla velká zkušenost. Tímto jsem vytvořil můj první větší program a jsem za to hrdý. Rozhodně bych se někdy vrátit ke psaním nějakého dalšího programu. Zvažuji o práci dalšího ročníkového projektu v druhém ročníku. 3.2 Zdroje http://en.wikipedia.org/wiki/space_invaders http://pixabay.com/cs/kosmick%c3%a9-lod%c4%9b-cosmic-retro-155165/ - 4 -