Changeset 779


Ignore:
Timestamp:
2010-06-14 09:08:44 (9 years ago)
Author:
hniemi
Message:

Viholliset tulevat satunnaisesti.

Location:
2010/23/hniemi/ShootEmUp
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/hniemi/ShootEmUp/ShootEmUp/Peli.cs

    r776 r779  
    2222        private PhysicsObject katto; 
    2323 
     24        private const int VIHOLLISKUVIA = 1; 
     25 
    2426        private int kentannro = 0; 
     27        private IntMeter score = new IntMeter(0); 
    2528 
    2629        protected override void Begin() 
     
    7174            hpNaytto.Position = new Vector(Level.Right + 40, Level.Top - 80); 
    7275            hpNaytto.Text = "HP: "; 
    73          
     76 
     77            ValueDisplay scoreNaytto = new ValueDisplay(); 
     78            scoreNaytto.BindTo(score); 
     79            Add(scoreNaytto); 
     80            scoreNaytto.Position = new Vector(Level.Right + 40, Level.Top - 100); 
     81            scoreNaytto.Text = "SCORE: "; 
     82 
    7483        } 
    7584 
     
    145154        { 
    146155            List<AikaTapahtuma> vihollistenTuloajat = new List<AikaTapahtuma>(); 
    147             vihollistenTuloajat.Add(new AikaTapahtuma(2, LahetaPerusvihollinen, Level.Center.X - 80, Level.Top + 20 ) ); 
    148             vihollistenTuloajat.Add(new AikaTapahtuma(12, LahetaPerusvihollinen, Level.Center.X, Level.Top + 20)); 
    149             vihollistenTuloajat.Add(new AikaTapahtuma(2, LahetaPerusvihollinen, Level.Center.X + 80, Level.Top + 20)); 
     156            vihollistenTuloajat.Add(new AikaTapahtuma(2, LahetaSatunnainenVihollislaivue, Level.Center.X - 80, Level.Top + 20 ) ); 
     157            vihollistenTuloajat.Add(new AikaTapahtuma(2, LahetaSatunnainenVihollislaivue, Level.Center.X, Level.Top + 20)); 
     158            vihollistenTuloajat.Add(new AikaTapahtuma(9, LahetaSatunnainenVihollislaivue, Level.Center.X + 80, Level.Top + 20)); 
     159            vihollistenTuloajat.Add(new AikaTapahtuma(9, LahetaSatunnainenVihollislaivue, Level.Center.X - 80, Level.Top + 20)); 
     160            vihollistenTuloajat.Add(new AikaTapahtuma(20, LahetaSatunnainenVihollislaivue, Level.Center.X, Level.Top + 20)); 
     161            vihollistenTuloajat.Add(new AikaTapahtuma(20, LahetaSatunnainenVihollislaivue, Level.Center.X + 80, Level.Top + 20)); 
     162            vihollistenTuloajat.Add(new AikaTapahtuma(15, LahetaSatunnainenVihollislaivue, Level.Center.X - 80, Level.Top + 20)); 
     163            vihollistenTuloajat.Add(new AikaTapahtuma(15, LahetaSatunnainenVihollislaivue, Level.Center.X, Level.Top + 20)); 
     164            vihollistenTuloajat.Add(new AikaTapahtuma(40, LahetaSatunnainenVihollislaivue, Level.Center.X + 80, Level.Top + 20)); 
    150165 
    151166            foreach (AikaTapahtuma tapahtuma in vihollistenTuloajat) 
     
    195210        } 
    196211 
     212        void LahetaSatunnainenVihollislaivue(Timer sender) 
     213        { 
     214            List<Alus> alukset = new List<Alus>(); 
     215            Image vihollisenKuva = LoadImage("vihollinen" + RandomGen.NextInt(1,VIHOLLISKUVIA)); 
     216 
     217            for (int i = 0; i < 10; i++) 
     218            { 
     219                alukset.Add(LuoVihollinen(vihollisenKuva, 1)); 
     220                Add(alukset[i]); 
     221                Angle alas = new Angle(); 
     222                alas.Degree = 270; 
     223                alukset[i].Angle = alas; 
     224                AddCollisionHandler(alukset[i], VihollinenTormaa); 
     225            } 
     226 
     227            List<Vector> reitti = ArvoReitti(RandomGen.NextInt(0,5)); 
     228            Muodostelma muodostelma = new Muodostelma(alukset, reitti, LuoLahettaja()); 
     229            muodostelma.MovingSpeed = 100; 
     230            muodostelma.Start(); 
     231        } 
     232 
     233        /// <summary> 
     234        /// Arpoo koneelle reitin, joka lähteee ylhäältä ja päätyy alas 
     235        /// </summary> 
     236        /// <param name="valipisteet">Välipisteiden määrä, 0 -></param> 
     237        /// <returns></returns> 
     238        List<Vector> ArvoReitti(int valipisteet) 
     239        { 
     240            List<Vector> reitti = new List<Vector>(); 
     241             
     242            reitti.Add(new Vector(RandomGen.NextDouble(Level.Left + 30, Level.Right - 30),Level.Top + 35)); 
     243 
     244            for (int i = 0; i < valipisteet; i++) 
     245            { 
     246                reitti.Add(new Vector(RandomGen.NextDouble(Level.Left + 30, Level.Right - 30), 
     247                                     (RandomGen.NextDouble(Level.Bottom + 30, Level.Top - 100)))); 
     248            } 
     249            reitti.Add(new Vector(RandomGen.NextDouble(Level.Left + 30, Level.Right - 30), Level.Bottom - 35)); 
     250            return reitti; 
     251        } 
    197252 
    198253        Alus LuoVihollinen(Image kuva, int hp) 
     
    251306        { 
    252307            if (kohde == exitZone) tormaaja.Destroy(); 
    253             // Todo : Alusten tuhoutuminen ammuttaessa 
     308             
    254309        } 
    255310 
     
    259314            { 
    260315                ((Alus)toinen).TakeHit(5); 
     316                if (toinen.IsDestroyed()) score.Value++; 
    261317            } 
    262318        } 
Note: See TracChangeset for help on using the changeset viewer.