internal Juego(Form1 form1, bool anfitrion) { int formHandle; // Asigna variables del juego this.form1 = form1; this.anfitrion = anfitrion; // Setea lo esencial del juego formHandle = form1.Handle.ToInt32(); ladoLocal = anfitrion ? ConstructorTablero.LadoTablero.izquierda : ConstructorTablero.LadoTablero.derecha; EstadoGeneralDelJuego = anfitrion ? EstadoDelJuego.EsperandoAccionLocal : EstadoDelJuego.EsperandoAccionRed; // Para saber quien inicia la partida // Setea el motor multimedia del juego audio = new Audio(); //instancia el sistema de audio grafico = new Grafico(formHandle, 800, 500, form1, this); //instancia el sistema grafico mouse = new Mouse(formHandle); // Desencadena el resto del juego tablero = form1.ConstructorTablero.obtenerTablero(form1.NombreTablero, grafico);//crear el arreglo que representa el tablero Personaje.Tablero = tablero; form1.cambiarTurno(anfitrion); setPersonajes(form1.PersonajesLocales, true); setPersonajes(form1.PersonajesRemotos, false); audio.musicaDeFondoIniciar(); // Reproduce la musica de fondo grafico.iniciarGraficas(tablero); // Inicia el renderizado grafico.crearTableroEnPantalla(); // Representar el arreglo que representa el tablero en pantalla }
void Start() { estadoDelJuego = EstadoDelJuego.Libre; CalcularTiempoHastaProximoEncuentro(); juego = Juego.instancia; juego.SetMision(this); jugador = FindObjectOfType <Jugador>(); }
internal void formDoubleClick() { switch (EstadoGeneralDelJuego) { case EstadoDelJuego.PersonajeSeleccionadoMoverLocal: case EstadoDelJuego.PersonajeSeleccionadoAtacarLocal: deseleccionarPersonaje(); grafico.ocultarRango(); EstadoGeneralDelJuego = EstadoDelJuego.EsperandoAccionLocal; form1.Conexion.enviarDatos("6"); break; } }
internal void cambiarTurno() { yaAtaco = yaMovio = false; switch (EstadoGeneralDelJuego) { case EstadoDelJuego.EsperandoAccionLocal: EstadoGeneralDelJuego = EstadoDelJuego.EsperandoAccionRed; form1.cambiarTurno(false); break; case EstadoDelJuego.EsperandoAccionRed: EstadoGeneralDelJuego = EstadoDelJuego.EsperandoAccionLocal; form1.cambiarTurno(true); break; } }
internal void matarPersonaje(Personaje futuroDifunto) { Coordenada coordenadaEnTablero = localizarPersonaje(futuroDifunto); tablero[coordenadaEnTablero.X, coordenadaEnTablero.Y].Personaje = null; for (int i = 0; i < 5; i++) { if (personajesLocales[i] != null && personajesLocales[i].Equals(futuroDifunto)) { personajesLocales[i] = null; contadorLocales++; } else if (personajesRemotos[i] != null && personajesRemotos[i].Equals(futuroDifunto)) { personajesRemotos[i] = null; contadorRemotos++; } } // ----Declara un ganador if (contadorRemotos == 5) { MessageBox.Show("Gano"); EstadoGeneralDelJuego = EstadoDelJuego.PersonajeGano; grafico.declaracion(true); } else if (contadorLocales == 5) { MessageBox.Show("Perdio"); EstadoGeneralDelJuego = EstadoDelJuego.PersonajePerdio; grafico.declaracion(false); } // ---- | ----- if (form1.timerModoBatallaCompleto.Enabled) { victimaSeleccionadaMBC = null; personajeSeleccionadoDerecho(); form1.timerModoBatallaCompleto.Enabled = false; } else { deseleccionarPersonaje(); } }
private void EstablecerEstadoDelJuego() { if (jugadasDelJugador.Count > 0 && jugadasDelJugador.Count == jugadasDeLaCompu.Count) { var jugadorAdivinó = jugadasDelJugador.Last().Bien == 4; var compuAdivinó = jugadasDeLaCompu.Last().Bien == 4; if (jugadorAdivinó) { Estado = compuAdivinó ? EstadoDelJuego.Empate : EstadoDelJuego.GanoElJugador; } else if (compuAdivinó) { Estado = EstadoDelJuego.GanoLaCompu; } } }
internal void modoBatallaCompletoRemoto(Coordenada coor) { ConstructorTablero.LadoTablero lado; lado = ladoLocal == ConstructorTablero.LadoTablero.derecha ? ConstructorTablero.LadoTablero.izquierda : ConstructorTablero.LadoTablero.derecha; grafico.ocultarRango(); victimaSeleccionadaMBC = tablero[coor.X, coor.Y].Personaje; personajeSeleccionadoDerecho(); form1.timerModoBatallaCompleto.Enabled = true; teclaMBC_huir = true; grafico.ataqueCompleto(personajeSeleccionado, victimaSeleccionadaMBC, lado); EstadoGeneralDelJuego = EstadoDelJuego.EsperandoAccionRed; }
internal void formClickRemoto(Coordenada coor, string boton) { ConstructorTablero.LadoTablero lado; lado = ladoLocal == ConstructorTablero.LadoTablero.derecha ? ConstructorTablero.LadoTablero.izquierda : ConstructorTablero.LadoTablero.derecha; switch (EstadoGeneralDelJuego) { case EstadoDelJuego.EsperandoAccionRed: switch (boton) { case "izquierdo": grafico.mostrarRango(personajeSeleccionado.rangoMovimiento(coor), grafico.idImagen_interfaz_CuadroRangoMover); EstadoGeneralDelJuego = EstadoDelJuego.PersonajeSeleccionadoMoverRed; break; case "derecho": grafico.mostrarRango(personajeSeleccionado.rangoAtaque(coor), grafico.idImagen_interfaz_CuadroRangoAtacar); EstadoGeneralDelJuego = EstadoDelJuego.PersonajeSeleccionadoAtacarRed; break; } break; case EstadoDelJuego.PersonajeSeleccionadoMoverRed: grafico.ocultarRango(); moverPersonaje(personajeSeleccionadoCoor, coor); seleccionarPersonaje(coor); EstadoGeneralDelJuego = EstadoDelJuego.EsperandoAccionRed; break; case EstadoDelJuego.PersonajeSeleccionadoAtacarRed: grafico.ocultarRango(); grafico.ataqueSimple(personajeSeleccionado, tablero[coor.X, coor.Y].Personaje, lado); seleccionarPersonaje(coor); EstadoGeneralDelJuego = EstadoDelJuego.EsperandoAccionRed; break; } }
/// <summary> /// Método que se llama cada vez que hay que refrescar la pantalla. /// Escribir aquí todo el código referido al renderizado. /// Borrar todo lo que no haga falta /// </summary> /// <param name="elapsedTime">Tiempo en segundos transcurridos desde el último frame</param> public override void render(float elapsedTime) { //Device de DirectX para renderizar Device d3dDevice = GuiController.Instance.D3dDevice; TgcD3dInput input = GuiController.Instance.D3dInput; if (input.keyPressed(Microsoft.DirectX.DirectInput.Key.I)) { estado = EstadoDelJuego.Instrucciones; } if (EjemploAlumno.Instance.estado == EstadoDelJuego.SinEmpezar) { menu.renderSinEmpezar(this); } if (EjemploAlumno.Instance.estado == EstadoDelJuego.Instrucciones) { menu.renderInstrucciones(this); } if (EjemploAlumno.Instance.estado == EstadoDelJuego.Ganado) { menu.renderGanado(this); } if (EjemploAlumno.Instance.estado == EstadoDelJuego.Perdido) { menu.renderPerdido(this); } if (EjemploAlumno.Instance.estado == EstadoDelJuego.Jugando) { renderJuego(elapsedTime, d3dDevice); } }
// permite cargar nuevamente el nivel por haberlo perdido private void ReiniciarNivel() { this.vidas--; if (this.vidas == 0) this.estado = EstadoDelJuego.perdido; else { this.dibujables = new List<IDibujable>(); this.actuables = new List<IActuable>(); this.nivelActual.Cargar(); } }
// permite pasar de nivel private void PasarDeNivel() { this.nivelActual = this.niveles[nivelActual.Numero]; this.dibujables = new List<IDibujable>(); this.actuables = new List<IActuable>(); this.nivelActual.Cargar(); this.estado = EstadoDelJuego.jugando; }
// actualiza el menu principal segun el estado del juego private void ActualizarMenuPrincipal(KeyboardState teclado) { this.menuPrincipal.ActualizarControlDelUsuario(teclado); if (teclado.IsKeyDown(Keys.Enter)) { if (this.menuPrincipal.ItemActivado() == 0) { this.estado = EstadoDelJuego.jugando; this.menuPrincipal.AgregarItem("Continuar", 0); } if (this.menuPrincipal.ItemActivado() == 1) { try { CargarJuego(); } catch (FileNotFoundException) { } estado = EstadoDelJuego.jugando; } if (this.menuPrincipal.ItemActivado() == 2) { GuardarJuego(); this.Exit(); } if (this.menuPrincipal.ItemActivado() == 3) this.Exit(); } }
// controla el estado del juego private void ActualizarEstadoDelJuego() { if (estado == EstadoDelJuego.jugando) { this.nivelActual.Actualizar(); if (this.nivelActual.Perdido()) this.ReiniciarNivel(); if (this.nivelActual.Ganado()) { if (nivelActual.Numero == niveles.Count()) this.estado = EstadoDelJuego.ganado; else this.estado = EstadoDelJuego.pausado; } } }
// metodo encargado de las acciones que el usuario solicita por teclado private void ActualizarControlDelUsuario(KeyboardState teclado) { Bombita bombita = nivelActual.Bombita; if ((this.contadorDeCiclos >= (CICLOS_PARA_ACTUALIZAR_CONTROL_DEL_USUARIO - bombita.Velocidad())) && ((this.contadorDeCiclos % (CICLOS_PARA_ACTUALIZAR_CONTROL_DEL_USUARIO - bombita.Velocidad())) == 0)) { if (this.estado == EstadoDelJuego.pausado || this.estado == EstadoDelJuego.iniciando) { if (this.nivelActual.Ganado()) { if (teclado.IsKeyDown(Keys.Enter)) this.PasarDeNivel(); } else this.ActualizarMenuPrincipal(teclado); } if (this.estado == EstadoDelJuego.jugando) { if (teclado.IsKeyDown(Keys.Right)) bombita.MoverAlEste(); if (teclado.IsKeyDown(Keys.Left)) bombita.MoverAlOeste(); if (teclado.IsKeyDown(Keys.Up)) bombita.MoverAlNorte(); if (teclado.IsKeyDown(Keys.Down)) bombita.MoverAlSur(); if (teclado.IsKeyDown(Keys.Space)) bombita.LanzarExplosivo(); if (teclado.IsKeyDown(Keys.P)) this.estado = EstadoDelJuego.pausado; } if (this.estado == EstadoDelJuego.ganado || this.estado == EstadoDelJuego.perdido) { if (teclado.IsKeyDown(Keys.Enter)) this.Initialize(); } } contadorDeCiclos++; }
private void EstablecerEstadoDelJuego() { if (jugadasDelJugador.Count > 0 && jugadasDelJugador.Count == jugadasDeLaCompu.Count) { var jugadorAdivinó = jugadasDelJugador.Last().Bien == 4; var compuAdivinó = jugadasDeLaCompu.Last().Bien == 4; if (jugadorAdivinó) Estado = compuAdivinó ? EstadoDelJuego.Empate : EstadoDelJuego.GanoElJugador; else if (compuAdivinó) Estado = EstadoDelJuego.GanoLaCompu; } }
internal void formDoubleClickRemoto() { deseleccionarPersonaje(); grafico.ocultarRango(); EstadoGeneralDelJuego = EstadoDelJuego.EsperandoAccionRed; }
public Juego() { Estado = EstadoDelJuego.Jugando; jugadasDelJugador = new List <NumeroAdivinado>(); jugadasDeLaCompu = new List <NumeroAdivinado>(); }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { // TODO: Add your initialization logic here this.dibujables = new List<IDibujable>(); this.actuables = new List<IActuable>(); this.contadorDeCiclos = 0; this.vidas = VIDAS_POSIBLES; Window.Title = "Boomberman- 2012"; this.estado = EstadoDelJuego.iniciando; this.menuPrincipal = new Menu(4, Color.Red, Color.Yellow, ANCHO, ALTO, Content.Load<SpriteFont>("SpriteFont2")); this.menuPrincipal.AgregarItem("Nuevo Juego", 0); this.menuPrincipal.AgregarItem("Cargar", 1); this.menuPrincipal.AgregarItem("Guardar", 2); this.menuPrincipal.AgregarItem("Salir", 3); base.Initialize(); }
public Juego() { Estado = EstadoDelJuego.Jugando; jugadasDelJugador = new List<NumeroAdivinado>(); jugadasDeLaCompu = new List<NumeroAdivinado>(); }
internal void formClick() // Este metodo se recibe cuando el usuario da click en el formulario { Coordenada coor = grafico.bloqueDelTableroSeleccionado(mouse.MousePosX, mouse.MousePosY); // Obtiene el bloque que se selecciono con el mouse if (coor == null) { return; } switch (EstadoGeneralDelJuego) { case EstadoDelJuego.EsperandoAccionLocal: if (seleccionarPersonaje(coor)) // Se marca como personaje seleccionado al que se le dio click { form1.Conexion.enviarDatos("8;" + coor.X + "," + coor.Y); } else { break; } if (tablero[coor.X, coor.Y].Personaje.EsLocal) { Mouse.MouseClick clic = mouse.mouseClick(); // Obtiene cual de los tres botones del mouse fue presionado switch (clic) { case Mouse.MouseClick.izquierdo: if (!yaMovio) { grafico.mostrarRango(personajeSeleccionado.rangoMovimiento(coor), grafico.idImagen_interfaz_CuadroRangoMover); EstadoGeneralDelJuego = EstadoDelJuego.PersonajeSeleccionadoMoverLocal; //cambia el estado del juego form1.Conexion.enviarDatos("2;" + coor.X + "," + coor.Y + "," + clic.ToString()); } break; case Mouse.MouseClick.derecho: if (!yaAtaco) { grafico.mostrarRango(personajeSeleccionado.rangoAtaque(coor), grafico.idImagen_interfaz_CuadroRangoAtacar); EstadoGeneralDelJuego = EstadoDelJuego.PersonajeSeleccionadoAtacarLocal; //cambia el estado del juego a... personaje seleccionado para mover form1.Conexion.enviarDatos("2;" + coor.X + "," + coor.Y + "," + clic.ToString()); } break; } } break; case EstadoDelJuego.PersonajeSeleccionadoMoverLocal: if (comprobarRango(coor, personajeSeleccionado.rangoMovimiento(personajeSeleccionadoCoor))) // Comprueba si el cuadro al que se le dio click esta dentro del rango de movimiento del personaje seleccionado { grafico.ocultarRango(); moverPersonaje(personajeSeleccionadoCoor, coor); // Mover personaje seleccionarPersonaje(coor); yaMovio = !yaMovio; EstadoGeneralDelJuego = EstadoDelJuego.EsperandoAccionLocal; // Cambiando estado a esperando accion form1.Conexion.enviarDatos("3;" + coor.X + "," + coor.Y); if (yaAtaco) { cambiarTurno(); form1.Conexion.enviarDatos("7"); } } break; case EstadoDelJuego.PersonajeSeleccionadoAtacarLocal: if (tablero[coor.X, coor.Y].Personaje != null && !tablero[coor.X, coor.Y].Personaje.EsLocal) // Verifica si hay un personaje en las coordenadas en las que se va a atacar { if (comprobarRango(coor, personajeSeleccionado.rangoAtaque(personajeSeleccionadoCoor))) // Verifica si las coordenadas que se seleccionaron estan dentro del rango { int codigo; grafico.ocultarRango(); if (siEntraModoBatallaCompleta(personajeSeleccionadoCoor, coor) && System.Windows.Forms.MessageBox.Show("Desea entrar en modo batalla completo?", "Mensaje", System.Windows.Forms.MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { codigo = 5; victimaSeleccionadaMBC = tablero[coor.X, coor.Y].Personaje; personajeSeleccionadoDerecho(); form1.timerModoBatallaCompleto.Enabled = true; teclaMBC_huir = true; grafico.ataqueCompleto(personajeSeleccionado, victimaSeleccionadaMBC, ladoLocal); } else { codigo = 4; grafico.ataqueSimple(personajeSeleccionado, tablero[coor.X, coor.Y].Personaje, ladoLocal); seleccionarPersonaje(coor); } yaAtaco = !yaAtaco; EstadoGeneralDelJuego = EstadoDelJuego.EsperandoAccionLocal; //Cambiando estado a esperando accion form1.Conexion.enviarDatos(codigo + ";" + coor.X + "," + coor.Y); if (yaMovio) { cambiarTurno(); form1.Conexion.enviarDatos("7"); } } } break; } }