Razvoj 2D Java Igre U Libgdx I Overlap2d Okruženju
Total Page:16
File Type:pdf, Size:1020Kb
Razvoj 2D Java igre u libGDX i Overlap2D okruženju Šajina, Robert Undergraduate thesis / Završni rad 2017 Degree Grantor / Ustanova koja je dodijelila akademski / stručni stupanj: University of Pula / Sveučilište Jurja Dobrile u Puli Permanent link / Trajna poveznica: https://urn.nsk.hr/urn:nbn:hr:137:805283 Rights / Prava: In copyright Download date / Datum preuzimanja: 2021-10-05 Repository / Repozitorij: Digital Repository Juraj Dobrila University of Pula Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije ROBERT ŠAJINA RAZVOJ 2D JAVA IGRE U LIBGDX I OVERLAP2D OKRUŽENJU Završni rad Pula, rujan, 2017. godine Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije ROBERT ŠAJINA RAZVOJ 2D JAVA IGRE U LIBGDX I OVERLAP2D OKRUŽENJU Završni rad JMBAG: 0303054675, redoviti student Studijski smjer: Sveučilišni preddiplomski studij informatika Kolegij: Napredne tehnike programiranja Znanstveno područje: Društvene znanosti Znanstveno polje: Informacijske i komunikacijske znanosti Znanstvena grana: Informacijski sustavi i informatologija Mentor: doc.dr.sc. Tihomir Orehovački Pula, rujan, 2017. godine IZJAVA O AKADEMSKOJ ČESTITOSTI Ja, dolje potpisan, Robert Šajina, kandidat za prvostupnika informatike ovime izjavljujem da je ovaj Završni rad rezultat isključivo mojega vlastitog rada, da se temelji na mojim istraživanjima te da se oslanja na objavljenu literaturu kao što to pokazuju korištene bilješke i bibliografija. Izjavljujem da niti jedan dio Završnog rada nije napisan na nedozvoljen način, odnosno da je prepisan iz kojega necitiranog rada, te da ikoji dio rada krši bilo čija autorska prava. Izjavljujem, također, da nijedan dio rada nije iskorišten za koji drugi rad pri bilo kojoj drugoj visokoškolskoj, znanstvenoj ili radnoj ustanovi. Student Robert Šajina U Puli, rujan, 2017. godine IZJAVA o korištenju autorskog djela Ja, Robert Šajina, dajem odobrenje Sveučilištu Jurja Dobrile u Puli, kao nositelju prava iskorištavanja, da moj završni rad pod nazivom „Razvoj 2D Java igre u LibGDX i Overlap2D okruženju“ koristi na način da gore navedeno autorsko djelo, kao cjeloviti tekst trajno objavi u javnoj internetskoj bazi Sveučilišne knjižnice Sveučilišta Jurja Dobrile u Puli te kopira u javnu internetsku bazu završnih radova Nacionalne i sveučilišne knjižnice (stavljanje na raspolaganje javnosti), sve u skladu s Zakonom o autorskom pravu i drugim srodnim pravima i dobrom akademskom praksom, a radi promicanja otvorenoga, slobodnoga pristupa znanstvenim informacijama. Za korištenje autorskog djela na gore navedeni način ne potražujem naknadu. U Puli, rujan, 2017. godine Potpis Robert Šajina Sažetak Ovaj rad opisuje koncept razvoja 2D Java igre koristeći LibGDX i Overlap2D razvojna okruženja. Igra se sastoji od dva prozora od kojih jedan prikazuje početni zaslon s opcijama kao što su odabir razina i kupnja dodatnih mogućnosti igrača dok drugi prikazuje trenutnu razinu na kojoj se igrač nalazi. Igra ima bočni pogled na igrača koji pomicanjem prema gore ili dolje izbjegava prepreke kako bi uspješno prošao razinu. U radu se opisuje rad s alatom Overlap2D te njegova integracija s LibGDX razvojnim okruženjem kako bi se razvila cjelokupna igra. Koncept realizacije koji igra slijedi jest korištenje alata Overlap2D za izradu prezentacijskog sloja odnosno korisničkog sučelja dok se LibGDX okruženje koristi za definiranje logike igre kao što su otkrivanje kolizija i pomicanje igrača čime se jasno odvaja prezentacijski dio od logičkog djela. Cilj igre je da bude korisnički orijentirana, kako bi korisniku pružila maksimalnu zabavu. Igra zato koristi jednostavno upravljanje igračem dodirom na ekran. Ključne riječi: Java, Overlap2D, LibGDX, 2D, kolizija, Eclipse, Box2D, Jetpack Rush, Android, igra. Abstract This bachelor thesis describes concept of developing 2D Java game using LibGDX and Overlap2D frameworks. The game consists of two screens, one of which displays a startup screen with options such as level selection and additional player features purchases while the second shows the current level at which the player is located. The game has a side view of the player, who is by moving up or down avoiding obstacles to successfully pass the level. This bachelor thesis describes the development with the Overlap2D tool and its integration with the LibGDX framework to develop the overall game. The implementation concept that the game follows is using Overlap2D tool to create a presentation layer respectively user interface, whilst using LibGDX framework to define game logic such as collision detection and player movement, thus clearly separating the presentation part of the logical part. The aim of the game is to be user-oriented, to give the user maximum fun. The game therefore uses a simple player control by touching the screen. Keywords: Java, Overlap2D, LibGDX, 2D, collision, Eclipse, Box2D, Jetpack Rush, Android, game. Sadržaj 1. Uvod ............................................................................................................................................ 1 2. Video igre ................................................................................................................................... 3 2.1 Povijest video igra ............................................................................................................. 3 2.2 Industrija video igra .......................................................................................................... 8 2.3 Glavne vrste vizualne prezentacije video igara ............................................................ 9 2.3.1 Izometrijska .............................................................................................................. 9 2.3.2 Filmska kamera ..................................................................................................... 10 2.3.3 Fiksni / okretni zaslon ........................................................................................... 10 2.3.4 Slobodno-lutajuća kamera ................................................................................... 11 2.3.5 2D pomicanje ......................................................................................................... 11 3. Indie igre vs AAA igre ............................................................................................................. 13 4. Pregled korištenih tehnologija ............................................................................................... 14 4.1 Java programski jezik ..................................................................................................... 14 4.2 Eclipse .............................................................................................................................. 16 4.3 LibGDX ............................................................................................................................. 18 4.4 Overlap2D ........................................................................................................................ 20 5. Izrada 2D igre .......................................................................................................................... 24 5.1 Uvod u igru ....................................................................................................................... 24 5.2 Kreiranje grafičkog sučelja ............................................................................................ 28 5.3 Kretanje igrača ................................................................................................................ 34 5.4 Otkrivanje kolizija ............................................................................................................ 37 5.4.1 Otkrivanje kolizija s objektima scene .................................................................. 37 5.4.2 Otkrivanje kolizija s objektima kreiranih u vrijeme izvođenja igre .................. 40 6. Zaključak .................................................................................................................................. 42 7. Literatura .................................................................................................................................. 44 8. Popis slika ................................................................................................................................ 47 1. Uvod Tema ovog završnog rada je izrada više platformske 2D igre. Zadatak je bio razviti igru s grafičkim sučeljem u programskom jeziku Java koristeći LibGDX i Overlap2D okruženja. Igra je primarno rađena za Android platformu pa se prema tome na zaslonu nalaze i gumbi koji služe za određene akcije igrača. Također dodana je i podrška za desktop računala te se može igrati s tipkovnicom. Igra veoma sliči poznatoj Android igri Jetpack Joyride izdane 2011. godine od strane Halfbrick Studios. Jetpack Joyride koristi jednostavno upravljanje likom dodirom na ekran, odnosno dodirom na bilo kojem mjestu na ekranu pomiče igrača prema gore. Ova igra izrađena je na sličan način uz dodatne mogućnosti kao što su ubrzavanje igrača i primjenjivanje štita. Štit kao i mogućnost ubrzavanja igrača se može kupiti s virtualnim novcem sakupljenim nakon uspješnog prolaska razine. Igra se sastoji od deset razina. Težina razina postepeno se povećava na svakoj sljedećoj razini. Sukladno tome korisnik je primoran kupovati mogućnost zaštite i ubrzavanja kako bi mogao uspješno proći razinu. Kada korisnik prvi puta instalira igru, ona započinje od prve razine. Sve su ostale razine zaključane te