Chudek_4itb_maturitn.. - Střední průmyslová škola na Proseku
Transkript
Chudek_4itb_maturitn.. - Střední průmyslová škola na Proseku
Střední průmyslová škola na Proseku 190 00 Praha 9, Novoborská 2 18-20-M/01 INFORMAČNÍ TECHNOLOGIE (ŠVP: INFORMAČNÍ TECHNOLOGIE) MATURITNÍ PROJEKT TÉMA PRÁCE Logická počítačová hra jako studie programování interaktivní 3D grafická aplikace 25. února 2015 |Maturitní práce| Chudek David Střední průmyslová škola na Proseku 18-20-M/01 informační technologie ZADÁNÍ PRAKTICKÉ MATURITNÍ PRÁCE Žák: Obor: Školní rok: Téma práce: Ved. práce: Oponent: David Chudek 18-20-M/01 Informační technologie 2014/2015 Logická počítačová hra jako studie programování interaktivní 3D grafická aplikace Jaroslav Burdys Bc. Lukáš Klíma Termín zadání: Termín odevzdání: 12.12.2014 31.3.2015 Pokyny pro vypracování: rešerše na téma: skriptovací jazyky/technologie/vývojářské platformy vhodné pro programování interaktivní 3D grafiky a aplikací, porovnání jejich výhod/nevýhod rešerše na téma: základní fáze návrhu, tvorby a vývoje počítačových her na základě této rešerše návrh a realizace jednoduché interaktivní počítačové 3D grafické aplikace: o návrh logiky hry Hra by měla být co do kompletnosti, komplexnosti i rozsahu vhodně navržena tak, aby na příslušné vývojářské platformě co nejvíce názorně demonstrovala zvolené téma o konceptuální návrh 3D grafického obsahu a 2D textur vytvoření kompletních preprodukčních podkladů pro grafickou podobu hry ve vhodně zvolených editorech bitmapové a vektorové grafiky o vytvoření 3D modelů, materiálů, animací tvorba základního 3D grafického a audio obsahu hry v rozsahu a kvalitě provedení nutných pro co nejvíce názornou demonstraci zvoleného tématu o funkční propojení do interaktivní aplikace pomocí skriptů vhodně vybraného skriptovacího jazyka na vhodně zvolené vývojářské platformě vytvoření propagačního plakátu prezentace k ústní obhajobě maturitní práce 2 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie PROHLÁŠENÍ Prohlašuji, že jsem svou maturitní práci vypracoval samostatně a použil jsem pouze podklady (literaturu, projekty, SW, atd.) uvedené v seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu § 60 zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne …………………………………… podpis 3 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie PODĚKOVÁNÍ Děkuji panu Jaroslavu Burdysovi za vstřícný přístup a jeho podnětné připomínky k mé práci. Dále děkuji panu třídnímu učiteli Mgr. Jiřímu Kouhoutovi za konzultace. 4 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie ANOTACE Jméno autora Chudek David Název maturitní práce Logická počítačová hra jako studie programování interaktivní 3D grafická aplikace Rozsah práce 48 stránek + 53 stránek příloha Školní rok vyhotovení 2014-2015 Škola Střední průmyslová škola na Proseku Vedoucí práce Burdys Jaroslav Využití práce Inspirovat neodbornou veřejnost pro tvorbu aplikací. Poukázat na aspekt, že každý může otevřít svoji fantazii a vytvořit aplikaci. Klíčová slova Cinema 4D, Unity 3D, JavaScript, modelování, programování, logika, základní matematické problémy, techniky modelování, animace, engine Anotace Stručný popis postupu modelování trojrozměrných objektů. Tvorba 3D grafiky v programu Cinema 4D a její následnou implementaci do vývojářského prostředí Unity 3D. Programování jednoduché aplikace, kde je demonstrována její funkčnost, s pomocí objektového jazyka JavaScriptu. 5 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie ANNOTATION Autor Chudek David Title of graduation work Logical computer game as a study of programming interactive 3D graphic application Extend 48 p. + 53 p. of appendices Academic year 2014-2015 School Střední průmyslová škola na Proseku Supervisor Burdys Jaroslav Application The purpose of my thesis is to ispire unprofessional public to desing own applications. Iwant to show, than anyone, who has imagination, can desing application. Key words Cinema 4D, Unity 3D, JavaScript, modeling, Programming, logic, basic math problems, techniques modeling, animation, engine Annotation Brief description of modeling process of three-dimensional objects. Creating 3D graphics in the Cinema 4D program and its subsequent usage in development environment of the Unity 3D program. Programming a simple application using object-oriented JavaScript. 6 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie OBSAH 1 ÚVOD A CÍL PRÁCE ................................................................................................................ 10 1.1 ÚVOD ........................................................................................................................................................ 10 1.2 CÍL PRÁCE ................................................................................................................................................. 10 1.3 CÍL HRY ..................................................................................................................................................... 10 2 TEORETICKÁ ČÁST .................................................................................................................. 11 2.1 SKRIPTOVACÍ JAZYKY/TECHNOLOGIE/VÝVOJÁŘSKÉ PLATFORMY VHODNÉ PRO PROGRAMOVÁNÍ INTERAKTIVNÍ 3D GRAFIKY A APLIKACÍ, POROVNÁVÁNÍ JEJICH VÝHOD A NEVÝHOD .............................................11 2.1.1 Podporované formáty..................................................................................................................... 11 2.1.2 Podporované platformy ................................................................................................................. 11 2.1.3 Platformy: ...................................................................................................................................... 12 2.1.4 Licence pro Unity 5 ....................................................................................................................... 12 2.1.4.1 Free ...................................................................................................................................................... 12 2.1.4.2 Pro ....................................................................................................................................................... 12 2.1.5 Skriptování v Unity 3D.................................................................................................................. 12 2.1.6 Porovnání různých syntaxi (stejné semantiky) v unity 3d v různých jazycích ......................... 13 2.1.6.1 C#..........................................................................................................................................................13 2.1.6.2 JavaScript .............................................................................................................................................13 2.1.6.3 Boo ........................................................................................................................................................13 2.1.7 2.2 3 Porovnání enginů .......................................................................................................................... 14 ZÁKLADNÍ FÁZE NÁVRHU, TVORBY A VÝVOJE HRY ...................................................................................... 15 2.2.1 Myšlenka a návrh .......................................................................................................................... 15 2.2.2 Příprava - Dokumentace ............................................................................................................... 15 2.2.3 Programování, neboli konečně vývoj hry ..................................................................................... 15 2.2.4 Ladění a estetika hry ..................................................................................................................... 16 2.2.5 Komunita jako cenný člen týmu .................................................................................................. 16 2.2.6 Moje řešení..................................................................................................................................... 16 CINEMA 4D ............................................................................................................................. 18 3.1 CO JE CINEMA 4D ....................................................................................................................................... 18 3.2 POSTUP MODELOVÁNÍ .............................................................................................................................. 18 3.3 BRÁNA ..................................................................................................................................................... 20 3.3.1 Tělo brány ..................................................................................................................................... 20 3.3.2 Ševron............................................................................................................................................. 21 3.3.2.1 Animovaná část ševronu ................................................................................................................... 21 3.3.2.2 Statická část ševronu ......................................................................................................................... 21 3.3.3 Kruh se symboly ........................................................................................................................... 22 7 Střední průmyslová škola na Proseku 3.4 3.3.3.1 39 symbolů .......................................................................................................................................... 22 3.3.3.2 Tělo středového kruhu ...................................................................................................................... 22 3.3.3.3 Rozdělovač mezi symboly ................................................................................................................. 22 PODSTAVEC ............................................................................................................................................. 22 3.4.1 Přední část se schodištěm ............................................................................................................ 23 3.4.2 Zadní část s dírou pro bránu ....................................................................................................... 24 3.5 4 18-20-M/01 informační technologie ZADÁVACÍ PANEL (DHD) ......................................................................................................................... 24 3.5.1 Horní část ..................................................................................................................................... 25 3.5.2 Dolní část ...................................................................................................................................... 25 UNITY 3D................................................................................................................................. 27 4.1 PŘEDBĚŽNÝ NÁVRH .................................................................................................................................. 27 4.2 VERZE ...................................................................................................................................................... 29 4.3 SCÉNY ....................................................................................................................................................... 31 4.3.1 Scéna „Menu“ ................................................................................................................................ 31 4.3.2 Scéna „Game“ ............................................................................................................................... 32 4.3.3 Scéna „Konec“ .............................................................................................................................. 33 4.4 PROPOJENÍ SKRIPTŮ (SCHÉMA) ................................................................................................................. 33 4.5 POPIS KÓDU ............................................................................................................................................. 33 4.5.1.1 4.5.2 Vysvětlení opakujících se části kódu ................................................................................................ 33 Menu ............................................................................................................................................. 33 4.5.2.1 Start.js.................................................................................................................................................. 33 4.5.2.2 Konec.js ............................................................................................................................................... 34 4.5.2.3 oHre.js ................................................................................................................................................. 34 4.5.3 Hra ................................................................................................................................................ 34 4.5.3.1 Konecvoda.js ....................................................................................................................................... 34 4.5.3.2 zOvladani.js ........................................................................................................................................ 34 4.5.3.3 zamerovac.js ....................................................................................................................................... 34 4.5.3.4 tlacitko_stred.js .................................................................................................................................. 35 4.5.3.5 zadavani.js........................................................................................................................................... 35 4.5.4 4.5.4.1 Konec ............................................................................................................................................ 37 kkonec.js ............................................................................................................................................. 37 5 ZÁVĚR ..................................................................................................................................... 37 6 UŽIVATESLKÁ DOKUMETACE ............................................................................................... 38 6.1 NEJVHODNĚJŠÍ HODNOTY PRO NASTAVENÍ:.............................................................................................. 38 ZÁKLADNÍ OVLÁDÁNÍ: ....................................................................................................................................... 39 6.2 PRVNÍ SPUŠTĚNÍ HRY ................................................................................................................................ 39 6.3 NÁVOD PRO SPLNĚNÍ CÍLE HRY: ................................................................................................................. 41 8 Střední průmyslová škola na Proseku 6.4 7 18-20-M/01 informační technologie POSTUP ZADÁVÁNÍ VE HŘE. ...................................................................................................................... 42 ZDROJE ................................................................................................................................... 44 7.1 ZDROJE POUŽITÉ PRO REŠERŠI : SKRIPTOVACÍ JAZYKY/TECHNOLOGIE/VÝVOJÁŘSKÉ PLATFORMY VHODNÉ PRO PROGRAMOVÁNÍ INTERAKTIVNÍ 3D GRAFIKY A APLIKACÍ, POROVNÁVÁNÍ JEJICH VÝHOD A NEVÝHOD ......... 44 7.2 ZDROJE POUŽITÉ PRO REŠERŠI : ZÁKLADNÍ FÁZE NÁVRHU, TVORBY A VÝVOJE HRY .................................... 44 8 POUŽITÁ LITERATURA .......................................................................................................... 45 9 SEZNAM OBRÁZKŮ ................................................................................................................ 46 10 SEZNAM TABULEK.................................................................................................................. 47 11 SEZNAM SCHÉMAT ................................................................................................................. 48 12 SEZNAM POUŽITÉHO SOFTWARU ........................................................................................ 48 13 PŘÍLOHY ................................................................................................................................. 49 13.1 SEZNAM OBRÁZKŮ .............................................................................................................................. 49 13.2 SEZNAM SKRIPTŮ ................................................................................................................................. 64 13.2.1 start.js ...................................................................................................................................... 64 13.2.2 oHre.js ...................................................................................................................................... 64 13.2.3 konec.js..................................................................................................................................... 65 13.2.4 konecvoda.js ............................................................................................................................. 65 13.2.5 zOvladani.js ............................................................................................................................. 65 13.2.6 tlacitko_stred.js ....................................................................................................................... 66 13.2.7 zadavani.js ............................................................................................................................... 66 13.2.8 zamerovac.js ............................................................................................................................ 98 13.2.9 kkonec.js................................................................................................................................... 98 13.2.10 zeme.js ...................................................................................................................................... 98 13.3 SEZNAM SCHÉMAT .............................................................................................................................100 13.4 PLAKÁT .............................................................................................................................................. 101 9 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 1 Úvod a cíl práce 1.1 ÚVOD Modelování mě zaujalo a začal jsem se této činnosti aktivně věnovat. Díky škole SPŠ-Prosek jsem se dostal ke studentské licenci od programu Cinema 4D. Cinema 4D je program pro tvoření 3D (prostorové) grafiky. Cinema 4D podporuje práci s polygony, nasvícení, animaci a závěrečný rendering. Tyto fáze budu využívat u mého projektu modelování Hvězdné brány. Dále použiji program Unity pro vytvoření mini-aplikace. Stučný popis principu hvězdné brány Hvězdná brána je sci-fi zařízení, které umožnuje mezihvězdný transport mezi vzdálenými světy, které jsou rozesety po Galaxii. Hvězdná brána obsahuje 39 symbolů a z toho 1 speciální symbol pro zemi. Zbytek 38 symbolů je znázornění souhvězdí viditelných ze země. 1.2 CÍL PRÁCE Vytvořit program (hru), který umožní zadání 7 libovolných symbolů potřebných pro aktivaci hvězdné brány. Po úspěšném zadání se hvězdná brána aktivuje s efektem „vody“. 1.3 CÍL HRY Cílem hry je úspěšně zadat 6 různých symbolů a poslední 7 symbol jeden specifický. Po úspěšném zadání uživatel může projít objektem hvězdné brány. Po průchodu se hra ukončí. 10 Střední průmyslová škola na Proseku 2 18-20-M/01 informační technologie Teoretická část Součástí práce jsou dvě literární rešerše . První je na téma Unity 3D a menší přehled ostatních herních enginu a druhá rešerše je na téma základní fáze při vývoji hry či aplikace. 2.1 SKRIPTOVACÍ JAZYKY/TECHNOLOGIE/VÝVOJÁŘSKÉ PLATFORMY VHODNÉ PRO PROGRAMOVÁNÍ INTERAKTIVNÍ 3D GRAFIKY A APLIKACÍ, POROVNÁVÁNÍ JEJICH VÝHOD A NEVÝHOD Pod názvem Unity 3D si můžeme představit program pro tvorbu her neboli herní engine. Ale není tomu tak. Unity 3D je univerzální nástroj pro tvorbu her, programů, scén. Unity 3D umožnuje vytvářet scény ve 2D, ale i ve 3D. 2D scéna obsahuje pouze dvě osy- osu X a osu Y. Kamera se pohybuje pouze ve směru těchto dvou os. 3D scéna má oproti 2D o jednu osu víc a to osu Z, která nám do scény přidá hloubku. Kamera se může pohybovat ve všech třech osách a tím vytvořit trojrozměrnou scénu. 2.1.1 Podporované formáty Unity 3d sjednocuje prvky (části) do jednoho celku. Na začátku máme mnoho prvků samostatně. Unity nám pomáhá tyto prvky spojit a vytvořit jeden logický celek. Samostatné prvky mohou být různé – modely, zvuky, textury, skripty. Unity 3d podporuje mnoho vstupů pro tvorbu projektu. Podporované formáty obrázků: .psd, .jpg, .png, .gif, .bmp, .tga, .tiff, .iff, .pict, .dds Podporované zvukové formáty .mp3, .ogg, .aiff, .wav, .mod, .it, .sm3 Podporované video formáty .mov, .avi, .asf, .mpg, .mpeg, .mp4 Podporované textové formáty .txt, .htm, .html, .xml, .bytes Tabulka 1 - Obsahuje podporovane formaty 2.1.2 Podporované platformy Unity 3D je engine podporující mnoho platforem. Unity umí optimalizovat textury a rozlišení pro určité platformy, aby byla zaručena plynulost hry či aplikace. 11 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 2.1.3 Platformy: Windows, MAC, Linux / Steam OS, Android, Symbian, iOS, Windows Phone 8, BlackBerry 10, Tizen, Web player, WebGL, PS3, PS4, PS Vita, Xbox One, Xbox 360, Playstation Mobile, Wii U, Oculus Rift, Gear VR, Android TV, Samsung Smart TV 2.1.4 Licence pro Unity 5 2.1.4.1 Free V Unity 3D Free lze vytvořit plnohodnotné hry, ale jsou zde určitá omezení jako například chybějící nástroje či podpora od firmy Unity Technologies. Licence Free je taky omezena obratem firmy do 100 000 dolarů. 2.1.4.2 Pro Verze Pro je od verze Free rozšířena o mnoho funkcí, jako např. editor kůže, přístup ke zdrojovému kódu Unity 3D, možnost nechat si analyzovat skript u firmy Unity Technologies, změna úvodní animace, atd. Za tuto licenci požaduje firma Unity Technologies 75 dolarů za měsíc. 2.1.5 Skriptování v Unity 3D Skriptování v Unity 3D je podstatný krok ke tvorbě hry. Díky skriptování přidáváme importovaným objektům jejich vlastnosti, animace, fyzikální vlastnosti, ovládání a tvoříme interaktivitu hry. V Unity 3D je možné používat tři objektově orientované jazyky C#, JavaScript, Boo. Při vytváření hry můžeme používat všechny tři jazyky zároveň, ale nedoporučuje se to. 12 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 2.1.6 Porovnání různých syntaxi (stejné semantiky) v unity 3d v různých jazycích 2.1.6.1 C# using UnityEngine; using System.Collections; public class ExampleSyntax : MonoBehaviour { int myInt = 5; int MyFunction (int number) { int ret = myInt * number; return ret; } } [1] 2.1.6.2 JavaScript #pragma strict var myInt : int = 5; function MyFunction (number : int) : int { var ret = myInt * number; return ret; } [1] 2.1.6.3 Boo import UnityEngine import System.Collections public class ExampleSyntax(MonoBehaviour): private myInt = 5 private def MyFunction(number as int) as int: ret as int = (myInt * number) return ret [1] 13 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 2.1.7 Porovnání enginů Název Enginu CryEngine Frostbite Unreal Engine Unity 3d Vývojářské Crytek EA Digital Epic Games Unity studio Illusions CE Technologies Aktuální verze 3.6.16 3 4.7 5 Podporované Windows, PS4, Windows, PS3, Windows, Linux, Windows, platformy Wii U, PS4, Xbox One, OS X, Xbox ONE, MAC, Linux / Android, iOS, Xbox 360 PS4, HTML 5, Steam OS, PS3, Xbox 360, iOS, Android, Android, Xbox ONE, Oculus Rift, Ouya Symbian, iOS, Linux, Xbox Windows Phone 8, BlackBerry 10, Tizen, Web player, WebGL, PS3, PS4, PS Vita, Xbox One, Xbox 360, Playstation Mobile, Wii U, Oculus Rift, Gear VR, Android TV, Samsung Smart TV Vyvíjeno C++ - v jazyku Licence C++,C#,GLSL,Cg, C a C++ HLSL,UnrealScript proprietární proprietární proprietární proprietární Tabulka 2 - porovnání enginu - aktuální k datu 27.3.2015 14 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 2.2 ZÁKLADNÍ FÁZE NÁVRHU, TVORBY A VÝVOJE HRY Vývoj každé hry či aplikace si můžeme rozdělit do několika fází. Tyto fáze může mít každý vývojářský tým jiný. 2.2.1 Myšlenka a návrh Na začátku každého projektu musí být vždy nějaký nápad (myšlenka). Myšlenka se dá považovat za srdce hry. Máme-li dobrou myšlenku, máme zaručen úspěch na herním trhu. Pokud byla první nejdůležitější podmínka splněna, dalším krokem by mělo být prozkoumání a zjištění aktuální situace na trhu. Situace na herním trhu se neustále mění, komunita hráčů se rozrůstá a požadavky na kvalitu hry či jejich originalitu je čím dál tím těžší uspokojit. Tedy další rozumný krok při návrhu hry je prozkoumání herní komunity a zjištění jejích požadavků. V herní historii bylo mnoho pokusů o revoluční přístup ke hrám a některé dopadly dobře, ale většina pokusů byla neúspěšná. Další omezující aspekt při tvorbě hry je hardwarové vybavení. Vývojáři dokáží vytvořit neuvěřitelně reálné prostředí, ale mnoho hráčů nemá výkonné počítačové sestavy pro spuštění a hraní náročné scény. Tento problém řeší optimalizace, ale to je jedna z posledních fází vývoje hry. Pokud máme myšlenku upravenou o to, co komunita požaduje, můžeme začít přemýšlet nad logikou naší hry. Je potřeba před začátkem modelování či programování promyslet základní princip hry. Pevně si definovat, čeho naše hra dosáhne a následně k tomu směřovat vývoj hry. 2.2.2 Příprava - Dokumentace Když uznáme, že naše myšlenka je upravena do takové míry, aby ji komunita přijala, je dobré vytvořit rozsáhlou dokumentaci, která bude popisovat veškeré prvky hry. Tato dokumentace je důležitá už jenom z toho hlediska, že podle ni se bude celá hra ubírat ve svém vývoji, ale zároveň můžeme ukázat uživatelům, čeho chceme dosáhnout a tím si připravit „půdu“ pro prodej hry. 2.2.3 Programování, neboli konečně vývoj hry Máme-li dokumentaci připravenou, můžeme začít programovat. Začít vyvíjet či použít již existující engine, vytvářet modely, textury, animace, hudbu, skripty. Vytvořené prvky budeme vkládat do našeho vybraného herního enginu. Herní engine nám umožňuje propojovat 15 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie jednotlivé části. Při vytváření logiky hry je doporučené používat jednotný programovací jazyk. Tato fáze vývoje hry je zřejmě nejdůležitější fází, kterou projdeme. Protože pokud máme objekty, které nic nedělají, není mezi nimi žádná interakce, nelze to nazývat hrou. Při vytváření hry narazíme na mnoho problémů, na které jsme při vytváření dokumentace zapomněli. 2.2.4 Ladění a estetika hry Pokud se dostaneme přes fázi programování, můžeme se vrhnout na estetickou stránku projektu. Z průzkumu herní komunity zjistíme, že požaduje jednoduchost, kvalitní vzhled a zajímavost. Můžeme vytvořit jedinečnou hru, která na herním trhu chybí, ale pokud grafická stránka hry nezaujme hráče, dojde k zapomnění hry. Z tohoto důvodu je důležité dostatečně se věnovat i grafické stránce hry. Máme hodně způsobů, jak ji vylepšit. Můžeme vymodelovat hezčí a detailnější objekty, vytvořit kvalitnější textury či použít filmové efekty pro upoutání uživatele, ale musíme dbát zejména na její optimalizaci. 2.2.5 Komunita jako cenný člen týmu Nejzajímavější nabídkou pro uživatele je možnost zasáhnout do vývoje hry. Pokud budoucí uživatelé si mohou zvolit například prostředí hry nebo pozměnit nějaké části, bude hra mnohem lépe zapadat do hráčova profilu. Hráč bude mít pocit, že se na vývoji hry podílel. Tento fakt mnoho vývojářských studií přehlíží, pohlíží na hráče jako na konečného uživatele a připravuje se takto o cenného člena vývojářského týmu. 2.2.6 Moje řešení Pro svůj maturitní projekt jsem proto zvolil formu komunikace s uživateli, kde jsem vytvořil anketu a dal jsem možnost hráčům, kteří se účastnili testování hry, upozorňovat na chyby ve hře či navrhnout možné vylepšení. Já se je pak následně snažil opravit či zabudovat do hry. Výsledky ankety budou prezantovány při obhajobě maturitní práce. 16 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 1 – anketa vytvořená za účelem sbíraní informací 17 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 3 Cinema 4D 3.1 CO JE CINEMA 4D Cinema 4D je profesionální grafický program pro tvorbu 3D grafiky a 3D objektů. Obsahuje modelovací nástroje, animační nástroje nebo funkce pro texturování. Cinema 4D je vyvíjeno firmou MAXON. K vymodelování objektů do aplikace jsem použil program Cinema 4d R16. 3.2 POSTUP MODELOVÁNÍ Vymodelované objekty jsem rozdělil do tří hlavních částí. Bránu, podstavec a zadávací panel (DHD). Při modelování jsem si psal poznámky, co jsem vytvořil, za jakou časovou dobu a s jakými problémy jsem se setkal či co jsem udělal. Objekt brána (Obrázek 2) o vytvořený návrh těla o vložení kruhu se symboly a další úprava těla brány o vložený ševron a chvilka rozjímaní o klonování ševronu a úprava povrchu, udělání výřezu atd., chyba s osami (každá osa je vždy 0,0,0) o sklonování ševronů + zjištění, že brána není zkosená, zkoušení co s tím (nevyřešeno) o zkosení vyřešeno o spojení dvou bran - zkopírování a otočení Objekt ševron (Obrázek 21) o přemýšlení a zkoušení návrhů o vytvoření základu ševronu o tvorba druhé části ševronu o ve škole (úprava vršku ševronu, aby pasovala na bránu) o dokončení ševronu Objekt podstavec (Obrázek 3) o tvorba schodiště o uprava schodiště 18 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Objekt zadávací panel (Obrázek 4) o tvorba vrchní části bez symbolů o vytvořena dolní část podstavce o vytvoření horní části s tlačítky o umístění symbolů a následná úprava vložených symbolů střední kruh (Obrázek 19) o střední kruh bez symbolu - použito klonováním ( zde jsem měl problém s funkcí klonování) o ruční umístění symbolu symboly (Obrázek 31) o vytvořeno všech 39 symbolů o zkosení a dodatečný uprava všech 39 symbolů o úprava špatného umístení středové osy u některých symbolů 19 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 3.3 BRÁNA Obrázek 2 - Hvězdná brána Tento objekt je složen z mnoha samostatných menších modelů a celkový vzhled byl dosáhnut s pomocí funkce sloučení projektů. Každý objekt jsem vymodeloval v jiném dokumentu. Objekt na (Obrázek 2) je rozdělen na další drobnější objekty - ševron, kruh se symboly a tělo brány. 3.3.1 Tělo brány Tělo brány (Obrázek 20). Je vymodelováno z trubky a následně s pomocí vytažení vytvořena díra uvnitř. 20 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 3.3.2 Ševron Ševron (Obrázek 21) se skládá ze dvou hlavních částí (statická a animovaná část). Ševron byl rozdělen na dva objekty z důvodu pozdější animace v Unity 3D. 3.3.2.1 Animovaná část ševronu Objekt animovaná část ševronu (Obrázek 22) je vymodelovaný zvlášť z důvodu pozdější animace, jak už bylo zmíněno. Skládá se ze dvou částí. Tyto dvě části jsou vymodelovány zvlášť a pečlivě tvarovány do požadovaného tvaru. Jsou do sebe zasazeny a následně s pomocí funkce symetrie zrcadleny. Skládá se z těchto součástí,které z důvodu velikosti uvádím v příloze Obrázek 23 o Žebrování je docíleno s pomocí Booleanovské operace. Pomocné těleso kvádr je rozmístěno po křivce a díky Booleanovské operaci vzniká žebrování. Obrázek 24 o Pomocný objekt pro žebrování. Obrázek 25 o Vnitřní část ševronu, která je vložena do části 1. 3.3.2.2 Statická část ševronu Statická část ševronu tvoří zbylou část ševronu, která nebude animována. Je tvořena z těchto částí: Obrázek 26 o Tato část ševronu je složena ze čtyř částí. Obrázek 27 o Tato část je vymodelována pomocí primitiva krychle. Obrázek 28 Obrázek 29 Obrázek 30 o Křivka, která je vytáhnuta, následně vzniklý objekt, který je mírně zkosen. 21 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 3.3.3 Kruh se symboly Kruh (Obrázek 19) je objekt, na kterém jsou umístěny symboly, které uživatel zadává. Tyto symboly se shodují se s těmi na zadávacím panelu. Je tvořen z 39 symbolů a dalších dvou objektů. Symboly s rozdělovači jsou pečlivě rozděleny na výsledný model model. Rozdělovače jsou rozmístěny s pomocí funkce klonování po křivce. 39 symbolů je umístěno ručně a přichyceno na křivku, která slouží jako vodící. 3.3.3.1 39 symbolů Jeden ukázkový symbol – (Obrázek 31) Vymodeloval jsem všech 39 symbolů, které jsou od sebe odlišné. Modeloval jsem podle předlohy. Na pozadí jsem si vložil obrázek a s pomocí křivek obtáhl okraj. Následně jsem použil funkci vytažení se zaoblením na jeden uzávěr. 3.3.3.2 Tělo středového kruhu Tělo středového kruhu (Obrázek 32) je vytvořen z primitiva trubky a byly mu uděleny příslušné rozměry. 3.3.3.3 Rozdělovač mezi symboly Tento objekt (Obrázek 33) je z jednoho primitiva krychle. Krychli jsem změnil rozměry a s pomocí funkce vytažení a zaoblení jsem docílil konečný tvar, který je vidět na obrázku. 3.4 PODSTAVEC Podstavec slouží k udržení brány v přímené poloze. Opět se skládá z několika objektů 22 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 3- Podstavec pod bránu 3.4.1 Přední část se schodištěm Přední část schodiště se skládá z těchto objektů Obrázek 34 Obrázek 35 o Schodiště jsem vymodeloval s pomocí křivky, kterou jsem následně rozkopíroval po křivce. Po dosažení požadovaného počtu schodů jsem použil funkci vytažení a následně symetrii. Obrázek 36 o Zde je ukázán 1 schod z profilu. Obrázek 37 o Toto je část, která je umístěna pod schodištěm. Je tvořena z krychle. Obrázek 38 o Postranní část ohraničuje schodiště a tvoří jeho okraj. Je vymodelována z krychle. Obrázek 39 23 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie o Tento objekt slouží pouze jako pomocné primitivum. S pomocí Booleanovské operace ořezává přebytečné schodiště. 3.4.2 Zadní část s dírou pro bránu Obrázek 40 o Je tvořen z krychle. Obrázek 41 o Toto primitivum nám s pomocí Booleanovské operace vytváří otvor do podstavce. V konečné fází do vytvořeného otvoru vložíme bránu. Obrázek 42 o Tato část byla pouze estetická a při konečném projektu nebyla použita. Je vymodelována s pomocí křivky, která byla vytažena. 3.5 ZADÁVACÍ PANEL (DHD) Obrázek 4 – zadávací panel 24 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 3.5.1 Horní část Objekt horní část (Obrázek 43) se skládá z těchto objektů: Obrázek 44 o Vnější oblouk je vymodelován s pomocí anuloidu. Ten byl rozpůlen a jeho horní část byla modifikována. Obrázek 45 o Tento objekt (barel) je hlavním objektem DHD. Na tomto objektu jsou všechny ostatní objekty rozmístěny a zároveň je ze všech tří barelů největší. Obrázek 46 o Na tomto objektu je umístěn vnější kruh (pole) se symboly. Obrázek 47 o Na tomto nejmenším barelu je umístěn vnitřní kruh (pole) se symboly a středové tlačítko. Pole tlačítek (Obrázek 48) o Pole tlačítek je vytvořeno s pomocí funkce Pole. o Obrázek 49 Obě tlačítka jsou vytvořena z trubky, která byla rozsegmentována na 19 částí. Další krok byl jednu část vyjmout a s pomocí pole ji klonovat. o Obrázek 50 U toho objektu byl použit úplně stejný postup jako u objektu předešlého, pouze byly pozměněny rozměry. o Obrázek 51 Při pozdější práci s objekty v Unity 3D jsem zjistil, že pro lepší funkci animace je vhodné každé tlačítko z pole napevno spojit z přiléhajícím symbolem. Obrázek 52 o Je složen ze dvou částí – z primitiva barelu a primitiva trubky. Obrázek 53 Obrázek 54 3.5.2 Dolní část Objekt dolní část (Obrázek 55) se skládá ze tří částí: 25 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 56 o Tato část je vytvořena s pomocí křivky, která je vložena na pozadí a následně prostřednictvím funkce vytažení vytažena bez horního uzávěru. Následně byla dle potřeb doupravena. Obrázek 57 o Tento objekt tvoří estetickou část dolní části podstavce. Je vytvořen pomocí kruhu a následně vytažen. Také je dodatečně upraven. Obrázek 58 o Na tento objekt je aplikován stejný postup jako u předchozího objektu. 26 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 4 Unity 3D Unity 3D je jeden z mnoha softwarů, s jejichž pomocí můžeme vytvořit jednoduchou či složitou hru nebo aplikaci. Unity je vyvíjeno společností Unity Technologies. Unity podporuje více mež 10 platforem, pro které můžeme vytvořit hru, např. Windows, Mac, Linux, Android, IOS. Program je v základu distribuován s Free licencí. Skripty nutné pro hru můžeme psát ve třech jazycích: C#, JavaScript a Boo . 4.1 PŘEDBĚŽNÝ NÁVRH Před vlastním programování a modelování objektů, jsem si udělat návrh toho, čeho chci dosáhnout a co by měla hra obsahovat. Rozhodl jsem se pro vytvoření tří scén: „Menu“ (Obrázek 5) o Úvodní obrazovka. Zde je možnost ukončit hru, zobrazit stručný uživatelský manuál nebo přejít do další scény „game“. Obrázek 5 – náhled na scénu menu „Game“ (Obrázek 6, Obrázek 7) o Scéna „game“ obsahuje samotnou podstatu aplikace. 27 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 6 – vzdálený pohled na scénu game Obrázek 7 – bližší pohled na objekty v scéně game 28 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie „Konec“ (Obrázek 8) o Scéna „konec“ je konečná scéna, kam se uživatel dostane po úspěšném zadání sekvence. Obrázek 8 – pohled na scénu konec 4.2 VERZE Při tvorbě hry jsem se rozhodl pro postupné označování vydaných verzí programu. 0.0.1 o - import základního mechanizmu z Unity verze 4 do Unity verze 5 o - vytvoření scény „menu“ o - vytvoření scény „game“ o - import objektů o - tvorba prostředí terénu o - přidané skripty (Start.js, Ohre.js, Konec.js) o - přidání postavy (přednastavené) o - po texturování prostředí texturami předpřipravené v Unity 3D o - chyba kolize objektu schodiště 0.0.2 o - úprava scény „menu“ o - úprava loga 29 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie o - opraven skript (Ohre.js) o - oprava normálu všech objektů o - odstranění textur z Cinemy 4D o - nastavení kolize s objekty o - úprava importovaných objektů (smazání jedné přebytečné části, která sloužila jako pomocná část v cinemě) o - kolize schodiště opravena o - přidán křížek o - přidána podivná textura z Unity 3D o - přidána možnost (po zmáčknutí Escape je hráč vrácen do menu) o - nalezena chyba, že při opakovaném přecházení do menu a zpět celá hra ztmavne a následně i v editoru terén (chyba pouze v editoru) o - vytvoření záložky (Ohre.js) o - přidané srolovací pole pro info o hre o - přidaná ikonka pro .exe 0.0.3 o - oprava DHD - normály o - oprava DHD - přidán symbol země o - přidán script na zadávání symbolů (stále ve vývoji) o - změna pozadí v menu o - úprava rozložení v menu o - do záložky o hře nahrazen log o verzích -> popisem ovládání + popis hry o - částečné po texturování objektů o - ERROR na DHD nenalezen symbol "aquila" 0.0.4 o - přidána animace na zapadnutí ševronu o - přidána animace na zmáčknutí tlačítek o - přidán fix kurzoru myši na střed o - upraven kurzor o - skript zadavani.js rozšířen o zadání všech symbolů a kontrolu zadaných symbolů o - opraveny textury o - přidána úvodní melodie 30 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 0.0.5 o - změněna úvodní melodie o - v menu se provádí odemknutí kurzoru o - přidána třetí scéna s konečným dialogem o - dotexturování všech objektů o - přidán strop o - úprava zadávacího skriptu o - přidány zvuky při zmáčknutí klávesy o - přidán zvuk na špatné zadání o - přidán zvuk při aktivaci brány o - přidána animace otevření brány o - úprava délky animací ševronu o - přidán zvuk pro zapadnutí ševronu o - upravení vstupních hodnot ( redukce ) 0.1.0 o - oprava symbolu (nedodělaná textura) o - zjednodušení skriptů o - změněn krížek na kolečko Dále mohou následovat verze podle zpětné vazby hráčů 4.3 SCÉNY 4.3.1 Scéna „Menu“ Jak už bylo řečeno, scéna menu je úvodní scéna. Tato scéna se načte jako první a obsahuje následující prvky. Pozadí o Pozadí je vyřešeno formou potexturovaní polygonu. Zvuk o Zvuková nahrávka je nahrána ze seriálu a mírně poupravena v programu Audiocity. Skripty o Scéna menu obsahuje tyto tři skripty (vysvětlení viz níže). Start.js 31 Střední průmyslová škola na Proseku Konec.js oHre.js 18-20-M/01 informační technologie Obrázky o Textové obrázky byly vytvořeny v programu Corel a jsou vektorové. Pozadí je bitmapový obrázek. Obrázek 60 Obrázek 61 Obrázek 62 Obrázek 63 4.3.2 Scéna „Game“ Scéna „game“ je podstatnou částí hry z důvodu, že obsahuje kličovou část hry. Zahrnuje následující prvky: Zvuk o Scéna game obsahuje celkem 4 zvukové nahrávky. Skripty o Konecvoda.js o zOvladani.js o zamerovac.js o tlacitko_stred.js o zadavani.js Terén o Terén byl vymodelován v editačním prostředí unity. Objekty o Objekty použité v scéně game: Obrázek 2 Obrázek 3 Obrázek 4 Textury/materiály o textura pro efekt vody Obrázek 64 o textura pro kamenné objekty Obrázek 65 32 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie o textura pro podstavec Obrázek 66 4.3.3 Scéna „Konec“ Scéna konec je konečná scéna a obsahuje pouze tyto prvky: Skripty o kkonec.js Obrázek na pozadí o Obrázek 68 4.4 PROPOJENÍ SKRIPTŮ (SCHÉMA) Pro snazší pochopení jsem vypracoval schéma propojení (Schéma 1) jednotlivých scén a použití skriptů v určitých scénách. 4.5 POPIS KÓDU Skripty jsou rozdělené do kategorií,podle scény, ve které se použivají.. 4.5.1.1 Vysvětlení opakujících se části kódu function Start(){} : část kódu umístěna v této funkci je provedena pouze jednou při spuštění scény. function OnMouseDown () {} : část kódů v této funkci se provede vždy, když uživatelé kurzorem na příslušný objekt. function OnTriggerEnter (){} : tato funkce se vykoná, pokud dojde ke kolizi dvou objektů. function Update () {} : Tato funkce je prováděna při každém načtení snímku. Znamená to, že pokud je obnovovací frekvence 25 snímků za sekundu, část kódu v této funkci je provedena 25 krát za sekundu. #pragma strict : definování pro Unity 3D, že následující kód je psán v jazyce javaScript. 4.5.2 Menu 4.5.2.1 Start.js Popisovaný skript: (start.js) 33 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Na řádku 3 nastavuji vlastnosti objektu Screen.lockCursor na hodnotu false. Díky tomu docílím, že kurzor se bude moci volně pohybovat. Na řádku 6 funkci OnMouseDown kontroluji objekt „star“ a nastavuji true zamknutí (kurzoru na střed) s pomocí Screen.lockCursor =. Následně na řádku 7 s pomocí Application.LoadLevel načítám scénu s hrou. 4.5.2.2 Konec.js Popisovaný skript: (konec.js) Po kliknutí pomocí Application.Quit na řádku 3 zavírám okno s aplikací. 4.5.2.3 oHre.js Popisovaný skript: (oHre.js) Na řádku 13 je definováno, jak velký bude prostor pro případný text. Je zde použit typ boxu scrollPosition z důvodu, že když bude text přesahovat velikost boxu, vytvoří se na pravé straně srolovací lišta. Tím se zamezí tomu, že nebude viditelný celý text, který vkládám do proměnné na řádku 19. 4.5.3 Hra 4.5.3.1 Konecvoda.js Popisovaný skript: (konecvoda.js) Po vstupu do oblasti, která je pevně vymezena, se dostaneme do scény „konec“. Je toho docíleno funkcí OnTriggerEnter a následně Application.LoadLevel, která nahrává scénu „konec“. 4.5.3.2 zOvladani.js Popisovaný skript: (zOvladani.js) Na řádku 3 kontroluji vstup s podmínkou GetKeyDown, zda uživatel stiskl klávesu „Esc“. Pokud ano, provede se odemknutí kurzoru a následně přechod do scény „menu“. 4.5.3.3 zamerovac.js Popisovaný skript: (zamerovac.js) 34 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Zde s pomocí funkce OnGUI zobrazuji GUI.Label, který je centrován vždy na střed a zobrazuje text „O“. 4.5.3.4 tlacitko_stred.js Popisovaný skript: (tlacitko_stred.js) Zde s pomocí funkce OnMouseDown zjišťuji, zda bylo kliknuto na objekt. Pokud ano, naplňuji proměnou OK hodnotou 1. 4.5.3.5 zadavani.js Popisovaný skript: (zadavani.js) Tento skript je stěžejní pro logiku hry. Kontroluje se zde každé klinutí a následně jsou vykonávány odpovídající akce. Na prvních řádcích si definuji proměnné. Na řádku 32 – 35 definuji zvukové nahrávky, které budu dále používat. Od řádku 41 – 185 je definování a propojení všech potřebných objektů, od kterých budu následně používat proměnné či s nimi různě pracovat. Následně ve funkci update se provádí: Na řádku 208 až 482 kontroluji, zda některá z tlačítek nebyla stisknuta. Tato kontrola je v podmínce, takže pokud uživatel bude po zadání všech sedmi možných symbolů pokračovat v klikání na panel symbolu, už se nebude provádět kontrola stisknutí všech tlačítek. Touto podmínkou zjednodušuji průběh skriptu. Popis kontroly tlačítka: Pokud uživatel stiskne tlačítko, do proměnné zmacknut, se zapíše hodnota 1. Následně kontroluji, zda hodnota zmáčknuto je 1 a identifikátor symbolu odpovídá stisknutému symbolu. Pokud ano, zapíši si do proměnné PolohaSymbolu polohu stisknutého symbolu. Dále do proměnné ZadanySymbol zaznamenám identifikační číslo symbolu a nastavím hodnotu u zmáčknutého symbolu na hodnotu 0 z důvodu, pokud by chtěl uživatel zadat vícekrát stejný symbol. Dále nastavím hodnotu 1 do proměnné Spustit, která nám uvede do provozu další část kódu. Dále spustím zvukovou nahrávku stisknutí tlačítka. Kód mezi 484 až 534 se zabývá pamětí zadaných symbolů. Pokoušel jsem se o funkcionalitu, že pokud uživatel zadá více znaků za sebou bez čekání na zapadnutí ševronu, tak aby byly 35 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie zmáčknuté symboly zapamatovány a následně automaticky dozadány. Bohužel tato funkcionalita obsahuje logickou chybu, kterou jsem nedokázal vyřešit. Kód tuto sekvenci obsahuje, proto nebyla nutnost ji mazat. Další část kódu se zabývá jednotlivýma ševrony, přesněji kód mezi 537 – 656. Jsou zde podmínky, které jsou podobné, ale vždy řeší jiný ševron. Důležitou proměnnou je postupsevron. Je vytvořena za účelem posloupného postupu u kontroly ševronu. Proměnná Spustit nám spustí či zastaví otáčení středového kola se symboly. Popis jedné podmínky od ševronu: Pokud se rovná proměnná postupsevron 1 a proměnná spustit 1, tak se provede mnoho akcí. Zapne se rotace objektu a to s pomocí funkce transform.Rotate. Tato vlastnost potřebuje 3 atributy pro každou osu X,Y,Z. Já jsem zadal hodnotu do Z a to Time.deltaTime*20. Funkce Time.deltaTime je velice zajímavá a nevyplatí se vždy ji využívat z jednoho prostého důvodu. Funkce Time.deltaTime je proměnná, do které se ukládá hodnota času a její velikost záleží na času potřebném pro vykonání skriptu při minulém provedení na snímek. Takže pokud náš kód je složitý a jeho provedení trvá dlouho či je proměnlivé, hodnota Time.deltaTime bude vždy jiná. Dále ukládám aktuální Z polohu kruhu do proměnné aktualniP. Další akcí je uložení aktuální hodnoty Z kruhu do proměnné porovnat a od ní odečítám prvotní pozici zmáčknutého symbolu. Tím docílím toho, že nám vyjde aktuální poloha symbolu. V další podmínce kontroluji, zda Z pozice ševronu se rovná proměnné porovnat. Pokud NE, pokračuje se v otáčení kruhu, dokud nedojde ke shodnému nebo přibližnému číslu. Byl jsem nucen opatřit kontrolu na větší rozmezí z důvodu, že pokud snímková frekvence byla příliš nízká, hodnota se ve většině případů neshodovala. Také jsem měl matematickou funkci (řádek 543), která mi vymezovala rozmezí, do kterého se aktuální pozice symbolu mohla vejít. Tento způsob jsem byl také nucen odstranit ze stejného důvodu. Pokud je podmínka splněna, do proměnné Spusit se zapíše 0 a nastavena je zapsána další číselná hodnota do proměnné postupsevron. Dále spustím animaci, která byla vytvořena pro určitý ševron a zvuk pro zadání ševronu. Uživatel může pokračovat zadáváním dalšího symbolu až po dokončení animační sekvence. Pokud zadá symbol dřív, změní hodnotu aktuálního zadávaného symbolu. Tato podobná sekvence se opakuje ještě 6 krát pro každý symbol zvlášť. 36 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Další podstatnou částí je neustálá kontrola zmáčknutí středového tlačítka. Pokud uživatel stiskne středové tlačítko, je zkontrolováno, zda se žádný symbol neopakuje a poslední symbol je symbol země. Pokud není podmínka splněna, nulují se všechny základní proměnné, které mohly být při zadávání změněny. V Podstatě se jedná o uvedení skriptu do původního stavu. Když je podmínka splněna, spustí se zvuk animace pro vodu a vynuluje se hodnota OK. 4.5.4 Konec 4.5.4.1 kkonec.js Popisovaný skript: (kkonec.js) Zde se po kliknutí nahraje úvodní obrazovka s menu. Vše je docíleno pomocí funkce OnMouseDown a Application.LoadLevel, který nahrává scénu menu. Tím je docíleno smyčce ve scénách. 5 Závěr Při zpracování projektu jsem se setkal s řadou komplikací, jejichž řešení mnohdy sahá za rámec této práce. Vývoj hry je velice problematická záležitost. Je třeba znát a dokonale ovládat mnoho aspektů začínajících znalostí trhu a končících znalostí herního enginu. Tato práce mě provedla všemi fázemi vývoje hry a přiblížila mi tvrdou práci designerů, programátorů, zvukařů, scénáristů a ostatních tvůrců her. Při tvorbě hry jsem se zabýval mnoha problémy. Mezi ně patřilo například propojení více skriptů, nebo spuštění animací. Mezi úspěšné části příslušelo vytvoření kontroly zadaného symbolu a jeho následné umístění na určité místo. S výběrem dlouhodobé maturitní práce jsem převelice spokojen. Zdokonalil jsem svoje schopnosti v programu Cinema 4D. Seznámil a naučil jsem se pracovat s herním enginem Unity 3D. Pevně věřím, že tato část maturity mě úspěšně připravila do života. 37 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 6 Uživateslká dokumetace Popisovaný program StarGate 0.1.0. Po kliknutí na ikonku je uživatel vyzván k základnímu nastavení zobrazení programu. (Obrázek 9). Obrázek 9 - nastavení zobrazení hry Uživatel má možnost si zvolit rozlišení obrazu, kvalitu grafické části hry a monitor, na kterém se okno s hrou zobrazí. Další možností je spuštění hry v okně. Z technického důvodu tuto možnost nepovažuji za vhodnou. Kvalitu grafické části hry si uživatel nastaví dle výkonu svého počítače. Navržená hodnota je „good“. Další záložkou je nastavení vstupů. Do tohoto nastavení doporučuji uživateli nezasahovat. 6.1 NEJVHODNĚJŠÍ HODNOTY PRO NASTAVENÍ: Rozlišení : 1920 x 1080 Kvalita grafiky: Good 38 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Jakákoliv jiná hodnota než doporučená či přednastavená může zapříčinit nefunkčnost aplikace i nějakých prvků hry. Posouzená minimální obnovovací snímková frekvence je 25 snímku za vteřinu. Pokud je menší, navrhuji zmenšit nastavení kvality grafiky na hodnotu Fastest. ZÁKLADNÍ OVLÁDÁNÍ: W – pohyb dopředu a – pohyb doleva d – pohyb doprava s – pohyb dozadu osa Y a osa X – pro pohyb kamery levé tlačítko myši - pro interakci s objekty (kliknutí) Esc – návrat do menu 6.2 PRVNÍ SPUŠTĚNÍ HRY Následně po kliknutí na tlačítko Play! se uživatel dostane do hry. První obrazovka obsahuje tři tlačítka: Start – přesune uživatele do hry, O hre – zobrazí dodatečné informace o hře, Konec – ukončí hru. Obrázek 10 - úvodní obrazovka ve hře 39 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Dodatečné informace o hře, které se zobrazí po kliknutí na tlačítko O Hre Obrázek 11 - detail na informace po stisknutí na tlačítko O HRE Po stisknutí na tlačítko Start se uživatel dostane do hry. Hvězdná brána Zadávací panel Obrázek 12 - pohled na scénu s hrou Hráč vidí před sebou dva objekty. Objekt blíže k hráči je zadávací panel, objekt dál od hráče je Hvězdná brána. Cílem hry je zdokonalit a rozšířit logické myšlení hráče. Musí prokázat, že si dokáže zapamatovat 7 symbolů. Postup je naznačován animacemi na hvězdné bráně. 40 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 6.3 NÁVOD PRO SPLNĚNÍ CÍLE HRY: Hráč se přiblíží k prvnímu objektu a vidí 39 symbolů (tlačítek) a jedno velké středové tlačítko. Středové tlačítko slouží ke konečnému potvrzení a zkontrolování zadání, nebo kdykoliv se uživatel ztratí v zadávání, tak k resetování zadávání. Obrázek 13 - pohled na zadávací panel Obrázek 14 - lepší pohled na všech 38 symbolů 41 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Zde je zobrazeno všech 38 symbolů, které jsou na zadávacím panelu. Cílem hráče je kliknou na 6 různých symbolů a sedmý, poslední symbol, musí být symbol země. Obrázek 15 - symbol země Tento princip je inspirován ze stejnojmenného seriálu Hvězdná brána. 6.4 POSTUP ZADÁVÁNÍ VE HŘE. Uživatel klikne na libovolný symbol na zadávacím panelu. Uslyší zvuk potvrzující zadání. Po této akci se začne kruh se symboly otáčet. Hráč musí počkat, dokud zadaný symbol se nezadá do určitého ševronu. Hráč pozná, že může zadávat další symbol – animací ševronu, který je momentálně na řadě a doprovázen zvukovou nahrávkou. Je možné, že pokud hráč klikne na více symbolů, než proběhne dokončení zadání, může zapříčinit znefunkčnění zadávací sekvence. Pokud se tak stane, je nutné přejít do menu pomocí klávesy ESC a znovu spustiti hru, nebo se může pokusit o restartování zadávací sekvence zmáčknutím středového tlačítka. 7 6 1 . . 2 5 3 4 Obrázek 16 – posloupnost zadávání symbolů 42 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Po úspěšném zapadnutím prvního symbolu může uživatel pokračovat v zadávání dalších symbolů. Po úspěšném dokončení sekvence všech 7 symbolů může uživatel zmáčknout velké středové tlačítko. Pokud daná sekvence je správná, spustí se animace otevření brány. Nyní může uživatel projít bránou a tím ukončit hru. Pokud zadaná sekvence není správně, spustí se zvuk špatného vložení a následně má uživatel nový pokus. Obrázek 17 – úspěšná sekvence a následná aktivace brány Takto vypadá scéna po úspěšném zadání. Pokud hráč vejde do modré zóny, hra se přesune na závěrečnou obrazovku. Obrázek 18 – obrazovka po vstupu do brány Po kliknutí myší se hráč opět dostane na úvodní obrazovku s menu. 43 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 7 Zdroje Obrázek: Obrazek použit na pozadí v menu. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-03-29]. Dostupné z: http://en.wikipedia.org/wiki/NGC_2818#/media/File:NGC_2818_by_the_Hubble_Space_Tel escope.jpg 7.1 ZDROJE POUŽITÉ PRO REŠERŠI : SKRIPTOVACÍ JAZYKY/TECHNOLOGIE/VÝVOJÁŘSKÉ PLATFORMY VHODNÉ PRO PROGRAMOVÁNÍ INTERAKTIVNÍ 3D GRAFIKY A APLIKACÍ, POROVNÁVÁNÍ JEJICH VÝHOD A NEVÝHOD Frostbite engine [online]. 2015 [cit. 2015-03-29]. Dostupné z: http://www.frostbite.com/ CryENGINE 3 [online]. 2015 [cit. 2015-03-29]. Dostupné z: http://www.crytek.com/ Unreal Engine 4 [online]. 2015 [cit. 2015-03-29]. Dostupné z: https://www.unrealengine.com/what-is-unreal-engine-4 [1] : Unity 3D: compare language [online]. 2015 [cit. 2015-03-29]. Dostupné z: https://unity3d.com/learn/tutorials/modules/beginner/scripting/c-sharp-vs-javascript-syntax Unity 3D: licence [online]. 2015 [cit. 2015-03-29]. Dostupné z: http://unity3d.com/get-unity Unity 3D: Počítačové hry a animace [online]. 2015 [cit. 2015-03-29]. Dostupné z: https://cent.felk.cvut.cz/courses/39PHA/data/cviceni/01/unity-intro.pdf 7.2 ZDROJE POUŽITÉ PRO REŠERŠI : ZÁKLADNÍ FÁZE NÁVRHU, TVORBY A VÝVOJE HRY Unity 3D: Využití platformy Unity 3D ve výuce [online]. 2011 [cit. 2015-03-29]. Dostupné z: http://theses.cz/id/n0l5a0/Vyuit_platformy_UNITY_3D_ve_vuce.pdf Unity 3D: vývoj hry [online]. 2014 [cit. 2015-03-29]. Dostupné z: http://www.unity3d.ministranka.cz/ Jak začít dělat hry: 1 [online]. 2009 [cit. 2015-03-29]. Dostupné z: http://www.tlamiczka.com/2009/02/jak-zacit-delat-hry.html Jak začít dělat hry: 2 [online]. 2009 [cit. 2015-03-29]. Dostupné z: http://www.tlamiczka.com/2009/02/jak-zacit-delat-hry-ii.html 44 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Jak začít dělat hry: 3 [online]. 2009 [cit. 2015-03-29]. Dostupné z: http://www.tlamiczka.com/2009/02/jak-zacit-delat-hry-iii.html Jak začít dělat hry: 4 [online]. 2009 [cit. 2015-03-29]. Dostupné z: http://www.tlamiczka.com/2009/02/jak-zacit-delat-hry-iiia.html Jak začít dělat hry: 5 [online]. 2009 [cit. 2015-03-29]. Dostupné z: http://www.tlamiczka.com/2009/03/jak-zacit-delat-hry-v.html Vývoj her v Česku v roce 2013: 1. část [online]. 2014 [cit. 2015-03-29]. Dostupné z: http://games.tiscali.cz/tema/vyvoj-her-v-cesku-v-roce-2013-cast-1-65583 Vývoj her v Česku v roce 2013: 2. část [online]. 2014 [cit. 2015-03-29]. Dostupné z: http://games.tiscali.cz/tema/vyvoj-her-v-cesku-v-roce-2013-cast-2-65590 8 Použitá literatura ŠKULTÉTY, Rastislav. JavaScript: kapesní přehled : [abecední přehled příkazů, objektů, událostí a operátorů; syntaxe, popis, příklady, podpora v prohlížečích]. Brno: Computer Press, 2005, 119 s. (kroužková vazba). ISBN 8025108848. 45 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 9 Seznam obrázků OBRÁZEK 1 – ANKETA VYTVOŘENÁ ZA ÚČELEM SBÍRANÍ INFORMACÍ ......................................................................... 17 OBRÁZEK 2 - HVĚZDNÁ BRÁNA ............................................................................................................................... 20 OBRÁZEK 3- PODSTAVEC POD BRÁNU ..................................................................................................................... 23 OBRÁZEK 4 – ZADÁVACÍ PANEL............................................................................................................................... 24 OBRÁZEK 5 – NÁHLED NA SCÉNU MENU .................................................................................................................. 27 OBRÁZEK 6 – VZDÁLENÝ POHLED NA SCÉNU GAME ................................................................................................. 28 OBRÁZEK 7 – BLIŽŠÍ POHLED NA OBJEKTY V SCÉNĚ GAME........................................................................................ 28 OBRÁZEK 8 – POHLED NA SCÉNU KONEC ................................................................................................................ 29 OBRÁZEK 9 - NASTAVENÍ ZOBRAZENÍ HRY............................................................................................................... 38 OBRÁZEK 10 - ÚVODNÍ OBRAZOVKA VE HŘE............................................................................................................ 39 OBRÁZEK 11 - DETAIL NA INFORMACE PO STISKNUTÍ NA TLAČÍTKO O HRE ............................................................. 40 OBRÁZEK 12 - POHLED NA SCÉNU S HROU ............................................................................................................... 40 OBRÁZEK 13 - POHLED NA ZADÁVACÍ PANEL ............................................................................................................ 41 OBRÁZEK 14 - LEPŠÍ POHLED NA VŠECH 38 SYMBOLŮ ............................................................................................... 41 OBRÁZEK 15 - SYMBOL ZEMĚ ................................................................................................................................... 42 OBRÁZEK 16 – POSLOUPNOST ZADÁVÁNÍ SYMBOLŮ ................................................................................................ 42 OBRÁZEK 17 – ÚSPĚŠNÁ SEKVENCE A NÁSLEDNÁ AKTIVACE BRÁNY .......................................................................... 43 OBRÁZEK 18 – OBRAZOVKA PO VSTUPU DO BRÁNY.................................................................................................. 43 OBRÁZEK 19 – KRUH SE SYMBOLY ........................................................................................................................... 49 OBRÁZEK 20 – TĚLO BRÁNY .................................................................................................................................... 49 OBRÁZEK 21- ŠEVRON ............................................................................................................................................. 50 OBRÁZEK 22 – POHYBLIVÁ ČÁST ŠEVRONU ............................................................................................................. 50 OBRÁZEK 23- ČÁST ANIMOVANÉ ČÁSTI ŠEVRONU.................................................................................................... 50 OBRÁZEK 24 – POMOCNÝ OBJEKT PRO ŽEBROVÁNÍ ................................................................................................. 50 OBRÁZEK 25 – VNITŘÍ ČÁST ANIMOVANÉ ČÁSTI ŠEVRONU ........................................................................................ 51 OBRÁZEK 26 – STATICKÁ ČÁST ŠEVRONU ................................................................................................................. 51 OBRÁZEK 27 – ČÁST STATICKÉ ČÁSTI ŠEVRONU ........................................................................................................ 51 OBRÁZEK 28 – OKRAJ STATICKÉ ČÁSTI ŠEVRONU...................................................................................................... 51 OBRÁZEK 29 – ČÁST ŠEVRONU ................................................................................................................................ 52 OBRÁZEK 30- HORNÍ ČÁST ŠEVRONU ...................................................................................................................... 52 OBRÁZEK 31 – SYMBOL „ZEMĚ“ ............................................................................................................................... 52 OBRÁZEK 32 - TĚLO STŘEDOVÉ ČÁSTI..................................................................................................................... 52 OBRÁZEK 33 – OZDOBNÁ ČÁST STŘEDOVÉ ČÁSTI ..................................................................................................... 52 OBRÁZEK 34- SCHODIŠTĚ PODSTAVCE .................................................................................................................... 53 OBRÁZEK 35- SCHODIŠTĚ ....................................................................................................................................... 53 OBRÁZEK 36- SCHOD Z PROFILU ............................................................................................................................. 53 46 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie OBRÁZEK 37 – PODSTAVA PRO SCHODIŠTĚ ............................................................................................................. 54 OBRÁZEK 38- OKRAJ SCHODIŠTĚ............................................................................................................................. 54 OBRÁZEK 39- POMOCNÁ ČÁST PRO SCHODIŠTĚ ...................................................................................................... 54 OBRÁZEK 40- PODSTAVEC ...................................................................................................................................... 55 OBRÁZEK 41- POMOCNÝ OBJEKT PRO PODSTAVEC................................................................................................... 55 OBRÁZEK 42 – ESTETICKÁ ČÁST PODSTAVCE ........................................................................................................... 55 OBRÁZEK 43 – HORNÍ POHLED NA HORNÍ ČÁST ZADÁVACÍHO PANELU ................................................................... 56 OBRÁZEK 44 – OKRAJ PODSTAVCE .......................................................................................................................... 56 OBRÁZEK 45 – HLAVNÍ ČÁST PODSTAVCE................................................................................................................ 56 OBRÁZEK 46- STŘEDNÍ ČÁST................................................................................................................................... 57 OBRÁZEK 47 – NEJMENŠÍ ČÁST ................................................................................................................................ 57 OBRÁZEK 48 – POHLEDA NA 38 SYMBOLŮ A TLAČÍTEK............................................................................................ 57 OBRÁZEK 49 – MENŠÍ TLAČÍTKO ............................................................................................................................. 58 OBRÁZEK 50 – VĚTŠÍ TLAČÍTKO .............................................................................................................................. 58 OBRÁZEK 51 – TLAČÍTKO SPOJENÉ SE SYMBOLEM .................................................................................................... 58 OBRÁZEK 52 – STŘEDOVÉ TLAČÍTKO ....................................................................................................................... 59 OBRÁZEK 53 – VNITŘÍ ČÁST TLAČÍTKA..................................................................................................................... 59 OBRÁZEK 54 – OKRAJ STŘEDOVÉHO TLAČÍTKA ....................................................................................................... 59 OBRÁZEK 55 – DOLNÍ ČÁST ZADÁVACÍHO PANELU .................................................................................................. 60 OBRÁZEK 56 – PROFIL DOLNÍ ČÁSTI ........................................................................................................................ 60 OBRÁZEK 57 – VĚTŠÍ ČÁST NOHY ............................................................................................................................. 61 OBRÁZEK 58 – MENŠÍ ČÁST NOHY ............................................................................................................................ 61 OBRÁZEK 59 – POZADÍ MENU .................................................................................................................................. 61 OBRÁZEK 60 – VEKTOROVÝ OBRÁZEK S TEXTEM KONEC ....................................................................................... 61 OBRÁZEK 61 – VEKTOROVÝ OBRÁZEK S TEXTEM O HRE ......................................................................................... 62 OBRÁZEK 62 – VEKTOROVÝ OBRÁZEK S TEXTEM START ........................................................................................ 62 OBRÁZEK 63 – VEKTOROVÝ OBRÁZEK S TEXTEM STARGATE................................................................................. 62 OBRÁZEK 64 – VNITŘNÍ ČÁST BRÁNY PO AKTIVACI .................................................................................................. 62 OBRÁZEK 65 – TEXTURA PRO POVRCH KAMENNÝCH OBJEKTŮ ................................................................................ 63 OBRÁZEK 66 – TEXTURA PRO PODSTAVEC BRÁNY ................................................................................................... 63 OBRÁZEK 67 – IKONA HRY ...................................................................................................................................... 63 OBRÁZEK 68 – VEKTOROVÝ OBRÁZEK PRO KONEČNOU SCÉNU................................................................................ 63 OBRÁZEK 69 - PLÁKAT K MATURITNÍ PRÁCI ........................................................................................................... 101 10 Seznam tabulek TABULKA 1 - OBSAHUJE PODPOROVANE FORMATY ...................................................................................................11 47 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie TABULKA 2 - POROVNÁNÍ ENGINU - AKTUÁLNÍ K DATU 27.3.2015 ............................................................................ 14 11 Seznam Schémat SCHÉMA 1 – PROPOJENÍ SCÉN A SKRIPTŮ ................................................................................................................100 12 Seznam použitého softwaru Cinema 4D R15 Cinema 4D R16 Unity 3D 4 Unity 3D 5 Corel Draw x7 Corel Draw x5 Audiocity Microsoft Office Word 2013 Malování 48 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 13 Přílohy 13.1 SEZNAM OBRÁZKŮ Obrázek 19 – kruh se symboly Obrázek 20 – tělo brány 49 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 21- ševron Obrázek 22 – pohyblivá část ševronu Obrázek 23- část animované části ševronu Obrázek 24 – pomocný objekt pro žebrování 50 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 25 – vnitří část animované části ševronu Obrázek 26 – statická část ševronu Obrázek 27 – část statické části ševronu Obrázek 28 – okraj statické části ševronu 51 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 29 – část ševronu Obrázek 30- horní část ševronu Obrázek 31 – symbol „Země“ Obrázek 32 - tělo středové části Obrázek 33 – ozdobná část středové části 52 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 34- schodiště podstavce Obrázek 35- schodiště Obrázek 36- schod z profilu 53 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 37 – podstava pro schodiště Obrázek 38- okraj schodiště Obrázek 39- pomocná část pro schodiště 54 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 40- podstavec Obrázek 41- pomocný objekt pro podstavec Obrázek 42 – estetická část podstavce 55 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 43 – horní pohled na horní část zadávacího panelu Obrázek 44 – okraj podstavce Obrázek 45 – hlavní část podstavce 56 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 46- střední část Obrázek 47 – nejmenší část Obrázek 48 – pohleda na 38 symbolů a tlačítek 57 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 49 – menší tlačítko Obrázek 50 – větší tlačítko Obrázek 51 – tlačítko spojené se symbolem 58 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 52 – středové tlačítko Obrázek 53 – vnitří část tlačítka Obrázek 54 – okraj středového tlačítka 59 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 55 – dolní část zadávacího panelu Obrázek 56 – profil dolní části 60 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 57 – větší část nohy Obrázek 58 – menší část nohy Obrázek 59 – pozadí menu Obrázek 60 – vektorový obrázek s textem KONEC 61 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 61 – vektorový obrázek s textem O HRE Obrázek 62 – vektorový obrázek s textem START Obrázek 63 – vektorový obrázek s textem STARGATE Obrázek 64 – vnitřní část brány po aktivaci 62 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie Obrázek 65 – textura pro povrch kamenných objektů Obrázek 66 – textura pro podstavec brány Obrázek 67 – ikona hry Obrázek 68 – vektorový obrázek pro konečnou scénu 63 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 13.2 SEZNAM SKRIPTŮ 13.2.1 start.js 1 #pragma strict 2 function Start (){ 3 Screen.lockCursor = false; 4 } 5 function OnMouseDown () { 6 Screen.lockCursor = true; 7 Application.LoadLevel ("game"); 8 } 13.2.2 oHre.js 1 #pragma strict 2 var mys = 0; 3 var scrollPosition : Vector2; 4 var longString = ""; 5 6 function OnMouseDown () { 7 8 mys = 1; } 9 function OnGUI () { 10 if(mys == 1){ 11 scrollPosition = GUILayout.BeginScrollView ( 12 scrollPosition, GUILayout.Width (600), GUILayout.Height (320)); 64 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 13 14 GUILayout.Label (longString); 15 GUILayout.EndScrollView (); 16 //if (GUILayout.Button ("Ovládani")) 17 longString = "Vytvořil: David Chudek\n\nTato hra byla vytvořena jako součást 18 19 dlouhodobé maturitní práce na téma:\nLogická počítačová hra jako studie programování 20 interaktivní 3D grafická.\n\nOvládání\n\nW = chůze vpřed\nS = chůze vzad\nA = chůze 21 vlevo\nD = chůze vpravo\nShift = sprint\nEsc = návrat do menu\nLeft Click = levé kliknutí 22 myší\n"; 23 } 24 } 13.2.3 konec.js 1 #pragma strict 2 function OnMouseDown () { 3 Application.Quit(); 4 } 13.2.4 konecvoda.js 1 #pragma strict 2 function OnTriggerEnter (){ 3 Application.LoadLevel ("konec"); 4 } 13.2.5 zOvladani.js 1 #pragma strict 65 Střední průmyslová škola na Proseku 2 18-20-M/01 informační technologie function Update () { 3 if (Input.GetKeyDown ("escape")){ 4 Screen.lockCursor = false; 5 Application.LoadLevel ("menu"); 6 7 } 13.2.6 tlacitko_stred.js 1 #pragma strict 2 public var OK = 0; 3 function OnMouseDown () { 4 5 OK = 1; } 13.2.7 zadavani.js 1 #pragma strict 2 //var speed = 45.0; 3 var aktualniP : float = 355.3846f; 4 var sevron0 : float = 355.3846f; 5 var sevron1 : float = 35.3846f; 6 var sevron2 : float = 75.3846f; 7 var sevron3 : float = 115.3846f; 8 var sevron4 : float = 235.3846f; 9 var sevron5 : float = 275.3846f; 10 var sevron6 : float = 315.3846f; 66 Střední průmyslová škola na Proseku 11 var postupsevron = 1; 12 var porovnat : float = 0; 13 var spustit : float = 0; 14 var PolohaSymbol : float =0; 15 var ZadanySymbol = 0; 16 var ZSymbol1 = 0; 17 var ZPSymbol1 = 0; 18 var ZSymbol2 = 0; 19 var ZPSymbol2 = 0; 20 var ZSymbol3 = 0; 21 var ZPSymbol3 = 0; 22 var ZSymbol4 = 0; 23 var ZPSymbol4 = 0; 24 var ZSymbol5 = 0; 25 var ZPSymbol5 = 0; 26 var ZSymbol6 = 0; 27 var ZPSymbol6 = 0; 28 var ZSymbol7 = 0; 29 var ZPSymbol7 = 0; 30 var pocet = 0; 31 var dalsi = 0; 32 public var klik : AudioClip; 33 public var sevron : AudioClip; 18-20-M/01 informační technologie 67 Střední průmyslová škola na Proseku 34 public var start : AudioClip; 35 public var error : AudioClip; 18-20-M/01 informační technologie 36 37 @script RequireComponent(AudioSource) 38 //http://unity3d.com/learn/tutorials/modules/beginner/scripting/getcomponent 39 //var AudioClip tlacitko; 40 //cube1 promenna na objekt z ktereho tahám pormennou: !!!! nutno přiřadit v objektu 41 public var kruh : GameObject; 42 public var voda : GameObject; 43 var Avoda: Animation; 44 public var sevron_0 : GameObject; 45 var Asevron_0: Animation; 46 public var sevron_1 : GameObject; 47 var Asevron_1: Animation; 48 public var sevron_2 : GameObject; 49 var Asevron_2: Animation; 50 public var sevron_3 : GameObject; 51 var Asevron_3: Animation; 52 public var sevron_4 : GameObject; 53 var Asevron_4: Animation; 54 public var sevron_5 : GameObject; 55 var Asevron_5: Animation; 56 public var sevron_6 : GameObject; 68 Střední průmyslová škola na Proseku 57 18-20-M/01 informační technologie var Asevron_6: Animation; 58 59 public var Objzeme : GameObject; 60 public var Objcreater : GameObject; 61 public var Objvirgo : GameObject; 62 public var Objbootes : GameObject; 63 public var Objcentaurus : GameObject; 64 public var Objlibra : GameObject; 65 public var Objserpens_caput : GameObject; 66 public var Objnorma : GameObject; 67 public var Objscorpius : GameObject; 68 public var Objcorona_australis : GameObject; 69 public var Objscutum : GameObject; 70 public var Objsagittarius : GameObject; 71 //public var Objaquila : GameObject; 72 public var Objmicroscopium : GameObject; 73 public var Objcapricornus : GameObject; 74 public var Objpiscis_austrinus : GameObject; 75 public var Objequuleus : GameObject; 76 public var Objaquarius : GameObject; 77 public var Objpegasus : GameObject; 78 public var Objsculptor : GameObject; 79 public var Objpisces : GameObject; 69 Střední průmyslová škola na Proseku 80 public var Objandromeda : GameObject; 81 public var Objtriangulum : GameObject; 82 public var Objaries : GameObject; 83 public var Objperseus : GameObject; 84 public var Objcetus : GameObject; 85 public var Objtaurus : GameObject; 86 public var Objauriga : GameObject; 87 public var Objeridanus : GameObject; 88 public var Objorion : GameObject; 89 public var Objcanis_minor : GameObject; 90 public var Objmonoceros : GameObject; 91 public var Objgemini : GameObject; 92 public var Objhydra : GameObject; 93 public var Objlynx : GameObject; 94 public var Objcancer : GameObject; 95 public var Objsextans : GameObject; 96 public var Objleo_minor : GameObject; 97 public var Objleo : GameObject; 18-20-M/01 informační technologie 98 99 // definovani - promenna : nazev skriptu; 100 101 private var Stlacitkostred : tlacitko_stred; 102 private var Szeme : zeme; 70 Střední průmyslová škola na Proseku 103 private var Screater : creater; 104 private var Svirgo : virgo; 105 private var Sbootes : bootes; 106 private var Scentaurus : centaurus; 107 private var Slibra : libra; 108 private var Sserpens_caput : serpens_caput; 109 private var Snorma : norma; 110 private var Sscorpius : scorpius; 111 private var Scorona_australis : corona_australis; 112 private var Sscutum : scutum; 113 private var Ssagittarius : sagittarius; 114 //private var Aquila: aquila; 115 private var Smicroscopium : microscopium; 116 private var Scapricornus 117 private var Spiscis_austrinus : piscis_austrinus; 118 private var Sequuleus : equuleus; 119 private var Saquarius : aquarius; 120 private var Spegasus : pegasus; 121 private var Ssculptor : sculptor; 122 private var Spisces : pisces; 123 private var Sandromeda : andromeda; 124 private var Striangulum 125 private var Saries : aries; 18-20-M/01 informační technologie : capricornus; : triangulum; 71 Střední průmyslová škola na Proseku 126 private var Sperseus : perseus; 127 private var Scetus : cetus; 128 private var Staurus : taurus; 129 private var Sauriga : auriga; 130 private var Seridanus : eridanus; 131 private var Sorion : orion; 132 private var Scanis_minor : canis_minor; 133 private var Smonoceros : monoceros; 134 private var Sgemini : gemini; 135 private var Shydra : hydra; 136 private var Slynx : lynx; 137 private var Scancer : cancer; 138 private var Ssextans : sextans; 139 private var Sleo_minor : leo_minor; 140 private var Sleo : leo; 18-20-M/01 informační technologie 141 142 143 function Awake () 144 { 145 Stlacitkostred = GetComponent(tlacitko_stred); 146 Szeme = Objzeme.GetComponent(zeme); 147 Screater = Objcreater.GetComponent(creater); 148 Svirgo = Objvirgo.GetComponent(virgo); 72 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 149 Sbootes = Objbootes.GetComponent(bootes); 150 Scentaurus = Objcentaurus.GetComponent(centaurus); 151 Slibra = Objlibra.GetComponent(libra); 152 Sserpens_caput = Objserpens_caput.GetComponent(serpens_caput); 153 Snorma = Objnorma.GetComponent(norma); 154 Sscorpius = Objscorpius.GetComponent(scorpius); 155 Scorona_australis = Objcorona_australis.GetComponent(corona_australis); 156 Sscutum = Objscutum.GetComponent(scutum); 157 Ssagittarius = Objsagittarius.GetComponent(sagittarius); 158 //Aquila = Objaquila.GetComponent(aquila); 159 Smicroscopium = Objmicroscopium.GetComponent(microscopium); 160 Scapricornus = Objcapricornus.GetComponent(capricornus); 161 Spiscis_austrinus = Objpiscis_austrinus.GetComponent(piscis_austrinus); 162 Sequuleus = Objequuleus.GetComponent(equuleus); 163 Saquarius = Objaquarius.GetComponent(aquarius); 164 Spegasus = Objpegasus.GetComponent(pegasus); 165 Ssculptor = Objsculptor.GetComponent(sculptor); 166 Spisces = Objpisces.GetComponent(pisces); 167 Sandromeda = Objandromeda.GetComponent(andromeda); 168 Striangulum 169 Saries = Objaries.GetComponent(aries); 170 Sperseus = Objperseus.GetComponent(perseus); 171 Scetus = Objcetus.GetComponent(cetus); = Objtriangulum.GetComponent(triangulum); 73 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 172 Staurus = Objtaurus.GetComponent(taurus); 173 Sauriga = Objauriga.GetComponent(auriga); 174 Seridanus = Objeridanus.GetComponent(eridanus); 175 Sorion = Objorion.GetComponent(orion); 176 Scanis_minor = Objcanis_minor.GetComponent(canis_minor); 177 Smonoceros = Objmonoceros.GetComponent(monoceros); 178 Sgemini = Objgemini.GetComponent(gemini); 179 Shydra = Objhydra.GetComponent(hydra); 180 Slynx = Objlynx.GetComponent(lynx); 181 Scancer = Objcancer.GetComponent(cancer); 182 Ssextans = Objsextans.GetComponent(sextans); 183 Sleo_minor = Objleo_minor.GetComponent(leo_minor); 184 Sleo = Objleo.GetComponent(leo); 185 } 186 187 188 function Update () { //var pole1 = new 189 Array("Szeme.zmacknuto","Screater.zmacknuto","Svirgo.zmacknuto","Sbootes.zmacknuto"," 190 Scentaurus.zmacknuto","Slibra.zmacknuto","Sserpens_caput.zmacknuto","Snorma.zmacknut 191 o","Sscorpius.zmacknuto","Scorona_australis.zmacknuto","Sscutum.zmacknuto","Ssagittarius 192 .zmacknuto","Saquila.zmacknuto","Smicroscopium.zmacknuto","Scapricornus.zmacknuto"," 193 Spiscis_austrinus.zmacknuto","Sequuleus.zmacknuto","Saquarius.zmacknuto","Spegasus.zma 194 cknuto","Ssculptor.zmacknuto","Spisces.zmacknuto","Sandromeda.zmacknuto","Striangulum 195 .zmacknuto","Saries.zmacknuto","Sperseus.zmacknuto","Scetus.zmacknuto","Staurus.zmackn 196 uto","Sauriga.zmacknuto","Seridanus.zmacknuto","Sorion.zmacknuto","Scanis_minor.zmack 74 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 197 nuto","Smonoceros.zmacknuto","Sgemini.zmacknuto","Shydra.zmacknuto","Slynx.zmacknut 198 o","Scancer.zmacknuto","Ssextans.zmacknuto","Sleo_minor.zmacknuto","Sleo.zmacknuto"); 199 //var pole2 = new 200 Array("Szeme.identitaS","Screater.identitaS","Svirgo.identitaS","Sbootes.identitaS","Scentau 201 rus.identitaS","Slibra.identitaS","Sserpens_caput.identitaS","Snorma.identitaS","Sscorpius.ide 202 ntitaS","Scorona_australis.identitaS","Sscutum.identitaS","Ssagittarius.identitaS","Saquila.ide 203 ntitaS","Smicroscopium.identitaS","Scapricornus.identitaS","Spiscis_austrinus.identitaS","Se 204 quuleus.identitaS","Saquarius.identitaS","Spegasus.identitaS","Ssculptor.identitaS","Spisces.i 205 dentitaS","Sandromeda.identitaS","Striangulum.identitaS","Saries.identitaS","Sperseus.identit 206 aS","Scetus.identitaS","Staurus.identitaS","Sauriga.identitaS","Seridanus.identitaS","Sorion.i 207 dentitaS","Scanis_minor.identitaS","Smonoceros.identitaS","Sgemini.identitaS","Shydra.iden 208 titaS","Slynx.identitaS","Scancer.identitaS","Ssextans.identitaS","Sleo_minor.identitaS","Sle 209 o.identitaS"); 210 //var pole3 = new 211 Array("Szeme.Pzeme","Screater.Pcreater","Svirgo.Pvirgo","Sbootes.Pbootes","Scentaurus.Pc 212 entaurus","Slibra.Plibra","Sserpens_caput.Pserpens_caput","Snorma.Pnorma","Sscorpius.Psc 213 orpius","Scorona_australis.Pcorona_australis","Sscutum.Pscutum","Ssagittarius.Psagittarius", 214 "Saquila.Paquila","Smicroscopium.Pmicroscopium","Scapricornus.Pcapricornus","Spiscis_au 215 strinus.Ppiscis_austrinus","Sequuleus.Pequuleus","Saquarius.Paquarius","Spegasus.Ppegasus" 216 ,"Ssculptor.Psculptor","Spisces.Ppisces","Sandromeda.Pandromeda","Striangulum.Ptriangulu 217 m","Saries.Paries","Sperseus.Pperseus","Scetus.Pcetus","Staurus.Ptaurus","Sauriga.Pauriga"," 218 Seridanus.Peridanus","Sorion.Porion","Scanis_minor.Pcanis_minor","Smonoceros.Pmonocer 219 os","Sgemini.Pgemini","Shydra.Phydra","Slynx.Plynx","Scancer.Pcancer","Ssextans.Psextans 220 ","Sleo_minor.Pleo_minor","Sleo.Pleo"); 221 /* 222 for (var value1 : String in pole1) { 223 for (var value2 : String in pole2) { 224 for (var value3 : String in pole3) { 225 Debug.Log(value1); 226 Debug.Log(value2); 75 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 227 Debug.Log(value3); 228 if (value1 == 1 && value2 == 1){ 229 //PolohaSymbol = value3; 230 //value1 = 0; 231 spustit = 1; 232 } 233 } 234 } 235 } 236 */ 237 238 239 if (pocet <= 7){ if (Szeme.zmacknuto == 1 && Szeme.identitaS == 1){ 240 PolohaSymbol = Szeme.Pzeme; 241 ZadanySymbol = Szeme.identitaS; 242 Szeme.zmacknuto = 0; 243 spustit=1; 244 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 245 } 246 else if (Screater.zmacknuto == 1 && Screater.identitaS == 2){ 247 PolohaSymbol = Screater.Pcreater; 248 ZadanySymbol = Screater.identitaS; 249 Screater.zmacknuto = 0; 76 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 250 spustit=1; 251 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 252 } 253 else if (Svirgo.zmacknuto == 1 && Svirgo.identitaS == 3){ 254 PolohaSymbol = Svirgo.Pvirgo; 255 ZadanySymbol = Svirgo.identitaS; 256 Svirgo.zmacknuto = 0; 257 spustit=1; 258 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 259 } 260 else if (Sbootes.zmacknuto == 1 && Sbootes.identitaS == 4){ 261 PolohaSymbol = Sbootes.Pbootes; 262 ZadanySymbol = Sbootes.identitaS; 263 Sbootes.zmacknuto = 0; 264 spustit=1; 265 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 266 } 267 else if (Scentaurus.zmacknuto == 1 && Scentaurus.identitaS == 5){ 268 PolohaSymbol = Scentaurus.Pcentaurus; 269 ZadanySymbol = Scentaurus.identitaS; 270 Scentaurus.zmacknuto = 0; 271 spustit=1; 272 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 77 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 273 } 274 else if (Slibra.zmacknuto == 1 && Slibra.identitaS == 6){ 275 PolohaSymbol = Slibra.Plibra; 276 ZadanySymbol = Slibra.identitaS; 277 Slibra.zmacknuto = 0; 278 spustit=1; 279 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 280 } 281 else if (Sserpens_caput.zmacknuto == 1 && Sserpens_caput.identitaS 282 == { 283 PolohaSymbol = Sserpens_caput.Pserpens_caput; 284 ZadanySymbol = Sserpens_caput.identitaS; 285 Sserpens_caput.zmacknuto = 0; 286 spustit=1; 287 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 288 } 289 else if (Snorma.zmacknuto == 1 && Snorma.identitaS == 8){ 290 PolohaSymbol = Snorma.Pnorma; 291 ZadanySymbol = Snorma.identitaS; 292 Snorma.zmacknuto = 0; 293 spustit=1; 294 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 295 } 78 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 296 else if (Sscorpius.zmacknuto == 1 && Sscorpius.identitaS == 9){ 297 PolohaSymbol = Sscorpius.Pscorpius; 298 ZadanySymbol = Sscorpius.identitaS; 299 Sscorpius.zmacknuto = 0; 300 spustit=1; 301 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 302 } 303 else if (Scorona_australis.zmacknuto == 1 && 304 Scorona_australis.identitaS == 10){ 305 PolohaSymbol = Scorona_australis.Pcorona_australis; 306 ZadanySymbol = Scorona_australis.identitaS; 307 Scorona_australis.zmacknuto = 0; 308 spustit=1; 309 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 310 } 311 else if (Sscutum.zmacknuto == 1 && Sscutum.identitaS == 11){ 312 PolohaSymbol = Sscutum.Pscutum; 313 ZadanySymbol = Sscutum.identitaS; 314 Sscutum.zmacknuto = 0; 315 spustit=1; 316 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 317 } 318 else if (Ssagittarius.zmacknuto == 1 && Ssagittarius.identitaS == 12){ 79 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 319 PolohaSymbol = Ssagittarius.Psagittarius; 320 ZadanySymbol = Ssagittarius.identitaS; 321 Ssagittarius.zmacknuto = 0; 322 spustit=1; 323 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 324 } 325 /*else if (Saquila.zmacknuto == 1 && Saquila.identitaS == 13){ 326 PolohaSymbol = Saquila.Paquila; 327 ZadanySymbol = Saquila.identitaS; 328 Saquila.zmacknuto = 0; 329 spustit=1; 330 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 331 }*/ 332 else if (Smicroscopium.zmacknuto == 1 && Smicroscopium.identitaS 333 == { 334 PolohaSymbol = Smicroscopium.Pmicroscopium; 335 ZadanySymbol = Smicroscopium.identitaS; 336 Smicroscopium.zmacknuto = 0; 337 spustit=1; 338 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 339 } 340 else if (Scapricornus.zmacknuto == 1 && Scapricornus.identitaS == { 341 PolohaSymbol = Scapricornus.Pcapricornus; 80 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 342 ZadanySymbol = Scapricornus.identitaS; 343 Scapricornus.zmacknuto = 0; 344 spustit=1; 345 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 346 } 347 else if (Spiscis_austrinus.zmacknuto == 1 && 348 Spiscis_austrinus.identitaS == 16){ 349 PolohaSymbol = Spiscis_austrinus.Ppiscis_austrinus; 350 ZadanySymbol = Spiscis_austrinus.identitaS; 351 Spiscis_austrinus.zmacknuto = 0; 352 spustit=1; 353 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 354 } 355 else if (Sequuleus.zmacknuto == 1 && Sequuleus.identitaS == 17){ 356 PolohaSymbol = Sequuleus.Pequuleus; 357 ZadanySymbol = Sequuleus.identitaS; 358 Sequuleus.zmacknuto = 0; 359 spustit=1; 360 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 361 } 362 else if (Saquarius.zmacknuto == 1 && Saquarius.identitaS == 18){ 363 PolohaSymbol = Saquarius.Paquarius; 364 ZadanySymbol = Saquarius.identitaS; 81 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 365 Saquarius.zmacknuto = 0; 366 spustit=1; 367 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 368 } 369 else if (Spegasus.zmacknuto == 1 && Spegasus.identitaS == 19){ 370 PolohaSymbol = Spegasus.Ppegasus; 371 ZadanySymbol = Spegasus.identitaS; 372 Spegasus.zmacknuto = 0; 373 spustit=1; 374 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 375 } 376 else if (Ssculptor.zmacknuto == 1 && Ssculptor.identitaS == 20){ 377 PolohaSymbol = Ssculptor.Psculptor; 378 ZadanySymbol = Ssculptor.identitaS; 379 Ssculptor.zmacknuto = 0; 380 spustit=1; 381 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 382 } 383 else if (Spisces.zmacknuto == 1 && Spisces.identitaS == 21){ 384 PolohaSymbol = Spisces.Ppisces; 385 ZadanySymbol = Spisces.identitaS; 386 Spisces.zmacknuto = 0; 387 spustit=1; 82 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 388 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 389 } 390 else if (Sandromeda.zmacknuto == 1 && Sandromeda.identitaS == { 391 PolohaSymbol = Sandromeda.Pandromeda; 392 ZadanySymbol = Sandromeda.identitaS; 393 Sandromeda.zmacknuto = 0; 394 spustit=1; 395 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 396 } 397 else if (Striangulum.zmacknuto == 1 && Striangulum.identitaS == { 398 PolohaSymbol = Striangulum.Ptriangulum; 399 ZadanySymbol = Striangulum.identitaS; 400 Striangulum.zmacknuto = 0; 401 spustit=1; 402 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 403 } 404 else if (Saries.zmacknuto == 1 && Saries.identitaS == 24){ 405 PolohaSymbol = Saries.Paries; 406 ZadanySymbol = Saries.identitaS; 407 Saries.zmacknuto = 0; 408 spustit=1; 409 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 410 } 83 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 411 else if (Sperseus.zmacknuto == 1 && Sperseus.identitaS == 25){ 412 PolohaSymbol = Sperseus.Pperseus; 413 ZadanySymbol = Sperseus.identitaS; 414 Sperseus.zmacknuto = 0; 415 spustit=1; 416 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 417 } 418 else if (Scetus.zmacknuto == 1 && Scetus.identitaS == 26){ 419 PolohaSymbol = Scetus.Pcetus; 420 ZadanySymbol = Scetus.identitaS; 421 Scetus.zmacknuto = 0; 422 spustit=1; 423 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 424 } 425 else if (Staurus.zmacknuto == 1 && Staurus.identitaS == 27){ 426 PolohaSymbol = Staurus.Ptaurus; 427 ZadanySymbol = Staurus.identitaS; 428 Staurus.zmacknuto = 0; 429 spustit=1; 430 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 431 } 432 else if (Sauriga.zmacknuto == 1 && Sauriga.identitaS == 28){ 433 PolohaSymbol = Sauriga.Pauriga; 84 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 434 ZadanySymbol = Sauriga.identitaS; 435 Sauriga.zmacknuto = 0; 436 spustit=1; 437 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 438 } 439 else if (Seridanus.zmacknuto == 1 && Seridanus.identitaS == 29){ 440 PolohaSymbol = Seridanus.Peridanus; 441 ZadanySymbol = Seridanus.identitaS; 442 Seridanus.zmacknuto = 0; 443 spustit=1; 444 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 445 } 446 else if (Sorion.zmacknuto == 1 && Sorion.identitaS == 30){ 447 PolohaSymbol = Sorion.Porion; 448 ZadanySymbol = Sorion.identitaS; 449 Sorion.zmacknuto = 0; 450 spustit=1; 451 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 452 } 453 else if (Scanis_minor.zmacknuto == 1 && Scanis_minor.identitaS == { 454 PolohaSymbol = Scanis_minor.Pcanis_minor; 455 ZadanySymbol = Scanis_minor.identitaS; 456 Scanis_minor.zmacknuto = 0; 85 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 457 spustit=1; 458 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 459 } 460 else if (Smonoceros.zmacknuto == 1 && Smonoceros.identitaS == { 461 PolohaSymbol = Smonoceros.Pmonoceros; 462 ZadanySymbol = Smonoceros.identitaS; 463 Smonoceros.zmacknuto = 0; 464 spustit=1; 465 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 466 } 467 else if (Sgemini.zmacknuto == 1 && Sgemini.identitaS == 33){ 468 PolohaSymbol = Sgemini.Pgemini; 469 ZadanySymbol = Sgemini.identitaS; 470 Sgemini.zmacknuto = 0; 471 spustit=1; 472 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 473 } 474 else if (Shydra.zmacknuto == 1 && Shydra.identitaS == 34){ 475 PolohaSymbol = Shydra.Phydra; 476 ZadanySymbol = Shydra.identitaS; 477 Shydra.zmacknuto = 0; 478 spustit=1; 479 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 86 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 480 } 481 else if (Slynx.zmacknuto == 1 && Slynx.identitaS == 35){ 482 PolohaSymbol = Slynx.Plynx; 483 ZadanySymbol = Slynx.identitaS; 484 Slynx.zmacknuto = 0; 485 spustit=1; 486 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 487 } 488 else if (Scancer.zmacknuto == 1 && Scancer.identitaS == 36){ 489 PolohaSymbol = Scancer.Pcancer; 490 ZadanySymbol = Scancer.identitaS; 491 Scancer.zmacknuto = 0; 492 spustit=1; 493 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 494 } 495 else if (Ssextans.zmacknuto == 1 && Ssextans.identitaS == 37){ 496 PolohaSymbol = Ssextans.Psextans; 497 ZadanySymbol = Ssextans.identitaS; 498 Ssextans.zmacknuto = 0; 499 spustit=1; 500 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 501 } 502 else if (Sleo_minor.zmacknuto == 1 && Sleo_minor.identitaS == 38){ 87 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 503 PolohaSymbol = Sleo_minor.Pleo_minor; 504 ZadanySymbol = Sleo_minor.identitaS; 505 Sleo_minor.zmacknuto = 0; 506 spustit=1; 507 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 508 } 509 else if (Sleo.zmacknuto == 1 && Sleo.identitaS == 39){ 510 PolohaSymbol = Sleo.Pleo; 511 ZadanySymbol = Sleo.identitaS; 512 Sleo.zmacknuto = 0; 513 spustit=1; 514 AudioSource.PlayClipAtPoint(klik, new Vector3 (5, 1, 2)); 515 } 516 } 517 518 if (spustit == 1 && postupsevron == 1 && ZadanySymbol != 0){ 519 ZSymbol1 = ZadanySymbol; 520 ZPSymbol1 = PolohaSymbol; 521 pocet = 2; 522 dalsi = 1; 523 //spustit=1; 524 //print (1); 525 //Debug.Log(ZSymbol1); 88 Střední průmyslová škola na Proseku 526 527 18-20-M/01 informační technologie } else if (pocet == 2 && ZadanySymbol != ZSymbol1){ 528 ZSymbol2 = ZadanySymbol; 529 ZPSymbol2 = PolohaSymbol; 530 pocet = 3; 531 //print (2); 532 //Debug.Log(ZSymbol2); 533 } 534 else if (pocet == 3 && spustit == 1 && ZadanySymbol != ZSymbol2){ 535 pocet = 4; 536 ZSymbol3 = ZadanySymbol; 537 ZPSymbol3 = PolohaSymbol; 538 //print (3); 539 //Debug.Log(ZSymbol3); 540 } 541 else if (pocet == 4 && spustit == 1 && ZadanySymbol != ZSymbol1 && 542 ZadanySymbol != ZSymbol2 && ZadanySymbol != ZSymbol3){ 543 pocet = 5; 544 ZSymbol4 = ZadanySymbol; 545 ZPSymbol4 = PolohaSymbol; 546 //print (4); 547 //Debug.Log(ZSymbol4); 548 } 89 Střední průmyslová škola na Proseku 549 18-20-M/01 informační technologie else if (pocet == 5 && spustit == 1 && ZadanySymbol != ZSymbol1 && 550 ZadanySymbol != ZSymbol2 && ZadanySymbol != ZSymbol3 && ZadanySymbol != 551 ZSymbol4){ 552 pocet = 6; 553 ZSymbol5 = ZadanySymbol; 554 ZPSymbol5 = PolohaSymbol; 555 //print (5); 556 //Debug.Log(ZSymbol5); 557 } 558 else if (pocet == 6 && spustit == 1 && ZadanySymbol != ZSymbol1 && 559 ZadanySymbol != ZSymbol2 && ZadanySymbol != ZSymbol3 && ZadanySymbol != 560 ZSymbol4 && ZadanySymbol != ZSymbol5){ 561 pocet = 7; 562 ZSymbol6 = ZadanySymbol; 563 ZPSymbol6 = PolohaSymbol; 564 //print (6); 565 //Debug.Log(ZSymbol6); 566 } 567 else if (pocet == 7 && spustit == 1 && ZadanySymbol != ZSymbol1 && 568 ZadanySymbol != ZSymbol2 && ZadanySymbol != ZSymbol3 && ZadanySymbol != 569 ZSymbol4 && ZadanySymbol != ZSymbol5 && ZadanySymbol != ZSymbol6){ 570 pocet = 8; 571 ZSymbol7 = ZadanySymbol; 572 ZPSymbol7 = PolohaSymbol; 573 print (7); 90 Střední průmyslová škola na Proseku 574 575 18-20-M/01 informační technologie Debug.Log(ZSymbol7); } 576 577 578 579 580 581 if (postupsevron == 1){ 582 if (spustit == 1){ 583 //ZPSymbol1 = 0; 584 kruh.transform.Rotate(0, 0, Time.deltaTime*20); 585 aktualniP = kruh.transform.eulerAngles.z; 586 porovnat = aktualniP-ZPSymbol1; 587 //var psevron1 : float = Mathf.Clamp(porovnat, sevron1, sevron1+2.4); 588 589 if (porovnat >= 360){porovnat -= 360;} 590 dalsi = 0 ; 591 //Debug.Log(psevron1); 592 //Debug.Log(porovnat); 593 if (porovnat >= 35.3846 && porovnat <= 40){ 594 if (ZSymbol2 == 0){spustit = 0;} 595 dalsi = 2; 596 postupsevron = 2; 597 Asevron_1.GetComponent.<Animation>().Play("sevron_1"); 91 Střední průmyslová škola na Proseku 598 AudioSource.PlayClipAtPoint(sevron, new Vector3 (5, 1, 2)); 599 } 600 601 18-20-M/01 informační technologie } } 602 603 604 if (postupsevron == 2 && spustit == 1 ||postupsevron == 2 && ZPSymbol2 != 0 && dalsi == 2){ 605 kruh.transform.Rotate(0, 0, Time.deltaTime*20); 606 aktualniP = kruh.transform.eulerAngles.z; 607 porovnat = aktualniP-ZPSymbol2 ; 608 //var psevron2 : float = Mathf.Clamp(porovnat, sevron2, sevron2+0.4); 609 610 if (porovnat >= 360){porovnat -= 360;} 611 612 if (porovnat >= 75.3846 && porovnat <= 80){ 613 spustit = 0; 614 postupsevron = 3; 615 Asevron_2.GetComponent.<Animation>().Play("sevron_2"); 616 AudioSource.PlayClipAtPoint(sevron, new Vector3 (5, 1, 2)); 617 618 } } 619 620 if (postupsevron == 3 && spustit == 1 || postupsevron == 3 && ZPSymbol3 != 0){ 92 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 621 622 kruh.transform.Rotate(0, 0, Time.deltaTime*20); 623 aktualniP = kruh.transform.eulerAngles.z; 624 porovnat = aktualniP-PolohaSymbol ; 625 //var psevron3 : float = Mathf.Clamp(porovnat, sevron3, sevron3+0.4); 626 627 if (porovnat >= 360){porovnat -= 360;} 628 629 if (porovnat >= 115.3846 && porovnat <= 120){ 630 spustit = 0; 631 postupsevron = 4; 632 Asevron_3.GetComponent.<Animation>().Play("sevron_3"); 633 AudioSource.PlayClipAtPoint(sevron, new Vector3 (5, 1, 2)); 634 635 } } 636 637 if (postupsevron == 4){ 638 if (spustit == 1){ 639 kruh.transform.Rotate(0, 0, Time.deltaTime*20); 640 aktualniP = kruh.transform.eulerAngles.z; 641 porovnat = aktualniP-PolohaSymbol ; 642 //var psevron4 : float = Mathf.Clamp(porovnat, sevron4, sevron4+0.4); 643 93 Střední průmyslová škola na Proseku 644 18-20-M/01 informační technologie if (porovnat >= 360){porovnat -= 360;} 645 646 if (porovnat >= 235.3846 && porovnat <= 240){ 647 spustit = 0; 648 postupsevron = 5; 649 Asevron_4.GetComponent.<Animation>().Play("sevron_4"); 650 AudioSource.PlayClipAtPoint(sevron, new Vector3 (5, 1, 2)); 651 } 652 653 } } 654 655 if (postupsevron == 5){ 656 if (spustit == 1){ 657 kruh.transform.Rotate(0, 0, Time.deltaTime*20); 658 aktualniP = kruh.transform.eulerAngles.z; 659 porovnat = aktualniP-PolohaSymbol ; 660 //var psevron5 : float = Mathf.Clamp(porovnat, sevron5, sevron5+0.4); 661 662 if (porovnat >= 360){porovnat -= 360;} 663 664 if (porovnat >= 275.3846 && porovnat <= 280){ 665 666 spustit = 0; 94 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 667 postupsevron = 6; 668 Asevron_5.GetComponent.<Animation>().Play("sevron_5"); 669 AudioSource.PlayClipAtPoint(sevron, new Vector3 (5, 1, 2)); 670 } 671 672 } } 673 674 if (postupsevron == 6){ 675 if (spustit == 1){ 676 kruh.transform.Rotate(0, 0, Time.deltaTime*20); 677 aktualniP = kruh.transform.eulerAngles.z; 678 porovnat = aktualniP-PolohaSymbol ; 679 //var psevron6 : float = Mathf.Clamp(porovnat, sevron6, sevron6+0.4); 680 681 if (porovnat >= 360){porovnat -= 360;} 682 683 if (porovnat >= 315.3846 && porovnat <= 320){ 684 spustit = 0; 685 postupsevron = 7; 686 Asevron_6.GetComponent.<Animation>().Play("sevron_6"); 687 AudioSource.PlayClipAtPoint(sevron, new Vector3 (5, 1, 2)); 688 689 } } 95 Střední průmyslová škola na Proseku 690 18-20-M/01 informační technologie } 691 692 if (postupsevron == 7){ 693 if (spustit == 1){ 694 kruh.transform.Rotate(0, 0, Time.deltaTime*20); 695 aktualniP = kruh.transform.eulerAngles.z; 696 porovnat = aktualniP-PolohaSymbol ; 697 var psevron0 : float = Mathf.Clamp(porovnat, sevron0, sevron0+0.4); 698 699 if (porovnat >= 360){porovnat -= 360;} 700 701 if (porovnat >= 355.384 && porovnat <= 360){ 702 spustit = 0; 703 postupsevron = 1; 704 Asevron_0.GetComponent.<Animation>().Play("sevron_0"); 705 AudioSource.PlayClipAtPoint(sevron, new Vector3 (5, 1, 2)); 706 } 707 } 708 } 709 if (Stlacitkostred.OK == 1 && ZSymbol1 != ZSymbol2 && ZSymbol1 != ZSymbol3 710 && ZSymbol1 != ZSymbol4 && ZSymbol1 != ZSymbol5 && ZSymbol1 != ZSymbol6 && 711 ZSymbol1 != ZSymbol7 && ZSymbol7 == 1){ 712 //pust animaci 713 Avoda.GetComponent.<Animation>().Play("voda"); 96 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 714 AudioSource.PlayClipAtPoint(start, new Vector3 (5, 1, 2)); 715 Stlacitkostred.OK = 0; 716 } 717 718 else if (Stlacitkostred.OK == 1) { 719 AudioSource.PlayClipAtPoint(error, new Vector3 (5, 1, 2)); 720 Stlacitkostred.OK = 0; 721 postupsevron = 1; 722 porovnat = 0; 723 spustit = 0; 724 ZadanySymbol = 0; 725 ZSymbol1 = 0; 726 ZPSymbol1 = 0; 727 ZSymbol2 = 0; 728 ZPSymbol2 = 0; 729 ZSymbol3 = 0; 730 ZPSymbol3 = 0; 731 ZSymbol4 = 0; 732 ZPSymbol4 = 0; 733 ZSymbol5 = 0; 734 ZPSymbol5 = 0; 735 ZSymbol6 = 0; 736 ZPSymbol6 = 0; 97 Střední průmyslová škola na Proseku 737 ZSymbol7 = 0; 738 ZPSymbol7 = 0; 739 pocet = 0; 740 dalsi = 0; 741 18-20-M/01 informační technologie } 742 743 } 13.2.8 zamerovac.js 1 #pragma strict 2 function OnGUI (){ 3 GUI.Label(Rect(.5 * Screen.width, .5 * Screen.height, .5 * Screen.width, .5 * Screen.height), 4 "<b>O</b>"); 5 } 13.2.9 kkonec.js 1 #pragma strict 2 function OnMouseDown () { 3 4 Application.LoadLevel ("menu"); } 13.2.10 zeme.js 1 #pragma strict 2 public var zmacknuto = 0; 3 public var Pzeme : float = 0; 4 public var identitaS = 0; 5 6 function OnMouseDown () { 98 Střední průmyslová škola na Proseku 7 zmacknuto = 1; 8 identitaS = 1; 9 //Debug.Log(Pzeme); 10 transform.position.y -= 0.01; 11 yield WaitForSeconds(0.1); 12 transform.position.y += 0.01; 13 18-20-M/01 informační technologie } 99 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 13.3 SEZNAM SCHÉMAT Schéma 1 – propojení scén a skriptů 100 Střední průmyslová škola na Proseku 18-20-M/01 informační technologie 13.4 PLAKÁT Obrázek 69 - Plákat k maturitní práci 101