-
Notifications
You must be signed in to change notification settings - Fork 0
/
menuControlador.cs
275 lines (219 loc) · 7.21 KB
/
menuControlador.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class menuControlador : MonoBehaviour {
// variaveis para ativar e desativar os elementos do jogo
public GameObject jogador;
public GameObject hudUI;
public GameObject menuCamera;
public GameObject menuUI;
public GameObject botaoJogar;
public GameObject botaoContinue;
public GameObject botaoConfiguracoes;
public GameObject configuracaoCamera;
public GameObject configuracaoUI;
public GameObject introUI;
public GameObject introducaoUI;
public GameObject instrucoesUI;
public GameObject luzes;
public GameObject creditosUI;
// temporizador de visibilidade das instrucoes na tela
private float timerInstrucao = 8.0f;
// controle de quando o jogador clicou para comecar o jogo (apos introducao)
private bool comecarJogo = false;
// Use this for initialization
void Start () {
// define o jogador (FPC) e a hud in game como desativadas
jogador.SetActive (false);
hudUI.SetActive (false);
// define o menu principal como ativo
menuUI.SetActive (true);
menuCamera.SetActive (true);
// define o botao de continue como falso
botaoContinue.SetActive (false);
// define o menu de configuracoes como desativado
configuracaoUI.SetActive (false);
configuracaoCamera.SetActive (false);
// prepara a tela de introducao e instrucoes e define como desativada
introducaoUI.SetActive (true);
instrucoesUI.SetActive (false);
introUI.SetActive (false);
// define as luzes como desligadas
luzes.SetActive (false);
// define a tela de creditos como desativada
creditosUI.SetActive (false);
}
// Update is called once per frame
void Update () {
// executa quando o jogador finalizou o jogo (encontrou todas as notas, o video e passou o tempo de interacao do computador)
if(computador_script.videoEncontrado)
{
// acende as luzes apos o som do teclado parar
if(computador_script.timer <= 0)
{
// define as luzes como ligadas
luzes.SetActive (true);
}
// exibicao dos creditos apos 2 segundos
if(computador_script.timer <= -2)
{
// define o jogador (FPC) e a hud in game como desativadas
jogador.SetActive (false);
hudUI.SetActive (false);
// ativa a camera do menu
menuCamera.SetActive (true);
// ativa os creditos na tela
creditosUI.SetActive (true);
}
// volta ao menu principal de encerramento de jogo apos 15 segundos
if(computador_script.timer <= -17)
{
// habilitando o cursor do mouse
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
// desativa os creditos na tela
creditosUI.SetActive (false);
// ativa o menu principal
menuUI.SetActive (true);
// desativa os botoes de jogar, continue e configuraçoes
botaoJogar.SetActive (false);
botaoContinue.SetActive (false);
botaoConfiguracoes.SetActive (false);
}
}
// executa quando o jogador clicou no botao Comecar na tela de introducao
if(comecarJogo)
{
// contagem regressiva do temporizador de exibicao das instrucoes
timerInstrucao -= Time.deltaTime;
// executa quando o tempo de exibicao das instrucoes acaba
if(timerInstrucao <= 0)
{
// desativa a tela de introducao e instrucoes
introUI.SetActive (false);
// desativa a camera do menu
menuCamera.SetActive (false);
// ativa o jogador na cena e a hud
jogador.SetActive (true);
hudUI.SetActive (true);
// desativa o controle
comecarJogo = false;
}
}
// quando o jogador pressiona ESC
if(Input.GetKeyDown(KeyCode.Escape))
{
// impede do menu de pause ser acessado sem ser durante o jogo (ou seja, apenas quando o jogador esta ativo pode executar)
if(jogador.activeInHierarchy)
{
// define o jogador (FPC) e a hud in game como desativadas
jogador.SetActive (false);
hudUI.SetActive (false);
// habilitando o cursor do mouse
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
// ativa o menu de pausa
menuUI.SetActive (true);
menuCamera.SetActive (true);
// troca o botao de jogar por continue
botaoJogar.SetActive (false);
botaoContinue.SetActive (true);
}
}
}
// metodo que inicia o jogo quando o jogador clica no botao Jogar no menu principal
public void StartGame () {
// desativa o menu principal para dar inicio ao jogo
menuUI.SetActive (false);
// ativa a tela de introducao e instrucoes
introUI.SetActive (true);
introducaoUI.SetActive (true);
instrucoesUI.SetActive (false);
}
// metodo que inicia o jogo quando o jogador clica no botao de Comecar na tela de introducao
public void ComecarGame () {
// desabilitando o cursor do mouse
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
// ativa a exibicao das intrucoes do jogo na tela
instrucoesUI.SetActive (true);
introducaoUI.SetActive (false);
comecarJogo = true;
}
// metodo que inicia o jogo quando o jogador clica no botao Continue no menu de pausa
public void ContinueGame () {
// desabilitando o cursor do mouse
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
// desativa o menu principal para dar inicio ao jogo
menuUI.SetActive (false);
menuCamera.SetActive (false);
// ativa o jogador na cena e a hud
jogador.SetActive (true);
hudUI.SetActive (true);
}
// metodo que abre o menu de configuracoes do jogo quando o jogador clica no botao Configuracoes no menu principal
public void SettingsGame () {
// desativa o menu principal
menuUI.SetActive (false);
menuCamera.SetActive (false);
// ativa o menu de configuracoes
configuracaoUI.SetActive (true);
configuracaoCamera.SetActive (true);
}
// metodo ativado toda vez que o jogador muda o valor do Slider de audio no menu de configuracoes
public void MudaVolume () {
// ajusta o volume do audio de acordo com o valor do Slider
AudioListener.volume = GameObject.FindGameObjectWithTag("Volume").GetComponent<Slider>().value;
}
// metodo ativado toda vez que o jogador muda o valor do Slider de video no menu de configuracoes
public void MudaQualidade () {
// coleta o valor atual no slider
float quali = GameObject.FindGameObjectWithTag("Qualidade").GetComponent<Slider>().value;
// define qual a qualidade selecionada
if(quali >=0 && quali < 1)
{
// Fastest
QualitySettings.SetQualityLevel(0);
}
else if(quali >=1 && quali < 2)
{
// Fast
QualitySettings.SetQualityLevel(1);
}
else if(quali >=2 && quali < 3)
{
// Simple
QualitySettings.SetQualityLevel(2);
}
else if(quali >=3 && quali < 4)
{
// Good
QualitySettings.SetQualityLevel(3);
}
else if(quali >=4 && quali < 5)
{
// Beautiful
QualitySettings.SetQualityLevel(4);
}
else if(quali >=5 && quali < 6)
{
// Fantastic
QualitySettings.SetQualityLevel(5);
}
}
// metodo que abre novamente o menu principal depois do jogador clicar em Voltar no menu de configuracoes
public void QuitSettings () {
// desativa o menu de configuracoes
configuracaoUI.SetActive (false);
configuracaoCamera.SetActive (false);
// ativa o menu principal
menuUI.SetActive (true);
menuCamera.SetActive (true);
}
// metodo que encerra o jogo quando o jogador clica no botao Sair no menu principal
public void QuitGame () {
// fecha o jogo
Application.Quit();
}
}