コード例 #1
0
    public VihollinenSplortsi(LegendOfPallo peli, Vector paikka, double leveys, double korkeus) : base(peli, leveys, korkeus)
    {
        Score    = 1000;
        Hp       = 150;
        Tag      = "vihollinen";
        Position = paikka;

        Width  = Animaatiot.SplortsiImages[0].Width * 4;
        Height = Animaatiot.SplortsiImages[0].Height * 4;

        aivot                        = new LabyrinthWandererBrain(64);
        aivot.Speed                  = 300.0;
        aivot.LabyrinthWallTag       = "seina";
        aivot.DirectionChangeTimeout = 0.5;

        Mass          = 10000;
        Brain         = aivot;
        LinearDamping = 0.7;
        CanRotate     = false;

        Animation = new Animation(Animaatiot.SplortsiImages);
        Animation.Start();
        Animation.FPS = 5;

        Tavarat.LisaaTavara((int)TavaraTyypit.Avaimet, 1);
        Tavarat.LisaaTavara((int)TavaraTyypit.Raha, 10);
        Tavarat.LisaaTavara((int)TavaraTyypit.Sydan, 10);

        LuoSplortsilleKanuunaTavallinen(peli, new Vector(96, 96), 1, true);
        LuoSplortsilleKanuunaTavallinen(peli, new Vector(-96, -96), 3, true);
        LuoSplortsilleKanuunaTavallinen(peli, new Vector(-96, 96), 2, false);
        LuoSplortsilleKanuunaTavallinen(peli, new Vector(96, -96), 4, false);
        kanuunaHakeutuva = LuoSplortsilleKanuunaHakeutuva(peli);
    }
コード例 #2
0
    /// <summary>
    /// Rakentaja, jossa pelaajan tiedot asetetaan.
    /// </summary>
    /// <param name="peli">Pelin viite.</param>
    /// <param name="width">Pelaajan korkeus.</param>
    /// <param name="height">Pelaajan leveys.</param>
    /// <param name="tiedot">Pelaajan tiedot.</param>
    public Pelaaja(LegendOfPallo peli, double width, double height, PelaajanTiedot tiedot) : base(peli, width, height)
    {
        Hp        = tiedot.MaxHp;
        CurrentHp = Math.Min(Math.Max(1, tiedot.CurrentHp), tiedot.MaxHp);
        Tavarat.LisaaTavara((int)TavaraTyypit.Pommit, (byte)tiedot.Pommit);
        Tavarat.LisaaTavara((int)TavaraTyypit.Elama, (byte)tiedot.Elamat);
        Image = Animaatiot.pelaajanKuvaN;

        Width                = 56;
        Height               = 56;
        Shape                = Shape.Ellipse;
        Color                = Color.Red;
        Restitution          = 0.0;
        CanRotate            = false;
        MaxVelocity          = 160;
        LinearDamping        = 0.7;
        IsUpdated            = true;
        Tag                  = "pelaaja";
        CollisionIgnoreGroup = (int)Types.Player;

        AmpumisAjastin          = new Timer();
        AmpumisAjastin.Interval = AmpumisVali;

        KranaattiAjastin          = new Timer();
        KranaattiAjastin.Interval = KranaatinHeittoVali;
    }
コード例 #3
0
    /// <summary>
    /// Käydään läpi peliolion kuollessa.
    /// </summary>
    public override void Destroy()
    {
        //Jos olio on tuhoutumaton, älä tuhoa sitä
        if (Hp == -1)
        {
            return;
        }

        //Jos destroy aliohjelmaa kutsutaan itsenäisesti, laitetaan CurrentHp nollaksi
        if (CurrentHp != 0)
        {
            CurrentHp = 0;
        }

        //Pudota olion tavarat maahan
        Tavarat.PudotaTavarat();

        //Lisää pisteet olion kuolemasta, jos olio on vihollinen
        if ((string)Tag == "vihollinen" || (string)Tag == "immuuniLuodeille")
        {
            HUD.Pisteet += Score;
        }


        base.Destroy();
    }
