Domov > Článek > Anatomie herního enginu

Anatomie herního enginu

Anatomie herního enginuBⅴ: Richard plešatý,Online

org/licenses/by/30Struktura kolekce revidována3/02/7a informace o atribuci pro moduly obsažené v této kolekci najdete v části Atribuce na konci

Zkompilujte a spusťte programVytvořte dávkový soubor Spusťte dávkový souborSpusťte programSummarye Co bude dál· Různé· Stáhnout zdroj cod1 2 Předmluva· Prohlížení tipových mágůOtáčení klikouJako profesor počítačové informační technologie na Austin Community College učím kurzy programování her pomocí jak C++, tak C#/XNA

Dlouho jsem se obával, že studenti vstupují do mých kurzů s očekáváním, že jednoduše otočí klikou „na herním enginu, jako je DarkGDK nebo XNA, a na druhém konci procesu se objeví skvělé hry Nešťastná anatomie herního enginuVzhledem k časovým omezením a dalším omezení, není praktické tyto studenty o takových herních motorech mnoho učit. Proto jsem se rozhodl publikovat sérii modulů o anatomii herního enginu, které moji studenti (a další zájemci mohou číst, aby se dozvěděli o těchto vnitřních fungováníPrvní ve sbírceProto , tento modul je prvním ze sbírky modulů navržených tak, aby vás naučily anatomii typického herního enginu (někdy nazývaného herní rámec)

Knihovna Slick2D se rozhodla soustředit se na bezplatnou herní knihovnu s názvem slick2D, (která je napsána v Javě) z věčných důvodů Vzhledem k následujícímu Java je jazyk, se kterým jsem nejpohodlnější, a proto pravděpodobně dokážu lépe vysvětlit anatomii herního enginu, který používá Slicked, než by tomu bylo v případě herního enginu napsaného v C++, C#, Pythonu nebo nějakém jiném programovacím jazyce Java se v posledních letech ukázala jako komerčně úspěšný herní programovací jazyk Například cituji komerční hru s názvem Minecraft , napsaný v Javě, jehož se zřejmě prodaly miliony kopií Znalost jazyka Java je také velmi přínosná pro ty, kteří by mohli chtít vyvíjet aplikace pro AndroidSlick2D je zdarma a zdrojový kód pro Slick2D je snadno dostupný.

Celková struktura základního herního enginu SlickeD je velmi podobná Dark gDK a XNA a pravděpodobně je podobná jiným herním enginům, protože weJava je nezávislá na platformě Lze použít i v jiných prostředích, i když se moduly v této kolekci soustředí na knihovnu her Java s názvem Koncepce Slick2Dhe a znalosti, které získáte, jsou použitelné pro další herní motory napsané v různých programovacích jazycích Účel Účelem tohoto modulu je začít, včetně toho, jak si stáhnout a stáhnout Slick2D a jak zkompilovat a spustit svůj první Slick2D program Budoucnost moduly začněte hloubat a vysvětlovat vnitřní fungování základního herního enginu Slick2DCo byste měli vědětTato řada modulů není určena pro začínající programátory Minimálně byste měli začít programovat koncepty, smyčky, smyčky while, volání metod nebo funkcí, předávání parametrů atd. V ideálním případě, budete mít určité znalosti objektově orientovaného programování v moderním programovacím jazyce, jako je Java, C#, C++, případně python nebo JavaScripttrees dávkové nebo skriptové soubory atd. Konečně byste také měli být schopni pohodlně stahovat a instalovat software do počítače a

operační systém dle vašeho výběruCo se naučíteV tomto se dozvíte, jak stáhnout a nainstalovat slicked na počítač se systémem Windows xP vista nebo Windows 7 a jak zkompilovat a spustit velmi jednoduchý slicked program (Pokud používáte jiný operační systém, budete muset přeložte tyto informace do svého systému dle výběru Nicméně, protože Java je nezávislá na platformě, podrobnosti kódu, o kterých se bude diskutovat, se budou vztahovat na všechny nebo většinu platforem. Prohlížení tipu doporučujeme, abyste otevřeli další kopii tohoto modulu v samostatném okně prohlížeče a použili následující odkazy pro snadné vyhledání a prohlédněte si čísla a výpisy, zatímco čtete o themmageImage 1

Výstup z Slicked během spouštění programuImage 2 výchozí hra Slick2D windonListingsListing 1 Slick2D program s názvem Slicko100a javaListing 2 Soubor s názvem CompileAndrun bat13 PreviewVětšina výukových programů slick2D, které najdete na internetu, začíná tím, že si stáhnete a nainstalujete high- IDE úrovně, jako je Eclipse nebo NetBeans To neudělám Zatímco IDE na vysoké úrovni jsou skvělá pro zlepšení produktivity pro zkušené programátory, Iconsider je považuje za přehnaná pro studenty, kteří se teprve učí programovat Nejen, že jsou přehnaná, ale také skrývají mnoho detailů, které začínající programátoři proto vám ukážu, jak nainstalovat Slick2D tak, abyste mohli snadno kompilovat a spouštět programy Slicked z příkazového řádku bez potřeby vysokého IDE.

Potřebujeme textový editor (nejlépe barevně kódovaný pro syntaxi Java), bezplatnou distribuci Slick2d a bezplatnou vývojovou sadu Java od společnosti Oracle1 4 Stáhněte si požadovaný softwareTextové editorySlicked distribuceJava Development KitTextové editoryNa internetu je k dispozici řada bezplatných textových editorů některé s a některé bez barevného kódování javasyntaxe (Ve špetce bude stačit i Windows Notepad

)Zde jsou odkazy na několik z GRASP· DrAwaArachnophilia Distribuce slicked bude tento materiál používat v některých kurzech programování Java OoP, které učím. Očekávám, že v knihovně slick2D budou v průběhu času provedeny změny a vylepšení. Může to však být velmi matoucí když různí studenti ve stejném kurzu programování používají různé verze softwaru, zejména pokud jsou v softwaru provedeny změny, které nejsou zpětné. Proto kliknutím sem zpřístupním kopii slicked distribuce, aby si všichni moji studenti mohli stáhnout a používat stejné verze v mých kurzech Pokud nejste jedním z mých studentů, můžete raději přejít na hlavní stránku slickeD a vybrat načíst nejnovější verzi distribuce a uložit tento soubor, abyste se o tom dozvěděli později

Pomocí jakéhokoli programu, který najdete, otevřete soubor zip (použijte program s názvem winZip), extrahujte a uložte následující soubory z distribučního souboru slick2d, který jste si stáhli earlyck jnatives-win 32 iarV distribučním souboru slicked je mnoho dalších souborů , ale zatím je nepotřebujeme Pokud je budeme potřebovat v budoucím modulu, řeknu vám Tyto tři soubory jsou potřebné ke splnění požadavků na cestu ke třídě a ke knihovně Java, které popíšu pozdějiPrvní dva soubory jar Zkopírujte první dva soubory jar z výše uvedeného seznamu do složky s názvem jarss rese musíte provést následující příkaz, abyste nastavili cestu ke třídě, kdykoli kompilujete nebo spouštíte program Slick2D cp ijars/slick

jar; /jars/wjgljarTřetí soubor jar by měl najít podobný soubor v distribuci Slick2D, který platí pro váš systémový systém, yoTřetí soubor ve výše uvedeném seznamu se vztahuje pouze na okna Pokud používáte diffExtract obsah souboru jarpomocí jakéhokoli programu, který najdete Chcete-li otevřít soubor jar (používám program s názvem winzip), extrahujte následující soubory ze souboru s názvem natives-win32jarjinput-dx8dIljinput-rawdI·lwjgl dllOpenal32 dllZkopírujte tyto čtyři soubory do složky s názvem lwjglbinJak uvidíte později, výsledkem je potřeba pro provedení následujícího příkazu za účelem nastavení cesty javalibrary sys

tem property

Djava library path=lwjgnbin(Tyto soubory mohou být také uloženy ve složce, ze které se program spouští, což eliminuje požadavek na nastavení cesty ke knihovně Java, pokud dáváte přednost tomuto přístupu16 Vytvořte, zkompilujte a spusťte svůj nejprve Slick2DprogramVytvořte soubor zdrojového kóduZkompilujte a spusťte programo Vytvořte dávkový souboro Spusťte dávkový souborVytvořte soubor zdrojového kóduPoužijte textový editor k vytvoření textového souboru s názvem slick0100a java a uložte jej do složky s názvemSlicko100a(Dejte pozor, aby soubor má správnou příponu, zejména pokud ji vytvoříte pomocí poznámkového bloku Windows Přípona txt nebude fungovat) Opatrně zkopírujte kód z výpisu lindo textového souboru Toto je soubor, který se pokusíte zkompilovat a spustit, abyste potvrdili správnou funkci vašeho systému/*Slick0100a javaCRG BaldwinJednoduchý program, který ukazuje metodu definitivně požadovanou úhledným rámcemTestováno pomocí JDK 1

7 pod WinXPmport org newdawn slick AppGame Containermport org newdawn slick BasicGamenewdawn slick GameContainermport org newdawn slick Graphicsmport orgck SIickExceptio

Anatomie herního enginuObsahKapitola l slicko100: Začínáme se slickeD hrou libralo 11 Obsah 1 2, PředmluvaZobrazovací tipListio13 NáhledStáhněte si požadovaný softwareText editoThe slickeD distribuce The Java Development Kito 16 Vytvořte, zkompilujte a spusťte svůj první SlickeD programVytvořte soubor zdrojového kóduZkompilujte a spusťte programVytvořte dávkový souborProveďte dávkový souboro lZ Spusťte programSummaryo19 Co je dálo111 Stáhnout zdrojový kód· Kapitola 2, SlickerI0overvIewo

Obsah 2 2 PředmluvaProhlížení tipListingso 23 Řádek na začátku 2 4 Náhled25, Co je herní engine?Softwarový rámec7 Diskuse a ukázkový kódProgram poskytovatele služeb■ Dva primární objektyChování objektu třídy App Game Container

Chování objektu, který implementuje rozhraní s hrou Slick011oaHerní rozhraní s programem 29 Souhrno 210 Co bude dál?o 211, RůznéKapitola 3 slicko120: Spuštění programu 3 1, Obsaho2 Předmluva■ levý tipListing primární kódDiskuse Dva Chování objektu třídy App Game Containera Chování objektu, který implementuje herní rozhraní Konstruktoři třídy App Game Container Metoda nastavení třídy App Game ContainerMetoda get Delta třídy Game ContainerMetoda gameLoop třídy Appgame Containero 36 Spusťte program 3

7 Summaryo 3 8 Co bude dál?3 10 Kompletní výpis programuKapitola 4 slicko130: The game loopo 41 Obsaho PředmluvaZobrazení tipImagesListingso 43 PreviewVlastnost s názvem runningThe gameLoop methodder methoda Volání metody aktualizacea Volání metody rendera Celková struktura hry programDiskuse a ukázkový kód

Program s názvem slicko130■ Výstup na obrazovkuZačátek slicko130aHlavní metodaPřepsaná metoda initPřepsaná metoda aktualizacen Přepisovaná metoda vykreslování■ Konec diskuzeSpusťte program0 47 Shrnutío 8 Co bude dál?o 4 10 Kompletní výpis programuKapitola 5 slicko140: První pohled na bitmapová grafikao 51 Obsahso 52 PředmluvaProhlížení tiListings53 Náhled5 4

Obecné informace o pozadí55 Diskuse a ukázkový kódZačátek třídy s názvem Slick0140aHlavní metodaPřepsaná metoda initPrázdná metoda aktualizace Přepisovaná metoda vykreslení56 Spusťte programO 5Suro 58 Co dál?o Různé 510 Kompletní výpis programuKapitola 6 Slicko150: První pohled , kolize de■ lewing tipo 63 Preview6 4 Obecné informace o pozadí65 Diskuse a ukázkový kód Program s relativně konstantní snímkovou frekvencí- Slick0150aVýstup na obrazovku pro Slicko150a

Začátek třídy s názvem Slick015(Konstruktor a hlavní metodaMetoda init■ Metoda vykreslováníA program s vysoce variabilní snímkovou frekvencí- Slicko150bVýstup na obrazovce pro Slicko150bMetoda vykreslováníMetoda aktualizace 66 Spuštění programů67 Souhrno 6 8 Co dál69 Různé 6 10 Kompletní výpisy programůKapitola 1 slicko160: Použití metod kreslení a kreslení Flash 7 1

Obsah07 2 Předmluva Tip k prohlížení■ Listingso 73 Preview74informace na pozadí 75 Diskuze a ukázkový kódProgram s názvem Slick0160aa Začátek třídy Slick0160a■ Hlavní metodaMetoda initMetoda aktualizaceMetoda vykreslenía Program s názvem Slick0160bZačátek metody s názvem Slick0160bTherenderu160bThe programy0 17 SouhrnRůzné710 Kompletní výpis programů8So81 Obsaho82 PředmluvaTip k prohlížení

o83 Previewo 84 Genero 85 Diskuse a ukázkový kód6 Spusťte programmo8 Co bude dál?o89 Různé 8 10 Kompletní výpis programuKapitola 9 Slicko180: Animace listu Sprite, část Io 91 ObsahPředmluvaTip pro prohlížení Třída listu■ Listingso 3 Previewo 94 Generkground Information5The sprite informace Diskuse a ukázkový kód Třída s názvem slicko180Metoda initMetoda aktualizaceMetoda vykreslování 26

Spusťte programaSummaryo 8 Co bude dál?99 Různé 9 10 Kompletní výpis programuKapitola 10 Slick0190: Animace listu Sprite, část 2o 101 Obsahso 10 2 Předmluva Tip pro prohlížení03 Náhled10 4 Obecná baThe SpritesheetThe a Třída animace s názvem Diskuse105 metoda aktualizace

Metoda renderu 106 Spusťte shrnutí programu0108, Co bude dál?o109 Různé 1010 Kompletní výpis programuKapitola ll slick0200: Vývoj třídy spriteo1 Obsah 1 2, Předmluva■ Zobrazení tipuListingo 115Diskuse a ukázkový kód pojmenované Třída s názvem s00 metodaMetoda aktualizaceMetoda vykreslování 116 Spusťte program IL7 Summaryoil

8 Co bude dál?o 119, Miscellaneous1110CCkapitola 12 slick0210: Kolize bez zvukuo121Tontentso2 PředmluvaZobrazení tipLio 12,3 Náhledo 124 Obecné informace na pozadío 12,5 Aktualizace diskuse a ukázkový kódTřída s názvem SpritedMetoda třídy The SpritedolliThe in the Sprited render method12 6 Spusťte programo12 8 Co bude dál?

o12 9 Různé 1210 Kompletní výpisy programůKapitola 13 Slick0220: Simulace pandemie 131, Obsaho 2 Předmluva Tip k prohlížení■ Listings0133, Previewo 13 4

Obecné informace o pozadí 135 Diskuse a ukázkový kód Třída s názvem spriteol Třída namk0220Metoda aktualizaceMetoda vykreslování 136 Spuštění programu013 8 Závěro9 Různé 13 10 Seznam kompletního programu

Kapitola 1 Slick0100: Začínáme s knihovnou slick2DgameJe licencována pod licencí Creative Commons Attribution Licensehttp://creativecommons

org/licenses/b2013/02/0708:38:05-0600SummaryZjistěte, jak nainstalovat Slick2D tak, abyste mohli snadno kompilovat a spouštět programy Slick2D z příkazového řádku bez potřeby vysoké úrovně obsahu IDE11· PředmluvaTip k prohlíženíObrázkyListingse NáhledStáhněte si požadovaný software· Textové editoryÚhledná 2D distribuceAva Vývoj KInstalujte požadovaný softwareVytvořte, zkompilujte a spusťte svůj první program Slick2D Vytvořte soubor zdrojového kódu