/// <summary> /// Moon touchdown simulations round through /// </summary> /// <param name="sender">Sender Object</param> /// <param name="e">Event Object</param> private void OnMondlandungsSimulationTurn(object sender, EventArgs e) { MondlandungsSimulationEventArgs mondlandungsArgs = e as MondlandungsSimulationEventArgs; lbl_SpeedValue.Text = Convert.ToString(mondlandungsArgs.Raumschiff.Geschwindigkeit); lbl_HeightValue.Text = Convert.ToString(mondlandungsArgs.Raumschiff.Hoehe); lbl_ThrustValue.Text = Convert.ToString(mondlandungsArgs.Schub); lbl_TankValue.Text = Convert.ToString(mondlandungsArgs.Raumschiff.Treibstoff); Application.DoEvents(); if (!closingApplication) { float floatHoehe = finalHeight; //Raumschiff fliegt aufwärts if (mondlandungsArgs.Raumschiff.Geschwindigkeit > 0) { while (floatHoehe < mondlandungsArgs.Raumschiff.Hoehe) { floatHoehe += mondlandungsArgs.Raumschiff.Geschwindigkeit / 10.0f; System.Threading.Thread.Sleep(10); setSpaceship(Convert.ToInt32(floatHoehe), mondlandungsArgs.Schub); } } //Raumschiff fliegt abwärts else { while (floatHoehe > mondlandungsArgs.Raumschiff.Hoehe) { floatHoehe += mondlandungsArgs.Raumschiff.Geschwindigkeit / 10.0f; System.Threading.Thread.Sleep(10); if (floatHoehe <= 0) { setSpaceship(0, mondlandungsArgs.Schub); } else { setSpaceship(Convert.ToInt32(floatHoehe), mondlandungsArgs.Schub); } } } finalHeight = mondlandungsArgs.Raumschiff.Hoehe; //Raumschiff ist gelandet if (finalHeight <= 0) { if ((mondlandungsArgs.Raumschiff.Geschwindigkeit + 10) < 0) { bmpSpaceship = bmpSpaceshipBroken; setSpaceship(0, 0); } else { //wegsehen: ugly code! //Raumfahrer-Animation setSpaceship(0, 0); System.Threading.Thread.Sleep(500); bmpSpaceship = bmpSpaceshipEmpty; setSpaceship(0, 0); System.Threading.Thread.Sleep(500); setSpaceman(100); System.Threading.Thread.Sleep(100); setSpaceman(110); System.Threading.Thread.Sleep(100); setSpaceman(120); System.Threading.Thread.Sleep(100); setSpaceman(130); System.Threading.Thread.Sleep(100); setSpaceman(140); System.Threading.Thread.Sleep(100); setSpaceman(150); System.Threading.Thread.Sleep(100); setSpaceman(160); System.Threading.Thread.Sleep(100); setSpaceman(170); System.Threading.Thread.Sleep(100); gBuffer.DrawImage(bmpFlag, 200, 560, 37, 75); pnl_Animation.CreateGraphics().DrawImageUnscaled(_backBuffer, 0, 0); //end of ugly code! } } } }
/// <summary> /// Mondlandungsssimulationsrunde durchlaufen /// </summary> /// <param name="sender">aufrufendes Objekt</param> /// <param name="e">EreignisObjekt</param> private void OnMondlandungsSimulationTurn(object sender, EventArgs e) { MondlandungsSimulationEventArgs mondlandungsArgs = e as MondlandungsSimulationEventArgs; lbl_AktGeschwindigkeit.Text = Convert.ToString(mondlandungsArgs.Raumschiff.Geschwindigkeit); lbl_AktHoehe.Text = Convert.ToString(mondlandungsArgs.Raumschiff.Hoehe); lbl_AktSchub.Text = Convert.ToString(mondlandungsArgs.Schub); lbl_AktTank.Text = Convert.ToString(mondlandungsArgs.Raumschiff.Treibstoff); Application.DoEvents(); if (!closingApplication) { float floatHoehe = letzteHoehe; //Raumschiff fliegt aufwärts if (mondlandungsArgs.Raumschiff.Geschwindigkeit > 0) { while (floatHoehe < mondlandungsArgs.Raumschiff.Hoehe) { floatHoehe += mondlandungsArgs.Raumschiff.Geschwindigkeit / 10.0f; System.Threading.Thread.Sleep(10); setzeRaumschiff(Convert.ToInt32(floatHoehe), mondlandungsArgs.Schub); } } //Raumschiff fliegt abwärts else { while (floatHoehe > mondlandungsArgs.Raumschiff.Hoehe) { floatHoehe += mondlandungsArgs.Raumschiff.Geschwindigkeit / 10.0f; System.Threading.Thread.Sleep(10); if (floatHoehe <= 0) { setzeRaumschiff(0, mondlandungsArgs.Schub); } else { setzeRaumschiff(Convert.ToInt32(floatHoehe), mondlandungsArgs.Schub); } } } letzteHoehe = mondlandungsArgs.Raumschiff.Hoehe; //Raumschiff ist gelandet if (letzteHoehe <= 0) { if ((mondlandungsArgs.Raumschiff.Geschwindigkeit + 10) < 0) { bmpRaumschiff = bmpRaumschiffKaputt; setzeRaumschiff(0, 0); } else { //wegsehen: ugly code! //Raumfahrer-Animation setzeRaumschiff(0, 0); System.Threading.Thread.Sleep(500); bmpRaumschiff = bmpRaumschiffLeer; setzeRaumschiff(0, 0); System.Threading.Thread.Sleep(500); setzeRaumfahrer(100); System.Threading.Thread.Sleep(100); setzeRaumfahrer(110); System.Threading.Thread.Sleep(100); setzeRaumfahrer(120); System.Threading.Thread.Sleep(100); setzeRaumfahrer(130); System.Threading.Thread.Sleep(100); setzeRaumfahrer(140); System.Threading.Thread.Sleep(100); setzeRaumfahrer(150); System.Threading.Thread.Sleep(100); setzeRaumfahrer(160); System.Threading.Thread.Sleep(100); setzeRaumfahrer(170); System.Threading.Thread.Sleep(100); gBuffer.DrawImage(bmpFahne, 200, 560, 37, 75); pnl_Animation.CreateGraphics().DrawImageUnscaled(_backBuffer, 0, 0); //end of ugly code! } } } }