Chudek_4itb_maturitn.. - Střední průmyslová škola na Proseku

Transkript

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