Пример #1
0
    void LuoElamaLaskuri()
    {
        elamaLaskuri             = new DoubleMeter(10);
        elamaLaskuri.MaxValue    = 10;
        elamaLaskuri.LowerLimit += ElamaLoppui;

        ProgressBar elamaPalkki = new ProgressBar(150, 20);

        elamaPalkki.X = Screen.Left + 500;
        elamaPalkki.Y = Screen.Top - 50;
        elamaPalkki.BindTo(elamaLaskuri);
        Add(elamaPalkki);
    }
Пример #2
0
    /// <summary>
    /// Luo humalapalkin, joka sidotaan nayttamaan humalamittarin tila.
    /// </summary>
    public void LuoHumalaPalkki()
    {
        humalataso          = new DoubleMeter(0);
        humalataso.MaxValue = 2.0;
        ProgressBar humalaPalkki = new ProgressBar(200, 30);

        humalaPalkki.BindTo(humalataso);
        humalaPalkki.X           = Screen.Left + 170;
        humalaPalkki.Y           = Screen.Top - 40;
        humalaPalkki.BarColor    = Color.Red;
        humalaPalkki.BorderColor = Color.Black;
        Add(humalaPalkki);
    }
Пример #3
0
    /// <summary>
    /// Kerätessä karkkeja karkkipalkki täyttyy. Kun karkkipalkki on täynnä saa yhden elämän lisää.
    /// </summary>
    private void LuoKarkkiLaskuri()
    {
        karkkiLaskuri             = new DoubleMeter(0);
        karkkiLaskuri.MaxValue    = 5;
        karkkiLaskuri.UpperLimit += ViisiKarkkia;

        ProgressBar karkkiPalkki = new ProgressBar(150, 30);

        karkkiPalkki.X = Screen.Center.X;
        karkkiPalkki.Y = Screen.Top - 60;
        karkkiPalkki.BindTo(karkkiLaskuri);
        karkkiPalkki.Image    = LoadImage("tyhjatKarkit.png");
        karkkiPalkki.BarImage = LoadImage("taydetKarkit.png");
        Add(karkkiPalkki);
    }
Пример #4
0
    /// <summary>
    /// Elämien määrä, josta visuaalisesti näkee montako elämää on jäljellä.
    /// </summary>
    private void LuoElamaLaskuri()
    {
        elamaLaskuri             = new DoubleMeter(5);
        elamaLaskuri.MaxValue    = 5;
        elamaLaskuri.LowerLimit += ElamaLoppui;

        ProgressBar elamaPalkki = new ProgressBar(150, 30);

        elamaPalkki.X = Screen.Center.X;
        elamaPalkki.Y = Screen.Top - 20;
        elamaPalkki.BindTo(elamaLaskuri);
        elamaPalkki.Image    = LoadImage("emptyHearts.png");
        elamaPalkki.BarImage = LoadImage("fullHearts.png");
        Add(elamaPalkki);
    }
Пример #5
0
        /// <summary>
        /// Luodaan palkki, joka näyttää aseen ammusbonuksen jäljellä olevan ajan. Sidottu kuuntelemaan Ase-luokan bonusmittaria.
        /// Palkki muuttuu näkyväksi bonuksen aktivoituessa ja näkymättömäksi sen loppuessa.
        /// </summary>
        private void LuoBonusPalkki()
        {
            bonusPalkki           = new ProgressBar(230, 15);
            bonusPalkki.Position  = new Vector(Game.Screen.Right - 30 - bonusPalkki.Width / 2, 300);
            bonusPalkki.IsVisible = false;

            bonusPalkki.BindTo(peli.Ase.bonusLaskuri);
            peli.Add(bonusPalkki);

            peli.Ase.bonusLaskuri.UpperLimit += delegate
            {
                bonusPalkki.IsVisible = true;
            };
            peli.Ase.bonusLaskuri.LowerLimit += delegate
            {
                bonusPalkki.IsVisible = false;
            };
        }
