//Dibuja el bloque superior de la ventana que contiene: tiempo, control velocidad, conteo de recursos y menu principal private void bloqueSuperior() { float ajusteRecursos = 0; GUI.BeginGroup (new Rect (cuantoW * 0, cuantoH * 0, cuantoW * 80, cuantoH * 4)); GUI.Box (new Rect (cuantoW * 0, cuantoH * 0, cuantoW * 73, cuantoH * 4), "", "BloqueSuperior"); //Tiempo GUI.Label (new Rect (cuantoW * 2, cuantoH * 0, cuantoW * 6, cuantoH * 2), principal.numPasos.ToString (), "EtiquetaTiempo"); /* [Aris] * He creado el metodo para formatear la fecha y que no salga solo un numero cutre, pero ahora mismo * no hay espacio en la cabecera. Lo dejo aqui comentado para que comentes una y descomentes la otra * si te animas ;) */ // GUI.Label(new Rect(cuantoW*2,cuantoH*0,cuantoW*6,cuantoH*2),FuncTablero.formateaFechaPasos(principal.numPasos),"EtiquetaTiempo"); //Velocidad if (GUI.Button (new Rect (cuantoW * 3, cuantoH * 2, cuantoW * 1, cuantoH * 1), new GUIContent ("", "Pausa el juego"), "BotonPausa")) principal.setEscalaTiempo (0.0f); if (GUI.Button (new Rect (cuantoW * 4, cuantoH * 2, cuantoW * 1, cuantoH * 1), new GUIContent ("", "Velocidad normal"), "BotonVelocidad1")) principal.setEscalaTiempo (1.0f); if (GUI.Button (new Rect (cuantoW * 5, cuantoH * 2, cuantoW * 1, cuantoH * 1), new GUIContent ("", "Velocidad 2x"), "BotonVelocidad2")) principal.setEscalaTiempo (2.0f); if (GUI.Button (new Rect (cuantoW * 6, cuantoH * 2, cuantoW * 1, cuantoH * 1), new GUIContent ("", "Velocidad 5x"), "BotonVelocidad5")) principal.setEscalaTiempo (5.0f); //Energia GUI.Box (new Rect (cuantoW * 12, cuantoH * 0, cuantoW * 2, cuantoH * 2), new GUIContent ("", "Energía"), "IconoEnergia"); GUI.Box (new Rect (cuantoW * 14, cuantoH * 0, cuantoW * 7, cuantoH * 2), new GUIContent ("", principal.energia.ToString () + "/" + principal.energiaMax.ToString ()), "BoxEnergia"); ajusteRecursos = (System.Math.Abs (principal.energiaDif) < 100) ? 0 : 0.5f; GUI.Label (new Rect (cuantoW * 14, cuantoH * 0, cuantoW * (5 - ajusteRecursos), cuantoH * 2), principal.energia.ToString (), "LabelEnergia"); if (principal.energiaDif >= 0) GUI.Label (new Rect (cuantoW * (19 - ajusteRecursos), cuantoH * 0, cuantoW * (2 + ajusteRecursos), cuantoH * 2), "+" + principal.energiaDif.ToString (), "LabelRecursosDifVerde"); else GUI.Label (new Rect (cuantoW * (19 - ajusteRecursos), cuantoH * 0, cuantoW * (2 + ajusteRecursos), cuantoH * 2), "" + principal.energiaDif.ToString (), "LabelRecursosDifRojo"); //Componentes basicos GUI.Box (new Rect (cuantoW * 22, cuantoH * 0, cuantoW * 2, cuantoH * 2), new GUIContent ("", "Componentes básicos"), "IconoCompBas"); GUI.Box (new Rect (cuantoW * 24, cuantoH * 0, cuantoW * 7, cuantoH * 2), new GUIContent ("", principal.componentesBasicos.ToString () + "/" + principal.componentesBasicosMax.ToString ()), "BoxCompBas"); ajusteRecursos = (System.Math.Abs (principal.componentesBasicosDif) < 100) ? 0 : 0.5f; GUI.Label (new Rect (cuantoW * 24, cuantoH * 0, cuantoW * (5 - ajusteRecursos), cuantoH * 2), principal.componentesBasicos.ToString (), "LabelCompBas"); if (principal.componentesBasicosDif >= 0) GUI.Label (new Rect (cuantoW * (29 - ajusteRecursos), cuantoH * 0, cuantoW * (2 + ajusteRecursos), cuantoH * 2), "+" + principal.componentesBasicosDif.ToString (), "LabelRecursosDifVerde"); else GUI.Label (new Rect (cuantoW * (29 - ajusteRecursos), cuantoH * 0, cuantoW * (2 + ajusteRecursos), cuantoH * 2), "" + principal.componentesBasicosDif.ToString (), "LabelRecursosDifRojo"); //Componentes avanzados GUI.Box (new Rect (cuantoW * 32, cuantoH * 0, cuantoW * 2, cuantoH * 2), new GUIContent ("", "Componentes avanzados"), "IconoCompAdv"); GUI.Box (new Rect (cuantoW * 34, cuantoH * 0, cuantoW * 7, cuantoH * 2), new GUIContent ("", principal.componentesAvanzados.ToString () + "/" + principal.componentesAvanzadosMax.ToString ()), "BoxCompAdv"); ajusteRecursos = (System.Math.Abs (principal.componentesAvanzadosDif) < 100) ? 0 : 0.5f; GUI.Label (new Rect (cuantoW * 34, cuantoH * 0, cuantoW * (5 - ajusteRecursos), cuantoH * 2), principal.componentesAvanzados.ToString (), "LabelCompAdv"); if (principal.componentesAvanzadosDif >= 0) GUI.Label (new Rect (cuantoW * (39 - ajusteRecursos), cuantoH * 0, cuantoW * (2 + ajusteRecursos), cuantoH * 2), "+" + principal.componentesAvanzadosDif.ToString (), "LabelRecursosDifVerde"); else GUI.Label (new Rect (cuantoW * (39 - ajusteRecursos), cuantoH * 0, cuantoW * (2 + ajusteRecursos), cuantoH * 2), "" + principal.componentesAvanzadosDif.ToString (), "LabelRecursosDifRojo"); //Material biologico GUI.Box (new Rect (cuantoW * 42, cuantoH * 0, cuantoW * 2, cuantoH * 2), new GUIContent ("", "Material biológico"), "IconoMatBio"); GUI.Box (new Rect (cuantoW * 44, cuantoH * 0, cuantoW * 7, cuantoH * 2), new GUIContent ("", principal.materialBiologico.ToString () + "/" + principal.materialBiologicoMax.ToString ()), "BoxMatBio"); ajusteRecursos = (System.Math.Abs (principal.materialBiologicoDif) < 100) ? 0 : 0.5f; GUI.Label (new Rect (cuantoW * 44, cuantoH * 0, cuantoW * (5 - ajusteRecursos), cuantoH * 2), principal.materialBiologico.ToString (), "LabelMatBio"); if (principal.materialBiologicoDif >= 0) GUI.Label (new Rect (cuantoW * (49 - ajusteRecursos), cuantoH * 0, cuantoW * (2 + ajusteRecursos), cuantoH * 2), "+" + principal.materialBiologicoDif.ToString (), "LabelRecursosDifVerde"); else GUI.Label (new Rect (cuantoW * (49 - ajusteRecursos), cuantoH * 0, cuantoW * (2 + ajusteRecursos), cuantoH * 2), "" + principal.materialBiologicoDif.ToString (), "LabelRecursosDifRojo"); //Menu if (GUI.Button (new Rect (cuantoW * 73, cuantoH * 0, cuantoW * 7, cuantoH * 4), new GUIContent ("", "Accede al menu del juego"), "BotonMenu")) { escalaTiempoAntesMenu = principal.escalaTiempo; principal.setEscalaTiempo (0); accion = InterfazPrincipal.taccion.mostrarMenu; accionMenu = InterfazPrincipal.taccionMenu.mostrarMenu; } GUI.EndGroup (); }
//Dibuja el menu de opciones que contiene Guardar, Opciones de audio, Menu Principal, Salir, Volver private void bloqueMenu() { float posicionBloque = 0; float posicionConfirmar = 0; float posicionAudio = 0; float posicionGuardar = 0; switch (aspectRatio) { case taspectRatio.aspectRatio16_9: posicionBloque = 13.5f; posicionConfirmar = 19.5f; posicionAudio = 16.5f; posicionGuardar = 14.5f; break; case taspectRatio.aspectRatio16_10: posicionBloque = 16; posicionConfirmar = 22; posicionAudio = 19; posicionGuardar = 17; break; case taspectRatio.aspectRatio4_3: posicionBloque = 21; posicionConfirmar = 27; posicionAudio = 24; posicionGuardar = 22; break; default: break; } switch (accionMenu) { case taccionMenu.mostrarMenu: GUILayout.BeginArea (new Rect (cuantoW * 32.5f, cuantoH * posicionBloque, cuantoW * 15, cuantoH * 18), new GUIContent ()); GUILayout.BeginVertical (); GUILayout.Box (new GUIContent (), "BloqueMenu", GUILayout.Height (cuantoH * 3), GUILayout.Width (cuantoW * 15)); if (GUILayout.Button (new GUIContent ("Guardar partida", "Accede al menu para guardar tu partida"), "BotonGuardarPartida", GUILayout.Height (cuantoH * 3), GUILayout.Width (cuantoW * 15))) accionMenu = InterfazPrincipal.taccionMenu.mostrarGuardar; if (GUILayout.Button (new GUIContent ("Opciones de audio", "Lleva al menu de opciones de audio"), "BotonOpcionesAudio", GUILayout.Height (cuantoH * 3), GUILayout.Width (cuantoW * 15))) accionMenu = InterfazPrincipal.taccionMenu.mostrarOpcionesAudio; if (GUILayout.Button (new GUIContent ("Menu principal", "Lleva al menu principal del juego"), "BotonMenuPrincipal", GUILayout.Height (cuantoH * 3), GUILayout.Width (cuantoW * 15))) accionMenu = InterfazPrincipal.taccionMenu.mostrarSalirMenuPrincipal; if (GUILayout.Button (new GUIContent ("Salir del juego", "Cierra completamente el juego"), "BotonSalirJuego", GUILayout.Height (cuantoH * 3), GUILayout.Width (cuantoW * 15))) accionMenu = InterfazPrincipal.taccionMenu.mostrarSalirJuego; if (GUILayout.Button (new GUIContent ("Volver", "Vuelve a la partida"), "BotonVolver", GUILayout.Height (cuantoH * 3), GUILayout.Width (cuantoW * 15))) { accion = InterfazPrincipal.taccion.ninguna; principal.setEscalaTiempo (escalaTiempoAntesMenu); } GUILayout.EndVertical (); GUILayout.EndArea (); if (GUI.Button (new Rect (0, 0, cuantoW * 80, cuantoH * 60), new GUIContent (), "EstiloVacio")) { ; //CLINK -> Control para que no se pulse fuera del menú (Buena idea!) } break; case taccionMenu.mostrarGuardar: GUI.Box (new Rect (cuantoW * 31, cuantoH * posicionGuardar, cuantoW * 18, cuantoH * 14), new GUIContent (""), "BoxGuardar"); posicionScroll = GUI.BeginScrollView (new Rect (cuantoW * 31, cuantoH * posicionGuardar, cuantoW * 18, cuantoH * 12), posicionScroll, new Rect (0, 0, cuantoW * 18, cuantoH * 4 * numSavesExtra)); if (GUI.Button (new Rect (cuantoW * 3, 0, cuantoW * 12, cuantoH * 3), new GUIContent ("Nueva partida salvada", "Guardar una nueva partida"))) { GameObject contenedor = GameObject.FindGameObjectWithTag ("Carga"); ValoresCarga temp = contenedor.GetComponent<ValoresCarga> (); principal.rellenaContenedor (ref temp); string fecha = System.DateTime.Now.ToString ().Replace ("\\", "").Replace ("/", "").Replace (" ", "").Replace (":", ""); SaveLoad.cambiaFileName ("Partida" + fecha + ".hur"); SaveLoad.Save (temp); //Recargar los saves para actualizar estado numSaves = SaveLoad.FileCount (); nombresSaves = new string[numSaves]; nombresSaves = SaveLoad.getFileNames (); numSavesExtra = numSaves - 3; if (numSavesExtra < 0) numSavesExtra = 0; //Recuperar estado normal accion = InterfazPrincipal.taccion.ninguna; principal.setEscalaTiempo (escalaTiempoAntesMenu); } for (int i = 0; i < numSaves; i++) { if (GUI.Button (new Rect (cuantoW * 3, (i + 1) * cuantoH * 3, cuantoW * 12, cuantoH * 3), new GUIContent (nombresSaves[i], "Sobreescribir partida num. " + i))) { GameObject contenedor = GameObject.FindGameObjectWithTag ("Carga"); ValoresCarga temp = contenedor.GetComponent<ValoresCarga> (); principal.rellenaContenedor (ref temp); SaveLoad.cambiaFileName (nombresSaves[i]); SaveLoad.Save (temp); //Recuperar estado normal accion = InterfazPrincipal.taccion.ninguna; principal.setEscalaTiempo (escalaTiempoAntesMenu); } } GUI.EndScrollView (); if (GUI.Button (new Rect (cuantoW * 44, cuantoH * (posicionGuardar + 13), cuantoW * 5, cuantoH * 2), new GUIContent ("Volver", "Pulsa aquí para volver al menu de opciones"))) { accionMenu = InterfazPrincipal.taccionMenu.mostrarMenu; } break; case taccionMenu.mostrarOpcionesAudio: GUI.Box (new Rect (cuantoW * 32.5f, cuantoH * posicionAudio, cuantoW * 15, cuantoH * 12), new GUIContent (), "BoxOpcionesAudio"); /*GUI.Label(new Rect(cuantoW*34f,cuantoH*(posicionAudio),cuantoW*15.5f,cuantoH*2),new GUIContent("Sonido"));*/ GUI.Label (new Rect (cuantoW * 34f, cuantoH * (posicionAudio + 2f), cuantoW * 9, cuantoH * 2), new GUIContent ("Volumen")); GUI.Label (new Rect (cuantoW * 34f, cuantoH * (posicionAudio + 4f), cuantoW * 6.5f, cuantoH * 2), new GUIContent ("Música")); musicaVol = GUI.HorizontalSlider (new Rect (cuantoW * 39f, cuantoH * (posicionAudio + 5f), cuantoW * 7, cuantoH * 2), musicaVol, 0, 1.0f); GUI.Label (new Rect (cuantoW * 34f, cuantoH * (posicionAudio + 6f), cuantoW * 5.5f, cuantoH * 2), new GUIContent ("Efectos")); sfxVol = GUI.HorizontalSlider (new Rect (cuantoW * 39f, cuantoH * (posicionAudio + 7f), cuantoW * 7, cuantoH * 2), sfxVol, 0, 1.0f); if (GUI.Button (new Rect (cuantoW * 41f, cuantoH * (posicionAudio + 9.5f), cuantoW * 5f, cuantoH * 2f), new GUIContent ("Volver", "Pulsa aquí para volver al menu de opciones"))) accionMenu = InterfazPrincipal.taccionMenu.mostrarMenu; if (GUI.changed) { //Volumen del audio ambiente Audio_Ambiente ambiente = sonidoAmbiente.GetComponent<Audio_Ambiente> (); if (musicaVol == 0) ambiente.activado = false; else ambiente.activado = true; ambiente.volumen = musicaVol; //Volumen del audio de efectos Audio_SoundFX efectos = sonidoFX.GetComponent<Audio_SoundFX> (); if (sfxVol == 0) efectos.activado = false; else efectos.activado = true; efectos.volumen = sfxVol; } break; case taccionMenu.mostrarSalirMenuPrincipal: GUI.Box (new Rect (cuantoW * 36, cuantoH * posicionConfirmar, cuantoW * 8, cuantoH * 4), new GUIContent (), "BoxConfirmacion"); GUI.Label (new Rect (cuantoW * 37.5f, cuantoH * (posicionConfirmar), cuantoW * 6, cuantoH * 2), new GUIContent ("¿Está seguro?")); if (GUI.Button (new Rect (cuantoW * 37, cuantoH * (posicionConfirmar + 2), cuantoW * 2.5f, cuantoH * 1.5f), new GUIContent ("Si", "Pulsa aquí para salir al menu principal"))) { accion = InterfazPrincipal.taccion.ninguna; principal.setEscalaTiempo (1.0f); FuncTablero.quitaPerlin (); Application.LoadLevel ("Escena_Inicial"); } if (GUI.Button (new Rect (cuantoW * 40.5f, cuantoH * (posicionConfirmar + 2), cuantoW * 2.5f, cuantoH * 1.5f), new GUIContent ("No", "Pulsa aquí para volver al menu de opciones"))) accionMenu = InterfazPrincipal.taccionMenu.mostrarMenu; break; case taccionMenu.mostrarSalirJuego: GUI.Box (new Rect (cuantoW * 36, cuantoH * posicionConfirmar, cuantoW * 8, cuantoH * 4), new GUIContent (), "BoxConfirmacion"); GUI.Label (new Rect (cuantoW * 37.5f, cuantoH * (posicionConfirmar), cuantoW * 6, cuantoH * 2), new GUIContent ("¿Está seguro?")); if (GUI.Button (new Rect (cuantoW * 37, cuantoH * (posicionConfirmar + 2), cuantoW * 2.5f, cuantoH * 1.5f), new GUIContent ("Si", "Pulsa aquí para salir del juego"))) { PlayerPrefs.Save(); Application.Quit (); } if (GUI.Button (new Rect (cuantoW * 40.5f, cuantoH * (posicionConfirmar + 2), cuantoW * 2.5f, cuantoH * 1.5f), new GUIContent ("No", "Pulsa aquí para volver al menu de opciones"))) accionMenu = InterfazPrincipal.taccionMenu.mostrarMenu; break; default: break; } }