Changeset 88 for lassi_h


Ignore:
Timestamp:
2009-07-22 11:36:31 (10 years ago)
Author:
lamahama
Message:
 
Location:
lassi_h
Files:
11 added
1 edited

Legend:

Unmodified
Added
Removed
  • lassi_h/Tankkipeli/Peli.cs

    r62 r88  
    2121    public class Peli : PhysicsGame 
    2222    { 
    23         Tank tankki; 
    24  
     23         
     24        public Tank tankki; 
     25        public Tank tankki2; 
     26        public BarGauge g1; 
     27        public BarGauge g2; 
     28        public BarGauge h1; 
     29        public BarGauge h2; 
     30        public byte JetPackON1; 
     31        public byte JetPackON2; 
     32        public int Weapon1 = 0; 
     33        public int Weapon2 = 0; 
     34        public List<CannonBall> Aseet; 
     35         
    2536        protected override void LoadContent() 
    2637        { 
     
    2940            Level.Objects.Add(tankki); 
    3041 
     42            tankki2 = new Tank(this, "tankki2"); 
     43            Level.Objects.Add(tankki2); 
    3144            // Luodaan maasto 
    3245            Level.CreateGround(10, 50, 20, Color.LightGreen); 
     46            tankki.HitPoints.Value = 1000; 
     47            tankki2.HitPoints.Value = 1000; 
     48            g1 = new BarGauge(this); 
     49            g1.Angle = Angle.Degrees(270); 
     50            g1.X = 300; 
     51            g1.Y = Level.Bottom + 10; 
     52            g1.Max = 15000.0; 
     53            g1.Height = Level.Right - 100; 
     54            Add(g1); 
     55            g2 = new BarGauge(this); 
     56            g2.Angle = Angle.Degrees(90); 
     57            g2.X = -300; 
     58            g2.Y = Level.Bottom + 10; 
     59            g2.Max = 15000.0; 
     60            g2.Height = Level.Right - 100; 
     61            Add(g2); 
     62 
     63            h1 = new BarGauge(this); 
     64            h1.Angle = Angle.Degrees(270); 
     65            h1.X = 300; 
     66            h1.Y = Level.Bottom + 20; 
     67            h1.Max = 500.0; 
     68            h1.Height = Level.Right - 100; 
     69            h1.ValueColor = new Color(0, 255, 0); 
     70            Add(h1); 
     71 
     72            h2 = new BarGauge(this); 
     73            h2.Angle = Angle.Degrees(90); 
     74            h2.X = -300; 
     75            h2.Y = Level.Bottom + 20; 
     76            h2.Max = 500.0; 
     77            h2.Height = Level.Right - 100; 
     78            h2.ValueColor = new Color(0, 255, 0); 
     79            Add(h2); 
     80 
     81            Aseet = new List<CannonBall>(); 
     82 
     83            CannonBall panos = new CannonBall(); 
     84            panos.Shape = Shapes.CreateCircle(5.0); 
     85            panos.Damage = new Damage(5); 
     86            panos.ClusterType = new ClusterCannonball(0); 
     87             
     88            panos.NumClusters = 2; 
     89            panos.ClusterArc = 10; 
     90            Aseet.Add(panos); 
     91 
     92             
     93 
     94            CannonBall panos2 = new CannonBall(); 
     95            panos2.Shape = Shapes.CreateCircle(3.0); 
     96            panos2.Damage = new Damage(10); 
     97            Aseet.Add(panos2); 
     98 
     99            CannonBall panos3 = new CannonBall(); 
     100            panos3.Shape = Shapes.CreateCircle(8.0); 
     101            panos3.Damage = new Damage(1); 
     102            panos3.ClusterType = new ClusterCannonball(1); 
     103            panos3.Explosion.Force = 10000; 
     104            panos3.NumClusters = 5; 
     105            panos3.ClusterArc = 2; 
     106            Aseet.Add(panos3); 
     107 
     108            tankki.Cannon.Clip = new Clip(panos); 
    33109 
    34110            // Luodaan reunat 
    35111            Level.CreateBorder(); 
    36112 
    37             // Asemoidaan tankki 
     113            // Asemoidaan tankkit 
     114 
    38115            tankki.Y = Level.Bottom + 100; 
    39             Double Power = 100.0; 
     116            tankki.X = Level.Right - 100; 
     117 
     118            tankki2.Y = Level.Bottom + 100; 
     119            tankki2.X = Level.Left + 100; 
     120             
    40121            // Asetetaan painovoima 
    41             Gravity = new Vector2D(10, -200); 
     122            Gravity = new Vector2D(0, -200); 
    42123 
    43124            // Asetetaan näppäimet 
    44             Controls.Listen(Keys.Left, ButtonPosition.Down, aja, "Liiku vasemmalle", tankki, Tank.MaxTorque*2); 
    45             Controls.Listen(Keys.Right, ButtonPosition.Down, aja, "Liiku oikealle", tankki, -Tank.MaxTorque*2); 
     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); 
    46127            Controls.Listen(Keys.Up, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1)); 
    47128            Controls.Listen(Keys.Down, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki, Angle.Degrees(-1)); 
    48             Controls.Listen(Keys.Space, ButtonPosition.Down, ammupanos, "Ammu", tankki, Power); 
    49         } 
    50  
    51         bool aja(ControlEvent e) 
    52         { 
    53             Tank t = e.Parameter0 as Tank; 
     129            Controls.Listen(Keys.M, ButtonPosition.Down, lisaatehoja, "", tankki); 
     130            Controls.Listen(Keys.M, ButtonPosition.Released, ammupanos, "Ammu", tankki); 
     131            Controls.Listen(Keys.N, ButtonPosition.Down, JetPack1, "Rakettimoottori", tankki); 
     132            Controls.Listen(Keys.B, ButtonPosition.Pressed, NextWeapon1, "Seuraava ase", tankki); 
     133            Controls.Listen(Keys.V, ButtonPosition.Pressed, BeforeWeapon1, "Edellinen ase", tankki); 
     134 
     135            Controls.Listen(Keys.D, ButtonPosition.Down, aja2, "Liiku vasemmalle", tankki2, Tank.MaxTorque * 4); 
     136            Controls.Listen(Keys.G, ButtonPosition.Down, aja2, "Liiku oikealle", tankki2, -Tank.MaxTorque * 4); 
     137            Controls.Listen(Keys.R, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki2, Angle.Degrees(1)); 
     138            Controls.Listen(Keys.F, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki2, Angle.Degrees(-1)); 
     139            Controls.Listen(Keys.D4, ButtonPosition.Down, lisaatehoja, "", tankki2); 
     140            Controls.Listen(Keys.D4, ButtonPosition.Released, ammupanos, "Ammu", tankki2); 
     141            Controls.Listen(Keys.D2, ButtonPosition.Pressed, NextWeapon2, "Seuraava ase", tankki); 
     142            Controls.Listen(Keys.D1, ButtonPosition.Pressed, BeforeWeapon2, "Edellinen ase", tankki); 
     143 
     144            Controls.Listen(Keys.D3, ButtonPosition.Down, JetPack2, "Rakettimoottori", tankki2); 
     145            AddCollisionHandler(tankki, JetPackOFF1); 
     146            AddCollisionHandler(tankki2, JetPackOFF2); 
     147        } 
     148 
     149        bool NextWeapon1(ControlEvent e) 
     150        { 
     151            Weapon1 += 1; 
     152            if (Weapon1 > 2) 
     153            { 
     154                Weapon1 = 0; 
     155            } 
     156            tankki.Cannon.Clip = new Clip(Aseet[Weapon1]); 
     157            return false; 
     158        } 
     159 
     160        bool BeforeWeapon1(ControlEvent e) 
     161        { 
     162            Weapon1 -= 1; 
     163            if (Weapon1 < 0) 
     164            { 
     165                Weapon1 = 2; 
     166            } 
     167             tankki.Cannon.Clip = new Clip(Aseet[Weapon1]); 
     168            return false; 
     169        } 
     170        bool NextWeapon2(ControlEvent e) 
     171        { 
     172            Weapon2 += 1; 
     173            if (Weapon2 > 2) 
     174            { 
     175                Weapon2 = 0; 
     176            } 
     177            tankki2.Cannon.Clip = new Clip(Aseet[Weapon2]); 
     178            return false; 
     179        } 
     180 
     181        bool BeforeWeapon2(ControlEvent e) 
     182        { 
     183            Weapon2 -= 1; 
     184            if (Weapon2 < 0) 
     185            { 
     186                Weapon2 = 2; 
     187            } 
     188            tankki2.Cannon.Clip = new Clip(Aseet[Weapon2]); 
     189            return false; 
     190        } 
     191        bool aja1(ControlEvent e) 
     192        { 
     193            Tank t = e.Parameter0 as Tank; 
     194 
    54195            double vaanto = e.Parameter1.ToDouble(); 
    55196 
    56197            // Kiihdytetään tankin vauhtia 
    57             t.Accelerate(vaanto); 
    58  
    59             return false; 
    60         } 
    61  
     198             
     199             
     200            if (JetPackON1 == 0) 
     201            { 
     202                t.Accelerate(vaanto); 
     203            } 
     204            else 
     205            { 
     206                if (vaanto > 0.0) 
     207                { 
     208                  t.Hull.Body.ApplyTorque(1000000);  
     209                } 
     210                else 
     211                { 
     212                  t.Hull.Body.ApplyTorque(-1000000);  
     213                } 
     214                 
     215            } 
     216 
     217             
     218 
     219            return false; 
     220        } 
     221        bool aja2(ControlEvent e) 
     222        { 
     223            Tank t = e.Parameter0 as Tank; 
     224 
     225            double vaanto = e.Parameter1.ToDouble(); 
     226 
     227            // Kiihdytetään tankin vauhtia 
     228 
     229 
     230            if (JetPackON2 == 0) 
     231            { 
     232                t.Accelerate(vaanto); 
     233            } 
     234            else 
     235            { 
     236                if (vaanto > 0.0) 
     237                { 
     238                    t.Hull.Body.ApplyTorque(1000000); 
     239                } 
     240                else 
     241                { 
     242                    t.Hull.Body.ApplyTorque(-1000000); 
     243                } 
     244 
     245            } 
     246 
     247 
     248 
     249            return false; 
     250        } 
     251        bool lisaatehoja(ControlEvent e) 
     252        { 
     253            Tank t = e.Parameter0 as Tank; 
     254            if (t.Cannon.Power.Value < 14900) 
     255            { 
     256                t.Cannon.Power.Value += 100.0; 
     257            } 
     258            return false; 
     259        } 
     260        void JetPackOFF1(Collision collision) 
     261        { 
     262            if (collision.Other == Level.BottomBorder) 
     263            { 
     264                JetPackON1 = 0; 
     265            } 
     266        } 
     267        void JetPackOFF2(Collision collision) 
     268        { 
     269            if (collision.Other == Level.BottomBorder) 
     270            { 
     271                JetPackON2 = 0; 
     272            } 
     273        } 
    62274        bool kaannaPutkea(ControlEvent e) 
    63275        { 
     
    70282            return false; 
    71283        } 
     284        bool JetPack1(ControlEvent e) 
     285        { 
     286            Tank t = e.Parameter0 as Tank; 
     287            Angle kulma = t.Hull.Angle + Angle.Degrees(90); 
     288 
     289            t.Hit(Vector2D.FromLengthAndAngle(1000,kulma.Radian)); 
     290            JetPackON1 = 1; 
     291            return false; 
     292        } 
     293        bool JetPack2(ControlEvent e) 
     294        { 
     295            Tank t = e.Parameter0 as Tank; 
     296            Angle kulma = t.Hull.Angle + Angle.Degrees(90); 
     297 
     298            t.Hit(Vector2D.FromLengthAndAngle(1000, kulma.Radian)); 
     299            JetPackON2 = 1; 
     300            return false; 
     301        } 
    72302        bool ammupanos(ControlEvent e) 
    73303        { 
    74             Tank t = e.Parameter0 as Tank; 
    75             Double voima = e.Parameter1.ToDouble(); 
    76             CannonBall panos = new CannonBall(); 
    77             panos.Shape = Shapes.CreateCircle(10.0); 
    78             panos.Damage = new Damage(10); 
    79             panos.ClusterType = new ClusterCannonball(10); 
    80              
    81             t.Shoot(10000.0); 
    82              
    83             return false; 
     304            Tank t = e.Parameter0 as Tank;      
     305            t.Shoot(); 
     306            t.Cannon.Power.Value = 0; 
     307            return false; 
     308        } 
     309 
     310        protected override void Update(GameTime gameTime) 
     311        { 
     312            g1.BindTo(tankki.Cannon.Power); 
     313            g2.BindTo(tankki2.Cannon.Power); 
     314            h1.BindTo(tankki.HitPoints); 
     315            h2.BindTo(tankki2.HitPoints);  
     316            base.Update(gameTime); 
    84317        } 
    85318    } 
Note: See TracChangeset for help on using the changeset viewer.