Changeset 151 for lassi_h


Ignore:
Timestamp:
2009-07-23 15:00:03 (10 years ago)
Author:
lamahama
Message:
 
Location:
lassi_h/Tankkipeli
Files:
3 added
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • lassi_h/Tankkipeli/Content/Content.contentproj

    r133 r151  
    3636  </ItemGroup> 
    3737  <ItemGroup> 
    38     <Compile Include="Granade.bmp"> 
     38    <Compile Include="Tankkiäänet.wav"> 
     39      <Name>Tankkiäänet</Name> 
     40      <Importer>WavImporter</Importer> 
     41      <Processor>SoundEffectProcessor</Processor> 
     42    </Compile> 
     43  </ItemGroup> 
     44  <ItemGroup> 
     45    <Compile Include="Granade.PNG"> 
    3946      <Name>Granade</Name> 
    4047      <Importer>TextureImporter</Importer> 
     
    4350  </ItemGroup> 
    4451  <ItemGroup> 
    45     <Compile Include="Tankkiäänet.wav"> 
    46       <Name>Tankkiäänet</Name> 
    47       <Importer>WavImporter</Importer> 
    48       <Processor>SoundEffectProcessor</Processor> 
     52    <Compile Include="Rocket.PNG"> 
     53      <Name>Rocket</Name> 
     54      <Importer>TextureImporter</Importer> 
     55      <Processor>TextureProcessor</Processor> 
    4956    </Compile> 
    5057  </ItemGroup> 
  • lassi_h/Tankkipeli/Peli.cs

    r133 r151  
    2121    public class Peli : PhysicsGame 
    2222    { 
    23         const int Aseidenmaara = 4; 
     23         
     24        const int Aseidenmaara = 5; 
    2425        Tank tankki; 
    2526        Tank tankki2; 
     
    3233        int Weapon1 = 0; 
    3334        int Weapon2 = 0; 
    34         List<CannonBall> Aseet; 
     35        List<Projectile> Aseet; 
    3536        List<String> Aseidennimet; 
    3637        List<double> AseenTulinopeus; 
     
    4243        TextDisplay Winner2; 
    4344        SoundEffect tankinaanet; 
     45        bool moottoripaalla1; 
     46        bool moottoripaalla2; 
     47        float voimakkuus; 
     48        float pitch; 
     49        double prosentti; 
     50        float suunta; 
     51        bool tuhoutunut1; 
     52        bool tuhoutunut2; 
     53        Texture2D granaatti; 
     54        Timer ajastin; 
    4455        protected override void LoadContent() 
    4556        { 
     57            //Luodaan ajastin 
     58            ajastin = new Timer(); 
     59            ajastin.Interval = 0.5; 
     60            ajastin.Trigger += new Timer.TriggerHandler(SoitaTankkienaanet); 
     61            ajastin.Enabled = true; 
     62            AddTimer(ajastin); 
     63            ajastin.Start(); 
     64             
     65 
    4666            // Luodaan tankkit ja lisätään ne peliin 
    4767            tankki = new Tank(this, "tankki"); 
    4868            Level.Objects.Add(tankki); 
     69            tankki.Removed +=new EventHandler(tuhoutuminen1); 
    4970 
    5071            tankki2 = new Tank(this, "tankki2"); 
    5172            Level.Objects.Add(tankki2); 
     73            tankki2.Removed += new EventHandler(tuhoutuminen2); 
    5274 
    5375            // Luodaan maasto 
     
    81103            //Luodaan tekstit 
    82104            LuoAseTekstit(); 
    83  
    84105            LuoLatausTekstit(); 
    85  
    86106            LuoVoittoTekstit(); 
    87107 
    88108            //Luodaan äänet 
    89109            tankinaanet = Content.Load<SoundEffect>("Tankkiäänet"); 
    90  
    91  
     110             
    92111            // Asetetaan näppäimet 
     112            Player1Keys(); 
     113            Player2Keys(); 
     114 
     115            AddCollisionHandler(tankki, JetPackOFF1); 
     116            AddCollisionHandler(tankki2, JetPackOFF2); 
     117             
     118            tankki2.Hull.HitpointsReachedZero += new EventHandler(Hull_HitpointsReachedZero2); 
     119            tankki.Hull.HitpointsReachedZero += new EventHandler(Hull_HitpointsReachedZero); 
     120        } 
     121 
     122 
     123        private void Player1Keys() 
     124        { 
    93125            Controls.Listen(Keys.Left, ButtonPosition.Down, aja1, "Liiku vasemmalle", tankki, Tank.MaxTorque * 4); 
    94126            Controls.Listen(Keys.Right, ButtonPosition.Down, aja1, "Liiku oikealle", tankki, -Tank.MaxTorque * 4); 
     127            Controls.Listen(Keys.Left, ButtonPosition.Up, alaaja1, null, tankki); 
     128            Controls.Listen(Keys.Right, ButtonPosition.Up, alaaja1, null, tankki); 
    95129            Controls.Listen(Keys.Up, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1)); 
    96130            Controls.Listen(Keys.Down, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki, Angle.Degrees(-1)); 
    97             Controls.Listen(Keys.M, ButtonPosition.Down, lisaatehoja, "", tankki); 
     131            Controls.Listen(Keys.M, ButtonPosition.Down, lisaatehoja1, null, tankki); 
    98132            Controls.Listen(Keys.M, ButtonPosition.Released, ammupanos, "Ammu", tankki); 
    99133            Controls.Listen(Keys.N, ButtonPosition.Down, JetPack1, "Rakettimoottori", tankki); 
    100134            Controls.Listen(Keys.B, ButtonPosition.Pressed, NextWeapon1, "Seuraava ase", tankki); 
    101135            Controls.Listen(Keys.V, ButtonPosition.Pressed, BeforeWeapon1, "Edellinen ase", tankki); 
    102  
     136        } 
     137        private void Player2Keys() 
     138        { 
    103139            Controls.Listen(Keys.D, ButtonPosition.Down, aja2, "Liiku vasemmalle", tankki2, Tank.MaxTorque * 4); 
    104140            Controls.Listen(Keys.G, ButtonPosition.Down, aja2, "Liiku oikealle", tankki2, -Tank.MaxTorque * 4); 
     141            Controls.Listen(Keys.D, ButtonPosition.Up, alaaja2, null, tankki2); 
     142            Controls.Listen(Keys.G, ButtonPosition.Up, alaaja2, null, tankki2); 
    105143            Controls.Listen(Keys.R, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki2, Angle.Degrees(1)); 
    106144            Controls.Listen(Keys.F, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki2, Angle.Degrees(-1)); 
    107             Controls.Listen(Keys.D4, ButtonPosition.Down, lisaatehoja, "", tankki2); 
     145            Controls.Listen(Keys.D4, ButtonPosition.Down, lisaatehoja2, null, tankki2); 
    108146            Controls.Listen(Keys.D4, ButtonPosition.Released, ammupanos, "Ammu", tankki2); 
    109147            Controls.Listen(Keys.D2, ButtonPosition.Pressed, NextWeapon2, "Seuraava ase", tankki); 
    110148            Controls.Listen(Keys.D1, ButtonPosition.Pressed, BeforeWeapon2, "Edellinen ase", tankki); 
    111  
    112149            Controls.Listen(Keys.D3, ButtonPosition.Down, JetPack2, "Rakettimoottori", tankki2); 
    113             AddCollisionHandler(tankki, JetPackOFF1); 
    114             AddCollisionHandler(tankki2, JetPackOFF2); 
    115  
    116             tankki2.Hull.HitpointsReachedZero += new EventHandler(Hull_HitpointsReachedZero2); 
    117  
    118             tankki.Hull.HitpointsReachedZero += new EventHandler(Hull_HitpointsReachedZero); 
    119         } 
    120  
     150        } 
     151        private void tuhoutuminen2(object sender, EventArgs e) 
     152        { 
     153            tuhoutunut2 = true; 
     154        } 
     155        private void tuhoutuminen1(object sender, EventArgs e) 
     156        { 
     157            tuhoutunut1 = true; 
     158        } 
     159        private bool alaaja1(ControlEvent e) 
     160        { 
     161            moottoripaalla1 = false; 
     162            return false; 
     163        } 
     164        private bool alaaja2(ControlEvent e) 
     165        { 
     166            moottoripaalla2 = false; 
     167            return false; 
     168        } 
    121169        private void LuoVoittoTekstit() 
    122170        { 
     
    133181            Add(Winner2); 
    134182        } 
    135  
    136183        private void LuoLatausTekstit() 
    137184        { 
     
    150197            Add(Reloading2); 
    151198        } 
    152  
    153199        private void LuoAseTekstit() 
    154200        { 
     
    164210            Add(Ase2); 
    165211        } 
    166  
    167212        private void LuoVoimamittarit() 
    168213        { 
     
    184229            Add(g2); 
    185230        } 
    186  
    187231        private void LuoElkkumittarit() 
    188232        { 
     
    212256            h2.BindTo(tankki2.HitPoints); 
    213257        } 
    214  
    215258        private void AseidenLuominen() 
    216259        { 
    217260            Aseidennimet = new List<String>(); 
    218             Aseet = new List<CannonBall>(); 
     261            Aseet = new List<Projectile>(); 
    219262            AseenTulinopeus = new List<double>(); 
    220263 
     
    230273 
    231274            CannonBall panos2 = new CannonBall(); 
    232             panos2.Shape = Shapes.CreateCircle(3.0); 
    233             panos2.Damage = new Damage(10); 
     275            panos2.Shape = Shapes.CreateCircle(5.0); 
     276            panos2.Damage = new Damage(20); 
    234277            Aseet.Add(panos2); 
    235278            Aseidennimet.Add("Cannon"); 
    236             AseenTulinopeus.Add(1); 
     279            AseenTulinopeus.Add(1.5); 
    237280 
    238281 
    239282            CannonBall panos3 = new CannonBall(); 
    240283            panos3.Shape = Shapes.CreateCircle(8.0); 
    241             panos3.Damage = new Damage(1); 
     284            panos3.Damage = new Damage(2); 
    242285            panos3.ClusterType = new ClusterCannonball(1); 
    243286            panos3.Explosion.Force = 1000; 
     
    248291            Aseidennimet.Add("SuperCluster"); 
    249292 
    250             CannonBall panos4 = new CannonBall(); 
    251             Texture2D granaatti = Content.Load<Texture2D>("Granade"); 
     293            Projectile panos4 = new Projectile("granaatti",Shapes.CreateRectangle(10,15),10); 
     294            granaatti = Content.Load<Texture2D>("Granade"); 
    252295            panos4.Texture = granaatti; 
    253             panos4.Damage = new Damage(20); 
    254296            panos4.ExplodeCondition = Projectile.IsBattleObject; 
    255297            panos4.FuseTime = new Lifetime(4.0); 
    256             panos4.Explosion.Force = 10000; 
     298            panos4.Explosion = new Explosion(120,200, 100000, new Damage(20)); 
    257299            AseenTulinopeus.Add(0.15); 
    258300            Aseet.Add(panos4); 
    259301            Aseidennimet.Add("Granade"); 
    260302 
    261             CannonBall panos5 = new CannonBall(); 
    262             panos5.Shape = Shapes.CreateRectangle(80.0, 5.0); 
     303            Projectile panos5 = new Projectile("Raketti", Shapes.CreateRectangle(80, 8), 10); 
     304            granaatti = Content.Load<Texture2D>("Rocket"); 
    263305            panos5.Mass = 10.0; 
    264             panos5.Damage = new Damage(80); 
     306            panos5.Explosion = new Explosion(120, 200, 100000, new Damage(80)); 
    265307            panos5.FuseTime = new Lifetime(4.0); 
    266308            panos5.Explosion.Force = 100000; 
     
    269311            Aseidennimet.Add("Rocket"); 
    270312 
     313            CannonBall panos6 = new CannonBall(); 
     314            panos6.Shape = Shapes.CreateCircle(2.0); 
     315            panos6.Mass = 10.0; 
     316            panos6.Explodes = false; 
     317            panos6.Damage = new Damage(2); 
     318            panos6.Explosion.Force = 1; 
     319            AseenTulinopeus.Add(10); 
     320            Aseet.Add(panos6); 
     321            Aseidennimet.Add("MachineGun"); 
    271322 
    272323            tankki.Cannon.FireRate = 0.1; 
     
    276327            tankki2.Cannon.Clip = new Clip(panos3); 
    277328        } 
    278  
    279         void Hull_HitpointsReachedZero(object sender, EventArgs e) 
     329        private void Hull_HitpointsReachedZero(object sender, EventArgs e) 
    280330        { 
    281331            Winner2.Visible = true; 
    282332 
    283333        } 
    284  
    285         void Hull_HitpointsReachedZero2(object sender, EventArgs e) 
     334        private void Hull_HitpointsReachedZero2(object sender, EventArgs e) 
    286335        { 
    287336 
     
    290339 
    291340        } 
    292  
    293         bool NextWeapon1(ControlEvent e) 
     341        private bool NextWeapon1(ControlEvent e) 
    294342        { 
    295343            Weapon1 += 1; 
     
    346394        { 
    347395            Tank t = e.Parameter0 as Tank; 
     396 
     397            moottoripaalla1 = true; 
     398            double vaanto = e.Parameter1.ToDouble(); 
     399 
     400            // Kiihdytetään tankin vauhtia 
     401 
     402 
     403            if (JetPackON1 == 0) 
     404            { 
     405                t.Accelerate(vaanto); 
     406            } 
     407            else 
     408            { 
     409                if (vaanto > 0.0) 
     410                { 
     411                    t.Hull.Body.ApplyTorque(1000000); 
     412                } 
     413                else 
     414                { 
     415                    t.Hull.Body.ApplyTorque(-1000000); 
     416                } 
     417 
     418            } 
     419 
     420 
     421 
     422            return false; 
     423        } 
     424        bool aja2(ControlEvent e) 
     425        { 
     426            Tank t = e.Parameter0 as Tank; 
     427            moottoripaalla2 = true; 
     428            double vaanto = e.Parameter1.ToDouble(); 
     429 
     430            // Kiihdytetään tankin vauhtia 
     431 
     432 
     433            if (JetPackON2 == 0) 
     434            { 
     435                t.Accelerate(vaanto); 
     436            } 
     437            else 
     438            { 
     439                if (vaanto > 0.0) 
     440                { 
     441                    t.Hull.Body.ApplyTorque(1000000); 
     442                } 
     443                else 
     444                { 
     445                    t.Hull.Body.ApplyTorque(-1000000); 
     446                } 
     447 
     448            } 
     449 
     450 
     451 
     452            return false; 
     453        } 
     454        bool lisaatehoja1(ControlEvent e) 
     455        { 
    348456             
    349             float voimakkuus = 0.7f; 
    350             float pitch = -0.5f; 
    351             double prosentti = Math.Abs(tankki.X) / Level.Right; 
    352             float suunta = 0.0f; 
    353             if (tankki.X<0) 
    354             { 
    355                 suunta = (float)(-prosentti); 
     457            Tank t = e.Parameter0 as Tank; 
     458            if (Weapon1 == 5) 
     459            { 
     460                t.Shoot(); 
    356461            } 
    357462            else 
    358463            { 
    359                 suunta = (float)(prosentti); 
    360             } 
    361             tankinaanet.Play(voimakkuus,pitch,suunta); 
    362             double vaanto = e.Parameter1.ToDouble(); 
    363  
    364             // Kiihdytetään tankin vauhtia 
    365  
    366  
    367             if (JetPackON1 == 0) 
    368             { 
    369                 t.Accelerate(vaanto); 
     464                if (t.Cannon.Power.Value < 15000) 
     465                { 
     466                    t.Cannon.Power.Value += 100.0; 
     467                } 
     468            } 
     469            return false; 
     470        } 
     471        bool lisaatehoja2(ControlEvent e) 
     472        { 
     473            Tank t = e.Parameter0 as Tank; 
     474 
     475            if (Weapon2 == 5) 
     476            { 
     477                t.Shoot(); 
    370478            } 
    371479            else 
    372480            { 
    373                 if (vaanto > 0.0) 
    374                 { 
    375                     t.Hull.Body.ApplyTorque(1000000); 
    376                 } 
    377                 else 
    378                 { 
    379                     t.Hull.Body.ApplyTorque(-1000000); 
    380                 } 
    381  
    382             } 
    383  
    384  
    385  
    386             return false; 
    387         } 
    388         bool aja2(ControlEvent e) 
    389         { 
    390             Tank t = e.Parameter0 as Tank; 
    391             tankinaanet.Play(); 
    392             double vaanto = e.Parameter1.ToDouble(); 
    393  
    394             // Kiihdytetään tankin vauhtia 
    395  
    396  
    397             if (JetPackON2 == 0) 
    398             { 
    399                 t.Accelerate(vaanto); 
    400             } 
    401             else 
    402             { 
    403                 if (vaanto > 0.0) 
    404                 { 
    405                     t.Hull.Body.ApplyTorque(1000000); 
    406                 } 
    407                 else 
    408                 { 
    409                     t.Hull.Body.ApplyTorque(-1000000); 
    410                 } 
    411  
    412             } 
    413  
    414  
    415  
    416             return false; 
    417         } 
    418         bool lisaatehoja(ControlEvent e) 
    419         { 
    420             Tank t = e.Parameter0 as Tank; 
    421             if (t.Cannon.Power.Value < 14900) 
    422             { 
    423                 t.Cannon.Power.Value += 100.0; 
     481                if (t.Cannon.Power.Value < 15000) 
     482                { 
     483                    t.Cannon.Power.Value += 100.0; 
     484                } 
    424485            } 
    425486            return false; 
     
    469530        bool ammupanos(ControlEvent e) 
    470531        { 
     532 
    471533            Tank t = e.Parameter0 as Tank; 
    472534            t.Shoot(); 
     
    474536            return false; 
    475537        } 
    476  
    477538        protected override void Update(GameTime gameTime) 
    478539        { 
    479             if (Weapon1 == 4 | Weapon1 == 1) 
     540            AseidenEroja(); 
     541            base.Update(gameTime); 
     542        } 
     543        private void AseidenEroja() 
     544        { 
     545            if (Weapon1 == 4 | Weapon1 == 1 | Weapon1 == 5) 
    480546            { 
    481547                tankki.Cannon.Power.Value = 15000; 
     548            } 
     549            if (Weapon2 == 4 | Weapon2 == 1 | Weapon2 == 5) 
     550            { 
     551                tankki2.Cannon.Power.Value = 15000; 
    482552            } 
    483553            if (tankki.Cannon.CanUse) 
     
    501571                Reloading2.Visible = true; 
    502572            } 
    503             base.Update(gameTime); 
     573        } 
     574        void SoitaTankkienaanet(Timer sender) 
     575        { 
     576            //Ykkös tankin äänet 
     577            if (tuhoutunut1 == false) 
     578            { 
     579                if (moottoripaalla1 == true) 
     580                { 
     581                    voimakkuus = 0.5f; 
     582                    pitch = -0.5f; 
     583                } 
     584                else 
     585                { 
     586                    voimakkuus = 0.1f; 
     587                    pitch = -1.0f; 
     588                } 
     589 
     590                prosentti = Math.Abs(tankki.X) / Level.Right; 
     591                suunta = 0.0f; 
     592                if (tankki.X < 0) 
     593                { 
     594                    suunta = (float)(-prosentti); 
     595                } 
     596                else 
     597                { 
     598                    suunta = (float)(prosentti); 
     599                } 
     600                tankinaanet.Play(voimakkuus, pitch, suunta); 
     601            } 
     602 
     603            //Tankki2:sen äänet 
     604            if (tuhoutunut2 == false) 
     605            { 
     606                if (moottoripaalla2 == true) 
     607                { 
     608                    voimakkuus = 0.5f; 
     609                    pitch = -0.5f; 
     610                } 
     611                else 
     612                { 
     613                    voimakkuus = 0.1f; 
     614                    pitch = -1.0f; 
     615                } 
     616 
     617                prosentti = Math.Abs(tankki2.X) / Level.Right; 
     618                suunta = 0.0f; 
     619                if (tankki2.X < 0) 
     620                { 
     621                    suunta = (float)(-prosentti); 
     622                } 
     623                else 
     624                { 
     625                    suunta = (float)(prosentti); 
     626                } 
     627                tankinaanet.Play(voimakkuus, pitch, suunta); 
     628            } 
    504629        } 
    505630    } 
Note: See TracChangeset for help on using the changeset viewer.