Changeset 1242 for 2010


Ignore:
Timestamp:
2010-07-09 13:09:10 (13 years ago)
Author:
oteehann
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/27/oteehann/tank wars/Peli.cs

    r1197 r1242  
    44using Jypeli.Assets; 
    55 
     6/// <summary> 
     7/// Otto H. 
     8/// </summary> 
    69public class Peli : PhysicsGame 
    710{ 
     
    912    Tank tankki2; 
    1013     
     14     
    1115    protected override void Begin() 
    1216    { 
    1317        Image tekstuuri = LoadImage("maantausta"); 
    1418        int maastonVaihtelu = 20; 
    15         Level.CreateGround(20,60,17, Color.Black, tekstuuri, maastonVaihtelu); 
     19        Level.CreateGround(20,70,20, Color.Black, tekstuuri, maastonVaihtelu); 
    1620        Gravity = new Vector(0.0, -500.0); 
     21 
     22        Grenade grenade = new Grenade(50.0); 
     23         
     24        Add(grenade); 
     25 
     26        grenade.FuseTime = TimeSpan.FromSeconds(3); 
     27 
     28        Grenade grenade2 = new Grenade(50.0); 
     29        Add(grenade2); 
     30 
     31        grenade2.FuseTime = TimeSpan.FromSeconds(3); 
     32 
     33         
     34        ClusterGrenade kranaatti = new ClusterGrenade(4.0, 4); 
     35        kranaatti.NumberOfClusters = 5; 
     36 
     37        Add(kranaatti); 
     38         
     39 
     40 
     41 
    1742         
    1843         
     
    2247        LuoTankki2(); 
    2348        LisaaNappaimet(); 
    24     } 
     49        LuoLaskuri(); 
     50        LuoLaskuri2(); 
     51    } 
     52 
     53    void HeitaKranaatti(PhysicsObject tankki) 
     54    { 
     55        Grenade kranaatti = new Grenade(10.0); 
     56        kranaatti.Destroyed += delegate() { kranaatti_Destroyed(kranaatti); }; 
     57        kranaatti.Tag = tankki; 
     58        kranaatti.X = tankki.X + 10; 
     59        kranaatti.Y = tankki.Y + 10; 
     60        Add(kranaatti); 
     61        Vector heittoVoima = Vector.FromLengthAndAngle(9000, Angle.Degrees(25)); 
     62        kranaatti.Hit(heittoVoima); 
     63        AddCollisionHandler(kranaatti,KasitteleKranaatinTormays); 
     64         
     65    } 
     66 
     67    void kranaatti_Destroyed(Grenade kranaatti) 
     68    { 
     69        if (Vector.Distance(kranaatti.Position, tankki2.Position) < 200 && kranaatti.Tag == tankki) 
     70        { 
     71            pisteLaskuri.Value++; 
     72        } 
     73 
     74        if (Vector.Distance(kranaatti.Position, tankki.Position) < 200 && kranaatti.Tag == tankki2) 
     75        { 
     76            pisteLaskuri2.Value++; 
     77        } 
     78    } 
     79    void KasitteleKranaatinTormays(PhysicsObject kranaatti, PhysicsObject kohde) 
     80    { 
     81        //kasittelekranaatintormays,tormayksestatuleePiste 
     82        /* 
     83        if (kohde == tankki && kranaatti.Tag == tankki2) 
     84        { 
     85            pisteLaskuri.Value++; 
     86        } 
     87        if (kohde == tankki2 && kranaatti.Tag == tankki) 
     88        { 
     89            pisteLaskuri2.Value++; 
     90        } 
     91        */ 
     92    } 
     93    void HeitaKranaatti2(PhysicsObject tankki) 
     94    { 
     95        Grenade kranaatti2 = new Grenade(10.0); 
     96        kranaatti2.Destroyed += delegate() { kranaatti_Destroyed(kranaatti2); }; 
     97        kranaatti2.Tag = tankki; 
     98        kranaatti2.X = tankki.X - 30; 
     99        kranaatti2.Y = tankki.Y + 20; 
     100        Add(kranaatti2); 
     101        Vector heittoVoima = Vector.FromLengthAndAngle(10000, Angle.Degrees(30)); 
     102        kranaatti2.Hit(heittoVoima); 
     103        AddCollisionHandler(kranaatti2,KasitteleKranaatin2Tormays); 
     104         
     105    } 
     106    void KasitteleKranaatin2Tormays(PhysicsObject kranaatti2, PhysicsObject kohde) 
     107    { 
     108        //kasittelekranaatin2tormays,tormayksestatuleePiste 
     109 
     110    } 
     111 
     112    
     113 
    25114 
    26115    void LuoTankki() 
     
    28117        tankki = new Tank(40, 20); 
    29118        
    30         tankki.Position = new Vector(0, Level.Bottom + 70); 
     119        tankki.Position = new Vector(-350, Level.Bottom + 90); 
    31120        tankki.Mass = 100.0; 
    32121        
     
    43132    { 
    44133        tankki2 = new Tank(40.0, 20.0); 
    45         tankki2.Position = new Vector(70, Level.Bottom + 70); 
     134        tankki2.Position = new Vector(350, Level.Bottom + 90); 
    46135        tankki2.Mass = 100.0; 
    47136        tankki2.Image = LoadImage("tankki2"); 
    48         tankki2.Cannon.CannonBallCollision = AmmusOsuu; 
     137        tankki2.Cannon.CannonBallCollision = Ammus2Osuu; 
    49138        Add(tankki2); 
    50139         
     
    55144    { 
    56145        pisteLaskuri = new IntMeter(0); 
     146        pisteLaskuri.MaxValue = 10; 
     147        pisteLaskuri.UpperLimit += laskuriYlarajassa; 
    57148 
    58149        Label pisteNaytto = new Label(); 
    59         pisteNaytto.X = Screen.Left + 100; 
    60         pisteNaytto.Y = Screen.Top - 100; 
    61         pisteNaytto.TextColor = Color.Red; 
     150        pisteNaytto.X = Screen.Left + 150; 
     151        pisteNaytto.Y = Screen.Top - 50; 
     152        pisteNaytto.TextColor = Color.Black; 
    62153        pisteNaytto.BindTo(pisteLaskuri); 
    63154        Add(pisteNaytto); 
    64         pisteNaytto.BindTo(pisteLaskuri); 
    65         Add(pisteNaytto); 
    66155 
    67156        Label pisteTeksti = new Label("Pisteitä: "); 
    68         pisteTeksti.X = Screen.Left + 50; 
    69         pisteTeksti.Y = Screen.Top - 100; 
    70         pisteTeksti.TextColor = Color.Red; 
     157        pisteTeksti.X = Screen.Left + 100; 
     158        pisteTeksti.Y = Screen.Top - 50; 
     159        pisteTeksti.TextColor = Color.Black; 
    71160        Add(pisteTeksti); 
    72161 
    73         pisteLaskuri.Value++; 
    74         pisteLaskuri.Value += 1; 
    75         pisteLaskuri.Value = pisteLaskuri.Value + 1; 
    76          
    77         IntMeter laskuri = new IntMeter(0); 
    78         laskuri.MaxValue = 10; 
    79         laskuri.UpperLimit += laskuriYlarajassa; 
    80     } 
    81  
    82     void laskuriYlarajassa(int arvo) 
    83     { 
    84         MessageDisplay.TextColor = Color.White; 
     162         
     163         
     164 
     165         
     166    } 
     167     void laskuriYlarajassa(int arvo) 
     168    { 
     169         
     170        MessageDisplay.TextColor = Color.Black; 
    85171        MessageDisplay.Add("Pelaaja 1 voitti pelin."); 
    86         MessageDisplay.TextColor = Color.White; 
     172        pisteLaskuri.Reset(); 
     173 
     174         
     175    } 
     176 
     177    IntMeter pisteLaskuri2; 
     178 
     179    void LuoLaskuri2() 
     180    { 
     181        pisteLaskuri2 = new IntMeter(0); 
     182        pisteLaskuri2.MaxValue = 10; 
     183        pisteLaskuri2.UpperLimit += laskuriYlarajassa2; 
     184 
     185        Label pisteNaytto2 = new Label(); 
     186        pisteNaytto2.X = Screen.Right - 100; 
     187        pisteNaytto2.Y = Screen.Top - 50; 
     188        pisteNaytto2.TextColor = Color.Black; 
     189        pisteNaytto2.BindTo(pisteLaskuri2); 
     190        Add(pisteNaytto2); 
     191 
     192        
     193 
     194        Label pisteTeksti2 = new Label("Pisteitä: "); 
     195        pisteTeksti2.X = Screen.Right - 150; 
     196        pisteTeksti2.Y = Screen.Top - 50; 
     197        pisteTeksti2.TextColor = Color.Black; 
     198        Add(pisteTeksti2); 
     199    } 
     200 
     201    void laskuriYlarajassa2(int arvo) 
     202    { 
     203         
     204        MessageDisplay.TextColor = Color.Black; 
    87205        MessageDisplay.Add("Pelaaja 2 voitti pelin."); 
    88  
    89          
    90     } 
    91  
    92  
    93  
    94  
    95  
     206        pisteLaskuri2.Reset(); 
     207 
     208         
     209    } 
     210 
     211    void LisaaNappaimet() 
     212    { 
     213        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle.", 1.0, tankki); 
     214        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle.", -1.0, tankki); 
     215        Keyboard.Listen(Key.Up, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia ylos.", tankki, Angle.Radians(1.0)); 
     216        Keyboard.Listen(Key.Down, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia alas.", tankki, Angle.Radians(-1.0)); 
     217        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ammu aseella.", tankki); 
     218        Keyboard.Listen(Key.Delete, ButtonState.Pressed, HeitaKranaatti, "Heita kranaatti.",tankki); 
     219 
     220        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle.", 1.0, tankki2); 
     221        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle.", -1.0, tankki2); 
     222        Keyboard.Listen(Key.W, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia ylos.", tankki2, Angle.Radians(1.0)); 
     223        Keyboard.Listen(Key.S, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia alas.", tankki2, Angle.Radians(-1.0)); 
     224        Keyboard.Listen(Key.Space, ButtonState.Pressed, Ammu, "Ammu aseella.", tankki2); 
     225        Keyboard.Listen(Key.F, ButtonState.Pressed, HeitaKranaatti2, "Heita kranaatti.",tankki2); 
     226    } 
    96227     
    97     
    98  
    99  
    100     void LisaaNappaimet() 
    101     { 
    102         Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", 1.0, tankki); 
    103         Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", -1.0, tankki); 
    104         Keyboard.Listen(Key.Up, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia ylos", tankki, Angle.Radians(1.0)); 
    105         Keyboard.Listen(Key.Down, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia alas", tankki, Angle.Radians(-1.0)); 
    106         Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ammu aseella.", tankki); 
    107  
    108         Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", 1.0, tankki2); 
    109         Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", -1.0, tankki2); 
    110         Keyboard.Listen(Key.W, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia ylos", tankki2, Angle.Radians(1.0)); 
    111         Keyboard.Listen(Key.S, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia alas", tankki2, Angle.Radians(-1.0)); 
    112         Keyboard.Listen(Key.Space, ButtonState.Pressed, Ammu, "Ammu aseella.", tankki2); 
    113     } 
    114      
    115       
    116      
    117      
    118      
    119  
    120228    void MuutaTykinKulmaa(Tank tank, Angle kulma) 
    121229    { 
     
    146254        rajahdys.Position = ammus.Position; 
    147255        rajahdys.Speed = 700.0; 
    148         rajahdys.Force = 1000.0; 
     256        rajahdys.Force = 900.0; 
    149257        rajahdys.ShockwaveColor = Color.OrangeRed; 
    150258        Add(rajahdys); 
    151259        ammus.Destroy(); 
     260 
     261        if (kohde == tankki2) 
     262        { 
     263            pisteLaskuri.Value++; 
     264        } 
    152265        //AddCollisionHandler(ammus, KasitteleammuksenTormays,tormayksestatuleePiste); 
    153266    } 
     
    157270        rajahdys2.Position = ammus2.Position; 
    158271        rajahdys2.Speed = 700.0; 
    159         rajahdys2.Force = 1000.0; 
     272        rajahdys2.Force = 900.0; 
    160273        rajahdys2.ShockwaveColor = Color.OrangeRed; 
    161274        Add(rajahdys2); 
    162275        ammus2.Destroy(); 
    163         //AddCollisionHandler(ammus2, KasitteleammuksenTormays,tormayksestatuleePiste); 
    164     } 
     276 
     277        if (kohde == tankki) 
     278        { 
     279            pisteLaskuri2.Value++; 
     280        } 
     281        //AddCollisionHandler(ammus2, KasitteleammuksenTormays2,tormayksestatuleePiste); 
     282    } 
     283 
     284      
    165285 
    166286 
Note: See TracChangeset for help on using the changeset viewer.