Пример #6
0
    /// <summary>
    /// Tätä kutsuttaessa luodaan ja alustetaan elämälaskuri. Lisäksi luodaan ProgressBar olio,
    /// johon elämämittari upotetaan loppukäyttäjälle näytettäväksi.
    /// Määritellään myös mitä tapahtuu kun elämäpisteet loppuvat: silloin kutsutaan ElamaLoppui-funktiota.
    /// </summary>
    private void LuoElamaLaskuri()
    {
        elamaLaskuri = new DoubleMeter(4)
        {
            MaxValue = 6
        };
        elamaLaskuri.LowerLimit += ElamaLoppui;

        ProgressBar elamaPalkki = new ProgressBar(260, 60)
        {
            X        = Screen.Right - 165,
            Y        = Screen.Top - 40,
            Image    = elamaTyhja,
            BarImage = elamaTaysi
        };

        elamaPalkki.BindTo(elamaLaskuri);
        Add(elamaPalkki);
    }
Пример #7
0
    /*   void lv()
     * {
     *     Surfaces aweryq = Level.CreateBorders();
     *     for (int i = 0; i < 30; i++)
     *     {
     *         luolentsikka(new Vector(RandomGen.NextInt(-300, 300), Screen.Bottom));
     *
     *     }
     *     Timer.SingleShot(32, delegate { puhdista(aweryq); });
     * }
     *
     * /*  void luolentsikka(Vector paikka)
     * {
     *     PhysicsObject lentsikka = new PhysicsObject(50, 50);
     *     //lentsikka.Position = paikka;
     *     Add(lentsikka);
     *
     *     lentsikka.Image = lentokuva;
     *     Vector ljk = new Vector(Screen.Center.X, Screen.Top);
     *
     *
     *     RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
     *     satunnaisAivot.ChangeMovementSeconds = 3;
     *     lentsikka.Brain = satunnaisAivot;
     *
     *     lentsikka.LifetimeLeft = TimeSpan.FromSeconds(30);
     * }
     * void puhdista(Surfaces areusure)
     * {
     *     areusure.Left.Destroy();
     *     areusure.Right.Destroy();
     *     areusure.Top.Destroy();
     *     areusure.Bottom.Destroy();
     * }
     */
    void voimamittari()
    {
        voimaMittari          = new DoubleMeter(0);
        voimaMittari.MaxValue = 50;
        ProgressBar voimaPalkki = new ProgressBar(150, 10);

        voimaPalkki.X = Screen.Left + 150;
        voimaPalkki.Y = Screen.Top - 70;


        voimaMittari.Value      = 0;
        voimaPalkki.BorderColor = Color.Aqua;
        voimaPalkki.BindTo(voimaMittari);
        //voimaPalkki.Image = LoadImage("palkki tyhj");
        //voimaPalkki.BarImage = LoadImage("palkki sini");

        Add(voimaPalkki);

        voimaMittari.UpperLimit += VoimaMittariTaynna;
    }
Пример #8
0
    public void LuoPeliAika()
    {
        aikaMittari          = new DoubleMeter(60);
        aikaMittari.MaxValue = 60;

        ProgressBar aikaPalkki = new ProgressBar(400, 10);

        aikaPalkki.X           = Screen.Left + 230;
        aikaPalkki.Y           = Screen.Top - 60;
        aikaPalkki.Color       = Color.Transparent;
        aikaPalkki.BarColor    = Color.Red;
        aikaPalkki.BorderColor = Color.Black;
        aikaPalkki.BindTo(aikaMittari);
        Add(aikaPalkki);

        Label aikaTeksti = new Label();

        aikaTeksti.TextColor = Color.Wheat;
        aikaTeksti.Color     = Color.Transparent;
        aikaTeksti.Text      = "Jäljellä oleva aika: ";
        aikaTeksti.X         = Screen.Left + 120;
        aikaTeksti.Y         = Screen.Top - 40;
        Add(aikaTeksti);
    }
