Gymnázium, Praha 6, Arabská 14
Aliens atack 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 „Aliens atack“. 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 „Aliens atack“. 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 „Aliens atack“ 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-
Aliens atack
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
-2Aliens atack
„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.
-3Aliens atack
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/
-4Aliens atack