Ignore:
Timestamp:
2011-08-03 14:55:00 (8 years ago)
Author:
alkivima
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2011/31/AleksiK/WorkingTitle/WorkingTitle/Peli.cs

    r2503 r2525  
    2727    Image[] auto1Ampuu = LoadImages("PunAuto", "PunAutoAmpuu", "PunAuto", "PunAutoAmpuu", "PunAuto"); 
    2828    Image[] auto2Ampuu = LoadImages("SinAuto", "SinAutoAmpuu", "SinAuto", "SinAutoAmpuu", "SinAuto"); 
    29     Image kiwi = LoadImage("RosoKiwi"); 
     29    Image kiwi = LoadImage("tiili"); 
    3030 
    3131    Image rapa = LoadImage("mud"); 
     
    3333    Image kentta = LoadImage("sand"); 
    3434 
     35    Image raja = LoadImage("stone"); 
     36 
    3537    List<Label> valikonKohdat; 
     38 
     39    const int MontakoPistettaVoittoon = 3; 
     40 
     41 
    3642    public override void Begin() 
    3743    { 
     
    4147    } 
    4248 
    43     void Autot() 
    44     { 
    45         auto1 = new Automobile(50, 27.5); 
    46         auto1.CollisionIgnorer = new ObjectIgnorer(); 
    47         auto1.Mass = 100.0; 
    48         auto1.Color = new Color(1, 1, 1); 
    49         auto1.X = -300; 
    50         auto1.Y = 0; 
    51         auto1.LinearDamping = 0.975; 
    52         auto1.AngularDamping = 0.1; 
    53         auto1.CanRotate = false; 
    54         auto1.Acceleration = 625; 
    55         auto1.Image = auto1Kuva; 
    56         auto1.Animation = new Animation(auto1Ampuu); 
    57  
    58  
    59         auto2 = new Automobile(50, 27.5); 
    60         auto2.CollisionIgnorer = new ObjectIgnorer(); 
    61         auto2.Mass = 50.0; 
    62         auto2.Color = new Color(255, 255, 255); 
    63         auto2.X = 300; 
    64         auto2.Y = 0; 
    65         auto2.LinearDamping = 0.975; 
    66         auto2.AngularDamping = 0.1; 
    67         auto2.Angle = Angle.FromDegrees(180.0); 
    68         auto2.CanRotate = false; 
    69         auto2.Acceleration = 625; 
    70         auto2.Image = auto2Kuva; 
    71         auto2.Animation = new Animation(auto2Ampuu); 
    72  
    73  
    74  
    75         pyssy1 = new AssaultRifle(20, 5); 
    76         pyssy1.Tag = "ase"; 
    77         pyssy1.TimeBetweenUse = TimeSpan.FromMilliseconds(70); 
    78         pyssy1.IsVisible = false; 
    79         pyssy1.Ammo.Value = 9999; 
    80         auto1.Add(pyssy1); 
    81  
    82         pyssy2 = new AssaultRifle(20, 5); 
    83         pyssy2.Tag = "ase"; 
    84         pyssy2.TimeBetweenUse = TimeSpan.FromMilliseconds(70); 
    85         pyssy2.IsVisible = false; 
    86         pyssy2.Ammo.Value = 9999; 
    87         auto2.Add(pyssy2); 
    88     } 
     49    void Autot(int auto) 
     50    { 
     51 
     52        if (auto == 1) 
     53        { 
     54            auto1 = new Automobile(50, 27.5); 
     55            auto1.CollisionIgnorer = new ObjectIgnorer(); 
     56            auto1.Mass = 100.0; 
     57            auto1.Color = new Color(1, 1, 1); 
     58            auto1.X = -300; 
     59            auto1.Y = 0; 
     60            auto1.LinearDamping = 0.975; 
     61            auto1.AngularDamping = 0.1; 
     62            auto1.CanRotate = false; 
     63            auto1.Acceleration = 625; 
     64            auto1.Image = auto1Kuva; 
     65            auto1.Animation = new Animation(auto1Ampuu); 
     66            pyssy1 = new AssaultRifle(20, 5); 
     67            pyssy1.Tag = "ase"; 
     68            pyssy1.TimeBetweenUse = TimeSpan.FromMilliseconds(70); 
     69            pyssy1.IsVisible = false; 
     70            pyssy1.Ammo.Value = 9999; 
     71            auto1.Add(pyssy1); 
     72 
     73        } 
     74        else 
     75        { 
     76            auto2 = new Automobile(50, 27.5); 
     77            auto2.CollisionIgnorer = new ObjectIgnorer(); 
     78            auto2.Mass = 50.0; 
     79            auto2.Color = new Color(255, 255, 255); 
     80            auto2.X = 300; 
     81            auto2.Y = 0; 
     82            auto2.LinearDamping = 0.975; 
     83            auto2.AngularDamping = 0.1; 
     84            auto2.Angle = Angle.FromDegrees(180.0); 
     85            auto2.CanRotate = false; 
     86            auto2.Acceleration = 625; 
     87            auto2.Image = auto2Kuva; 
     88            auto2.Animation = new Animation(auto2Ampuu); 
     89            pyssy2 = new AssaultRifle(20, 5); 
     90            pyssy2.Tag = "ase"; 
     91            pyssy2.TimeBetweenUse = TimeSpan.FromMilliseconds(70); 
     92            pyssy2.IsVisible = false; 
     93            pyssy2.Ammo.Value = 9999; 
     94            auto2.Add(pyssy2); 
     95        } 
     96         
     97     
     98    } 
     99 
    89100    void Valikko() 
    90101    { 
     
    92103        valikonKohdat = new List<Label>(); 
    93104 
    94         //Remove(auto1); 
    95         //Remove(auto2); 
    96  
    97         Label kohta1 = new Label("Aloita uusi peli"); 
     105        Label kohta1 = new Label("Aloita"); 
    98106        kohta1.Position = new Vector(0, 40); 
    99107        valikonKohdat.Add(kohta1); 
     
    113121        Mouse.IsCursorVisible = true; 
    114122        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null); 
    115         Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, ""); 
    116     } 
     123        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, "Lopeta"); 
     124    } 
     125 
    117126    void ValikossaLiikkuminen(AnalogState hiirenTila) 
    118127    { 
     
    130139        } 
    131140    } 
     141 
    132142    void AloitaPeli() 
    133     {         
     143    { 
    134144        ClearAll(); 
    135         Autot(); 
     145        Autot(1); 
     146        Autot(2); 
    136147        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon"); 
    137148 
     
    146157        Kentta(); 
    147158 
    148         Pelaaja1HP(); 
    149         Pelaaja2HP(); 
     159        HPmittarit(); 
    150160 
    151161        LisaaLaskurit(); 
     
    194204    void kaanny(Automobile auto, double kaannos) 
    195205    { 
    196         auto.Angle = Angle.FromDegrees(auto.Angle.Degrees + kaannos * 1.75); 
     206        auto.Angle = Angle.FromDegrees(auto.Angle.Degrees + kaannos * 1.7); 
    197207    } 
    198208 
     
    201211        ButtonState rapa1 = Keyboard.GetKeyState(Key.W); 
    202212        ButtonState rapa2 = Keyboard.GetKeyState(Key.Up); 
    203          
     213 
    204214        if (rapa1 == ButtonState.Down) 
    205215        { 
    206216            Smoke kura = new Smoke(); 
    207217            kura.ParticleImage = rapa; 
    208             kura.Position = auto1.Position; 
     218            kura.Position = auto1.Position + Vector.FromLengthAndAngle(25, (auto1.Angle + Angle.FromDegrees(180))); 
    209219            kura.MaximumLifetime = new TimeSpan(0, 0, 0, 2, 0); 
    210220            kura.Angle = auto1.Angle + Angle.FromDegrees(180); 
     
    213223            Add(kura); 
    214224        } 
    215          
     225 
    216226        if (rapa2 == ButtonState.Down) 
    217227        { 
    218228            Smoke kura1 = new Smoke(); 
    219229            kura1.ParticleImage = rapa; 
    220             kura1.Position = auto2.Position; 
     230            kura1.Position = auto2.Position + Vector.FromLengthAndAngle(25, (auto2.Angle + Angle.FromDegrees(180))); 
    221231            kura1.MaximumLifetime = new TimeSpan(0, 0, 0, 2, 0); 
    222232            kura1.Angle = auto2.Angle + Angle.FromDegrees(180); 
     
    232242        Mouse.IsCursorVisible = false; 
    233243 
    234         Wind = new Vector(200, 30); 
     244        //Wind = new Vector(75, 100); 
    235245 
    236246        Timer ajastin = new Timer(); 
    237         ajastin.Interval = 0.1; 
     247        ajastin.Interval = 0.08; 
    238248        ajastin.Timeout += Rapaa; 
    239249        ajastin.Start(); 
    240250 
    241251 
    242         PhysicsObject maata = PhysicsObject.CreateStaticObject(250.0, 150.0); 
    243         maata.Shape = Shape.Circle; 
     252        PhysicsObject maata = PhysicsObject.CreateStaticObject(150.0, 50.0); 
     253        maata.Shape = Shape.Rectangle; 
    244254        maata.Color = Color.DarkGray; 
    245255        maata.X = 0; 
     
    248258        maata.Tag = "pylvas"; Add(maata, -1); 
    249259 
    250         PhysicsObject pylvas1 = PhysicsObject.CreateStaticObject(200.0, 125.0); 
    251         pylvas1.Shape = Shape.Circle; 
    252         pylvas1.X = -300; 
     260        maata.Angle = Angle.FromDegrees(330.0); 
     261 
     262        PhysicsObject pylvas1 = PhysicsObject.CreateStaticObject(150.0, 50.0); 
     263        pylvas1.Shape = Shape.Rectangle; 
     264        pylvas1.X = -200; 
    253265        pylvas1.Y = 270; 
    254266        pylvas1.Restitution = 0.2; 
     
    256268        pylvas1.Color = Color.DarkGray; 
    257269        Add(pylvas1, -1); 
    258          
    259  
    260         PhysicsObject pylvas2 = PhysicsObject.CreateStaticObject(125.0, 180.0); 
    261         pylvas2.Shape = Shape.Circle; 
    262         pylvas2.X = -350; 
    263         pylvas2.Y = 230; 
     270 
     271        pylvas1.Angle = Angle.FromDegrees(150.0); 
     272 
     273        PhysicsObject pylvas2 = PhysicsObject.CreateStaticObject(150.0, 50.0); 
     274        pylvas2.Shape = Shape.Rectangle; 
     275        pylvas2.X = -330; 
     276        pylvas2.Y = 175; 
    264277        pylvas2.Restitution = 0.2; 
    265278        pylvas2.Tag = "pylvas"; 
     
    267280        Add(pylvas2, -1); 
    268281 
    269         pylvas2.Angle = Angle.FromDegrees(330.0); 
    270  
    271         PhysicsObject pylvas3 = PhysicsObject.CreateStaticObject(200.0, 125.0); 
    272         pylvas3.Shape = Shape.Circle; 
    273         pylvas3.X = -200; 
    274         pylvas3.Y = -200; 
     282        pylvas2.Angle = Angle.FromDegrees(200.0); 
     283 
     284        PhysicsObject pylvas3 = PhysicsObject.CreateStaticObject(150.0, 50.0); 
     285        pylvas3.Shape = Shape.Rectangle; 
     286        pylvas3.X = -350; 
     287        pylvas3.Y = -110; 
    275288        pylvas3.Restitution = 0.2; 
    276289        pylvas3.Tag = "pylvas"; 
     
    278291        Add(pylvas3, -1); 
    279292 
    280         PhysicsObject pylvas4 = PhysicsObject.CreateStaticObject(200.0, 125.0); 
    281         pylvas4.Shape = Shape.Circle; 
    282         pylvas4.X = 200; 
     293        pylvas3.Angle = Angle.FromDegrees(130.0); 
     294 
     295        PhysicsObject pylvas4 = PhysicsObject.CreateStaticObject(150.0, 50.0); 
     296        pylvas4.Shape = Shape.Rectangle; 
     297        pylvas4.X = 250; 
    283298        pylvas4.Y = -200; 
    284299        pylvas4.Restitution = 0.2; 
     
    287302        Add(pylvas4, -1); 
    288303 
    289         PhysicsObject pylvas5 = PhysicsObject.CreateStaticObject(200.0, 125.0); 
    290         pylvas5.Shape = Shape.Circle; 
    291         pylvas5.X = -75; 
    292         pylvas5.Y = -30; 
     304        pylvas4.Angle = Angle.FromDegrees(200.0); 
     305 
     306        PhysicsObject pylvas5 = PhysicsObject.CreateStaticObject(150.0, 50.0); 
     307        pylvas5.Shape = Shape.Rectangle; 
     308        pylvas5.X = -275; 
     309        pylvas5.Y = -270; 
    293310        pylvas5.Restitution = 0.2; 
    294311        pylvas5.Tag = "pylvas"; 
    295312        pylvas5.Color = Color.DarkGray; 
    296         Add(pylvas5, -1); 
    297  
    298         PhysicsObject pylvas6 = PhysicsObject.CreateStaticObject(200.0, 125.0); 
    299         pylvas6.Shape = Shape.Circle; 
    300         pylvas6.X = 75; 
    301         pylvas6.Y = 20; 
     313        Add(pylvas5, -2); 
     314 
     315        pylvas5.Angle = Angle.FromDegrees(40.0); 
     316 
     317        PhysicsObject pylvas6 = PhysicsObject.CreateStaticObject(150.0, 50.0); 
     318        pylvas6.Shape = Shape.Rectangle; 
     319        pylvas6.X = 325; 
     320        pylvas6.Y = 222; 
    302321        pylvas6.Restitution = 0.2; 
    303322        pylvas6.Tag = "pylvas"; 
     
    305324        Add(pylvas6, -1); 
    306325 
    307         /*GameObject Reuna = new GameObject(70.0, 70.0); 
    308         Reuna.Shape = Shape.Circle; 
    309         Reuna.Color = Color.Black; 
    310         Add(Reuna, -1); 
    311  
    312         GameObject Boostipaikka = new GameObject(60.0, 60.0); 
    313         Boostipaikka.Shape = Shape.Circle; 
    314         Boostipaikka.Color = Color.Turquoise; 
    315         Add(Boostipaikka, -1);*/ 
    316  
     326        pylvas6.Angle = Angle.FromDegrees(330.0); 
    317327 
    318328        vasenReuna = Level.CreateLeftBorder(); 
    319329        vasenReuna.Restitution = 0.3; 
    320330        vasenReuna.IsVisible = true; 
     331        vasenReuna.Image = raja; 
     332 
    321333        oikeaReuna = Level.CreateRightBorder(); 
    322334        oikeaReuna.Restitution = 0.3; 
    323335        oikeaReuna.IsVisible = true; 
     336        oikeaReuna.Image = raja; 
     337 
    324338        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
    325339        ylaReuna.Restitution = 0.3; 
    326340        ylaReuna.IsVisible = true; 
     341        ylaReuna.Image = raja; 
     342 
    327343        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
    328344        alaReuna.Restitution = 0.3; 
    329345        alaReuna.IsVisible = true; 
     346        alaReuna.Image = raja; 
    330347 
    331348        Level.BackgroundColor = Color.ForestGreen; 
     
    340357        pylvas2.Image = kiwi; 
    341358        pylvas3.Image = kiwi; 
    342         pylvas4.Image = kiwi;  
     359        pylvas4.Image = kiwi; 
    343360        pylvas5.Image = kiwi; 
    344361        pylvas6.Image = kiwi; 
     
    346363 
    347364    } 
    348     void Pelaaja1Tuhoutuu() 
    349     { 
    350         int pMaxMaara = 200; 
    351         //ExplosionSystem rajahdys = new ExplosionSystem(LoadImage("liekkiEsimerkki"), pMaxMaara); 
    352         ExplosionSystem rajahdys2 = new ExplosionSystem(LoadImage("rajahdysEsimerkki2"), pMaxMaara); 
    353         //Add(rajahdys); 
    354         Add(rajahdys2); 
    355  
    356         double x = auto1.X; 
    357         double y = auto1.Y; 
    358         //int pMaara = 100; 
    359         int pMaara2 = 200; 
    360         //rajahdys.AddEffect(x, y, pMaara); 
    361         rajahdys2.AddEffect(x, y, pMaara2); 
    362  
    363         pelaajan2Pisteet.Value += 1; 
    364  
    365         UusiEra(); 
    366     } 
    367     void Pelaaja2Tuhoutuu() 
    368     { 
    369         int pMaxMaara = 200; 
    370         //ExplosionSystem rajahdys = new ExplosionSystem(LoadImage("liekkiEsimerkki"), pMaxMaara); 
    371         ExplosionSystem rajahdys2 = new ExplosionSystem(LoadImage("rajahdysEsimerkki2"), pMaxMaara); 
    372         //Add(rajahdys); 
    373         Add(rajahdys2); 
    374  
    375         double x = auto2.X; 
    376         double y = auto2.Y; 
    377         //int pMaara = 100; 
    378         int pMaara2 = 200; 
    379         //rajahdys.AddEffect(x, y, pMaara); 
    380         rajahdys2.AddEffect(x, y, pMaara2); 
    381  
    382         pelaajan1Pisteet.Value += 1; 
    383  
    384         UusiEra(); 
    385     } 
    386     void Voitto() 
    387     { 
    388         if (pelaajan1Pisteet.Value >= 5) 
     365 
     366    // Käsittelee mlempien pelaajien kuolemat 
     367    void PelaajaTuhoutuu(Automobile auto) 
     368    { 
     369         if (voimaMittari1.Value <= 0) 
     370        { 
     371        Explosion rajahdys1 = new Explosion(200); 
     372        rajahdys1.Position = auto1.Position; 
     373        rajahdys1.Speed = 500.0; 
     374        rajahdys1.Force = 3000; 
     375        Add(rajahdys1); 
     376        } 
     377          
     378        if (voimaMittari2.Value <= 0) 
     379         { 
     380             Explosion rajahdys2 = new Explosion(200); 
     381             rajahdys2.Position = auto2.Position; 
     382             rajahdys2.Speed = 500.0; 
     383             rajahdys2.Force = 3000; 
     384             Add(rajahdys2); 
     385         } 
     386        auto.Destroy(); 
     387        if (auto == auto1) pelaajan2Pisteet.Value += 1; else pelaajan1Pisteet.Value += 1; 
     388        if (pelaajan1Pisteet.Value >= pelaajan1Pisteet.MaxValue || pelaajan2Pisteet >= pelaajan2Pisteet.MaxValue) return; 
     389        UusiEra();       
     390    } 
     391 
     392    void Voitto(Automobile auto) 
     393    { 
     394        if (auto == auto1) 
    389395        { 
    390396            MessageDisplay.Add("Punainen Voitti!"); 
     397            MessageDisplay.TextColor = Color.Pink; 
    391398            MessageDisplay.X = 560.0; 
    392399            MessageDisplay.Y = 470.0; 
    393             Loppui(); 
    394             Remove(auto1); 
    395             Remove(auto2); 
    396         } 
    397         if (pelaajan2Pisteet.Value >= 5) 
     400 
     401        } 
     402        else 
    398403        { 
    399404            MessageDisplay.Add("Sininen Voitti!"); 
    400             MessageDisplay.X = 560.0; 
     405            MessageDisplay.TextColor = Color.Cyan; 
     406            MessageDisplay.X = 565.0; 
    401407            MessageDisplay.Y = 520.0; 
    402             Loppui(); 
    403             Remove(auto1); 
    404             Remove(auto2); 
    405         } 
    406     } 
    407     void Pelaaja1HP() 
    408     { 
    409         voimaMittari1 = new DoubleMeter(25); 
    410         voimaMittari1.MaxValue = 25; 
     408        } 
     409 
     410        Loppui(); 
     411        Remove(auto1); 
     412        Remove(auto2); 
     413    } 
     414 
     415    void HPmittarit() 
     416    { 
     417        voimaMittari1 = new DoubleMeter(40); 
     418        voimaMittari1.MaxValue = 40; 
     419        voimaMittari1.MinValue = 0; 
     420        voimaMittari1.LowerLimit += delegate { PelaajaTuhoutuu(auto1); }; 
     421 
    411422        BarGauge voimaPalkki = new BarGauge(10, 150); 
    412423        voimaPalkki.BindTo(voimaMittari1); 
     
    414425        voimaPalkki.Y = (0.05 * Screen.Height); 
    415426        Add(voimaPalkki); 
    416     } 
    417     void Pelaaja2HP() 
    418     { 
    419         voimaMittari2 = new DoubleMeter(25); 
    420         voimaMittari2.MaxValue = 25; 
     427 
     428        voimaMittari2 = new DoubleMeter(40); 
     429        voimaMittari2.MaxValue = 40; 
     430        voimaMittari2.MinValue = 0; 
     431        voimaMittari2.LowerLimit += delegate { PelaajaTuhoutuu(auto2); }; 
    421432        BarGauge voimaPalkki2 = new BarGauge(10, 150); 
    422433        voimaPalkki2.BindTo(voimaMittari2); 
     
    429440    { 
    430441 
    431         if (auto1.Velocity.Magnitude > 500) 
     442        if (auto1.Velocity.Magnitude > 300) 
    432443        { 
    433444            voimaMittari1.Value--; 
    434445        } 
    435         if (voimaMittari1.Value == 0) 
    436         { 
    437             Pelaaja1Tuhoutuu(); 
    438         } 
     446 
    439447        if (auto2.Velocity.Magnitude > auto1.Velocity.Magnitude) 
    440448        { 
     
    445453    { 
    446454 
    447         if (auto2.Velocity.Magnitude > 500) 
     455        if (auto2.Velocity.Magnitude > 300) 
    448456        { 
    449457            voimaMittari2.Value--; 
    450458        } 
    451         if (voimaMittari2.Value == 0) 
    452         { 
    453             Pelaaja2Tuhoutuu(); 
    454         } 
     459 
    455460        if (auto1.Velocity.Magnitude > auto2.Velocity.Magnitude) 
    456461        { 
     
    461466    { 
    462467        pelaajan1Pisteet = LuoPisteLaskuri(-605.0, 150.0); 
     468        pelaajan1Pisteet.UpperLimit += delegate { Voitto(auto1); }; 
    463469        pelaajan2Pisteet = LuoPisteLaskuri(605.0, 150.0); 
     470        pelaajan2Pisteet.UpperLimit += delegate { Voitto(auto2); }; 
    464471    } 
    465472    IntMeter LuoPisteLaskuri(double x, double y) 
    466473    { 
    467474        IntMeter laskuri = new IntMeter(0); 
    468         laskuri.MaxValue = 5; 
     475        laskuri.MaxValue = MontakoPistettaVoittoon; 
    469476        Label naytto = new Label(); 
    470477        naytto.BindTo(laskuri); 
     
    477484    void UusiEra() 
    478485    { 
    479         ClearControls(); 
    480  
    481         voimaMittari1.Value = 25; 
    482         voimaMittari2.Value = 25; 
     486        //ClearControls(); 
     487 
     488        voimaMittari1.Value = 40; 
     489        voimaMittari2.Value = 40; 
     490 
     491 
     492 
     493        Aftermath(); 
     494 
     495    } 
     496 
     497    void AloitaAmpuminen(Automobile auto, Weapon ase) 
     498    { 
     499        if (auto == auto1) 
     500        { 
     501            auto1.Animation.Start(); 
     502        } 
     503        else 
     504        { 
     505 
     506            auto2.Animation.Start(); 
     507        } 
     508    } 
     509 
     510    void LopetaAmpuminen(Automobile auto, Weapon ase) 
     511    { 
     512        if (auto == auto1) 
     513        { 
     514            auto1.Animation.Stop(); 
     515        } 
     516        else 
     517        { 
     518            auto2.Animation.Stop(); 
     519        } 
     520 
     521    } 
     522 
     523    void AmmuAseella(Automobile auto, Weapon ase) 
     524    { 
     525        PhysicsObject ammus = ase.Shoot(); 
     526 
     527        if (ammus != null) 
     528        { 
     529            ammus.CollisionIgnorer = auto.CollisionIgnorer; 
     530            ammus.Size *= 0.5; 
     531            AddCollisionHandler(ammus, AmmusOsui); 
     532        } 
     533    } 
     534 
     535    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     536    { 
     537        ammus.Destroy(); 
     538 
     539        if (kohde == auto1) 
     540        { 
     541            voimaMittari1.Value--; 
     542            return; 
     543        } 
     544        if (kohde == auto2) 
     545        { 
     546            voimaMittari2.Value--; 
     547            return; 
     548        } 
     549    } 
     550 
     551    void Aftermath() 
     552    {         
     553        Timer jalkiaika = new Timer(); 
     554        jalkiaika.Interval = 3; 
     555        jalkiaika.Timeout += EranAlku; 
     556        jalkiaika.Start(1); 
     557    } 
     558    void EranAlku() 
     559    { 
     560    
     561        Add(auto1, 0); 
     562        Add(auto2, 0); 
    483563 
    484564        auto1.X = -300; 
     
    493573        auto2.Stop(); 
    494574 
    495         EranAlku(); 
    496  
    497     } 
    498  
    499     void AloitaAmpuminen(Automobile auto, Weapon ase) 
    500     { 
    501         if (auto == auto1) 
    502         { 
    503             auto1.Animation.Start(); 
    504         } 
    505         else 
    506         { 
    507  
    508             auto2.Animation.Start(); 
    509         } 
    510     } 
    511  
    512     void LopetaAmpuminen(Automobile auto, Weapon ase) 
    513     { 
    514         if (auto == auto1) 
    515         { 
    516             auto1.Animation.Stop(); 
    517         } 
    518         else 
    519         { 
    520  
    521             auto2.Animation.Stop(); 
    522         } 
    523  
    524     } 
    525  
    526     void AmmuAseella(Automobile auto, Weapon ase) 
    527     { 
    528         PhysicsObject ammus = ase.Shoot(); 
    529  
    530         if (ammus != null) 
    531         { 
    532             ammus.CollisionIgnorer = auto.CollisionIgnorer; 
    533             ammus.Size *= 0.5; 
    534             AddCollisionHandler(ammus, AmmusOsui); 
    535         } 
    536     } 
    537  
    538     void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    539     { 
    540         ammus.Destroy(); 
    541  
    542         if (kohde == auto1) 
    543         { 
    544             voimaMittari1.Value--; 
    545             return; 
    546         } 
    547         if (kohde == auto2) 
    548         { 
    549             voimaMittari2.Value--; 
    550             return; 
    551         } 
    552     } 
    553  
    554     void EranAlku() 
    555     { 
    556         Remove(auto1); 
    557         Remove(auto2); 
    558  
     575        auto1.Animation.Stop(); 
     576        auto2.Animation.Stop(); 
     577 
     578        ClearControls(); 
     579 
     580        MessageDisplay.Clear(); 
    559581         
    560  
    561         MessageDisplay.Clear(); 
    562  
    563582        Timer aikaLaskuri = new Timer(); 
    564583        aikaLaskuri.Interval = 3; 
    565         aikaLaskuri.Trigger+= AikaLoppui; 
     584        aikaLaskuri.Trigger += AikaLoppui; 
    566585        aikaLaskuri.Start(); 
    567586 
     
    582601        auto1.Stop(); 
    583602        auto2.Stop(); 
    584  
    585         Voitto(); 
    586603    } 
    587604 
    588605    void AikaLoppui(Timer ajastin) 
    589606    { 
    590         Add(auto1, 0); 
    591         Add(auto2, 0); 
     607        if (auto1.IsDestroyed) 
     608        { 
     609            Autot(1); 
     610            Add(auto1, 0); 
     611        } 
     612        if (auto2.IsDestroyed) 
     613        { 
     614            Autot(2); 
     615            Add(auto2, 0); 
     616        } 
    592617 
    593618        auto1.Animation.Stop(); 
     
    600625 
    601626        MessageDisplay.Add("Start!"); 
    602         MessageDisplay.X = 125.0; 
    603         MessageDisplay.Y = 100.0; 
     627        MessageDisplay.TextColor = Color.White; 
     628        MessageDisplay.X = 610.0; 
     629        MessageDisplay.Y = 500.0; 
    604630        ajastin.Stop(); 
    605631        ajastin.Reset(); 
     
    611637        pyssy2.Ammo.Value = 9999; 
    612638    } 
     639 
    613640    void Loppui() 
    614641    { 
     
    624651        Valikko(); 
    625652        Level.BackgroundColor = Color.LightBlue; 
    626         Remove(auto1); 
    627         Remove(auto2); 
    628653    } 
    629654} 
Note: See TracChangeset for help on using the changeset viewer.