Пример #9
0
    void UpdateTruckFillRatios(List <double> fr)
    {
        int tfbIdx = 0;

        foreach (double carriedWt in fr)
        {
            if (tfbIdx >= truckFillBars.Count)
            {
                DoubleMeter truckFillMeter = new DoubleMeter(carriedWt);
                truckFillMeter.MaxValue = instance.capacity;
                ProgressBar truckFillBar = new ProgressBar(
                    Screen.Width - Screen.Width / SCREEN_MARGIN_WIDHT_RATIO, TRUCK_BAR_HEIGHT);
                truckFillBar.Position = new Vector(0, -Screen.Height / 2 + TOP_MARGIN + TRUCK_BAR_HEIGHT * 1.5 * tfbIdx);
                truckFillBar.BindTo(truckFillMeter);
                truckFillBar.BorderColor = BorderColor;
                Add(truckFillBar, 3);
                truckFillBars.Add(truckFillBar);

                Label truckFillLabel = new Label();
                truckFillLabel.Position = truckFillBar.Position;
                truckFillLabel.Font     = Font.DefaultSmallBold;
                Add(truckFillLabel, 3);
                truckFillLabels.Add(truckFillLabel);
            }
            else
            {
                (truckFillBars[tfbIdx].Meter as DoubleMeter).Value = carriedWt;
            }

            // Demands are being shown
            if (demandLabels != null)
            {
                truckFillLabels[tfbIdx].Text = $"{carriedWt:0.#}/{instance.capacity:0.#}";
            }
            else
            {
                truckFillLabels[tfbIdx].Text = "";
            }

            var currentTruckFillBar = truckFillBars[tfbIdx];
            if (carriedWt > instance.capacity)
            {
                currentTruckFillBar.BarColor = routeColors[tfbIdx % routeColors.Count];
                if (!blinkingObjects.Contains(currentTruckFillBar))
                {
                    blinkingObjects.Add(currentTruckFillBar);
                }
                originalColors[currentTruckFillBar] = routeColors[tfbIdx % routeColors.Count];
            }
            else
            {
                if (instance.routeValidStates[tfbIdx])
                {
                    currentTruckFillBar.BarColor = routeColors[tfbIdx % routeColors.Count];
                }
                else
                {
                    currentTruckFillBar.BarColor = Color.Darker(routeColors[tfbIdx % routeColors.Count], 50);
                }

                if (blinkingObjects.Contains(currentTruckFillBar))
                {
                    blinkingObjects.Remove(currentTruckFillBar);
                }
            }


            tfbIdx++;
        }
        // Remove unused truck bars (no route)
        while (tfbIdx < truckFillBars.Count)
        {
            Remove(truckFillBars[tfbIdx]);
            truckFillBars.RemoveAt(tfbIdx);

            if (truckFillLabels != null)
            {
                Remove(truckFillLabels[tfbIdx]);
                truckFillLabels.RemoveAt(tfbIdx);
            }
        }
    }
Пример #10
0
 void luoElamaLaskuri()
 {
     elamalaskuri = new DoubleMeter(250);
     elamalaskuri.MaxValue = 250;
     elamalaskuri.LowerLimit += tapaVihollinen;
     ProgressBar elamaPalkki = new ProgressBar(1200, 40);
     elamaPalkki.Y = Screen.Top - 80;
     elamaPalkki.X = -85;
     elamaPalkki.Color = Color.Transparent;
     elamaPalkki.BarColor = Color.Blue;
     elamaPalkki.BorderColor = Color.White;
     elamaPalkki.BindTo(elamalaskuri);
     Add(elamaPalkki);
 }
Пример #11
0
    void CreateOSD()
    {
        jumpPowerMeter = new DoubleMeter(0.0, 0.0, JUMP_POWAH_MAX);
        speedMeter = new DoubleMeter(0.0, 0.0, RUN_SPEED_MAX);
        catsSavedMeter = new IntMeter(0);

        ProgressBar jumpPB = new ProgressBar(200, 20);
        jumpPB.Position = new Vector(Screen.Left + 150, Screen.Top - 40);
        jumpPB.BindTo(jumpPowerMeter);
        jumpPB.BarColor = Color.Red;
        jumpPB.Color = Color.White;
        Add(jumpPB);

        ProgressBar speedPB = new ProgressBar(200, 20);
        speedPB.Position = new Vector(Screen.Right - 150, Screen.Top - 40);
        speedPB.BindTo(speedMeter);
        speedPB.BarColor = Color.Blue;
        speedPB.Color = Color.White;
        Add(speedPB);

        Label lives = new Label("Lives left: 1 of 1");
        lives.Y = Screen.Top - 40;
        lives.Font = Font.DefaultBold;
        lives.TextColor = Color.White;
        Add(lives);

        Label points = new Label("");
        points.IntFormatString = "Cats rescued: {0:D1}";
        points.Y = Screen.Top - 80;
        points.Font = Font.DefaultBold;
        points.TextColor = Color.White;
        points.BindTo(catsSavedMeter);
        Add(points);
    }