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.
().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.().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.().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.().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.().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.().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.().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.().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
"O");
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