Ignore:
Timestamp:
2010-06-15 15:14:14 (10 years ago)
Author:
hniemi
Message:

Säteelle lisätty tekstuuri
Ampumista parannettu

File:
1 edited

Legend:

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

    r847 r873  
    5757 
    5858            //Laidat 
     59            LisaData tieto; 
     60            tieto.Tyyppi = "seina"; 
     61            tieto.Rajahtaa = true; 
     62            tieto.Damage = 5; 
    5963            vasenLaita = Level.CreateLeftBorder(); 
     64            vasenLaita.Tag = tieto; 
    6065            oikeaLaita = Level.CreateRightBorder(); 
     66            oikeaLaita.Tag = tieto; 
    6167            pohja = Level.CreateBottomBorder(); 
     68            pohja.Tag = tieto; 
    6269            katto = Level.CreateTopBorder(); 
     70            katto.Tag = tieto; 
    6371 
    6472            //Exit-alueen tekeminen. 
    6573            exitZone = PhysicsObject.CreateStaticObject(Level.Width, 200); 
    6674            exitZone.Position = new Vector(Level.Center.X, Level.Bottom - exitZone.Size.Y / 2 - 5); 
     75            exitZone.Tag = tieto; 
     76 
    6777            Add(exitZone); 
    6878 
     
    92102            scoreNaytto.Text = "SCORE: "; 
    93103 
    94  
    95  
    96104        } 
    97105 
     
    102110        void LuoPelaaja() 
    103111        { 
    104             pelaajaAlus = new Alus(40, 50, 10); 
     112            pelaajaAlus = new Alus(60, 55, 10); 
    105113            pelaajaAlus.Shape = Shapes.Triangle; 
    106             pelaajaAlus.Image = LoadImage("sankarialus/sankarialusStop"); 
     114             
     115            pelaajaAlus.Animation = new Animation(LoadImages("sankarialus/sankarialusThrust1", "sankarialus/sankarialusThrust2")); 
     116            pelaajaAlus.Animation.Start(); 
     117 
     118            LisaData tieto; 
     119            tieto.Tyyppi = "oma"; 
     120            tieto.Rajahtaa = true; 
     121            tieto.Damage = 5; 
     122            pelaajaAlus.Tag = tieto; 
    107123 
    108124            pelaajaAlus.Angle += Angle.Degrees(90); 
     
    115131            weapons = new Weapon[2]; 
    116132 
    117             weapons[0] = new Beam(30, 10); 
    118             ((Beam)weapons[0]).BeamCollision = BeamOsuu; 
    119             weapons[0].Position = new Vector(5, 11); 
    120             weapons[1] = new Missile(30, 10); 
    121             ((Missile)weapons[1]).MissileCollision = MissileOsuu; 
     133            weapons[0] = new Beam(1, 1); 
     134            ((Beam)weapons[0]).BeamCollision = AmmusOsuu; 
     135            weapons[0].Position = new Vector(0, -40); 
     136            weapons[1] = new Missile(1, 1); 
     137            ((Missile)weapons[1]).MissileCollision = AmmusOsuu; 
    122138 
    123139            Add(pelaajaAlus); 
    124             pelaajaAlus.SetWeapon(weapons[1]); 
     140            pelaajaAlus.SetWeapon(weapons[0]); 
    125141             
    126142            AddCollisionHandler(pelaajaAlus, PelaajaTormaa); 
     
    145161            Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikuttaa alusta oikealle", pelaaja, nopeusVaaka); 
    146162            Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja.StopHorizontal, null); 
    147             Keyboard.Listen(Key.LeftControl, ButtonState.Pressed, Ammu, "Lopettaa pelin", pelaajaAlus); 
     163            Keyboard.Listen(Key.LeftControl, ButtonState.Down, Ammu, "Lopettaa pelin", pelaajaAlus); 
    148164            Keyboard.Listen(Key.D1, ButtonState.Pressed, VaihdaAsetta, "Valitsee säde-aseen", 1); 
    149165            Keyboard.Listen(Key.D2, ButtonState.Pressed, VaihdaAsetta, "Valitsee säde-aseen", 2); 
     
    247263        } 
    248264 
     265        /// <summary> 
     266        /// Arpoo ja lähettää satunnaisen vihollislaivueen 
     267        /// Laivueessa on tällä hetkellä 10 alusta 
     268        /// Aluksen kuva arvotaan tiedostoista, joiden nimi on "vihollinen#.png" 
     269        /// </summary> 
     270        /// <param name="sender"></param> 
    249271        void LahetaSatunnainenVihollislaivue(Timer sender) 
    250272        { 
     
    254276            for (int i = 0; i < 10; i++) 
    255277            { 
    256                 alukset.Add(LuoVihollinen(vihollisenKuva, 1)); 
     278                alukset.Add(LuoVihollinen(vihollisenKuva, 40)); 
    257279                Add(alukset[i]); 
    258280                Angle alas = new Angle(); 
     
    288310        Alus LuoVihollinen(Image kuva, int hp) 
    289311        { 
    290             Alus vihollinen = new Alus(50, 50, hp); 
     312             
     313            Alus vihollinen = new Alus(kuva.Width/5, kuva.Height/5, hp); 
    291314            vihollinen.Image = kuva; 
    292             vihollinen.Tag = "vihollinen"; 
     315            LisaData tieto; 
     316            tieto.Tyyppi = "vihollinen"; 
     317            tieto.Rajahtaa = true; 
     318            tieto.Damage = 5; 
     319            vihollinen.Tag = tieto; 
    293320            return vihollinen; 
    294321        } 
     
    317344        void PelaajaTormaa(PhysicsObject tormaaja, PhysicsObject kohde) 
    318345        { 
    319             if (kohde.Tag.ToString() == "vihollinen")  
     346            if (((LisaData)kohde.Tag).Tyyppi == "vihollinen")  
    320347            { 
    321348                ((Alus)tormaaja).TakeHit(5); 
     
    358385        } 
    359386 
    360         void BeamOsuu(PhysicsObject sade, PhysicsObject toinen) 
    361         { 
    362             sade.Destroy(); 
    363  
    364             if (toinen.Tag.ToString() == "vihollinen")  
    365             { 
    366                 ((Alus)toinen).TakeHit(5); 
    367                 if (toinen.IsDestroyed()) score.Value++; 
    368             } 
    369         } 
    370  
    371         void MissileOsuu(PhysicsObject missile, PhysicsObject toinen) 
    372         { 
    373             if (toinen != pelaajaAlus) missile.Destroy(); 
    374  
    375             if (toinen.Tag.ToString() == "vihollinen") 
    376             { 
    377                 ((Alus)toinen).TakeHit(20); 
    378                 if (toinen.IsDestroyed()) score.Value++; 
    379             } 
     387        void AmmusOsuu(PhysicsObject ammus, PhysicsObject toinen) 
     388        { 
     389             
     390            if (toinen.Tag.ToString() == "seina" || ((LisaData)toinen.Tag).Tyyppi != "oma" ) 
     391            { 
     392                ammus.Destroy(); 
     393                if (((LisaData)ammus.Tag).Rajahtaa) 
     394                { 
     395                    Explosion rajahdys = new Explosion(100); 
     396                    rajahdys.Position = toinen.Position; 
     397                    Add(rajahdys); 
     398                } 
     399 
     400                if (((LisaData)toinen.Tag).Tyyppi == "vihollinen") 
     401                { 
     402                    ((Alus)toinen).TakeHit(((LisaData)ammus.Tag).Damage); 
     403                    if (toinen.IsDestroyed()) score.Value++; 
     404                } 
     405            } 
     406 
     407 
    380408        } 
    381409        #endregion 
Note: See TracChangeset for help on using the changeset viewer.