Ejemplo n.º 1
0
        /// <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!
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <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!
                    }
                }
            }
        }