Changeset 345 for santeri_h


Ignore:
Timestamp:
2009-08-06 11:30:50 (12 years ago)
Author:
saolhaka
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • santeri_h/Kynari/Peli.cs

    r319 r345  
    2525        PlatformCharacter pelaaja2; 
    2626 
     27        bool pelaaja1asevaihto = true; 
     28        bool pelaaja2asevaihto = true; 
     29 
    2730        #endregion 
    2831 
     
    3841            //Camera.ZoomFactor = 0.7; 
    3942            Camera.ZoomFactor = 2.0; 
    40  
    4143            aloitaUusiPeli(); 
    4244 
     
    102104 
    103105            lisaaPelaajat(kentta); 
    104             lisaaAse(kentta); 
     106            lisaaAsePelaajalle(kentta); 
     107            lisaaKerattavaAse(kentta); 
    105108 
    106109            return kentta; 
     
    147150        } 
    148151 
    149         void lisaaAse(Level kentta) 
     152        void keraaAse(Collision collision) 
     153        { 
     154            if (collision.Other is PlatformCharacter) 
     155            { 
     156                if (collision.Other == pelaaja1) 
     157                { 
     158                    if (pelaaja1asevaihto == false) 
     159                        return; 
     160 
     161                    pelaaja1asevaihto = false; 
     162                } 
     163 
     164                if (collision.Other == pelaaja2) 
     165                { 
     166                    if (pelaaja2asevaihto == false) 
     167                        return; 
     168 
     169                    pelaaja2asevaihto = false; 
     170                } 
     171 
     172                Timer ajastin = new Timer(); 
     173                ajastin.Interval = 1; 
     174                ajastin.Tag = collision.Other; 
     175                ajastin.Trigger += new Timer.TriggerHandler(salliAseenvaihto); 
     176                ajastin.Start(); 
     177                AddTimer(ajastin); 
     178 
     179                // Pelaaja törmäsi aseeseen 
     180                ProjectileWeapon ase = (ProjectileWeapon)collision.Obj; 
     181                PlatformCharacter pelaaja = (PlatformCharacter)collision.Other; 
     182                if (ase.Owner != null) 
     183                { 
     184                    return; 
     185                } 
     186                pelaaja.UnequipWeapon(); 
     187                Weapon vanhaAse = pelaaja.Weapon; 
     188                vanhaAse.RemoveFromOwner(); 
     189                vanhaAse.X = pelaaja.X + vanhaAse.Width; 
     190                vanhaAse.Y = pelaaja.Y; 
     191                vanhaAse.Visible = true; 
     192                vanhaAse.Hit(new Vector2D(100, 20)); 
     193                pelaaja.Weapon = ase; 
     194                pelaaja.EquipWeapon(); 
     195                pelaaja.Weapon.Texture = ase.Texture; 
     196            } 
     197        } 
     198 
     199        void salliAseenvaihto(Timer sender) 
     200        { 
     201            if (sender.Tag == pelaaja1) 
     202            { 
     203                pelaaja1asevaihto = true; 
     204            } 
     205            else if (sender.Tag == pelaaja2) 
     206            { 
     207                pelaaja2asevaihto = true; 
     208            } 
     209 
     210            sender.Stop(); 
     211            RemoveTimer(sender); 
     212        } 
     213 
     214        void lisaaKerattavaAse(Level kentta) 
     215        { 
     216            //Täällä lisätään ase kenttään 
     217            Bullet luoti = new Bullet(); 
     218            Grenade kranaatti = new Grenade(); 
     219 
     220            AssaultRifle kivaari = new AssaultRifle(luoti); 
     221            kivaari.X = 200; 
     222            kivaari.Y = -100; 
     223            kivaari.FireRate = 20; 
     224            kivaari.MomentOfInertia = double.PositiveInfinity; 
     225            kivaari.Mass = 0.1; 
     226            kentta.Objects.Add(kivaari); 
     227 
     228            Cannon kranaatinheitin = new Cannon(kranaatti); 
     229            kranaatinheitin.X = 0; 
     230            kranaatinheitin.Y = -200; 
     231            kranaatinheitin.FireRate = 0.2; 
     232            kranaatinheitin.MomentOfInertia = double.PositiveInfinity; 
     233            kranaatinheitin.Mass = 0.1; 
     234            kentta.Objects.Add(kranaatinheitin); 
     235 
     236            //Lisää myös törmäyksen käsittelijä aseelle, jossa kutsutaan keraaAse -aliohjelmaa 
     237            AddCollisionHandler(kivaari, keraaAse); 
     238            AddCollisionHandler(kranaatinheitin, keraaAse); 
     239        } 
     240 
     241        void lisaaAsePelaajalle(Level kentta) 
    150242        { 
    151243            Bullet luoti = new Bullet(); 
     
    156248            kentta.Objects.Add(pelaaja1.Weapon); 
    157249            pelaaja1.EquipWeapon(); 
     250            pelaaja1.Weapon.MomentOfInertia = double.PositiveInfinity; 
     251            AddCollisionHandler(pelaaja1.Weapon, keraaAse); 
    158252 
    159253            pelaaja2.Weapon = new AssaultRifle(luoti); 
     
    162256            kentta.Objects.Add(pelaaja2.Weapon); 
    163257            pelaaja2.EquipWeapon(); 
     258            pelaaja2.Weapon.MomentOfInertia = double.PositiveInfinity; 
     259            AddCollisionHandler(pelaaja2.Weapon, keraaAse); 
    164260        } 
    165261 
     
    179275            Controls.Listen(Keys.D, ButtonPosition.Down, liikuta, "Liikkuu oikealle", pelaaja1, new Vector2D(liikeVoima, 0)); 
    180276            Controls.Listen(Keys.W, ButtonPosition.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima); 
    181             Controls.Listen(Keys.Space, ButtonPosition.Down, Ammu, "Ammu", pelaaja1.Weapon); 
     277            Controls.Listen(Keys.Space, ButtonPosition.Down, Ammu, "Ammu", pelaaja1); 
    182278 
    183279            Controls.Listen(Keys.Left, ButtonPosition.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, new Vector2D(-liikeVoima, 0)); 
    184280            Controls.Listen(Keys.Right, ButtonPosition.Down, liikuta, "Liikkuu oikealle", pelaaja2, new Vector2D(liikeVoima, 0)); 
    185281            Controls.Listen(Keys.Up, ButtonPosition.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima); 
    186             Controls.Listen(Keys.Enter, ButtonPosition.Down, Ammu, "Ammu", pelaaja2.Weapon); 
     282            Controls.Listen(Keys.Enter, ButtonPosition.Down, Ammu, "Ammu", pelaaja2); 
    187283 
    188284            lisaaGamePadNappaimet(PlayerIndex.One, pelaaja1); 
     
    197293            Controls.Listen(pelaajaNro, Buttons.DPadRight, ButtonPosition.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja, new Vector2D(liikeVoima, 0)); 
    198294            Controls.Listen(pelaajaNro, Buttons.A, ButtonPosition.Pressed, hyppaa, "Pelaaja hyppää", pelaaja, hyppyVoima); 
    199             Controls.Listen(pelaajaNro, Buttons.RightTrigger, ButtonPosition.Down, Ammu, "Ammu", pelaaja.Weapon); 
     295            Controls.Listen(pelaajaNro, Buttons.RightTrigger, ButtonPosition.Down, Ammu, "Ammu", pelaaja); 
    200296        } 
    201297 
     
    211307        bool Ammu(ControlEvent e) 
    212308        { 
    213             Weapon ase = e.Parameter0 as Weapon; 
    214             Projectile ammus = ase.Use(); 
     309            PlatformCharacter pelaaja = e.Parameter0 as PlatformCharacter; 
     310            Projectile ammus = pelaaja.Weapon.Use(); 
    215311 
    216312            if (ammus != null) 
     
    245341        } 
    246342        #endregion 
     343 
     344 
    247345    } 
    248346} 
Note: See TracChangeset for help on using the changeset viewer.