コード例 #4
0
    public VihollinenAmpuja(LegendOfPallo peli, double leveys, double korkeus) : base(peli, leveys, korkeus)
    {
        Score = 80;
        List <string> tagit = new List <string>()
        {
            "pelaaja"
        };

        Color = Color.MediumPurple;

        LabyrinthWandererBrain aivot2 = new LabyrinthWandererBrain(64);

        aivot2.Speed                  = 150.0;
        aivot2.LabyrinthWallTag       = "seina";
        aivot2.DirectionChangeTimeout = 2.0;

        aivot              = new FollowerBrain();
        aivot.DistanceFar  = 500;
        aivot.Speed        = 200.0;
        aivot.TagsToFollow = tagit;
        aivot.FarBrain     = aivot2;

        aivot.StopWhenTargetClose = true;
        aivot.DistanceClose       = 400;

        Mass          = 0.3;
        Hp            = 10;
        Brain         = aivot;
        CanRotate     = false;
        LinearDamping = 0.7;
        IsUpdated     = true;
        Tag           = "vihollinen";

        Animation     = new Animation(Animaatiot.DemonImages);
        Animation.FPS = 4;
        Animation.Start();

        kanuuna               = new Kanuuna <Ammus>(Peli, 10, 10);
        kanuuna.IsVisible     = false;
        kanuuna.AloitaTyhjana = false;
        kanuuna.AsetaKanuuna(0.2, 5.0, 3);
        kanuuna.Tag                      = "neutraali";
        kanuuna.AmpumisKohde             = null;
        kanuuna.MaxEtaisyysKohteeseen    = 500;
        kanuuna.IgnoresCollisionResponse = true;
        kanuuna.Position                 = new Vector(0, 0);
        kanuuna.ammus                   += Peli.AmmusKimpoileva1Malli;
        Add(kanuuna);

        Tavarat.LisaaTavara((int)TavaraTyypit.Raha, 1);
    }
コード例 #5
0
    /// <summary>
    /// Käydään läpi pelaajan tuhoutuessa/kuollessa.
    /// </summary>
    public override void Destroy()
    {
        if (Hp == -1)
        {
            return;
        }

        if (CurrentHp != 0)
        {
            CurrentHp = 0;
        }

        Peli.pelaajanTiedot.Elamat = Tavarat.TavaranMaara((int)TavaraTyypit.Elama);
        --Peli.pelaajanTiedot.Elamat;
        Tavarat.KaytaTavara((int)TavaraTyypit.Elama, 1);

        Peli.PrinttaaTekstiJaOdotaInput("You died.", Peli.JatkaKuolemanJalkeen);
        base.Destroy();
    }
コード例 #6
0
 /// <summary>
 /// Suoritetaan kun vihollinen tuhoutuu/kuolee.
 /// </summary>
 public override void Destroy()
 {
     if ((string)Tag == "vihollinen")    //vihollinen ei kuole kokonaan, vaan herää henkiin vähän ajan päästä.
     {
         Tavarat.PudotaTavarat();
         Animation     = new Animation(Animaatiot.SwampyMeltImages);
         Animation.FPS = 4;
         Animation.Start(1);
         Animation.StopOnLastFrame = true;
         aivot.Speed  = 0;
         aivot2.Speed = 0;
         KuolemaAjastin.Start(1);
         Clear();
         Tag = "immuuniLuodeille";   //vihollista ei pysty tappamaaan luodeilla, kun se on tilapäisesti kuollut. Vain pommit tehoavat.
         Hp  = 1;
         IgnoresCollisionResponse = true;
         IgnoresExplosions        = false;
     }
     else    //Jos vihollinen on jo tilapäisesti kullut ja se tapetaan pommeilla, tuhoa vihollinen lopullisesti.
     {
         Tavarat.PudotaTavarat();
         base.Destroy();
     }
 }
コード例 #7
0
ファイル: Lab02.cs プロジェクト: sarasall/TTOS0200
 public void LisaaTavara(Lab02 tavara)
 {
     Tavarat.Add(tavara);
     tuoteLaskuri += tavara.Maara;
     Console.WriteLine("\nLisätty {0} jääkaappiin. Määrä yhteensä: {1}", tavara.Nimi, tavara.Maara);
 }