Changeset 1656


Ignore:
Timestamp:
2010-08-06 12:54:25 (9 years ago)
Author:
paaaanro
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/31/saolhaka/KynariKakone/Peli.cs

    r1640 r1656  
    44using Jypeli.Widgets; 
    55using Jypeli.Assets; 
    6  
    76 
    87namespace Kynari 
     
    1615        const double hyppyVoima = 2000; 
    1716 
    18         Grenade kranaatti; 
    1917        PlatformCharacter pelaaja1; 
    2018        PlatformCharacter pelaaja2; 
     19        DoubleMeter HitPoint1 = new DoubleMeter(100); 
     20        DoubleMeter HitPoint2 = new DoubleMeter(100); 
     21 
     22        Image kranaatinheittimenkuva = LoadImage("grenade"); 
     23        Image magnumkuva = LoadImage("magnum"); 
     24        Image norsu = LoadImage("norsu"); 
    2125 
    2226        BarGauge hpNaytto; 
     
    6266            ClearAll(); 
    6367            lisaaNappaimet(); 
    64             //Camera.Follow(pelaaja1); 
    6568            Camera.Position = new Vector(0, 0); 
    6669        } 
     
    7376            Level.Background.CreateGradient(Color.White, Color.Gray); 
    7477 
    75             luoTasot(Level); 
    76             lisaaPelaajat(Level); 
    77             lisaaAsePelaajalle(Level); 
    78             lisaaKerattavaAse(Level); 
    79             lisaaHPNaytot(Level); 
     78            luoTasot(); 
     79            lisaaPelaajat(); 
     80            lisaaAsePelaajalle(); 
     81            lisaaKerattavaAse(); 
     82            lisaaHPNaytot(); 
    8083 
    8184            return Level; 
    8285        } 
    8386 
    84         void luoTasot(Level Level) 
    85         { 
    86             PhysicsObject alusta = new PhysicsObject(Level.Width, 300, Color.Gray); 
     87        void luoTasot() 
     88        { 
     89            PhysicsObject alusta = new PhysicsObject(Level.Width, 300); 
     90            alusta.Color = Color.Gray; 
    8791            alusta.X = 0; 
    8892            alusta.Y = Level.Bottom - alusta.Height / 2; 
    89             Level.Objects.Add(alusta); 
    90  
    91             lisaaPieniTaso(Level, -200, -350); 
    92             lisaaPieniTaso(Level, 0, -400); 
    93             lisaaPieniTaso(Level, 100, -300); 
    94             lisaaPieniTaso(Level, 400, -350); 
    95             lisaaPieniTaso(Level, 450, -200); 
    96             lisaaPieniTaso(Level, -500, -400); 
    97             lisaaPieniTaso(Level, -550, -200); 
    98             lisaaPieniTaso(Level, -400, -300); 
    99             lisaaPieniTaso(Level, -150, -150); 
    100             lisaaPieniTaso(Level, -870, -350); 
    101             lisaaPieniTaso(Level, -700, -400); 
    102  
    103             lisaaPieniTaso(Level, 600, -300); 
    104             lisaaPieniTaso(Level, 850, -300); 
    105             lisaaPieniTaso(Level, 750, -400); 
    106             lisaaPieniTaso(Level, 200, -200); 
    107             lisaaPieniTaso(Level, -200, -150); 
    108  
    109             lisaaPystyTaso(Level, 600, -450); 
    110             lisaaPystyTaso(Level, -600, -500); 
    111             lisaaPystyTaso(Level, 0, -450); 
    112  
    113             lisaaReuna(Level, -900, 0); 
    114             lisaaReuna(Level, 900, 0); 
    115         } 
    116  
    117         void lisaaHPNaytot(Level Level) 
     93            Add(alusta); 
     94 
     95            lisaaPieniTaso(-200, -350); 
     96            lisaaPieniTaso(0, -400); 
     97            lisaaPieniTaso(100, -300); 
     98            lisaaPieniTaso(400, -350); 
     99            lisaaPieniTaso(450, -200); 
     100            lisaaPieniTaso(-500, -400); 
     101            lisaaPieniTaso(-550, -200); 
     102            lisaaPieniTaso(-400, -300); 
     103            lisaaPieniTaso(-150, -150); 
     104            lisaaPieniTaso(-870, -350); 
     105            lisaaPieniTaso(-700, -400); 
     106 
     107            lisaaPieniTaso(600, -300); 
     108            lisaaPieniTaso(850, -300); 
     109            lisaaPieniTaso(750, -400); 
     110            lisaaPieniTaso(200, -200); 
     111            lisaaPieniTaso(-200, -150); 
     112 
     113            lisaaPystyTaso(600, -450); 
     114            lisaaPystyTaso(-600, -500); 
     115            lisaaPystyTaso(0, -450); 
     116 
     117            lisaaReuna(-900, 0); 
     118            lisaaReuna(900, 0); 
     119        } 
     120 
     121        void lisaaHPNaytot() 
    118122        { 
    119123            // luodaan elämänäyttö 
    120             hpNaytto = new BarGauge(this); 
    121             hpNaytto.HorizontalOrigin = HorizontalAlignment.Center; 
    122             hpNaytto.VerticalOrigin = VerticalAlignment.Bottom; 
    123             hpNaytto.Size = new Vector(30, 250); 
     124            hpNaytto = new BarGauge(30, 250); 
    124125            hpNaytto.Angle = Angle.Degrees(90); 
    125             hpNaytto.ValueColor = Color.LightGreen; 
    126             hpNaytto.BackColor = Color.Red; 
    127             hpNaytto.BindTo(pelaaja1.HitPoints); 
     126            hpNaytto.BarColor = Color.LightGreen; 
     127            hpNaytto.Color = Color.Red; 
     128            hpNaytto.BindTo(HitPoint1); 
    128129            hpNaytto.Position = new Vector(Screen.RightSafe - 1000, Screen.TopSafe - 170); 
    129130            Add(hpNaytto); 
    130131 
    131             hpNaytto2 = new BarGauge(this); 
    132             hpNaytto2.HorizontalOrigin = HorizontalAlignment.Center; 
    133             hpNaytto2.VerticalOrigin = VerticalAlignment.Bottom; 
    134             hpNaytto2.Size = new Vector(30, 250); 
     132            hpNaytto2 = new BarGauge(30, 250); 
    135133            hpNaytto2.Angle = Angle.Degrees(90); 
    136             hpNaytto2.ValueColor = Color.LightGreen; 
    137             hpNaytto2.BackColor = Color.Red; 
    138             hpNaytto2.BindTo(pelaaja2.HitPoints); 
     134            hpNaytto2.BarColor = Color.LightGreen; 
     135            hpNaytto2.Color = Color.Red; 
     136            hpNaytto2.BindTo(HitPoint2); 
    139137            hpNaytto2.Position = new Vector(Screen.RightSafe - 300, Screen.TopSafe - 170); 
    140138            Add(hpNaytto2); 
     
    145143            pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
    146144            pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    147             pelaajan1Pisteet.UpperLimit += new Meter<int>.OnLimitHandler(laskuri1_UpperLimit); 
    148             pelaajan2Pisteet.UpperLimit += new Meter<int>.OnLimitHandler(laskuri2_UpperLimit); 
     145            pelaajan1Pisteet.UpperLimit += (laskuri1_UpperLimit); 
     146            pelaajan2Pisteet.UpperLimit += (laskuri2_UpperLimit); 
    149147        } 
    150148 
     
    155153        } 
    156154 
    157         Meter<int> LuoPisteLaskuri(double x, double y) 
    158         { 
    159             Meter<int> laskuri = new Meter<int>(0, 0, 10); 
    160             ValueDisplay naytto = new ValueDisplay(this); 
     155        IntMeter LuoPisteLaskuri(double x, double y) 
     156        { 
     157            IntMeter laskuri = new IntMeter(0); 
     158            Label naytto = new Label(); 
    161159            naytto.BindTo(laskuri); 
    162160            naytto.X = x; 
     
    166164        } 
    167165 
    168         void laskuri1_UpperLimit(Meter<int> sender) 
     166        void laskuri1_UpperLimit(int pisteet) 
    169167        { 
    170168            MessageDisplay.Clear(); 
     
    174172        } 
    175173 
    176         void laskuri2_UpperLimit(Meter<int> sender) 
     174        void laskuri2_UpperLimit(int pisteet) 
    177175        { 
    178176            MessageDisplay.Clear(); 
     
    182180        } 
    183181 
    184         void lisaaPieniTaso(Level Level, double x, double y) 
    185         { 
    186             PhysicsObject taso = new PhysicsObject(100, 30, Color.DimGray); 
     182        void lisaaPieniTaso(double x, double y) 
     183        { 
     184            PhysicsObject taso = new PhysicsObject(100, 30); 
     185            taso.Color = Color.Gray; 
    187186            taso.X = x; 
    188187            taso.Y = y; 
    189             Level.Objects.Add(taso); 
    190         } 
    191  
    192         void lisaaReuna(Level Level, double x, double y) 
    193         { 
    194             PhysicsObject taso = new PhysicsObject(50, 1000, Color.DimGray); 
     188            Add(taso); 
     189        } 
     190 
     191        void lisaaReuna(double x, double y) 
     192        { 
     193            PhysicsObject taso = new PhysicsObject(50, 1000); 
     194            taso.Color = Color.Gray; 
    195195            taso.X = x; 
    196196            taso.Y = y; 
    197             Level.Objects.Add(taso); 
    198         } 
    199  
    200         void lisaaPystyTaso(Level Level, double x, double y) 
    201         { 
    202             PhysicsObject taso = new PhysicsObject(30, 100, Color.DimGray); 
     197            Add(taso); 
     198        } 
     199 
     200        void lisaaPystyTaso(double x, double y) 
     201        { 
     202            PhysicsObject taso = new PhysicsObject(30, 100); 
     203            taso.Color = Color.Gray; 
    203204            taso.X = x; 
    204205            taso.Y = y; 
    205             Level.Objects.Add(taso); 
    206         } 
    207  
    208         void lisaaPelaajat(Level Level) 
    209         { 
    210             pelaaja1 = new PlatformCharacter(4, Shapes.CreateCircle(20)); 
    211             pelaaja1.Texture = Content.Load<Texture2D>("norsu"); 
     206            Add(taso); 
     207        } 
     208 
     209        void lisaaPelaajat() 
     210        { 
     211            pelaaja1 = new PlatformCharacter(40, 40, Shapes.Circle); 
     212            pelaaja1.Image = norsu; 
    212213            pelaaja1.X = -700; 
     214            pelaaja1.Mass = 4; 
    213215            pelaaja1.Y = Level.Bottom + 20; 
    214216 
    215             pelaaja2 = new PlatformCharacter(4, Shapes.CreateCircle(20)); 
    216             pelaaja2.Texture = Content.Load<Texture2D>("norsu"); 
     217            pelaaja2 = new PlatformCharacter(40, 40, Shapes.Circle); 
     218            pelaaja2.Image = norsu; 
    217219            pelaaja2.X = 700; 
    218220            pelaaja2.Y = Level.Bottom + 20; 
    219221 
    220             pelaaja1.HitPoints.MaxValue = 100; 
    221             pelaaja1.HitPoints.Value = 100; 
    222             pelaaja1.HitpointsReachedZero += new EventHandler(pelaajaKuoli); 
    223  
    224             pelaaja2.HitPoints.MaxValue = 100; 
    225             pelaaja2.HitPoints.Value = 100; 
    226             pelaaja2.HitpointsReachedZero += new EventHandler(pelaajaKuoli); 
    227  
    228             Level.Objects.Add(pelaaja1); 
    229             Level.Objects.Add(pelaaja2); 
    230         } 
    231  
    232         void pelaajaKuoli(object sender, EventArgs e) 
     222            HitPoint1.MaxValue = 100; 
     223            HitPoint1.Value = 100; 
     224            HitPoint1.LowerLimit += new EventHandler(pelaaja1Kuoli); 
     225 
     226            HitPoint2.MaxValue = 100; 
     227            HitPoint2.Value = 100; 
     228            HitPoint2.LowerLimit += new EventHandler(pelaaja2Kuoli); 
     229 
     230            Add(pelaaja1); 
     231            Add(pelaaja2); 
     232        } 
     233 
     234        void pelaaja1Kuoli(double Hitpointarvo) 
    233235        { 
    234236            PlatformCharacter pelaaja = (PlatformCharacter)sender; 
     237            /* 
    235238            pelaaja.UnequipWeapon(); 
    236239            Weapon kuolinAse = pelaaja.Weapon; 
     
    238241            kuolinAse.Unequip(); 
    239242            kuolinAse.Visible = true; 
     243            */ 
    240244            pelaaja.Destroy(); 
    241245            MessageDisplay.Clear(); 
    242246            MessageDisplay.X = -100; 
    243             if (sender == pelaaja1) 
    244             { 
    245                 MessageDisplay.Add("Pelaaja 2 voitti erän!"); 
    246                 pelaajan2Pisteet.Value += 1; 
    247             } 
    248             if (sender == pelaaja2) 
    249             { 
    250                 MessageDisplay.Add("Pelaaja 1 voitti erän!"); 
    251                 pelaajan1Pisteet.Value += 1; 
    252             } 
    253  
    254             if (pelaajan1Pisteet.Value == pelaajan1Pisteet.MaxValue) 
    255             { 
    256                 return; 
    257             } 
     247            MessageDisplay.Add("Pelaaja 2 voitti erän!"); 
     248            pelaajan2Pisteet.Value += 1; 
    258249 
    259250            if (pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue) 
     
    271262            } 
    272263 
     264        } 
     265        void pelaaja2Kuoli(double Hitpointarvo) 
     266        { 
     267            PlatformCharacter pelaaja = (PlatformCharacter)sender; 
     268            /* 
     269            pelaaja.UnequipWeapon(); 
     270            Weapon kuolinAse = pelaaja.Weapon; 
     271            kuolinAse.RemoveFromOwner(); 
     272            kuolinAse.Unequip(); 
     273            kuolinAse.Visible = true; 
     274            */ 
     275            pelaaja.Destroy(); 
     276            MessageDisplay.Clear(); 
     277            MessageDisplay.X = -100; 
     278            MessageDisplay.Add("Pelaaja 1 voitti erän!"); 
     279            pelaajan1Pisteet.Value += 1; 
     280 
     281            if (pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue) 
     282            { 
     283                return; 
     284            } 
     285 
     286            else 
     287            { 
     288                Timer ajastin2 = new Timer(); 
     289                ajastin2.Interval = 3; 
     290                ajastin2.Trigger += new Timer.TriggerHandler(eraloppui); 
     291                ajastin2.Start(); 
     292                AddTimer(ajastin2); 
     293            } 
    273294        } 
    274295 
     
    345366        } 
    346367 
    347         void OnkoPelaaja(PhysicsObject olio)  
    348         {  
    349             return (olio == pelaaja1 || olio == pelaaja2);  
    350         } 
    351  
    352         void lisaaKerattavaAse(Level Level) 
     368        void OnkoPelaaja(PhysicsObject olio) 
     369        { 
     370            return (olio == pelaaja1 || olio == pelaaja2); 
     371        } 
     372 
     373        void lisaaKerattavaAse() 
    353374        { 
    354375            //Täällä lisätään ase kenttään 
     
    356377            Bullet luoti2 = new Bullet(); 
    357378            Bullet hauli = new Bullet(); 
    358              
    359             kranaatti = new Grenade(); 
     379 
     380            Grenade kranaatti = new Grenade(); 
    360381            kranaatti.Explosion = new Explosion(50, 200, 20, new Damage(10000)); 
    361             kranaatti.ExplodeCondition = OnkoPelaaja;  
     382            kranaatti.ExplodeCondition = OnkoPelaaja; 
    362383 
    363384            Texture2D shotgun = Content.Load<Texture2D>("shotgun"); 
     
    372393            kivaari.Mass = 0.1; 
    373394            kivaari.Tag = "Kivääri"; 
    374             Level.Objects.Add(kivaari); 
     395            Add(kivaari); 
    375396 
    376397            AssaultRifle magnum = new AssaultRifle(luoti2); 
     
    386407            magnum.Texture = magnumtexture; 
    387408            magnum.AmmoType.Damage = new Damage(20); 
    388             Level.Objects.Add(magnum); 
     409            Add(magnum); 
    389410 
    390411            AssaultRifle haulikko = new AssaultRifle(hauli); 
     
    398419            haulikko.AmmoType.ClusterArc = 3; 
    399420            haulikko.Texture = shotgun; 
    400             Level.Objects.Add(haulikko); 
     421            Add(haulikko); 
    401422 
    402423            Cannon kranaatinheitin = new Cannon(kranaatti); 
     
    412433            kranaatinheitin.UpdateShapeFromSize(); 
    413434            kranaatinheitin.Texture = grenade; 
    414             Level.Objects.Add(kranaatinheitin); 
     435            Add(kranaatinheitin); 
    415436 
    416437            //Lisää myös törmäyksen käsittelijä aseelle, jossa kutsutaan keraaAse -aliohjelmaa 
     
    421442        } 
    422443 
    423         void lisaaAsePelaajalle(Level Level) 
     444        void lisaaAsePelaajalle() 
    424445        { 
    425446            Bullet luoti = new Bullet(); 
     
    431452            pelaaja1.Weapon.FireRate = 2; 
    432453            pelaaja1.Weapon.Mass = 0.1; 
    433             Level.Objects.Add(pelaaja1.Weapon); 
     454            Add(pelaaja1.Weapon); 
    434455            pelaaja1.EquipWeapon(); 
    435456            pelaaja1.Weapon.MomentOfInertia = double.PositiveInfinity; 
     
    445466            pelaaja2.Weapon.FireRate = 2; 
    446467            pelaaja2.Weapon.Mass = 0.1; 
    447             Level.Objects.Add(pelaaja2.Weapon); 
     468            Add(pelaaja2.Weapon); 
    448469            pelaaja2.EquipWeapon(); 
    449470            pelaaja2.Weapon.MomentOfInertia = double.PositiveInfinity; 
     
    519540            if (ammus != null) 
    520541            { 
    521                 Level.Objects.Add(ammus); 
     542                Add(ammus); 
    522543            } 
    523544 
Note: See TracChangeset for help on using the changeset viewer.