Changeset 177 for lassi_h


Ignore:
Timestamp:
2009-07-24 13:06:15 (10 years ago)
Author:
lamahama
Message:
 
Location:
lassi_h/Tankkipeli
Files:
4 added
2 edited

Legend:

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

    r151 r177  
    5656    </Compile> 
    5757  </ItemGroup> 
     58  <ItemGroup> 
     59    <Compile Include="Cluster.bmp"> 
     60      <Name>Cluster</Name> 
     61      <Importer>TextureImporter</Importer> 
     62      <Processor>TextureProcessor</Processor> 
     63    </Compile> 
     64  </ItemGroup> 
     65  <ItemGroup> 
     66    <Compile Include="Kentta.bmp"> 
     67      <Name>Kentta</Name> 
     68      <Importer>TextureImporter</Importer> 
     69      <Processor>TextureProcessor</Processor> 
     70    </Compile> 
     71  </ItemGroup> 
     72  <ItemGroup> 
     73    <Compile Include="Tank2.PNG"> 
     74      <Name>Tank2</Name> 
     75      <Importer>TextureImporter</Importer> 
     76      <Processor>TextureProcessor</Processor> 
     77    </Compile> 
     78  </ItemGroup> 
    5879  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    5980  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
  • lassi_h/Tankkipeli/Peli.cs

    r151 r177  
    5151        bool tuhoutunut1; 
    5252        bool tuhoutunut2; 
     53        PhysicsObject Kentta; 
    5354        Texture2D granaatti; 
    5455        Timer ajastin; 
     56 
    5557        protected override void LoadContent() 
    5658        { 
    5759            //Luodaan ajastin 
     60            LuoAjastin(); 
     61             
     62            // Luodaan tankkit ja lisätään ne peliin 
     63            LisaaTankit(); 
     64 
     65            // Luodaan maasto 
     66            Kentta = Level.CreateGround(50,150, 6, Color.Brown, Content.Load<Texture2D>("Kentta")); 
     67 
     68            //Luodaan mittarit 
     69            LuoVoimamittarit(); 
     70            LuoElkkumittarit(); 
     71 
     72            //Luodaan aseet 
     73            AseidenLuominen(); 
     74 
     75            // Luodaan reunat 
     76            Level.CreateBorder(); 
     77 
     78            // Asemoidaan tankkit 
     79 
     80            tankki.Y = Level.Bottom + 200; 
     81            tankki.X = Level.Right - 100; 
     82 
     83            tankki2.Y = Level.Bottom + 200; 
     84            tankki2.X = Level.Left + 100; 
     85 
     86            // Asetetaan painovoima 
     87            Gravity = new Vector2D(0, -200); 
     88 
     89            //Luodaan tekstit 
     90            LuoAseTekstit(); 
     91            LuoLatausTekstit(); 
     92            LuoVoittoTekstit(); 
     93 
     94            //Luodaan äänet 
     95            tankinaanet = Content.Load<SoundEffect>("Tankkiäänet"); 
     96             
     97            // Asetetaan näppäimet 
     98            Player1Keys(); 
     99            Player2Keys(); 
     100 
     101            //Laitetaan tarkistus tankkien olemisesta ilmassa 
     102            AddCollisionHandler(tankki, JetPackOFF1); 
     103            AddCollisionHandler(tankki2, JetPackOFF2); 
     104             
     105            //Asetetaan "voitto-tekstit" näkymään kun toiselta loppuu elkut. 
     106            tankki2.Hull.HitpointsReachedZero += new EventHandler(Hull_HitpointsReachedZero2); 
     107            tankki.Hull.HitpointsReachedZero += new EventHandler(Hull_HitpointsReachedZero); 
     108        } 
     109        private void LisaaTankit() 
     110        { 
     111            tankki = new Tank(this, "tankki"); 
     112            Level.Objects.Add(tankki); 
     113            tankki.Removed += new EventHandler(tuhoutuminen1); 
     114            tankki.Hull.Texture = Content.Load<Texture2D>("Tank2"); 
     115            tankki2 = new Tank(this, "tankki2"); 
     116            Level.Objects.Add(tankki2); 
     117            tankki2.Removed += new EventHandler(tuhoutuminen2); 
     118            tankki.HitPoints.MaxValue = 5000; 
     119            tankki2.HitPoints.MaxValue = 5000; 
     120            tankki.HitPoints.DefaultValue = 5000; 
     121            tankki2.HitPoints.DefaultValue = 5000; 
     122            tankki.HitPoints.Value = 5000; 
     123            tankki2.HitPoints.Value = 5000; 
     124 
     125             
     126        } 
     127        private void LuoAjastin() 
     128        { 
    58129            ajastin = new Timer(); 
    59130            ajastin.Interval = 0.5; 
     
    62133            AddTimer(ajastin); 
    63134            ajastin.Start(); 
    64              
    65  
    66             // Luodaan tankkit ja lisätään ne peliin 
    67             tankki = new Tank(this, "tankki"); 
    68             Level.Objects.Add(tankki); 
    69             tankki.Removed +=new EventHandler(tuhoutuminen1); 
    70  
    71             tankki2 = new Tank(this, "tankki2"); 
    72             Level.Objects.Add(tankki2); 
    73             tankki2.Removed += new EventHandler(tuhoutuminen2); 
    74  
    75             // Luodaan maasto 
    76             Level.CreateGround(10, 50, 20, Color.LightGreen); 
    77  
    78             //Asetetaan tankkien elkut 
    79             tankki.HitPoints.Value = 1000; 
    80             tankki2.HitPoints.Value = 1000; 
    81  
    82             //Luodaan mittarit 
    83             LuoVoimamittarit(); 
    84             LuoElkkumittarit(); 
    85  
    86             //Luodaan aseet 
    87             AseidenLuominen(); 
    88  
    89             // Luodaan reunat 
    90             Level.CreateBorder(); 
    91  
    92             // Asemoidaan tankkit 
    93  
    94             tankki.Y = Level.Bottom + 100; 
    95             tankki.X = Level.Right - 100; 
    96  
    97             tankki2.Y = Level.Bottom + 100; 
    98             tankki2.X = Level.Left + 100; 
    99  
    100             // Asetetaan painovoima 
    101             Gravity = new Vector2D(0, -200); 
    102  
    103             //Luodaan tekstit 
    104             LuoAseTekstit(); 
    105             LuoLatausTekstit(); 
    106             LuoVoittoTekstit(); 
    107  
    108             //Luodaan äänet 
    109             tankinaanet = Content.Load<SoundEffect>("Tankkiäänet"); 
    110              
    111             // 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  
     135        } 
    123136        private void Player1Keys() 
    124137        { 
    125             Controls.Listen(Keys.Left, ButtonPosition.Down, aja1, "Liiku vasemmalle", tankki, Tank.MaxTorque * 4); 
    126             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); 
    129             Controls.Listen(Keys.Up, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1)); 
    130             Controls.Listen(Keys.Down, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki, Angle.Degrees(-1)); 
    131             Controls.Listen(Keys.M, ButtonPosition.Down, lisaatehoja1, null, tankki); 
    132             Controls.Listen(Keys.M, ButtonPosition.Released, ammupanos, "Ammu", tankki); 
    133             Controls.Listen(Keys.N, ButtonPosition.Down, JetPack1, "Rakettimoottori", tankki); 
    134             Controls.Listen(Keys.B, ButtonPosition.Pressed, NextWeapon1, "Seuraava ase", tankki); 
    135             Controls.Listen(Keys.V, ButtonPosition.Pressed, BeforeWeapon1, "Edellinen ase", tankki); 
     138            Controls.Listen(Keys.NumPad4, ButtonPosition.Down, aja1, "Liiku vasemmalle", tankki, Tank.MaxTorque); 
     139            Controls.Listen(Keys.NumPad6, ButtonPosition.Down, aja1, "Liiku oikealle", tankki, -Tank.MaxTorque); 
     140            Controls.Listen(Keys.NumPad4, ButtonPosition.Up, alaaja1, null, tankki); 
     141            Controls.Listen(Keys.NumPad6, ButtonPosition.Up, alaaja1, null, tankki); 
     142            Controls.Listen(Keys.NumPad8, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1)); 
     143            Controls.Listen(Keys.NumPad5, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki, Angle.Degrees(-1)); 
     144            Controls.Listen(Keys.F12, ButtonPosition.Down, lisaatehoja1, null, tankki); 
     145            Controls.Listen(Keys.F12, ButtonPosition.Released, ammupanos, "Ammu", tankki); 
     146            Controls.Listen(Keys.F11, ButtonPosition.Down, JetPack1, "Rakettimoottori", tankki); 
     147            Controls.Listen(Keys.F10, ButtonPosition.Pressed, NextWeapon1, "Seuraava ase", tankki); 
     148            Controls.Listen(Keys.F9, ButtonPosition.Pressed, BeforeWeapon1, "Edellinen ase", tankki); 
     149            Controls.Listen(Keys.F8, ButtonPosition.Pressed, TurnTank, "Käännä tankki oikeinpäin", tankki); 
     150            Controls.Listen(Keys.D5, ButtonPosition.Pressed, TurnTank, "Käännä tankki oikeinpäin", tankki2); 
     151        } 
     152        private bool TurnTank(ControlEvent e) 
     153        { 
     154            Tank t = e.Parameter0 as Tank; 
     155            t.Hull.Angle = Angle.Degrees(0); 
     156            return false; 
    136157        } 
    137158        private void Player2Keys() 
    138159        { 
    139             Controls.Listen(Keys.D, ButtonPosition.Down, aja2, "Liiku vasemmalle", tankki2, Tank.MaxTorque * 4); 
    140             Controls.Listen(Keys.G, ButtonPosition.Down, aja2, "Liiku oikealle", tankki2, -Tank.MaxTorque * 4); 
    141             Controls.Listen(Keys.D, ButtonPosition.Up, alaaja2, null, tankki2); 
     160            Controls.Listen(Keys.G, ButtonPosition.Down, aja2, "Liiku vasemmalle", tankki2, Tank.MaxTorque); 
     161            Controls.Listen(Keys.J, ButtonPosition.Down, aja2, "Liiku oikealle", tankki2, -Tank.MaxTorque); 
    142162            Controls.Listen(Keys.G, ButtonPosition.Up, alaaja2, null, tankki2); 
    143             Controls.Listen(Keys.R, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki2, Angle.Degrees(1)); 
    144             Controls.Listen(Keys.F, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki2, Angle.Degrees(-1)); 
     163            Controls.Listen(Keys.J, ButtonPosition.Up, alaaja2, null, tankki2); 
     164            Controls.Listen(Keys.Y, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki2, Angle.Degrees(1)); 
     165            Controls.Listen(Keys.H, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki2, Angle.Degrees(-1)); 
    145166            Controls.Listen(Keys.D4, ButtonPosition.Down, lisaatehoja2, null, tankki2); 
    146167            Controls.Listen(Keys.D4, ButtonPosition.Released, ammupanos, "Ammu", tankki2); 
     168            Controls.Listen(Keys.D3, ButtonPosition.Down, JetPack2, "Rakettimoottori", tankki2); 
    147169            Controls.Listen(Keys.D2, ButtonPosition.Pressed, NextWeapon2, "Seuraava ase", tankki); 
    148170            Controls.Listen(Keys.D1, ButtonPosition.Pressed, BeforeWeapon2, "Edellinen ase", tankki); 
    149             Controls.Listen(Keys.D3, ButtonPosition.Down, JetPack2, "Rakettimoottori", tankki2); 
     171             
    150172        } 
    151173        private void tuhoutuminen2(object sender, EventArgs e) 
     
    171193            SpriteFont Fontti = Content.Load<SpriteFont>("SpriteFont1"); 
    172194            Winner1 = new TextDisplay(this, Fontti); 
     195            Winner1.TextColor = new Color(255, 0, 0); 
    173196            Winner1.Text = "Winner: Player1"; 
    174197 
     
    177200 
    178201            Winner2 = new TextDisplay(this, Fontti); 
     202            Winner2.TextColor = new Color(0, 255, 0); 
    179203            Winner2.Text = "Winner: Player2"; 
    180204            Winner2.Visible = false; 
     
    185209            Reloading1 = new TextDisplay(this); 
    186210            Reloading1.Text = "Reloading"; 
    187             Reloading1.TextColor = new Color(0, 0, 0); 
     211            Reloading1.TextColor = new Color(255, 0, 0); 
    188212            Reloading1.Visible = false; 
    189213            Reloading1.X = 300; 
    190214            Reloading1.Y = Level.Top - 10; 
    191215            Add(Reloading1); 
     216 
    192217            Reloading2 = new TextDisplay(this); 
    193218            Reloading2.Text = "Reloading"; 
     219            Reloading2.TextColor = new Color(0,255,0); 
    194220            Reloading2.Visible = false; 
    195221            Reloading2.X = -300; 
     
    201227            Ase1 = new TextDisplay(this); 
    202228            Ase1.Text = "SuperCluster"; 
     229            Ase1.TextColor = new Color(255,0,0); 
    203230            Ase1.X = 300; 
    204231            Ase1.Y = Level.Bottom + 15; 
    205232            Add(Ase1); 
     233 
    206234            Ase2 = new TextDisplay(this); 
    207235            Ase2.Text = "SuperCluster"; 
     236            Ase2.TextColor = new Color(0,255,0); 
    208237            Ase2.X = -300; 
    209238            Ase2.Y = Level.Bottom + 15; 
     
    235264            h1.X = 300; 
    236265            h1.Y = Level.Top - 30; 
    237             h1.Max = 500.0; 
     266            h1.Max = 5000.0; 
    238267            h1.Width = 20; 
    239268            h1.Height = Level.Right - 100; 
     
    247276            h2.X = -300; 
    248277            h2.Y = Level.Top - 30; 
    249             h2.Max = 500.0; 
     278            h2.Max = 5000.0; 
    250279            h2.Width = 20; 
    251280            h2.Height = Level.Right - 100; 
     
    264293            CannonBall panos = new CannonBall(); 
    265294            panos.Shape = Shapes.CreateRectangle(20.0, 5.0); 
    266             panos.Damage = new Damage(100); 
     295            panos.Damage = new Damage(300); 
    267296            panos.Restitution = 0.0; 
    268297            panos.ExplodeCondition = Projectile.IsBattleObject; 
     
    274303            CannonBall panos2 = new CannonBall(); 
    275304            panos2.Shape = Shapes.CreateCircle(5.0); 
    276             panos2.Damage = new Damage(20); 
     305            panos2.Damage = new Damage(100); 
    277306            Aseet.Add(panos2); 
    278307            Aseidennimet.Add("Cannon"); 
     
    280309 
    281310 
    282             CannonBall panos3 = new CannonBall(); 
    283             panos3.Shape = Shapes.CreateCircle(8.0); 
    284             panos3.Damage = new Damage(2); 
     311            Projectile panos3 = new Projectile("SuperCluster", Shapes.CreateCircle(20.0),10); 
     312            panos3.Explosion = new Explosion(120, 200, 100000, new Damage(1000)); 
     313            panos3.Texture = Content.Load<Texture2D>("Cluster"); 
    285314            panos3.ClusterType = new ClusterCannonball(1); 
     315            panos3.ClusterType.Shape = Shapes.CreateCircle(12); 
     316            panos3.ClusterType.NumClusters = 2; 
    286317            panos3.Explosion.Force = 1000; 
    287318            panos3.NumClusters = 2; 
    288             panos3.ClusterArc = 2; 
     319            panos3.ClusterArc = 20; 
    289320            AseenTulinopeus.Add(0.1); 
    290321            Aseet.Add(panos3); 
     
    296327            panos4.ExplodeCondition = Projectile.IsBattleObject; 
    297328            panos4.FuseTime = new Lifetime(4.0); 
    298             panos4.Explosion = new Explosion(120,200, 100000, new Damage(20)); 
     329            panos4.Explosion = new Explosion(120,200, 100000, new Damage(400)); 
    299330            AseenTulinopeus.Add(0.15); 
    300331            Aseet.Add(panos4); 
    301332            Aseidennimet.Add("Granade"); 
     333             
    302334 
    303335            Projectile panos5 = new Projectile("Raketti", Shapes.CreateRectangle(80, 8), 10); 
    304             granaatti = Content.Load<Texture2D>("Rocket"); 
    305             panos5.Mass = 10.0; 
    306             panos5.Explosion = new Explosion(120, 200, 100000, new Damage(80)); 
     336            Texture2D raketti = Content.Load<Texture2D>("Rocket"); 
     337            panos5.Texture = raketti; 
     338            panos5.Mass = 8.0; 
     339            panos5.Explosion = new Explosion(120, 200, 100000, new Damage(400)); 
    307340            panos5.FuseTime = new Lifetime(4.0); 
    308341            panos5.Explosion.Force = 100000; 
     
    314347            panos6.Shape = Shapes.CreateCircle(2.0); 
    315348            panos6.Mass = 10.0; 
    316             panos6.Explodes = false; 
    317             panos6.Damage = new Damage(2); 
     349            panos6.Explodes = true; 
     350            panos6.Explosion.MaxRadius = 20; 
     351            panos6.Damage = new Damage(10); 
    318352            panos6.Explosion.Force = 1; 
    319             AseenTulinopeus.Add(10); 
     353            AseenTulinopeus.Add(8.0); 
    320354            Aseet.Add(panos6); 
    321355            Aseidennimet.Add("MachineGun"); 
    322356 
     357 
     358 
    323359            tankki.Cannon.FireRate = 0.1; 
    324360            tankki.Cannon.Clip = new Clip(panos3); 
     
    330366        { 
    331367            Winner2.Visible = true; 
    332  
     368             
    333369        } 
    334370        private void Hull_HitpointsReachedZero2(object sender, EventArgs e) 
     
    374410            tankki2.Cannon.Power.Value = 0; 
    375411            tankki2.Cannon.Clip = new Clip(Aseet[Weapon2]); 
    376             tankki.Cannon.FireRate = AseenTulinopeus[Weapon2]; 
     412            tankki2.Cannon.FireRate = AseenTulinopeus[Weapon2]; 
    377413            Ase2.Text = Aseidennimet[Weapon2]; 
    378414            return false; 
     
    387423            tankki2.Cannon.Power.Value = 0; 
    388424            tankki2.Cannon.Clip = new Clip(Aseet[Weapon2]); 
    389             tankki.Cannon.FireRate = AseenTulinopeus[Weapon2]; 
     425            tankki2.Cannon.FireRate = AseenTulinopeus[Weapon2]; 
    390426            Ase2.Text = Aseidennimet[Weapon2]; 
    391427            return false; 
     
    455491        { 
    456492             
    457             Tank t = e.Parameter0 as Tank; 
     493             
    458494            if (Weapon1 == 5) 
    459495            { 
    460                 t.Shoot(); 
     496                tankki.Shoot(); 
    461497            } 
    462498            else 
    463499            { 
    464                 if (t.Cannon.Power.Value < 15000) 
    465                 { 
    466                     t.Cannon.Power.Value += 100.0; 
     500                if (tankki.Cannon.Power.Value < 15000) 
     501                { 
     502                    tankki.Cannon.Power.Value += 100.0; 
    467503                } 
    468504            } 
     
    471507        bool lisaatehoja2(ControlEvent e) 
    472508        { 
    473             Tank t = e.Parameter0 as Tank; 
     509             
    474510 
    475511            if (Weapon2 == 5) 
    476512            { 
    477                 t.Shoot(); 
     513                tankki2.Shoot(); 
    478514            } 
    479515            else 
    480516            { 
    481                 if (t.Cannon.Power.Value < 15000) 
    482                 { 
    483                     t.Cannon.Power.Value += 100.0; 
     517                if (tankki2.Cannon.Power.Value < 15000) 
     518                { 
     519                    tankki2.Cannon.Power.Value += 100.0; 
    484520                } 
    485521            } 
     
    488524        void JetPackOFF1(Collision collision) 
    489525        { 
    490             if (collision.Other == Level.BottomBorder) 
     526            if (collision.Other == Kentta) 
    491527            { 
    492528                JetPackON1 = 0; 
     
    495531        void JetPackOFF2(Collision collision) 
    496532        { 
    497             if (collision.Other == Level.BottomBorder) 
     533            if (collision.Other == Kentta) 
    498534            { 
    499535                JetPackON2 = 0; 
     
    551587                tankki2.Cannon.Power.Value = 15000; 
    552588            } 
     589 
    553590            if (tankki.Cannon.CanUse) 
    554591            { 
     
    561598                Reloading1.Visible = true; 
    562599            } 
     600 
    563601            if (tankki2.Cannon.CanUse) 
    564602            { 
Note: See TracChangeset for help on using the changeset viewer.