Ignore:
Timestamp:
2013-01-26 16:09:49 (7 years ago)
Author:
sieerinn
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2012/09-22/SanteriH/Kynari/Kynari/Kynari/Kynari.cs

    r3916 r3927  
    3535    Image pistoolinkuva = LoadImage("pistol"); 
    3636    Image kivaarinkuva = LoadImage("assaultrifle"); 
     37    bool saaAmpua = false; 
     38    //bool peliohi = false; 
    3739 
    3840    SoundEffect hyppyAani = LoadSoundEffect("hyppays"); 
     
    4143    ProgressBar hpNaytto2; 
    4244 
    43     Meter<int> pelaajan1Pisteet; 
    44     Meter<int> pelaajan2Pisteet; 
     45    IntMeter pelaajan1Pisteet; 
     46    IntMeter pelaajan2Pisteet; 
    4547 
    4648    #endregion 
     
    4951    public override void Begin() 
    5052    { 
     53        pelaajan1Pisteet = new IntMeter(0); 
     54        pelaajan2Pisteet = new IntMeter(0); 
     55 
    5156 
    5257        DrawPerimeter = false; // ei haluta piirtää kentän reunoja 
     
    5560 
    5661        // Zoomataan lähemmäksi 
    57         Camera.ZoomFactor = 0.73; 
     62        //Camera.ZoomFactor = 0.73; 
    5863        LuoAlkuValikko(); 
    5964        //aloitaUusiPeli(); 
     
    6267    void aloitaUusiPeli() 
    6368    { 
     69 
    6470        MessageDisplay.Clear(); 
    6571        // ladataan kenttä 
     
    6773        LisaaLaskurit(); 
    6874        naytaTiedot(); 
    69  
     75        //peliohi = false; 
     76        saaAmpua = false; 
     77        Timer.SingleShot(0.1, delegate 
     78        { 
     79            saaAmpua = true; 
     80        }); 
    7081    } 
    7182    #endregion 
     
    94105        lisaaHPNaytot(); 
    95106 
     107        Timer timer = new Timer(); 
     108        timer.Interval = 0.1; 
     109        timer.Timeout += delegate { TarkistaReunat(300, 1000); }; 
     110        timer.Start(); 
     111 
    96112        return Level; 
    97113    } 
    98114 
     115    void TarkistaReunat(double leveys, double korkeus) 
     116    { 
     117        if (pelaaja1.Position.X < -leveys) 
     118        { 
     119            pelaaja1.Position = new Vector(-leveys, pelaaja1.Position.Y); 
     120        } 
     121        if (pelaaja1.Position.X > leveys) 
     122        { 
     123            pelaaja1.Position = new Vector(leveys, pelaaja1.Position.Y); 
     124        } 
     125        if (pelaaja1.Position.Y < -korkeus) 
     126        { 
     127            pelaaja1.Position = new Vector(pelaaja1.Position.X, -korkeus); 
     128        } 
     129        if (pelaaja1.Position.Y > korkeus) 
     130        { 
     131            pelaaja1.Position = new Vector(pelaaja1.Position.Y, korkeus); 
     132        } 
     133    } 
     134 
    99135    void LuoAlkuValikko() 
    100136    { 
    101137        ClearAll(); 
     138        NollaaLaskurit(); 
    102139        MultiSelectWindow alkuValikko = new MultiSelectWindow("Kynäri", 
    103140        "Aloita peli", "Lopeta"); 
     
    140177        lisaaPystyTaso(0, -450); 
    141178 
    142         lisaaReuna(-900, 0); 
    143         lisaaReuna(900, 0); 
     179        lisaaReuna(-1375, 0); 
     180        lisaaReuna(1375, 0); 
    144181    } 
    145182 
     
    147184    { 
    148185        // luodaan elämänäyttö 
    149         hpNaytto = new ProgressBar(30, 250); 
    150         hpNaytto.Angle = Angle.FromDegrees(90); 
     186        hpNaytto = new ProgressBar(250, 30); 
     187        //hpNaytto.Angle = Angle.FromDegrees(90); 
    151188        hpNaytto.BarColor = Color.LightGreen; 
    152189        hpNaytto.Color = Color.Red; 
    153190        hpNaytto.BindTo(HitPoint1); 
    154         hpNaytto.Position = new Vector(Screen.RightSafe - 1000, Screen.TopSafe - 170); 
     191        hpNaytto.Position = new Vector(Screen.LeftSafe + 300, Screen.TopSafe - 170); 
    155192        Add(hpNaytto); 
    156193 
    157         hpNaytto2 = new ProgressBar(30, 250); 
    158         hpNaytto2.Angle = Angle.FromDegrees(90); 
     194        hpNaytto2 = new ProgressBar(250, 30); 
     195        //hpNaytto2.Angle = Angle.FromDegrees(90); 
    159196        hpNaytto2.BarColor = Color.LightGreen; 
    160197        hpNaytto2.Color = Color.Red; 
     
    166203    void LisaaLaskurit() 
    167204    { 
    168         pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 175.0); 
    169         pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 175.0); 
    170         pelaajan1Pisteet.UpperLimit += (laskuri1_UpperLimit); 
    171         pelaajan2Pisteet.UpperLimit += (laskuri2_UpperLimit); 
     205        LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 175.0, pelaajan1Pisteet); 
     206        LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 175.0, pelaajan2Pisteet); 
     207        pelaajan1Pisteet.MaxValue = 3; 
     208        pelaajan2Pisteet.MaxValue = 3; 
     209        //pelaajan1Pisteet.UpperLimit += (laskuri1_UpperLimit); 
     210        //pelaajan2Pisteet.UpperLimit += (laskuri2_UpperLimit); 
    172211    } 
    173212 
     
    178217    } 
    179218 
    180     IntMeter LuoPisteLaskuri(double x, double y) 
    181     { 
    182         IntMeter laskuri = new IntMeter(0); 
     219    IntMeter LuoPisteLaskuri(double x, double y, IntMeter laskuri) 
     220    { 
     221        //IntMeter laskuri = new IntMeter(0); 
    183222        Label naytto = new Label(); 
    184223        naytto.BindTo(laskuri); 
     
    189228    } 
    190229 
    191     void laskuri1_UpperLimit() 
    192     { 
     230    void Pelaaja1Voitti() 
     231    { 
     232        /* 
     233        if (peliohi) { 
     234            return; 
     235        } 
     236        peliohi = true; 
     237         */ 
    193238        MessageDisplay.Clear(); 
    194         MessageDisplay.Add("Pelaaja 1 voittaa!"); 
    195         MessageDisplay.X = -100; 
    196  
    197     } 
    198  
    199     void laskuri2_UpperLimit() 
    200     { 
     239        if (pelaaja1.IsDestroying && pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue) 
     240        { 
     241            MessageDisplay.Add("Tasapeli!"); 
     242        } 
     243        else 
     244        { 
     245            MessageDisplay.Add("Pelaaja 1 voittaa!"); 
     246        } 
     247        MessageDisplay.X = 0; 
     248    } 
     249 
     250    void Pelaaja2Voitti() 
     251    { 
     252        /* 
     253        if (peliohi) 
     254        { 
     255            return; 
     256        } 
     257        peliohi = true; 
     258         */ 
    201259        MessageDisplay.Clear(); 
    202         MessageDisplay.Add("Pelaaja 2 voittaa!"); 
    203         MessageDisplay.X = -100; 
     260        if (pelaaja2.IsDestroying && pelaajan1Pisteet.Value == pelaajan1Pisteet.MaxValue) 
     261        { 
     262            MessageDisplay.Add("Tasapeli!"); 
     263        } 
     264        else 
     265        { 
     266            MessageDisplay.Add("Pelaaja 2 voittaa!"); 
     267        } 
     268        MessageDisplay.X = 0; 
    204269 
    205270    } 
     
    207272    void lisaaPieniTaso(double x, double y) 
    208273    { 
    209         PhysicsObject taso = PhysicsObject.CreateStaticObject(100, 30); 
     274        PhysicsObject taso = PhysicsObject.CreateStaticObject(100, 30, Shape.Rectangle); 
    210275        taso.Color = Color.Gray; 
    211276        taso.X = x; 
     
    216281    void lisaaReuna(double x, double y) 
    217282    { 
    218         PhysicsObject taso = PhysicsObject.CreateStaticObject(50, 1000); 
     283        PhysicsObject taso = PhysicsObject.CreateStaticObject(1000, 1000, Shape.Rectangle); 
    219284        taso.Color = Color.Gray; 
    220285        taso.X = x; 
     
    225290    void lisaaPystyTaso(double x, double y) 
    226291    { 
    227         PhysicsObject taso = PhysicsObject.CreateStaticObject(30, 100); 
     292        PhysicsObject taso = PhysicsObject.CreateStaticObject(30, 100, Shape.Rectangle); 
    228293        taso.Color = Color.Gray; 
    229294        taso.X = x; 
     
    260325    void pelaaja1Kuoli() 
    261326    { 
     327        if (pelaaja1.IsDestroying) 
     328        { 
     329            return; 
     330        } 
     331          
     332        pelaaja1.Destroy(); 
     333        VaihdaAse(pelaaja1); 
     334        MessageDisplay.Clear(); 
     335        MessageDisplay.X = 0; 
     336        pelaajan2Pisteet.Value += 1; 
     337 
     338        if (!(pelaajan1Pisteet.Value == pelaajan1Pisteet.MaxValue || pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue)) 
     339        { 
     340            if (pelaaja2.IsDestroying && pelaajan1Pisteet.Value != pelaajan1Pisteet.MaxValue) 
     341            { 
     342                MessageDisplay.Clear(); 
     343                MessageDisplay.Add("Erä tasan!"); 
     344            } 
     345            else if (pelaajan1Pisteet.Value != pelaajan1Pisteet.MaxValue) 
     346            { 
     347                MessageDisplay.Add("Pelaaja 2 voitti erän!"); 
     348            } 
     349 
     350            Timer.SingleShot(3.0, aloitaUusiPeli); 
     351        } 
     352        else if (pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue) 
     353        { 
     354            Pelaaja2Voitti(); 
     355            ClearTimers(); 
     356            Timer.SingleShot(3.0, LuoAlkuValikko); 
     357        } 
     358 
    262359        /* 
    263         PlatformCharacter pelaaja = (PlatformCharacter)sender; 
    264         pelaaja.UnequipWeapon(); 
    265         Weapon kuolinAse = pelaaja.Weapon; 
    266         kuolinAse.RemoveFromOwner(); 
    267         kuolinAse.Unequip(); 
    268         kuolinAse.Visible = true; 
    269         */ 
    270         pelaaja1.Destroy(); 
    271         MessageDisplay.Clear(); 
    272         MessageDisplay.X = -100; 
    273         MessageDisplay.Add("Pelaaja 2 voitti erän!"); 
    274         pelaajan2Pisteet.Value += 1; 
    275  
    276360        if (pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue) 
    277361        { 
     362            Timer.SingleShot(3.0, LuoAlkuValikko); 
     363        } 
     364 
     365        else 
     366        { 
     367            Timer.SingleShot(3.0, aloitaUusiPeli); 
     368        } 
     369         */ 
     370         
     371 
     372    } 
     373    void pelaaja2Kuoli() 
     374    { 
     375        if (pelaaja2.IsDestroying) 
     376        { 
    278377            return; 
    279378        } 
    280  
     379        pelaaja2.Destroy(); 
     380        VaihdaAse(pelaaja2); 
     381        //MessageDisplay.Clear(); 
     382        MessageDisplay.X = 0; 
     383        pelaajan1Pisteet.Value += 1; 
     384 
     385        if (!(pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue || pelaajan1Pisteet.Value == pelaajan1Pisteet.MaxValue)) 
     386        { 
     387            if (pelaaja1.IsDestroying && pelaajan2Pisteet.Value != pelaajan2Pisteet.MaxValue) 
     388            { 
     389                MessageDisplay.Clear(); 
     390                MessageDisplay.Add("Erä tasan!"); 
     391            } 
     392            else if (pelaajan1Pisteet.Value != pelaajan2Pisteet.MaxValue) 
     393            { 
     394                MessageDisplay.Add("Pelaaja 1 voitti erän!"); 
     395            } 
     396 
     397            Timer.SingleShot(3.0, aloitaUusiPeli); 
     398        } 
     399        else if (pelaajan1Pisteet.Value == pelaajan1Pisteet.MaxValue) 
     400        { 
     401            Pelaaja1Voitti(); 
     402            ClearTimers(); 
     403            Timer.SingleShot(3.0, LuoAlkuValikko); 
     404        } 
     405        /*if (pelaaja1.IsDestroying && pelaajan2Pisteet.Value != pelaajan2Pisteet.MaxValue) 
     406        { 
     407            MessageDisplay.Add("Erä tasan!"); 
     408        } 
     409        else if (pelaajan2Pisteet.Value != pelaajan2Pisteet.MaxValue) 
     410        { 
     411            MessageDisplay.Add("Pelaaja 1 voitti erän!"); 
     412        } 
     413 
     414        if (pelaajan1Pisteet.Value == pelaajan1Pisteet.MaxValue) 
     415        { 
     416            Timer.SingleShot(3.0, LuoAlkuValikko); 
     417        } 
    281418        else 
    282419        { 
    283             Timer.SingleShot(3.0, eraloppui); 
    284             /* 
    285             Timer ajastin2 = new Timer(); 
    286             ajastin2.Interval = 3; 
    287             ajastin2.Trigger += new Timer.TriggerHandler(eraloppui); 
    288             ajastin2.Start(); 
    289             AddTimer(ajastin2); 
    290              * */ 
    291         } 
    292  
    293     } 
    294     void pelaaja2Kuoli() 
    295     { 
    296         /* 
    297         PlatformCharacter pelaaja = (PlatformCharacter)sender; 
    298         pelaaja.UnequipWeapon(); 
    299         Weapon kuolinAse = pelaaja.Weapon; 
    300         kuolinAse.RemoveFromOwner(); 
    301         kuolinAse.Unequip(); 
    302         kuolinAse.Visible = true; 
    303         */ 
    304         pelaaja2.Destroy(); 
    305         MessageDisplay.Clear(); 
    306         MessageDisplay.X = -100; 
    307         MessageDisplay.Add("Pelaaja 1 voitti erän!"); 
    308         pelaajan1Pisteet.Value += 1; 
    309  
    310         if (pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue) 
    311         { 
    312             return; 
    313         } 
    314  
    315         else 
    316         { 
    317             Timer.SingleShot(3.0, eraloppui); 
    318             /* 
    319             Timer ajastin2 = new Timer(); 
    320             ajastin2.Interval = 3; 
    321             ajastin2.Trigger += new Timer.TriggerHandler(eraloppui); 
    322             ajastin2.Start(); 
    323             AddTimer(ajastin2); 
    324             */ 
    325         } 
    326     } 
    327  
    328     void eraloppui() 
    329     { 
    330         aloitaUusiPeli(); 
     420            Timer.SingleShot(3.0, aloitaUusiPeli); 
     421        }*/ 
    331422    } 
    332423 
     
    397488    private void VaihdaAse(Pelaaja pelaaja) 
    398489    { 
     490        if (pelaaja.Weapon == null) return; 
     491 
    399492        pelaaja.voikoPoimiaAseen = false; 
    400493        Timer.SingleShot(1.0, delegate { pelaaja.voikoPoimiaAseen = true; }); 
     
    408501        tiputettuAse.CollisionIgnoreGroup = 1; 
    409502        pelaaja.CollisionIgnoreGroup = 1; 
    410         Timer.SingleShot(1.0, delegate { 
     503        Timer.SingleShot(1.0, delegate 
     504        { 
    411505            tiputettuAse.CollisionIgnoreGroup = 0; 
    412506            pelaaja.CollisionIgnoreGroup = 0; 
     
    418512        AddCollisionHandler<PhysicsObject, Pelaaja>(tiputettuAse, "pelaaja", keraaAse); 
    419513 
     514        pelaaja.Weapon = null; 
     515 
    420516        //naytaTiedot(); 
    421517        //pelaaja.UnequipWeapon(); 
     
    433529 
    434530 
    435          
     531 
    436532    } 
    437533 
     
    441537        { 
    442538            ammus.Destroy(); 
    443             if (kohde == pelaaja1) { HitPoint1.Value -= 50; } 
    444             if (kohde == pelaaja2) { HitPoint2.Value -= 50; } 
    445         } 
    446     } 
    447  
     539        } 
     540    } 
     541    void PaineaaltoOsuu(IPhysicsObject kohde, Vector shokki) 
     542    { 
     543        if (kohde == pelaaja1) { HitPoint1.Value -= 75; } 
     544        if (kohde == pelaaja2) { HitPoint2.Value -= 75; } 
     545    } 
    448546 
    449547    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    450548    { 
    451         ammus.Destroy(); 
     549        if ((string)kohde.Tag != "ammus") 
     550        { 
     551            ammus.Destroy(); 
     552        } 
     553 
    452554        if (kohde.Tag.ToString() == "pelaaja") 
    453555        { 
     
    458560    void KivaariOsui(PhysicsObject ammus, PhysicsObject kohde) 
    459561    { 
    460         ammus.Destroy(); 
     562        if ((string)kohde.Tag != "ammus") 
     563        { 
     564            ammus.Destroy(); 
     565        } 
    461566        if (kohde.Tag.ToString() == "pelaaja") 
    462567        { 
     
    467572    void MagnumOsui(PhysicsObject ammus, PhysicsObject kohde) 
    468573    { 
    469         ammus.Destroy(); 
     574        if ((string)kohde.Tag != "ammus") 
     575        { 
     576            ammus.Destroy(); 
     577        } 
    470578        if (kohde.Tag.ToString() == "pelaaja") 
    471579        { 
    472             if (kohde == pelaaja1) { HitPoint1.Value -= 25; } 
    473             if (kohde == pelaaja2) { HitPoint2.Value -= 25; } 
     580            if (kohde == pelaaja1) { HitPoint1.Value -= 35; } 
     581            if (kohde == pelaaja2) { HitPoint2.Value -= 35; } 
    474582        } 
    475583    } 
    476584    void HaulikkoOsui(PhysicsObject ammus, PhysicsObject kohde) 
    477585    { 
    478         ammus.Destroy(); 
     586        if ((string)kohde.Tag != "ammus") 
     587        { 
     588            ammus.Destroy(); 
     589        } 
     590 
    479591        if (kohde.Tag.ToString() == "pelaaja") 
    480592        { 
    481             if (kohde == pelaaja1) { HitPoint1.Value -= 40; } 
    482             if (kohde == pelaaja2) { HitPoint2.Value -= 40; } 
     593            if (kohde == pelaaja1) { HitPoint1.Value -= 13; } 
     594            if (kohde == pelaaja2) { HitPoint2.Value -= 13; } 
    483595        } 
    484596    } 
     
    491603        { 
    492604            ase2 = new AssaultRifle(39, 13); 
    493             ase2.FireRate = 5; 
     605            ase2.FireRate = 7; 
    494606            ase2.ProjectileCollision = KivaariOsui; 
     607            ase2.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    495608            //kivaari.MomentOfInertia = double.PositiveInfinity; 
    496609            //kivaari.Mass = 0.1; 
     
    503616        { 
    504617            ase2 = new AssaultRifle(17, 12); 
    505             ase2.FireRate = 1; 
     618            ase2.FireRate = 1.2; 
    506619            ase2.ProjectileCollision = MagnumOsui; 
     620            ase2.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    507621            //magnum.MomentOfInertia = double.PositiveInfinity; 
    508622            //magnum.Mass = 0.1; 
     
    521635        if (ase.Tag.ToString() == "Haulikko") 
    522636        { 
     637 
    523638            ase2 = new AssaultRifle(39, 13); 
    524639            ase2.FireRate = 0.75; 
    525640            ase2.ProjectileCollision = HaulikkoOsui; 
     641            ase2.MaxAmmoLifetime = TimeSpan.FromSeconds(0.4); 
     642 
    526643            //haulikko.MomentOfInertia = double.PositiveInfinity; 
    527644            //haulikko.Mass = 0.1; 
     
    529646            //haulikko.AmmoType.Damage = new Damage(35); 
    530647            //haulikko.AmmoType.ClusterArc = 3; 
     648 
    531649            ase2.Image = haulikonkuva; 
    532650            //pelaaja.Add(ase2); 
     
    539657            ase2.FireRate = 0.5; 
    540658            ase2.ProjectileCollision = KranaattiOsui; 
     659            ase2.MaxAmmoLifetime = TimeSpan.FromSeconds(2); 
    541660            //kranaatinheitin.MomentOfInertia = double.PositiveInfinity; 
    542661            //kranaatinheitin.Mass = 0.1; 
     
    556675            ase2.FireRate = 2; 
    557676            ase2.ProjectileCollision = AmmusOsui; 
     677            ase2.MaxAmmoLifetime = TimeSpan.FromSeconds(10); 
    558678            //pelaaja1.Weapon.Mass = 0.1; 
    559679            //pelaaja1.EquipWeapon(); 
     
    700820        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima); 
    701821        Keyboard.Listen(Key.Enter, ButtonState.Down, Ammu, "Ammu", pelaaja2); 
     822 
    702823        Keyboard.Listen(Key.Escape, ButtonState.Pressed, PeliPauselle, "Pysäyttää pelin"); 
    703824 
     
    719840    void PeliPauselle() 
    720841    { 
     842        Pause(); 
    721843        MultiSelectWindow PauseValikko = new MultiSelectWindow("Kynäri", 
    722844        "Jatka peliä", "Aloita peli alusta", "Päävalikko", "Lopeta"); 
    723845        Add(PauseValikko); 
    724         PauseValikko.AddItemHandler(1, uusiPeli); 
    725         PauseValikko.AddItemHandler(2, LuoAlkuValikko); 
     846        PauseValikko.AddItemHandler(0, Pause); 
     847        PauseValikko.AddItemHandler(1, delegate { uusiPeli(); Pause(); }); 
     848        PauseValikko.AddItemHandler(2, delegate { LuoAlkuValikko(); Pause(); }); 
    726849        PauseValikko.AddItemHandler(3, Exit); 
    727850        PauseValikko.DefaultCancel = 0; 
     
    740863        MessageDisplay.Clear(); 
    741864        MessageDisplay.X = 0; 
    742         MessageDisplay.Add("Pelaaja 1: " + pelaaja1.Weapon.Tag); 
    743         MessageDisplay.Add("Pelaaja 2: " + pelaaja2.Weapon.Tag); 
     865        if (pelaaja1.Weapon != null) 
     866        { 
     867            MessageDisplay.Add("Pelaaja 1: " + pelaaja1.Weapon.Tag); 
     868        } 
     869        if (pelaaja2.Weapon != null) 
     870        { 
     871            MessageDisplay.Add("Pelaaja 2: " + pelaaja2.Weapon.Tag); 
     872        } 
    744873    } 
    745874 
    746875    void Ammu(PlatformCharacter hahmo) 
    747876    { 
    748         if (hahmo.IsDestroyed) 
     877        if (hahmo.IsDestroyed || saaAmpua == false) 
    749878        { 
    750879            return; 
     
    755884        if (ammus != null) 
    756885        { 
     886            ammus.Tag = "ammus"; 
     887            ammus.IgnoresCollisionResponse = true; 
     888            ammus.IgnoresExplosions = true; 
     889 
     890            if ((string)hahmo.Weapon.Tag == "Kranaatinheitin") 
     891            { 
     892                ammus.Destroying += delegate { KranaattiRajahdys(ammus); }; 
     893                ammus.IgnoresCollisionResponse = false; 
     894 
     895                Timer.SingleShot(0.1, delegate { ammus.CollisionIgnorer = null; }); 
     896            } 
     897            if ((string)hahmo.Weapon.Tag == "Haulikko") 
     898            { 
     899                for (int i = 0; i < 5; i++) 
     900                { 
     901                    PhysicsObject ammus2 = new PhysicsObject(ammus.Image); 
     902                    ammus2.IgnoresGravity = true; 
     903                    ammus2.Size = ammus.Size; 
     904                    ammus2.Position = ammus.Position; 
     905                    ammus2.Velocity = ammus.Velocity; 
     906                    ammus2.MaximumLifetime = TimeSpan.FromSeconds(0.4); 
     907                    ammus2.Hit(new Vector(RandomGen.NextDouble(-100, 100), RandomGen.NextDouble(-300, 300))); 
     908                    //ammus2.CollisionIgnoreGroup = 2; 
     909                    ammus2.CollisionIgnorer = ammus.CollisionIgnorer; 
     910                    ammus2.Tag = "ammus"; 
     911                    ammus2.IgnoresCollisionResponse = true; 
     912                    ammus2.IgnoresExplosions = true; 
     913                    AddCollisionHandler(ammus2, HaulikkoOsui); 
     914                    Add(ammus2); 
     915                } 
     916            } 
    757917            Add(ammus); 
    758918        } 
    759919 
    760920        return; 
     921    } 
     922 
     923    void KranaattiRajahdys(PhysicsObject ammus) 
     924    { 
     925        Explosion rajahdys = new Explosion(100); 
     926        rajahdys.Position = ammus.Position; 
     927        rajahdys.AddShockwaveHandler("pelaaja", PaineaaltoOsuu); 
     928        Add(rajahdys); 
     929        rajahdys.Force = 100; 
     930        rajahdys.Speed = 1000; 
    761931    } 
    762932 
Note: See TracChangeset for help on using the changeset viewer.