Changeset 3916


Ignore:
Timestamp:
2012-12-08 15:02:20 (11 years ago)
Author:
anlakane
Message:
 
Location:
2012/09-22/SanteriH/Kynari/Kynari
Files:
2 added
2 edited

Legend:

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

    r3883 r3916  
    66using Jypeli.Controls; 
    77 
     8public class Pelaaja : PlatformCharacter 
     9{ 
     10    public bool voikoPoimiaAseen { get; set; } 
     11    public Pelaaja(double width, double height, Shape shape) 
     12        : base(width, height, shape) 
     13    { 
     14        voikoPoimiaAseen = true; 
     15    } 
     16} 
     17 
    818// Yksinkertainen tasohyppely. 
    919public class Kynari : PhysicsGame 
     
    1121    #region Muuttujat 
    1222 
    13     const double liikeVoima = 500; 
    14     const double hyppyVoima = 1000; 
    15  
    16     PlatformCharacter pelaaja1; 
    17     PlatformCharacter pelaaja2; 
     23    const double liikeVoima = 400; 
     24    const double hyppyVoima = 800; 
     25 
     26    Pelaaja pelaaja1; 
     27    Pelaaja pelaaja2; 
    1828    DoubleMeter HitPoint1 = new DoubleMeter(100); 
    1929    DoubleMeter HitPoint2 = new DoubleMeter(100); 
     
    2434    Image haulikonkuva = LoadImage("shotgun"); 
    2535    Image pistoolinkuva = LoadImage("pistol"); 
     36    Image kivaarinkuva = LoadImage("assaultrifle"); 
    2637 
    2738    SoundEffect hyppyAani = LoadSoundEffect("hyppays"); 
    2839 
    29     BarGauge hpNaytto; 
    30     BarGauge hpNaytto2; 
    31  
    32     bool pelaaja1asevaihto = true; 
    33     bool pelaaja2asevaihto = true; 
     40    ProgressBar hpNaytto; 
     41    ProgressBar hpNaytto2; 
    3442 
    3543    Meter<int> pelaajan1Pisteet; 
     
    4149    public override void Begin() 
    4250    { 
    43         LisaaLaskurit(); 
     51 
    4452        DrawPerimeter = false; // ei haluta piirtää kentän reunoja 
    4553 
     
    4755 
    4856        // Zoomataan lähemmäksi 
    49         Camera.ZoomFactor = 0.7; 
    50         aloitaUusiPeli(); 
     57        Camera.ZoomFactor = 0.73; 
     58        LuoAlkuValikko(); 
     59        //aloitaUusiPeli(); 
    5160    } 
    5261 
     
    5665        // ladataan kenttä 
    5766        seuraavaKentta(); 
    58         pelaaja1asevaihto = true; 
    59         pelaaja2asevaihto = true; 
    60         //naytaTiedot(); 
     67        LisaaLaskurit(); 
     68        naytaTiedot(); 
    6169 
    6270    } 
     
    7987        Level.CreateBorders(); 
    8088        Level.Background.CreateGradient(Color.White, Color.Gray); 
    81         Gravity = new Vector(0, -1000); 
     89        Gravity = new Vector(0, -1500); 
    8290        luoTasot(); 
    8391        lisaaPelaajat(); 
     
    8795 
    8896        return Level; 
     97    } 
     98 
     99    void LuoAlkuValikko() 
     100    { 
     101        ClearAll(); 
     102        MultiSelectWindow alkuValikko = new MultiSelectWindow("Kynäri", 
     103        "Aloita peli", "Lopeta"); 
     104        Add(alkuValikko); 
     105        alkuValikko.AddItemHandler(0, aloitaUusiPeli); 
     106        alkuValikko.AddItemHandler(1, Exit); 
     107        alkuValikko.DefaultCancel = 1; 
     108        alkuValikko.Color = Color.Gray; 
     109        Level.BackgroundColor = Color.Gray; 
    89110    } 
    90111 
     
    126147    { 
    127148        // luodaan elämänäyttö 
    128         hpNaytto = new BarGauge(30, 250); 
     149        hpNaytto = new ProgressBar(30, 250); 
    129150        hpNaytto.Angle = Angle.FromDegrees(90); 
    130151        hpNaytto.BarColor = Color.LightGreen; 
     
    134155        Add(hpNaytto); 
    135156 
    136         hpNaytto2 = new BarGauge(30, 250); 
     157        hpNaytto2 = new ProgressBar(30, 250); 
    137158        hpNaytto2.Angle = Angle.FromDegrees(90); 
    138159        hpNaytto2.BarColor = Color.LightGreen; 
     
    145166    void LisaaLaskurit() 
    146167    { 
    147         pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
    148         pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     168        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 175.0); 
     169        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 175.0); 
    149170        pelaajan1Pisteet.UpperLimit += (laskuri1_UpperLimit); 
    150171        pelaajan2Pisteet.UpperLimit += (laskuri2_UpperLimit); 
     
    213234    void lisaaPelaajat() 
    214235    { 
    215         pelaaja1 = new PlatformCharacter(40, 40, Shape.Circle); 
     236        pelaaja1 = new Pelaaja(40, 40, Shape.Circle); 
    216237        pelaaja1.Image = norsu; 
    217238        pelaaja1.X = -700; 
    218         pelaaja1.Mass = 4; 
    219         pelaaja1.Y = Level.Bottom + 100; 
    220  
    221         pelaaja2 = new PlatformCharacter(40, 40, Shape.Circle); 
     239        pelaaja1.Y = Level.Bottom + 50; 
     240        pelaaja1.Tag = "pelaaja"; 
     241 
     242        pelaaja2 = new Pelaaja(40, 40, Shape.Circle); 
    222243        pelaaja2.Image = norsu; 
    223244        pelaaja2.X = 700; 
    224         pelaaja2.Y = Level.Bottom + 100; 
     245        pelaaja2.Y = Level.Bottom + 50; 
     246        pelaaja2.Tag = "pelaaja"; 
    225247 
    226248        HitPoint1.MaxValue = 100; 
     
    309331    } 
    310332 
    311     void keraaAse(PhysicsObject ase, PhysicsObject kohde) 
    312     { 
    313         if (kohde is PlatformCharacter) 
    314         { 
    315             Weapon ase2 = null; 
    316  
    317             if (kohde == pelaaja1) 
    318             { 
    319                 if (pelaaja1asevaihto == false) 
    320                     return; 
    321  
    322                 pelaaja1asevaihto = false; 
    323  
    324                 ase2 = LuoAse(ase, pelaaja1); 
    325                 VaihdaAse(ase2, pelaaja1); 
    326             } 
    327  
    328             if (kohde == pelaaja2) 
    329             { 
    330                 if (pelaaja2asevaihto == false) 
    331                     return; 
    332  
    333                 pelaaja2asevaihto = false; 
    334  
    335                 ase2 = LuoAse(ase, pelaaja2); 
    336  
    337                 VaihdaAse(ase2, pelaaja2); 
    338             } 
    339  
    340             Timer.SingleShot(1.0, delegate { salliAseenvaihto(kohde); }); 
    341  
    342             //Timer ajastin = new Timer(); 
    343             //ajastin.Interval = 1; 
    344             //ajastin.Tag = collision.Other; 
    345             //ajastin.Trigger += new Timer.TriggerHandler(salliAseenvaihto); 
    346             //ajastin.Start(); 
    347             //AddTimer(ajastin); 
    348  
    349             // Pelaaja törmäsi aseeseen 
    350  
    351  
    352  
    353           /*  PlatformCharacter pelaaja = (PlatformCharacter)collision.Other; 
    354             if (ase.Owner != null) 
    355             { 
    356                 return; 
    357             } 
    358             pelaaja.UnequipWeapon(); 
    359             Weapon vanhaAse = pelaaja.Weapon; 
    360             vanhaAse.RemoveFromOwner(); 
    361             vanhaAse.X = pelaaja.X + vanhaAse.Width; 
    362             vanhaAse.Y = pelaaja.Y; 
    363             vanhaAse.Visible = true; 
    364             vanhaAse.Hit(new Vector(100, 20)); 
    365             pelaaja.Weapon = ase; 
    366             pelaaja.EquipWeapon(); 
    367             pelaaja.Weapon.Texture = ase.Texture; 
    368             naytaTiedot(); */ 
    369         } 
    370     } 
    371  
    372     private void VaihdaAse(Weapon ase, PlatformCharacter pelaaja) 
    373     { 
    374         /*if (ase..Owner != null) 
    375         { 
    376             return; 
    377         }*/ 
    378         //pelaaja..UnequipWeapon(); 
    379         Weapon vanhaAse = pelaaja.Weapon; 
     333    void keraaAse(PhysicsObject ase, Pelaaja pelaaja) 
     334    { 
     335        Weapon ase2 = null; //  
     336 
     337        if (!pelaaja.voikoPoimiaAseen) return; 
     338 
     339        ase.Destroy(); 
     340 
     341        if (pelaaja == pelaaja1) 
     342        { 
     343            //PudotaAse(pelaaja1); 
     344            VaihdaAse(pelaaja1); // tiputtaa vanhan aseen maahan 
     345            ase2 = LuoAse(ase, pelaaja1); // ase2 on uusi ase 
     346 
     347        } 
     348 
     349        if (pelaaja == pelaaja2) 
     350        { 
     351            //PudotaAse(pelaaja2); 
     352 
     353            VaihdaAse(pelaaja2); // tiputtaa vanhan aseen maahan 
     354            ase2 = LuoAse(ase, pelaaja2); 
     355        } 
     356 
     357        naytaTiedot(); 
     358        //Timer ajastin = new Timer(); 
     359        //ajastin.Interval = 1; 
     360        //ajastin.Tag = collision.Other; 
     361        //ajastin.Trigger += new Timer.TriggerHandler(salliAseenvaihto); 
     362        //ajastin.Start(); 
     363        //AddTimer(ajastin); 
     364 
     365        // Pelaaja törmäsi aseeseen 
     366 
     367 
     368 
     369        /*  PlatformCharacter pelaaja = (PlatformCharacter)collision.Other; 
     370          if (ase.Owner != null) 
     371          { 
     372              return; 
     373          } 
     374          pelaaja.UnequipWeapon(); 
     375          Weapon vanhaAse = pelaaja.Weapon; 
     376          vanhaAse.RemoveFromOwner(); 
     377          vanhaAse.X = pelaaja.X + vanhaAse.Width; 
     378          vanhaAse.Y = pelaaja.Y; 
     379          vanhaAse.Visible = true; 
     380          vanhaAse.Hit(new Vector(100, 20)); 
     381          pelaaja.Weapon = ase; 
     382          pelaaja.EquipWeapon(); 
     383          pelaaja.Weapon.Texture = ase.Texture; 
     384          */ 
     385 
     386    } 
     387 
     388    /*private void PudotaAse(PlatformCharacter pelaaja) 
     389    { 
     390        Weapon tiputettu = new Weapon(pelaaja.Weapon.Width, pelaaja.Weapon.Height); 
     391        tiputettu.Position = pelaaja.Position; 
     392         
     393        Add(tiputettu); 
     394 
     395    }*/ 
     396 
     397    private void VaihdaAse(Pelaaja pelaaja) 
     398    { 
     399        pelaaja.voikoPoimiaAseen = false; 
     400        Timer.SingleShot(1.0, delegate { pelaaja.voikoPoimiaAseen = true; }); 
     401        String aseenTagi = pelaaja.Weapon.Tag.ToString(); 
     402        Vector koko = pelaaja.Weapon.Size; 
     403        Vector paikka = pelaaja.Position; 
     404 
     405        PhysicsObject tiputettuAse = new PhysicsObject(koko.X, koko.Y); 
     406        tiputettuAse.Position = paikka; 
     407        tiputettuAse.Tag = aseenTagi; 
     408        tiputettuAse.CollisionIgnoreGroup = 1; 
     409        pelaaja.CollisionIgnoreGroup = 1; 
     410        Timer.SingleShot(1.0, delegate { 
     411            tiputettuAse.CollisionIgnoreGroup = 0; 
     412            pelaaja.CollisionIgnoreGroup = 0; 
     413        }); 
     414        //tiputettuAse.IgnoresCollisionWith(pelaaja2); 
     415        Add(tiputettuAse); 
     416        tiputettuAse.Image = pelaaja.Weapon.Image; 
     417        //tiputettuAse.Hit(new Vector(0, 100)); 
     418        AddCollisionHandler<PhysicsObject, Pelaaja>(tiputettuAse, "pelaaja", keraaAse); 
     419 
     420        //naytaTiedot(); 
     421        //pelaaja.UnequipWeapon(); 
     422        //Weapon vanhaAse = pelaaja.Weapon; 
    380423        //vanhaAse.RemoveFromOwner(); 
    381         vanhaAse.X = pelaaja.X + vanhaAse.Width; 
    382         vanhaAse.Y = pelaaja.Y; 
     424        //vanhaAse.X = pelaaja.X + vanhaAse.Width; 
     425        //vanhaAse.Y = pelaaja.Y; 
     426 
    383427        //vanhaAse.Visible = true; 
    384428        //vanhaAse.Hit(new Vector(100, 20)); 
    385         pelaaja.Weapon = ase; 
    386        // pelaaja..EquipWeapon(); 
    387        // pelaaja.Weapon.Texture = ase.Texture; 
    388  
    389  
    390        // naytaTiedot(); 
    391     } 
    392  
    393     private Weapon LuoAse(PhysicsObject ase, PlatformCharacter pelaaja) 
     429        //pelaaja.Weapon = ase; 
     430 
     431        // pelaaja..EquipWeapon(); 
     432        // pelaaja.Weapon.Texture = ase.Texture; 
     433 
     434 
     435         
     436    } 
     437 
     438    void KranaattiOsui(PhysicsObject ammus, PhysicsObject kohde) 
     439    { 
     440        if (kohde.Tag.ToString() == "pelaaja") 
     441        { 
     442            ammus.Destroy(); 
     443            if (kohde == pelaaja1) { HitPoint1.Value -= 50; } 
     444            if (kohde == pelaaja2) { HitPoint2.Value -= 50; } 
     445        } 
     446    } 
     447 
     448 
     449    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     450    { 
     451        ammus.Destroy(); 
     452        if (kohde.Tag.ToString() == "pelaaja") 
     453        { 
     454            if (kohde == pelaaja1) { HitPoint1.Value -= 15; } 
     455            if (kohde == pelaaja2) { HitPoint2.Value -= 15; } 
     456        } 
     457    } 
     458    void KivaariOsui(PhysicsObject ammus, PhysicsObject kohde) 
     459    { 
     460        ammus.Destroy(); 
     461        if (kohde.Tag.ToString() == "pelaaja") 
     462        { 
     463            if (kohde == pelaaja1) { HitPoint1.Value -= 10; } 
     464            if (kohde == pelaaja2) { HitPoint2.Value -= 10; } 
     465        } 
     466    } 
     467    void MagnumOsui(PhysicsObject ammus, PhysicsObject kohde) 
     468    { 
     469        ammus.Destroy(); 
     470        if (kohde.Tag.ToString() == "pelaaja") 
     471        { 
     472            if (kohde == pelaaja1) { HitPoint1.Value -= 25; } 
     473            if (kohde == pelaaja2) { HitPoint2.Value -= 25; } 
     474        } 
     475    } 
     476    void HaulikkoOsui(PhysicsObject ammus, PhysicsObject kohde) 
     477    { 
     478        ammus.Destroy(); 
     479        if (kohde.Tag.ToString() == "pelaaja") 
     480        { 
     481            if (kohde == pelaaja1) { HitPoint1.Value -= 40; } 
     482            if (kohde == pelaaja2) { HitPoint2.Value -= 40; } 
     483        } 
     484    } 
     485 
     486    private Weapon LuoAse(PhysicsObject ase, Pelaaja pelaaja) 
    394487    { 
    395488        Weapon ase2 = null; 
    396489 
    397490        if (ase.Tag.ToString() == "Kivääri") 
    398             { 
    399                 ase2 = new AssaultRifle(10, 10); 
    400                 ase2.FireRate = 5; 
    401                 //kivaari.MomentOfInertia = double.PositiveInfinity; 
    402                 //kivaari.Mass = 0.1; 
    403                 ase2.Tag = "Kivääri"; 
    404                 pelaaja.Add(ase2); 
    405             } 
     491        { 
     492            ase2 = new AssaultRifle(39, 13); 
     493            ase2.FireRate = 5; 
     494            ase2.ProjectileCollision = KivaariOsui; 
     495            //kivaari.MomentOfInertia = double.PositiveInfinity; 
     496            //kivaari.Mass = 0.1; 
     497            ase2.Tag = "Kivääri"; 
     498            ase2.Image = kivaarinkuva; 
     499            //pelaaja.Add(ase2); 
     500            pelaaja.Weapon = ase2; 
     501        } 
    406502        if (ase.Tag.ToString() == "Magnum") 
    407             { 
    408                 ase2 = new AssaultRifle(10, 10); 
    409                 ase2.FireRate = 1; 
    410                 //magnum.MomentOfInertia = double.PositiveInfinity; 
    411                 //magnum.Mass = 0.1; 
    412                 ase2.Tag = "Magnum"; 
    413                 ase2.Image = magnumkuva; 
    414                 //magnum.Shape = Shapes.CreateFromTexture(magnumtexture, new Vector(magnumtexture.Width, magnumtexture.Height), 100); 
    415                 //magnum.Size = new Vector(magnumtexture.Width, magnumtexture.Height); 
    416                 //magnum.UpdateShapeFromSize(); 
    417                 //magnum.AmmoType.Damage = new Damage(20); 
    418                 pelaaja.Add(ase2); 
    419             } 
     503        { 
     504            ase2 = new AssaultRifle(17, 12); 
     505            ase2.FireRate = 1; 
     506            ase2.ProjectileCollision = MagnumOsui; 
     507            //magnum.MomentOfInertia = double.PositiveInfinity; 
     508            //magnum.Mass = 0.1; 
     509            ase2.Tag = "Magnum"; 
     510            ase2.Image = magnumkuva; 
     511            ase2.X = 10; 
     512            ase2.Y = 10; 
     513            //magnum.Shape = Shapes.CreateFromTexture(magnumtexture, new Vector(magnumtexture.Width, magnumtexture.Height), 100); 
     514            //magnum.Size = new Vector(magnumtexture.Width, magnumtexture.Height); 
     515            //magnum.UpdateShapeFromSize(); 
     516            //magnum.AmmoType.Damage = new Damage(20); 
     517            // pelaaja.Add(ase2); 
     518            pelaaja.Weapon = ase2; 
     519        } 
    420520 
    421521        if (ase.Tag.ToString() == "Haulikko") 
    422             { 
    423                 ase2 = new AssaultRifle(10, 10); 
    424                 ase2.FireRate = 0.75; 
    425                 //haulikko.MomentOfInertia = double.PositiveInfinity; 
    426                 //haulikko.Mass = 0.1; 
    427                 ase2.Tag = "Haulikko"; 
    428                 //haulikko.AmmoType.Damage = new Damage(35); 
    429                 //haulikko.AmmoType.ClusterArc = 3; 
    430                 ase2.Image = haulikonkuva; 
    431                 pelaaja.Add(ase2); 
    432             } 
     522        { 
     523            ase2 = new AssaultRifle(39, 13); 
     524            ase2.FireRate = 0.75; 
     525            ase2.ProjectileCollision = HaulikkoOsui; 
     526            //haulikko.MomentOfInertia = double.PositiveInfinity; 
     527            //haulikko.Mass = 0.1; 
     528            ase2.Tag = "Haulikko"; 
     529            //haulikko.AmmoType.Damage = new Damage(35); 
     530            //haulikko.AmmoType.ClusterArc = 3; 
     531            ase2.Image = haulikonkuva; 
     532            //pelaaja.Add(ase2); 
     533            pelaaja.Weapon = ase2; 
     534        } 
    433535 
    434536        if (ase.Tag.ToString() == "Kranaatinheitin") 
    435             { 
    436                 ase2 = new Cannon(10, 10); 
    437                 ase2.FireRate = 0.2; 
    438                 //kranaatinheitin.MomentOfInertia = double.PositiveInfinity; 
    439                 //kranaatinheitin.Mass = 0.1; 
    440                 //kranaatinheitin.Power = new Meter<double>(5000, 0, 5000); 
    441                 ase2.Tag = "Kranaatinheitin"; 
    442                 ase2.Image = kranaatinheittimenkuva; 
    443                 //kranaatinheitin.Shape = Shapes.CreateFromTexture(grenade, new Vector(grenade.Width, grenade.Height), 100); 
    444                 //kranaatinheitin.Size = new Vector(grenade.Width, grenade.Height); 
    445                 //kranaatinheitin.UpdateShapeFromSize(); 
    446                 pelaaja.Add(ase2); 
    447             } 
     537        { 
     538            ase2 = new Cannon(37, 19); 
     539            ase2.FireRate = 0.5; 
     540            ase2.ProjectileCollision = KranaattiOsui; 
     541            //kranaatinheitin.MomentOfInertia = double.PositiveInfinity; 
     542            //kranaatinheitin.Mass = 0.1; 
     543            //kranaatinheitin.Power = new Meter<double>(5000, 0, 5000); 
     544            ase2.Tag = "Kranaatinheitin"; 
     545            ase2.Image = kranaatinheittimenkuva; 
     546            //kranaatinheitin.Shape = Shapes.CreateFromTexture(grenade, new Vector(grenade.Width, grenade.Height), 100); 
     547            //kranaatinheitin.Size = new Vector(grenade.Width, grenade.Height); 
     548            //kranaatinheitin.UpdateShapeFromSize(); 
     549            //pelaaja.Add(ase2); 
     550            pelaaja.Weapon = ase2; 
     551        } 
    448552 
    449553        if (ase.Tag.ToString() == "Pistooli") 
    450554        { 
    451             ase2 = new AssaultRifle(10, 10); 
     555            ase2 = new AssaultRifle(16, 11); 
    452556            ase2.FireRate = 2; 
     557            ase2.ProjectileCollision = AmmusOsui; 
    453558            //pelaaja1.Weapon.Mass = 0.1; 
    454559            //pelaaja1.EquipWeapon(); 
     
    459564            //pelaaja1.Weapon.UpdateShapeFromSize(); 
    460565            ase2.Image = pistoolinkuva; 
    461             pelaaja.Add(ase2); 
     566            //pelaaja.Add(ase2); 
     567            pelaaja.Weapon = ase2; 
    462568        } 
    463569        return ase2; 
    464  
    465     } 
    466  
    467  
    468  
    469     void salliAseenvaihto(PhysicsObject kohde) 
    470     { 
    471         if (kohde == pelaaja1) 
    472         { 
    473             pelaaja1asevaihto = true; 
    474         } 
    475         else if (kohde == pelaaja2) 
    476         { 
    477             pelaaja2asevaihto = true; 
    478         } 
    479     } 
    480  
    481     bool OnkoPelaaja(PhysicsObject olio) 
    482     { 
    483         return (olio == pelaaja1 || olio == pelaaja2); 
    484570    } 
    485571 
     
    487573    { 
    488574        //Täällä lisätään ase kenttään 
    489         Bullet luoti = new Bullet(1); 
     575        /*Bullet luoti = new Bullet(1); 
    490576        Bullet luoti2 = new Bullet(1); 
    491577        Bullet hauli = new Bullet(1); 
     
    493579        Grenade kranaatti = new Grenade(1); 
    494580        kranaatti.Explosion = new Explosion(20); 
    495        // kranaatti.ExplodeCondition = OnkoPelaaja; TODO: räjähtää kun osuu pelaajaan! 
    496  
    497         /* 
    498         Texture2D shotgun = Content.Load<Texture2D>("shotgun"); 
    499         Texture2D grenade = Content.Load<Texture2D>("grenade"); 
    500         Texture2D magnumtexture = Content.Load<Texture2D>("magnum"); 
    501581        */ 
    502  
    503         PhysicsObject kivaari = new PhysicsObject(10, 10); 
     582        // kranaatti.ExplodeCondition = OnkoPelaaja; TODO: räjähtää kun osuu pelaajaan! 
     583 
     584        PhysicsObject kivaari = new PhysicsObject(39, 13); 
    504585        kivaari.X = 200; 
    505         kivaari.Y = -100; 
     586        kivaari.Y = -150; 
    506587        //kivaari.FireRate = 5; 
    507588        //kivaari.MomentOfInertia = double.PositiveInfinity; 
    508589        //kivaari.Mass = 0.1; 
    509590        kivaari.Tag = "Kivääri"; 
     591        kivaari.Image = kivaarinkuva; 
    510592        Add(kivaari); 
    511593 
    512         PhysicsObject magnum = new PhysicsObject(10, 10); 
     594        PhysicsObject magnum = new PhysicsObject(17, 12); 
    513595        magnum.X = 0; 
    514         magnum.Y = -300; 
     596        magnum.Y = -350; 
    515597        //magnum.FireRate = 1; 
    516598        //magnum.MomentOfInertia = double.PositiveInfinity; 
     
    524606        Add(magnum); 
    525607 
    526         PhysicsObject haulikko = new PhysicsObject(10, 10); 
     608        PhysicsObject haulikko = new PhysicsObject(39, 13); 
    527609        haulikko.X = -550; 
    528         haulikko.Y = 0; 
     610        haulikko.Y = -150; 
    529611        //haulikko.FireRate = 0.75; 
    530612        //haulikko.MomentOfInertia = double.PositiveInfinity; 
     
    536618        Add(haulikko); 
    537619 
    538         PhysicsObject kranaatinheitin = new PhysicsObject(10, 10); 
    539         kranaatinheitin.X = -200; 
     620        PhysicsObject kranaatinheitin = new PhysicsObject(37, 19); 
     621        kranaatinheitin.X = -180; 
    540622        kranaatinheitin.Y = -100; 
    541        // kranaatinheitin.FireRate = 0.2; 
     623        // kranaatinheitin.FireRate = 0.2; 
    542624        //kranaatinheitin.MomentOfInertia = double.PositiveInfinity; 
    543625        //kranaatinheitin.Mass = 0.1; 
     
    551633 
    552634        //Lisää myös törmäyksen käsittelijä aseelle, jossa kutsutaan keraaAse -aliohjelmaa 
    553         AddCollisionHandler(kivaari, keraaAse); 
    554         AddCollisionHandler(haulikko, keraaAse); 
    555         AddCollisionHandler(kranaatinheitin, keraaAse); 
    556         AddCollisionHandler(magnum, keraaAse); 
    557  
     635 
     636        AddCollisionHandler<PhysicsObject, Pelaaja>(kivaari, "pelaaja", keraaAse); 
     637        AddCollisionHandler<PhysicsObject, Pelaaja>(haulikko, "pelaaja", keraaAse); 
     638        AddCollisionHandler<PhysicsObject, Pelaaja>(kranaatinheitin, "pelaaja", keraaAse); 
     639        AddCollisionHandler<PhysicsObject, Pelaaja>(magnum, "pelaaja", keraaAse); 
    558640    } 
    559641 
     
    561643    { 
    562644        Bullet luoti = new Bullet(1); 
    563         PhysicsObject pistol1 = new PhysicsObject(10, 10); 
     645        PhysicsObject pistol1 = new PhysicsObject(16, 11); 
    564646        pistol1.Image = pistoolinkuva; 
    565647        pistol1.Tag = "Pistooli"; 
    566648 
    567649        LuoAse(pistol1, pelaaja1); 
     650        LuoAse(pistol1, pelaaja2); 
    568651 
    569652        //pelaaja1.UnequipWeapon(); 
    570      /*   pelaaja1.Weapon = new AssaultRifle(10, 10); 
    571         pelaaja1.Weapon.FireRate = 2; 
    572         //pelaaja1.Weapon.Mass = 0.1; 
    573         Add(pelaaja1.Weapon); 
    574         //pelaaja1.EquipWeapon(); 
    575         //pelaaja1.Weapon.MomentOfInertia = double.PositiveInfinity; 
    576         pelaaja1.Weapon.Tag = "Pistooli"; 
    577         //pelaaja1.Weapon.Shape = Shapes.CreateFromTexture(pistol, new Vector(pistol.Width, pistol.Height), 100); 
    578         //pelaaja1.Weapon.Size = new Vector(pistol.Width, pistol.Height); 
    579         //pelaaja1.Weapon.UpdateShapeFromSize(); 
    580         pelaaja1.Weapon.Image = pistoolinkuva; 
    581         AddCollisionHandler(pelaaja1.Weapon, keraaAse); 
    582  
    583         //pelaaja2.UnequipWeapon(); 
    584         pelaaja2.Weapon = new AssaultRifle(10, 10); 
    585         pelaaja2.Weapon.FireRate = 2; 
    586         //pelaaja2.Weapon.Mass = 0.1; 
    587         Add(pelaaja2.Weapon); 
    588         //pelaaja2.EquipWeapon(); 
    589         // pelaaja2.Weapon.MomentOfInertia = double.PositiveInfinity; 
    590         pelaaja2.Weapon.Tag = "Pistooli"; 
    591         //pelaaja2.Weapon.Shape = Shapes.CreateFromTexture(pistol, new Vector(pistol.Width, pistol.Height), 100); 
    592         //pelaaja2.Weapon.Size = new Vector(pistol.Width, pistol.Height); 
    593         // pelaaja2.Weapon.UpdateShapeFromSize(); 
    594         pelaaja2.Weapon.Image = pistoolinkuva; 
    595         AddCollisionHandler(pelaaja2.Weapon, keraaAse); */ 
     653        /*   pelaaja1.Weapon = new AssaultRifle(10, 10); 
     654           pelaaja1.Weapon.FireRate = 2; 
     655           //pelaaja1.Weapon.Mass = 0.1; 
     656           Add(pelaaja1.Weapon); 
     657           //pelaaja1.EquipWeapon(); 
     658           //pelaaja1.Weapon.MomentOfInertia = double.PositiveInfinity; 
     659           pelaaja1.Weapon.Tag = "Pistooli"; 
     660           //pelaaja1.Weapon.Shape = Shapes.CreateFromTexture(pistol, new Vector(pistol.Width, pistol.Height), 100); 
     661           //pelaaja1.Weapon.Size = new Vector(pistol.Width, pistol.Height); 
     662           //pelaaja1.Weapon.UpdateShapeFromSize(); 
     663           pelaaja1.Weapon.Image = pistoolinkuva; 
     664           AddCollisionHandler(pelaaja1.Weapon, keraaAse); 
     665 
     666           //pelaaja2.UnequipWeapon(); 
     667           pelaaja2.Weapon = new AssaultRifle(10, 10); 
     668           pelaaja2.Weapon.FireRate = 2; 
     669           //pelaaja2.Weapon.Mass = 0.1; 
     670           Add(pelaaja2.Weapon); 
     671           //pelaaja2.EquipWeapon(); 
     672           // pelaaja2.Weapon.MomentOfInertia = double.PositiveInfinity; 
     673           pelaaja2.Weapon.Tag = "Pistooli"; 
     674           //pelaaja2.Weapon.Shape = Shapes.CreateFromTexture(pistol, new Vector(pistol.Width, pistol.Height), 100); 
     675           //pelaaja2.Weapon.Size = new Vector(pistol.Width, pistol.Height); 
     676           // pelaaja2.Weapon.UpdateShapeFromSize(); 
     677           pelaaja2.Weapon.Image = pistoolinkuva; 
     678           AddCollisionHandler(pelaaja2.Weapon, keraaAse); */ 
    596679    } 
    597680 
     
    617700        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima); 
    618701        Keyboard.Listen(Key.Enter, ButtonState.Down, Ammu, "Ammu", pelaaja2); 
     702        Keyboard.Listen(Key.Escape, ButtonState.Pressed, PeliPauselle, "Pysäyttää pelin"); 
    619703 
    620704        lisaaGamePadNappaimet(ControllerOne, pelaaja1); 
     
    633717    } 
    634718 
     719    void PeliPauselle() 
     720    { 
     721        MultiSelectWindow PauseValikko = new MultiSelectWindow("Kynäri", 
     722        "Jatka peliä", "Aloita peli alusta", "Päävalikko", "Lopeta"); 
     723        Add(PauseValikko); 
     724        PauseValikko.AddItemHandler(1, uusiPeli); 
     725        PauseValikko.AddItemHandler(2, LuoAlkuValikko); 
     726        PauseValikko.AddItemHandler(3, Exit); 
     727        PauseValikko.DefaultCancel = 0; 
     728        PauseValikko.Color = Color.Gray; 
     729    } 
     730 
    635731    // Näppäimiin liitetyt toiminnot alkavat tästä --> 
    636732    void liikuta(PlatformCharacter hahmo, Vector voima) 
     
    643739    { 
    644740        MessageDisplay.Clear(); 
    645         MessageDisplay.X = -100; 
     741        MessageDisplay.X = 0; 
    646742        MessageDisplay.Add("Pelaaja 1: " + pelaaja1.Weapon.Tag); 
    647743        MessageDisplay.Add("Pelaaja 2: " + pelaaja2.Weapon.Tag); 
     
    670766        //double voima = e.Parameter1.ToDouble(); 
    671767 
    672        /* if (Math.Abs(hahmo.Velocity.Y) > 0.001) 
    673         { 
    674             return; 
    675         } 
    676         */ 
     768        /* if (Math.Abs(hahmo.Velocity.Y) > 0.001) 
     769         { 
     770             return; 
     771         } 
     772         */ 
    677773 
    678774        if (hahmo.Jump(voima)) 
  • 2012/09-22/SanteriH/Kynari/Kynari/KynariContent/KynariContent.contentproj

    r3841 r3916  
    103103    </Compile> 
    104104  </ItemGroup> 
     105  <ItemGroup> 
     106    <Compile Include="assaultrifle.png"> 
     107      <Name>assaultrifle</Name> 
     108      <Importer>TextureImporter</Importer> 
     109      <Processor>TextureProcessor</Processor> 
     110    </Compile> 
     111  </ItemGroup> 
    105112  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    106113  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
Note: See TracChangeset for help on using the changeset viewer.