public void parar() { hiloDatosPuerto.Abort(); timer.Stop(); play = false; usuario.setNivel(this.nivel); int tiempo_int; try { tiempo_int = Convert.ToInt32(txtTiempo.Text); }catch (Exception e) { tiempo_int = 0; } usuario.setTiempo(tiempo_int); usuario.setPuntos(puntos); if (txtNivel.InvokeRequired || txtPuntos.InvokeRequired || btn_salir.InvokeRequired) { //si es así entonces volvemos a llamar a CambiarProgreso pero esta vez a través del delegado //instanciamos el delegado indicandole el método que va a ejecutar mostrarDatosDelegado delegado = new mostrarDatosDelegado(mostrarDatosForm); habilitarBotonDelegado delegadoBoton = new habilitarBotonDelegado(habilitarBoton); //ya que el delegado invocará a CambiarProgreso debemos indicarle los parámetros //invocamos el método a través del mismo contexto del formulario (this) y enviamos los parámetros txtNivel.Invoke(delegado); btn_salir.Invoke(delegadoBoton); } else { mostrarDatosForm(); habilitarBoton(); } }
public void Comer() { puntos += 1; serpiente.Crecer(); if (txtNivel.InvokeRequired || txtPuntos.InvokeRequired) { //si es así entonces volvemos a llamar a CambiarProgreso pero esta vez a través del delegado //instanciamos el delegado indicandole el método que va a ejecutar mostrarDatosDelegado delegado = new mostrarDatosDelegado(mostrarDatosForm); //ya que el delegado invocará a CambiarProgreso debemos indicarle los parámetros //invocamos el método a través del mismo contexto del formulario (this) y enviamos los parámetros txtPuntos.Invoke(delegado); } else { mostrarDatosForm(); } switch (puntos) { case 10: nivel = 2; tablero.setNivel(nivel); serpiente.setSerpienteNivel(nivel); velocidad = 600; if (txtNivel.InvokeRequired) { //si es así entonces volvemos a llamar a CambiarProgreso pero esta vez a través del delegado //instanciamos el delegado indicandole el método que va a ejecutar mostrarDatosDelegado delegado = new mostrarDatosDelegado(mostrarDatosForm); //ya que el delegado invocará a CambiarProgreso debemos indicarle los parámetros //invocamos el método a través del mismo contexto del formulario (this) y enviamos los parámetros txtNivel.Invoke(delegado); } else { mostrarDatosForm(); } break; case 15: nivel = 3; tablero.setNivel(nivel); serpiente.setSerpienteNivel(nivel); velocidad = 400; Console.WriteLine("nivel 2"); if (txtNivel.InvokeRequired) { //si es así entonces volvemos a llamar a CambiarProgreso pero esta vez a través del delegado //instanciamos el delegado indicandole el método que va a ejecutar mostrarDatosDelegado delegado = new mostrarDatosDelegado(mostrarDatosForm); //ya que el delegado invocará a CambiarProgreso debemos indicarle los parámetros //invocamos el método a través del mismo contexto del formulario (this) y enviamos los parámetros txtNivel.Invoke(delegado); } else { mostrarDatosForm(); } break; case 20: ganador = true; MessageBox.Show("Has GANADO"); break; } }