Changeset 1404 for 2010/30


Ignore:
Timestamp:
2010-07-29 14:50:33 (9 years ago)
Author:
alkivima
Message:

Valmis, enää viimeistelyy

Location:
2010/30/alkivima
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/alkivima/Car Duels/Peli.cs

    r1396 r1404  
    44using Jypeli.Assets; 
    55using Jypeli.Effects; 
     6using Physics2DDotNet.Ignorers; 
    67 
    78public class Peli : TopDownPhysicsGame 
     
    910    PhysicsObject vasenReuna; 
    1011    PhysicsObject oikeaReuna; 
    11     DoubleMeter voimaMittari; 
     12    DoubleMeter voimaMittari1; 
    1213    DoubleMeter voimaMittari2; 
    1314    Automobile auto1; 
     
    1718    Label aikaNaytto; 
    1819 
     20    AssaultRifle pyssy1; 
     21    AssaultRifle pyssy2; 
     22 
    1923    protected override void Begin() 
    2024    { 
    2125        KineticFriction = 0.5; // Asetetaan kitka 
    22      
     26 
    2327 
    2428        auto1 = new Automobile(60, 50); 
     29        auto1.CollisionIgnorer = new ObjectIgnorer(); 
    2530        auto1.Mass = 100.0; 
    2631        auto1.Color = new Color(1, 1, 1); 
    2732        auto1.X = -300; 
    2833        auto1.Y = 0; 
    29         auto1.LinearDamping = 0.97; 
     34        auto1.LinearDamping = 0.975; 
    3035        auto1.AngularDamping = 0.1; 
    3136        auto1.CanRotate = false; 
    32         auto1.Acceleration = 1500; 
     37        auto1.Acceleration = 1250; 
    3338        Add(auto1, 1); 
    3439 
    3540        auto2 = new Automobile(60, 50); 
     41        auto2.CollisionIgnorer = new ObjectIgnorer(); 
    3642        auto2.Mass = 100.0; 
    3743        auto2.Color = new Color(255, 255, 255); 
    3844        auto2.X = 300; 
    3945        auto2.Y = 0; 
    40         auto2.LinearDamping = 0.97; 
     46        auto2.LinearDamping = 0.975; 
    4147        auto2.AngularDamping = 0.1; 
    4248        auto2.Angle = Angle.Degrees(180.0); 
    4349        auto2.CanRotate = false; 
    44         auto2.Acceleration = 1500; 
     50        auto2.Acceleration = 1250; 
    4551        Add(auto2, 1); 
    46          
    47         AssaultRifle pyssy1 = new AssaultRifle(20, 5); 
     52 
     53        pyssy1 = new AssaultRifle(20, 5); 
    4854        pyssy1.Tag = "ase"; 
     55        pyssy1.TimeBetweenUse = TimeSpan.FromMilliseconds(200); 
     56        pyssy1.Ammo.Value = 500; 
    4957        auto1.Add(pyssy1); 
    5058 
    51         AssaultRifle pyssy2 = new AssaultRifle(20, 5); 
     59        pyssy2 = new AssaultRifle(20, 5); 
    5260        pyssy2.Tag = "ase"; 
     61        pyssy2.TimeBetweenUse = TimeSpan.FromMilliseconds(200); 
     62        pyssy2.Ammo.Value = 500; 
    5363        auto2.Add(pyssy2); 
    5464 
     
    5666        AddCollisionHandler(auto2, KasitteleAuto2Tormays); 
    5767 
    58         ShowControlHelp(); 
    59  
    6068        AsetaOhjaimet(); 
    6169 
     
    6573        Pelaaja2HP(); 
    6674 
    67         LisaaLaskurit();        
     75        LisaaLaskurit(); 
     76 
     77        Voitto(); 
    6878    } 
    6979    void AsetaOhjaimet() 
     
    7585        Keyboard.Listen(Key.A, ButtonState.Down, kaanny, "Käänny vasemmalle", auto1, 2.0); 
    7686        Keyboard.Listen(Key.D, ButtonState.Down, kaanny, "Käänny oikealle", auto1, -2.0); 
    77         //Keyboard.Listen(Key.V, ButtonState.Down, AmmuAseella1, "Ammu", auto1); 
     87        Keyboard.Listen(Key.V, ButtonState.Down, AmmuAseella, "Ammu", auto1, pyssy1); 
    7888 
    7989        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     
    8393        Keyboard.Listen(Key.Left, ButtonState.Down, kaanny, "Käänny vasemmalle", auto2, 2.0); 
    8494        Keyboard.Listen(Key.Right, ButtonState.Down, kaanny, "Käänny oikealle", auto2, -2.0); 
    85         //Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella2, "Ammu", auto2); 
    86     } 
    87      
     95        Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella, "Ammu", auto2, pyssy2); 
     96    } 
     97 
    8898    void kiihdyta(Automobile auto) 
    8999    { 
     
    98108    void kaanny(Automobile auto, double kaannos) 
    99109    { 
    100         auto.Angle = Angle.Degrees(auto.Angle.Degree + kaannos * 2); 
     110        auto.Angle = Angle.Degrees(auto.Angle.Degree + kaannos * 1.75); 
    101111    } 
    102112 
     
    227237 
    228238        pelaajan1Pisteet.Value += 1; 
    229          
     239 
    230240        UusiEra(); 
    231241    } 
     242    void Voitto() 
     243    { 
     244        if (pelaajan1Pisteet.Value == 5) 
     245        { 
     246            MessageDisplay.Add("Pelaaja 1 Voitti!"); 
     247            MessageDisplay.X = -75.0; 
     248            MessageDisplay.Y = 100.0; 
     249        } 
     250        if (pelaajan2Pisteet.Value == 5) 
     251        { 
     252            MessageDisplay.Add("Pelaaja 2 Voitti!"); 
     253            MessageDisplay.X = -75.0; 
     254            MessageDisplay.Y = 100.0; 
     255        } 
     256    } 
    232257    void Pelaaja1HP() 
    233258    { 
    234         voimaMittari = new DoubleMeter(10); 
    235         voimaMittari.MaxValue = 10; 
     259        voimaMittari1 = new DoubleMeter(25); 
     260        voimaMittari1.MaxValue = 25; 
    236261        BarGauge voimaPalkki = new BarGauge(10, 150); 
    237         voimaPalkki.BindTo(voimaMittari); 
     262        voimaPalkki.BindTo(voimaMittari1); 
    238263        voimaPalkki.X = (0.95 * Screen.LeftSafe); 
    239264        voimaPalkki.Y = (0.05 * Screen.Height); 
     
    242267    void Pelaaja2HP() 
    243268    { 
    244         voimaMittari2 = new DoubleMeter(10); 
    245         voimaMittari2.MaxValue = 10; 
     269        voimaMittari2 = new DoubleMeter(25); 
     270        voimaMittari2.MaxValue = 25; 
    246271        BarGauge voimaPalkki2 = new BarGauge(10, 150); 
    247272        voimaPalkki2.BindTo(voimaMittari2); 
     
    252277    void KasitteleAuto1Tormays(PhysicsObject auto1, PhysicsObject kohde) 
    253278    { 
    254          
    255         if (auto1.Velocity.Magnitude > 200) 
    256         { 
    257             voimaMittari.Value++; 
    258             voimaMittari.Value -= 1; 
    259             voimaMittari.Value = voimaMittari.Value - 1; 
    260         } 
    261             if (voimaMittari.Value == 0) 
     279 
     280        if (auto1.Velocity.Magnitude > 300) 
     281        { 
     282            voimaMittari1.Value--; 
     283        } 
     284        if (voimaMittari1.Value == 0) 
    262285        { 
    263286            Pelaaja1Tuhoutuu(); 
    264287        } 
    265      } 
     288        if (auto2.Velocity.Magnitude > auto1.Velocity.Magnitude) 
     289        { 
     290            voimaMittari1.Value--; 
     291        } 
     292    } 
    266293    void KasitteleAuto2Tormays(PhysicsObject auto2, PhysicsObject kohde) 
    267294    { 
    268          
    269         if (auto2.Velocity.Magnitude > 200) 
    270         { 
    271             voimaMittari2.Value++; 
    272             voimaMittari2.Value -= 1; 
    273             voimaMittari2.Value = voimaMittari2.Value - 1; 
     295 
     296        if (auto2.Velocity.Magnitude > 300) 
     297        { 
     298            voimaMittari2.Value--; 
    274299        } 
    275300        if (voimaMittari2.Value == 0) 
     
    279304        if (auto1.Velocity.Magnitude > auto2.Velocity.Magnitude) 
    280305        { 
    281             voimaMittari2.Value++; 
    282             voimaMittari2.Value -= 1; 
    283             voimaMittari2.Value = voimaMittari2.Value - 1; 
     306            voimaMittari2.Value--; 
    284307        } 
    285308    } 
    286309    void LisaaLaskurit() 
    287310    { 
    288         pelaajan1Pisteet = LuoPisteLaskuri( - 250.0, 250.0); 
    289         pelaajan2Pisteet = LuoPisteLaskuri( 230.0, 250.0); 
     311        pelaajan1Pisteet = LuoPisteLaskuri(-250.0, 250.0); 
     312        pelaajan2Pisteet = LuoPisteLaskuri(230.0, 250.0); 
    290313    } 
    291314    IntMeter LuoPisteLaskuri(double x, double y) 
     
    305328        ClearControls(); 
    306329 
    307         voimaMittari.Value = 10; 
    308         voimaMittari2.Value = 10; 
     330        voimaMittari1.Value = 25; 
     331        voimaMittari2.Value = 25; 
    309332 
    310333        auto1.X = -300; 
     
    322345 
    323346    } 
    324     void AmmuAseella1() 
    325     { 
    326         //PhysicsObject ammus = pyssy1.Shoot; 
    327         //if (ammus != null) 
    328         { 
    329         //    ammus.Size *= 3; 
    330         } 
    331     } 
    332     void AmmuAseella2() 
    333     { 
    334         //PhysicsObject ammus = auto2.Weapon.Shoot; 
    335         //if (ammus != null) 
    336         { 
    337         //    ammus.Size *= 3; 
    338         } 
    339     } 
     347    void AmmuAseella(Automobile auto, Weapon ase) 
     348    { 
     349        PhysicsObject ammus = ase.Shoot(); 
     350         
     351        if (ammus != null) 
     352        { 
     353            ammus.CollisionIgnorer = auto.CollisionIgnorer; 
     354            ammus.Size *= 3; 
     355            AddCollisionHandler(ammus, AmmusOsui); 
     356        } 
     357    } 
     358 
     359    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     360    {         
     361        ammus.Destroy(); 
     362 
     363        if (kohde == auto1) 
     364        { 
     365            voimaMittari1.Value--; 
     366            return; 
     367        } 
     368        if (kohde == auto2) 
     369        { 
     370            voimaMittari2.Value--; 
     371        } 
     372    } 
     373 
    340374    void EranAlku() 
    341 {        
    342     Timer aikaLaskuri = new Timer(); 
    343     aikaLaskuri.Interval = 3; 
    344     aikaLaskuri.Trigger += AikaLoppui; 
    345     Add(aikaLaskuri); 
    346     aikaLaskuri.Start(); 
     375    { 
     376        Timer aikaLaskuri = new Timer(); 
     377        aikaLaskuri.Interval = 3; 
     378        aikaLaskuri.Trigger += AikaLoppui; 
     379        aikaLaskuri.Start(); 
    347380 
    348381        aikaNaytto = new Label(); 
     
    353386        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
    354387        Add(aikaNaytto); 
    355  
     388    } 
     389 
     390    void AikaLoppui(Timer ajastin) 
     391    { 
     392        MessageDisplay.Add("Start!"); 
     393        MessageDisplay.X = -30.0; 
     394        MessageDisplay.Y = 100.0; 
     395        ajastin.Stop(); 
     396        ajastin.Reset(); 
     397        ajastin.Destroy(); 
     398        aikaNaytto.Destroy(); 
     399        AsetaOhjaimet(); 
     400 
     401        pyssy1.Ammo.Value = 500; 
     402        pyssy2.Ammo.Value = 500; 
     403    } 
    356404} 
    357  
    358 void AikaLoppui( Timer ajastin ) 
    359 { 
    360     MessageDisplay.Add( "Start!" ); 
    361     MessageDisplay.X = 0.0; 
    362     MessageDisplay.Y = 100.0; 
    363     ajastin.Reset(); 
    364     AsetaOhjaimet(); 
    365 } 
    366  
    367     } 
Note: See TracChangeset for help on using the changeset viewer.