Changeset 133


Ignore:
Timestamp:
2009-07-23 11:33:05 (10 years ago)
Author:
lamahama
Message:
 
Location:
lassi_h/Tankkipeli
Files:
2 added
3 edited

Legend:

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

    r113 r133  
    3535    </Compile> 
    3636  </ItemGroup> 
     37  <ItemGroup> 
     38    <Compile Include="Granade.bmp"> 
     39      <Name>Granade</Name> 
     40      <Importer>TextureImporter</Importer> 
     41      <Processor>TextureProcessor</Processor> 
     42    </Compile> 
     43  </ItemGroup> 
     44  <ItemGroup> 
     45    <Compile Include="Tankkiäänet.wav"> 
     46      <Name>Tankkiäänet</Name> 
     47      <Importer>WavImporter</Importer> 
     48      <Processor>SoundEffectProcessor</Processor> 
     49    </Compile> 
     50  </ItemGroup> 
    3751  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    3852  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
  • lassi_h/Tankkipeli/Content/SpriteFont1.spritefont

    r113 r133  
    1818    the size of the font. 
    1919    --> 
    20     <Size>60</Size> 
     20    <Size>80</Size> 
    2121 
    2222    <!-- 
  • lassi_h/Tankkipeli/Peli.cs

    r113 r133  
    2121    public class Peli : PhysicsGame 
    2222    { 
    23  
     23        const int Aseidenmaara = 4; 
    2424        Tank tankki; 
    2525        Tank tankki2; 
     
    4141        TextDisplay Winner1; 
    4242        TextDisplay Winner2; 
     43        SoundEffect tankinaanet; 
    4344        protected override void LoadContent() 
    4445        { 
    45             // Luodaan tankki ja lisätään se peliin 
     46            // Luodaan tankkit ja lisätään ne peliin 
    4647            tankki = new Tank(this, "tankki"); 
    4748            Level.Objects.Add(tankki); 
     
    5253            // Luodaan maasto 
    5354            Level.CreateGround(10, 50, 20, Color.LightGreen); 
     55 
     56            //Asetetaan tankkien elkut 
    5457            tankki.HitPoints.Value = 1000; 
    5558            tankki2.HitPoints.Value = 1000; 
     59 
     60            //Luodaan mittarit 
     61            LuoVoimamittarit(); 
     62            LuoElkkumittarit(); 
     63 
     64            //Luodaan aseet 
     65            AseidenLuominen(); 
     66 
     67            // Luodaan reunat 
     68            Level.CreateBorder(); 
     69 
     70            // Asemoidaan tankkit 
     71 
     72            tankki.Y = Level.Bottom + 100; 
     73            tankki.X = Level.Right - 100; 
     74 
     75            tankki2.Y = Level.Bottom + 100; 
     76            tankki2.X = Level.Left + 100; 
     77 
     78            // Asetetaan painovoima 
     79            Gravity = new Vector2D(0, -200); 
     80 
     81            //Luodaan tekstit 
     82            LuoAseTekstit(); 
     83 
     84            LuoLatausTekstit(); 
     85 
     86            LuoVoittoTekstit(); 
     87 
     88            //Luodaan äänet 
     89            tankinaanet = Content.Load<SoundEffect>("Tankkiäänet"); 
     90 
     91 
     92            // Asetetaan näppäimet 
     93            Controls.Listen(Keys.Left, ButtonPosition.Down, aja1, "Liiku vasemmalle", tankki, Tank.MaxTorque * 4); 
     94            Controls.Listen(Keys.Right, ButtonPosition.Down, aja1, "Liiku oikealle", tankki, -Tank.MaxTorque * 4); 
     95            Controls.Listen(Keys.Up, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1)); 
     96            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); 
     98            Controls.Listen(Keys.M, ButtonPosition.Released, ammupanos, "Ammu", tankki); 
     99            Controls.Listen(Keys.N, ButtonPosition.Down, JetPack1, "Rakettimoottori", tankki); 
     100            Controls.Listen(Keys.B, ButtonPosition.Pressed, NextWeapon1, "Seuraava ase", tankki); 
     101            Controls.Listen(Keys.V, ButtonPosition.Pressed, BeforeWeapon1, "Edellinen ase", tankki); 
     102 
     103            Controls.Listen(Keys.D, ButtonPosition.Down, aja2, "Liiku vasemmalle", tankki2, Tank.MaxTorque * 4); 
     104            Controls.Listen(Keys.G, ButtonPosition.Down, aja2, "Liiku oikealle", tankki2, -Tank.MaxTorque * 4); 
     105            Controls.Listen(Keys.R, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki2, Angle.Degrees(1)); 
     106            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); 
     108            Controls.Listen(Keys.D4, ButtonPosition.Released, ammupanos, "Ammu", tankki2); 
     109            Controls.Listen(Keys.D2, ButtonPosition.Pressed, NextWeapon2, "Seuraava ase", tankki); 
     110            Controls.Listen(Keys.D1, ButtonPosition.Pressed, BeforeWeapon2, "Edellinen ase", tankki); 
     111 
     112            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 
     121        private void LuoVoittoTekstit() 
     122        { 
     123            SpriteFont Fontti = Content.Load<SpriteFont>("SpriteFont1"); 
     124            Winner1 = new TextDisplay(this, Fontti); 
     125            Winner1.Text = "Winner: Player1"; 
     126 
     127            Winner1.Visible = false; 
     128            Add(Winner1); 
     129 
     130            Winner2 = new TextDisplay(this, Fontti); 
     131            Winner2.Text = "Winner: Player2"; 
     132            Winner2.Visible = false; 
     133            Add(Winner2); 
     134        } 
     135 
     136        private void LuoLatausTekstit() 
     137        { 
     138            Reloading1 = new TextDisplay(this); 
     139            Reloading1.Text = "Reloading"; 
     140            Reloading1.TextColor = new Color(0, 0, 0); 
     141            Reloading1.Visible = false; 
     142            Reloading1.X = 300; 
     143            Reloading1.Y = Level.Top - 10; 
     144            Add(Reloading1); 
     145            Reloading2 = new TextDisplay(this); 
     146            Reloading2.Text = "Reloading"; 
     147            Reloading2.Visible = false; 
     148            Reloading2.X = -300; 
     149            Reloading2.Y = Level.Top - 10; 
     150            Add(Reloading2); 
     151        } 
     152 
     153        private void LuoAseTekstit() 
     154        { 
     155            Ase1 = new TextDisplay(this); 
     156            Ase1.Text = "SuperCluster"; 
     157            Ase1.X = 300; 
     158            Ase1.Y = Level.Bottom + 15; 
     159            Add(Ase1); 
     160            Ase2 = new TextDisplay(this); 
     161            Ase2.Text = "SuperCluster"; 
     162            Ase2.X = -300; 
     163            Ase2.Y = Level.Bottom + 15; 
     164            Add(Ase2); 
     165        } 
     166 
     167        private void LuoVoimamittarit() 
     168        { 
    56169            g1 = new BarGauge(this); 
    57170            g1.Angle = Angle.Degrees(270); 
     
    70183            g2.Height = Level.Right - 100; 
    71184            Add(g2); 
    72  
     185        } 
     186 
     187        private void LuoElkkumittarit() 
     188        { 
    73189            h1 = new BarGauge(this); 
    74190            h1.Angle = Angle.Degrees(270); 
     
    92208            h2.ValueColor = new Color(0, 255, 0); 
    93209            Add(h2); 
     210 
     211            h1.BindTo(tankki.HitPoints); 
     212            h2.BindTo(tankki2.HitPoints); 
     213        } 
     214 
     215        private void AseidenLuominen() 
     216        { 
    94217            Aseidennimet = new List<String>(); 
    95218            Aseet = new List<CannonBall>(); 
    96219            AseenTulinopeus = new List<double>(); 
    97220 
    98             h1.BindTo(tankki.HitPoints); 
    99             h2.BindTo(tankki2.HitPoints); 
    100  
    101  
    102  
    103  
    104  
    105221            CannonBall panos = new CannonBall(); 
    106222            panos.Shape = Shapes.CreateRectangle(20.0, 5.0); 
    107223            panos.Damage = new Damage(100); 
     224            panos.Restitution = 0.0; 
    108225            panos.ExplodeCondition = Projectile.IsBattleObject; 
    109226            panos.Explosion.Force = 1000; 
     
    128245            panos3.ClusterArc = 2; 
    129246            AseenTulinopeus.Add(0.1); 
    130  
    131247            Aseet.Add(panos3); 
    132248            Aseidennimet.Add("SuperCluster"); 
    133249 
     250            CannonBall panos4 = new CannonBall(); 
     251            Texture2D granaatti = Content.Load<Texture2D>("Granade"); 
     252            panos4.Texture = granaatti; 
     253            panos4.Damage = new Damage(20); 
     254            panos4.ExplodeCondition = Projectile.IsBattleObject; 
     255            panos4.FuseTime = new Lifetime(4.0); 
     256            panos4.Explosion.Force = 10000; 
     257            AseenTulinopeus.Add(0.15); 
     258            Aseet.Add(panos4); 
     259            Aseidennimet.Add("Granade"); 
     260 
     261            CannonBall panos5 = new CannonBall(); 
     262            panos5.Shape = Shapes.CreateRectangle(80.0, 5.0); 
     263            panos5.Mass = 10.0; 
     264            panos5.Damage = new Damage(80); 
     265            panos5.FuseTime = new Lifetime(4.0); 
     266            panos5.Explosion.Force = 100000; 
     267            AseenTulinopeus.Add(0.2); 
     268            Aseet.Add(panos5); 
     269            Aseidennimet.Add("Rocket"); 
     270 
     271 
    134272            tankki.Cannon.FireRate = 0.1; 
    135273            tankki.Cannon.Clip = new Clip(panos3); 
     
    137275            tankki2.Cannon.FireRate = 0.1; 
    138276            tankki2.Cannon.Clip = new Clip(panos3); 
    139  
    140             // Luodaan reunat 
    141             Level.CreateBorder(); 
    142  
    143             // Asemoidaan tankkit 
    144  
    145             tankki.Y = Level.Bottom + 100; 
    146             tankki.X = Level.Right - 100; 
    147  
    148             tankki2.Y = Level.Bottom + 100; 
    149             tankki2.X = Level.Left + 100; 
    150  
    151             // Asetetaan painovoima 
    152             Gravity = new Vector2D(0, -200); 
    153             Ase1 = new TextDisplay(this); 
    154             Ase1.Text = "SuperCluster"; 
    155             Ase1.X = 300; 
    156             Ase1.Y = Level.Bottom + 15; 
    157             Add(Ase1); 
    158             Ase2 = new TextDisplay(this); 
    159             Ase2.Text = "SuperCluster"; 
    160             Ase2.X = -300; 
    161             Ase2.Y = Level.Bottom + 15; 
    162             Add(Ase2); 
    163  
    164             Reloading1 = new TextDisplay(this); 
    165             Reloading1.Text = "Reloading"; 
    166             Reloading1.TextColor = new Color(0, 0, 0); 
    167             Reloading1.Visible = false; 
    168             Reloading1.X = 300; 
    169             Reloading1.Y = Level.Top - 10; 
    170             Add(Reloading1); 
    171  
    172  
    173  
    174             SpriteFont Fontti = Content.Load<SpriteFont>("SpriteFont1"); 
    175             Winner1 = new TextDisplay(this,Fontti); 
    176             Winner1.Text = "Winner: Player1"; 
    177  
    178             Winner1.Visible = false; 
    179             Add(Winner1); 
    180  
    181             Winner2 = new TextDisplay(this); 
    182             Winner2.Text = "Winner: Player2"; 
    183             Winner2.Visible = false; 
    184             Add(Winner2); 
    185  
    186             Reloading2 = new TextDisplay(this); 
    187             Reloading2.Text = "Reloading"; 
    188             Reloading2.Visible = false; 
    189             Reloading2.X = -300; 
    190             Reloading2.Y = Level.Top - 10; 
    191             Add(Reloading2); 
    192  
    193             // Asetetaan näppäimet 
    194             Controls.Listen(Keys.Left, ButtonPosition.Down, aja1, "Liiku vasemmalle", tankki, Tank.MaxTorque * 4); 
    195             Controls.Listen(Keys.Right, ButtonPosition.Down, aja1, "Liiku oikealle", tankki, -Tank.MaxTorque * 4); 
    196             Controls.Listen(Keys.Up, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1)); 
    197             Controls.Listen(Keys.Down, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki, Angle.Degrees(-1)); 
    198             Controls.Listen(Keys.M, ButtonPosition.Down, lisaatehoja, "", tankki); 
    199             Controls.Listen(Keys.M, ButtonPosition.Released, ammupanos, "Ammu", tankki); 
    200             Controls.Listen(Keys.N, ButtonPosition.Down, JetPack1, "Rakettimoottori", tankki); 
    201             Controls.Listen(Keys.B, ButtonPosition.Pressed, NextWeapon1, "Seuraava ase", tankki); 
    202             Controls.Listen(Keys.V, ButtonPosition.Pressed, BeforeWeapon1, "Edellinen ase", tankki); 
    203  
    204             Controls.Listen(Keys.D, ButtonPosition.Down, aja2, "Liiku vasemmalle", tankki2, Tank.MaxTorque * 4); 
    205             Controls.Listen(Keys.G, ButtonPosition.Down, aja2, "Liiku oikealle", tankki2, -Tank.MaxTorque * 4); 
    206             Controls.Listen(Keys.R, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki2, Angle.Degrees(1)); 
    207             Controls.Listen(Keys.F, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki2, Angle.Degrees(-1)); 
    208             Controls.Listen(Keys.D4, ButtonPosition.Down, lisaatehoja, "", tankki2); 
    209             Controls.Listen(Keys.D4, ButtonPosition.Released, ammupanos, "Ammu", tankki2); 
    210             Controls.Listen(Keys.D2, ButtonPosition.Pressed, NextWeapon2, "Seuraava ase", tankki); 
    211             Controls.Listen(Keys.D1, ButtonPosition.Pressed, BeforeWeapon2, "Edellinen ase", tankki); 
    212  
    213             Controls.Listen(Keys.D3, ButtonPosition.Down, JetPack2, "Rakettimoottori", tankki2); 
    214             AddCollisionHandler(tankki, JetPackOFF1); 
    215             AddCollisionHandler(tankki2, JetPackOFF2); 
    216             tankki2.Hull.HitpointsReachedZero += new EventHandler(Hull_HitpointsReachedZero2); 
    217  
    218             tankki.Hull.HitpointsReachedZero += new EventHandler(Hull_HitpointsReachedZero); 
    219277        } 
    220278 
     
    236294        { 
    237295            Weapon1 += 1; 
    238             if (Weapon1 > 2) 
     296            if (Weapon1 > Aseidenmaara) 
    239297            { 
    240298                Weapon1 = 0; 
    241299            } 
     300            tankki.Cannon.Power.Value = 0; 
    242301            tankki.Cannon.Clip = new Clip(Aseet[Weapon1]); 
    243302            tankki.Cannon.FireRate = AseenTulinopeus[Weapon1]; 
     
    250309            if (Weapon1 < 0) 
    251310            { 
    252                 Weapon1 = 2; 
    253             } 
     311                Weapon1 = Aseidenmaara; 
     312            } 
     313            tankki.Cannon.Power.Value = 0; 
    254314            tankki.Cannon.Clip = new Clip(Aseet[Weapon1]); 
    255315            tankki.Cannon.FireRate = AseenTulinopeus[Weapon1]; 
     
    260320        { 
    261321            Weapon2 += 1; 
    262             if (Weapon2 > 2) 
     322            if (Weapon2 > Aseidenmaara) 
    263323            { 
    264324                Weapon2 = 0; 
    265325            } 
     326            tankki2.Cannon.Power.Value = 0; 
    266327            tankki2.Cannon.Clip = new Clip(Aseet[Weapon2]); 
    267328            tankki.Cannon.FireRate = AseenTulinopeus[Weapon2]; 
     
    274335            if (Weapon2 < 0) 
    275336            { 
    276                 Weapon2 = 2; 
    277             } 
     337                Weapon2 = Aseidenmaara; 
     338            } 
     339            tankki2.Cannon.Power.Value = 0; 
    278340            tankki2.Cannon.Clip = new Clip(Aseet[Weapon2]); 
    279341            tankki.Cannon.FireRate = AseenTulinopeus[Weapon2]; 
     
    284346        { 
    285347            Tank t = e.Parameter0 as Tank; 
    286  
     348             
     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); 
     356            } 
     357            else 
     358            { 
     359                suunta = (float)(prosentti); 
     360            } 
     361            tankinaanet.Play(voimakkuus,pitch,suunta); 
    287362            double vaanto = e.Parameter1.ToDouble(); 
    288363 
     
    314389        { 
    315390            Tank t = e.Parameter0 as Tank; 
    316  
     391            tankinaanet.Play(); 
    317392            double vaanto = e.Parameter1.ToDouble(); 
    318393 
     
    402477        protected override void Update(GameTime gameTime) 
    403478        { 
     479            if (Weapon1 == 4 | Weapon1 == 1) 
     480            { 
     481                tankki.Cannon.Power.Value = 15000; 
     482            } 
    404483            if (tankki.Cannon.CanUse) 
    405484            { 
Note: See TracChangeset for help on using the changeset viewer.