Ignore:
Timestamp:
2010-07-30 11:35:29 (9 years ago)
Author:
alkivima
Message:

valmis

File:
1 edited

Legend:

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

    r1404 r1436  
    55using Jypeli.Effects; 
    66using Physics2DDotNet.Ignorers; 
     7using System.Collections.Generic; 
     8 
    79 
    810public class Peli : TopDownPhysicsGame 
     
    2123    AssaultRifle pyssy2; 
    2224 
     25    Image auto1Kuva = LoadImage("PunAuto"); 
     26    Image auto2Kuva = LoadImage("SinAuto"); 
     27    Image[] auto1Ampuu = LoadImages("PunAuto", "PunAutoAmpuu", "PunAuto", "PunAutoAmpuu", "PunAuto"); 
     28    Image[] auto2Ampuu = LoadImages("SinAuto", "SinAutoAmpuu", "SinAuto", "SinAutoAmpuu", "SinAuto"); 
     29 
     30    List<Label> valikonKohdat; 
     31 
    2332    protected override void Begin() 
    2433    { 
    2534        KineticFriction = 0.5; // Asetetaan kitka 
    2635 
    27  
    28         auto1 = new Automobile(60, 50); 
     36        Valikko(); 
     37 
     38        auto1 = new Automobile(100, 55); 
    2939        auto1.CollisionIgnorer = new ObjectIgnorer(); 
    3040        auto1.Mass = 100.0; 
     
    3646        auto1.CanRotate = false; 
    3747        auto1.Acceleration = 1250; 
    38         Add(auto1, 1); 
    39  
    40         auto2 = new Automobile(60, 50); 
     48        auto1.Image = auto1Kuva; 
     49        auto1.Animation = new Animation(auto1Ampuu); 
     50 
     51 
     52        auto2 = new Automobile(100, 55); 
    4153        auto2.CollisionIgnorer = new ObjectIgnorer(); 
    4254        auto2.Mass = 100.0; 
     
    4961        auto2.CanRotate = false; 
    5062        auto2.Acceleration = 1250; 
    51         Add(auto2, 1); 
     63        auto2.Image = auto2Kuva; 
     64        auto2.Animation = new Animation(auto2Ampuu); 
     65 
     66 
    5267 
    5368        pyssy1 = new AssaultRifle(20, 5); 
    5469        pyssy1.Tag = "ase"; 
    55         pyssy1.TimeBetweenUse = TimeSpan.FromMilliseconds(200); 
    56         pyssy1.Ammo.Value = 500; 
     70        pyssy1.TimeBetweenUse = TimeSpan.FromMilliseconds(100); 
     71        pyssy1.Ammo.Value = 50000; 
     72        pyssy1.IsVisible = false; 
    5773        auto1.Add(pyssy1); 
    5874 
    5975        pyssy2 = new AssaultRifle(20, 5); 
    6076        pyssy2.Tag = "ase"; 
    61         pyssy2.TimeBetweenUse = TimeSpan.FromMilliseconds(200); 
    62         pyssy2.Ammo.Value = 500; 
     77        pyssy2.TimeBetweenUse = TimeSpan.FromMilliseconds(100); 
     78        pyssy2.Ammo.Value = 50000; 
     79        pyssy2.IsVisible = false; 
    6380        auto2.Add(pyssy2); 
     81 
     82 
     83    } 
     84    void Valikko() 
     85    { 
     86        ClearAll(); 
     87        valikonKohdat = new List<Label>(); 
     88 
     89        Label kohta1 = new Label("Aloita uusi peli"); 
     90        kohta1.Position = new Vector(0, 40); 
     91        valikonKohdat.Add(kohta1); 
     92 
     93        Label kohta2 = new Label("Lopeta"); 
     94        kohta2.Position = new Vector(0, -40); 
     95        valikonKohdat.Add(kohta2); 
     96 
     97        foreach (Label valikonKohta in valikonKohdat) 
     98        { 
     99            Add(valikonKohta); 
     100        } 
     101 
     102        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null); 
     103        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Lopeta, null); 
     104 
     105        Mouse.IsCursorVisible = true; 
     106        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null); 
     107        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, ""); 
     108    } 
     109    void ValikossaLiikkuminen(AnalogState hiirenTila) 
     110    { 
     111        foreach (Label kohta in valikonKohdat) 
     112        { 
     113            if (Mouse.IsCursorOn(kohta)) 
     114            { 
     115                kohta.TextColor = Color.Red; 
     116            } 
     117            else 
     118            { 
     119                kohta.TextColor = Color.Black; 
     120            } 
     121 
     122        } 
     123    } 
     124    void AloitaPeli() 
     125    { 
     126        ClearAll(); 
     127        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon"); 
    64128 
    65129        AddCollisionHandler(auto1, KasitteleAuto1Tormays); 
     
    68132        AsetaOhjaimet(); 
    69133 
     134        Add(auto1, 1); 
     135        Add(auto2, 1); 
     136 
    70137        Kentta(); 
    71138 
     
    75142        LisaaLaskurit(); 
    76143 
    77         Voitto(); 
    78     } 
     144    } 
     145 
     146    void Lopeta() 
     147    { 
     148        Exit(); 
     149    } 
     150 
     151 
    79152    void AsetaOhjaimet() 
    80153    { 
     
    85158        Keyboard.Listen(Key.A, ButtonState.Down, kaanny, "Käänny vasemmalle", auto1, 2.0); 
    86159        Keyboard.Listen(Key.D, ButtonState.Down, kaanny, "Käänny oikealle", auto1, -2.0); 
    87         Keyboard.Listen(Key.V, ButtonState.Down, AmmuAseella, "Ammu", auto1, pyssy1); 
     160        Keyboard.Listen(Key.LeftControl, ButtonState.Pressed, AloitaAmpuminen, null, auto1, pyssy1); 
     161        Keyboard.Listen(Key.LeftControl, ButtonState.Down, AmmuAseella, "Ammu", auto1, pyssy1); 
     162        Keyboard.Listen(Key.LeftControl, ButtonState.Released, LopetaAmpuminen, null, auto1, pyssy1); 
    88163 
    89164        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     
    93168        Keyboard.Listen(Key.Left, ButtonState.Down, kaanny, "Käänny vasemmalle", auto2, 2.0); 
    94169        Keyboard.Listen(Key.Right, ButtonState.Down, kaanny, "Käänny oikealle", auto2, -2.0); 
     170        Keyboard.Listen(Key.RightControl, ButtonState.Pressed, AloitaAmpuminen, null, auto2, pyssy2); 
    95171        Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella, "Ammu", auto2, pyssy2); 
     172        Keyboard.Listen(Key.RightControl, ButtonState.Released, LopetaAmpuminen, null, auto2, pyssy2); 
    96173    } 
    97174 
     
    200277        Camera.X = 0.0; 
    201278        Camera.Y = 0.0; 
    202         Camera.Zoom(1.2); 
     279        Camera.ZoomFactor = 0.9; 
    203280    } 
    204281    void Pelaaja1Tuhoutuu() 
     
    242319    void Voitto() 
    243320    { 
    244         if (pelaajan1Pisteet.Value == 5) 
     321        if (pelaajan1Pisteet.Value >= 5) 
    245322        { 
    246323            MessageDisplay.Add("Pelaaja 1 Voitti!"); 
    247324            MessageDisplay.X = -75.0; 
    248325            MessageDisplay.Y = 100.0; 
    249         } 
    250         if (pelaajan2Pisteet.Value == 5) 
     326            Loppui(); 
     327        } 
     328        if (pelaajan2Pisteet.Value >= 5) 
    251329        { 
    252330            MessageDisplay.Add("Pelaaja 2 Voitti!"); 
    253331            MessageDisplay.X = -75.0; 
    254332            MessageDisplay.Y = 100.0; 
     333            Loppui(); 
    255334        } 
    256335    } 
     
    345424 
    346425    } 
     426 
     427    void AloitaAmpuminen(Automobile auto, Weapon ase) 
     428    { 
     429        if (auto == auto1) 
     430        { 
     431            auto1.Animation.Start(); 
     432        } 
     433        else 
     434        { 
     435 
     436            auto2.Animation.Start(); 
     437        } 
     438    } 
     439 
     440    void LopetaAmpuminen(Automobile auto, Weapon ase) 
     441    { 
     442        if (auto == auto1) 
     443        { 
     444            auto1.Animation.Stop(); 
     445        } 
     446        else 
     447        { 
     448 
     449            auto2.Animation.Stop(); 
     450        } 
     451 
     452    } 
     453 
    347454    void AmmuAseella(Automobile auto, Weapon ase) 
    348455    { 
    349456        PhysicsObject ammus = ase.Shoot(); 
    350          
     457 
    351458        if (ammus != null) 
    352459        { 
     
    358465 
    359466    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    360     {         
     467    { 
    361468        ammus.Destroy(); 
    362469 
     
    374481    void EranAlku() 
    375482    { 
     483        auto1.Animation.Stop(); 
     484        auto2.Animation.Stop(); 
     485 
    376486        Timer aikaLaskuri = new Timer(); 
    377487        aikaLaskuri.Interval = 3; 
     
    386496        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
    387497        Add(aikaNaytto); 
     498 
     499 
     500        Voitto(); 
    388501    } 
    389502 
     
    399512        AsetaOhjaimet(); 
    400513 
    401         pyssy1.Ammo.Value = 500; 
    402         pyssy2.Ammo.Value = 500; 
     514        pyssy1.Ammo.Value = 50000; 
     515        pyssy2.Ammo.Value = 50000; 
     516    } 
     517    void Loppui() 
     518    { 
     519        Remove(auto1); 
     520        Remove(auto2); 
     521        Timer lopunLaskuri = new Timer(); 
     522        lopunLaskuri.Interval = 3; 
     523        lopunLaskuri.Trigger += PeliLoppui; 
     524        lopunLaskuri.Start(); 
     525    } 
     526    void PeliLoppui(Timer ajastin) 
     527    { 
     528        Valikko(); 
     529        Level.BackgroundColor = Color.LightBlue; 
    403530    } 
    404531} 
Note: See TracChangeset for help on using the changeset viewer.