Ignore:
Timestamp:
2015-07-24 11:24:22 (5 years ago)
Author:
nikranna
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/30/ArttuH/TasoHyppely/TasoHyppely/TasoHyppely/TasoHyppely.cs

    r6981 r7011  
    1313    const int RUUDUN_KOKO = 40; 
    1414    double ammusnopeus2 = 3000; 
     15    double ammusnopeus1 = 1300; 
    1516    double pahisNopeus = 100; 
    1617    double Painovoima = -1000; 
    1718    double pelaajaMassa = 4.0; 
    18     double pelaajan1_ase_nopeus = 15; 
     19    double pelaajan1_ase_nopeus = 10; 
    1920    double ase_X = 20.0; 
    2021    double ase_Y = -10.0; 
     
    2627    double pelaajan2_Luoti_laskuri_X = 190; 
    2728    double pelaajan2_Luoti_laskuri_Y = 180; 
    28     double pelaajan1_luodin_massa = 150; 
    29     double pelaajan2_luodin_massa = 15; 
     29    double pelaajan1_luodin_massa = 100; 
     30    double pelaajan2_luodin_massa = 200; 
    3031 
    3132    bool pelaaja1ampuu = false; 
    3233    bool pelaaja2ampuu = false; 
     34 
     35    List<PlatformCharacter> pelaajaLista = new List<PlatformCharacter>(); 
    3336 
    3437    PlatformCharacter pelaaja1; 
     
    8285        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    8386        Level.CreateBorders(); 
    84         Level.Background.CreateGradient(Color.White, Color.SkyBlue); 
     87        Level.Background.CreateGradient(Color.Black, Color.SkyBlue); 
    8588 
    8689        //Camera.StayInLevel = true; 
     
    131134        pelaaja1.Weapon.Ammo.Value = 100; 
    132135        pelaaja1.Weapon.AmmoIgnoresGravity = false; 
    133         elamalaskuri = new IntMeter(20, 0, 20); 
     136        elamalaskuri = new IntMeter(10, 0, 20); 
    134137        elamalaskuri.LowerLimit += delegate {PiikkiTormaa(pelaaja1, new PhysicsObject(1,1));}; 
    135138        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
     
    146149        ControllerOne.Listen(Button.DPadLeft, ButtonState.Pressed, Cheathauska, ""); 
    147150        Add(pelaaja1); 
     151        pelaajaLista.Add(pelaaja1); 
    148152    } 
    149153    void Liikuta(PlatformCharacter hahmo, double nopeus) 
     
    192196        pelaaja2.Weapon.Y = -10.0; 
    193197        pelaaja2.Weapon.Ammo.Value = 100; 
    194         elamalaskuri2 = new IntMeter(20, 0, 20); 
     198        elamalaskuri2 = new IntMeter(10, 0, 20); 
    195199        elamalaskuri2.LowerLimit += delegate { PiikkiTormaa(pelaaja2, new PhysicsObject(1, 1)); }; 
    196200        AddCollisionHandler(pelaaja2, "tahti", TormaaTahteen); 
     
    206210        ControllerTwo.Listen(Button.RightTrigger, ButtonState.Released, delegate { pelaaja2ampuu = false; }, null); 
    207211        Add(pelaaja2); 
     212        pelaajaLista.Add(pelaaja2); 
    208213         
    209214    } 
     
    266271        if (ammus != null) 
    267272        { 
    268             pelaaja1.Weapon.Angle += Angle.FromDegrees(RandomGen.NextInt(-100, 10)); 
     273            pelaaja1.Weapon.Angle += Angle.FromDegrees(RandomGen.NextInt(-10, 10)); 
    269274            luotilaskuri.Value--; 
     275            ammus.Velocity = pelaaja1.Weapon.Angle.GetVector().Normalize() * ammusnopeus1; 
    270276            ammus.Size *= 0.8; 
    271277            ammus.Mass = pelaajan1_luodin_massa; 
    272278            ammus.Image = luoti; 
     279            ammus.Tag = "ammus"; 
    273280            ControllerOne.Vibrate(0.16, 0.16, 0.16, 0.16, 0.1); 
    274             ammus.MaximumLifetime = TimeSpan.FromSeconds(0.6); 
     281            ammus.MaximumLifetime = TimeSpan.FromSeconds(0.4); 
    275282            
    276283        } 
     
    312319        { 
    313320            pelaaja2.Weapon.Angle += Angle.FromDegrees(RandomGen.NextInt(-1, 1)); 
    314             ammus.Size *= 0.8; 
     321            ammus.Size *= 1.0; 
    315322            ammus.Mass = pelaajan2_luodin_massa; 
    316323            ammus.Image = luoti; 
     324            ammus.Tag = "sniper"; 
    317325            luotilaskuri2.Value--; 
    318326            ammus.Velocity = pelaaja2.Weapon.Angle.GetVector().Normalize() * ammusnopeus2; 
     
    388396    void LisaaPahis(Vector paikka, double leveys, double korkeus) 
    389397       { 
    390         PlatformCharacter pahis = new PlatformCharacter(leveys, korkeus); 
     398        Vihu pahis = new Vihu(leveys, korkeus); 
    391399        pahis.Image = orkki; 
    392400        pahis.Position = paikka; 
     
    398406        tasoAivot.TriesToJump = true; 
    399407        pahis.Brain = tasoAivot; 
     408        AssaultRifle pahiksenAse = new AssaultRifle(10, 10); 
     409        pahiksenAse.IsVisible = false; 
     410        pahis.Weapon = pahiksenAse; 
     411 
     412 
     413        Timer ampumisAjastin = new Timer(); 
     414        ampumisAjastin.Interval = RandomGen.NextDouble(1,2); 
     415        ampumisAjastin.Timeout += delegate 
     416        { 
     417            PahisAmpuu(pahis); 
     418        }; 
     419        ampumisAjastin.Start(); 
     420        pahis.Destroyed += delegate { ampumisAjastin.Stop(); }; 
     421 
     422        AddCollisionHandler(pahis, "ammus", delegate(PhysicsObject P, PhysicsObject A) 
     423        { 
     424            pahis.ElamaLaskuri.Value -= 1; 
     425            A.Destroy(); 
     426        }); 
     427        AddCollisionHandler(pahis, "sniper", delegate(PhysicsObject P, PhysicsObject A) 
     428        { 
     429            pahis.ElamaLaskuri.Value -= 3; 
     430            A.Destroy(); 
     431        }); 
    400432       } 
    401433 
     434    void PahisAmpuu(PlatformCharacter pahis) 
     435    { 
     436        PhysicsObject ammus = pahis.Weapon.Shoot(); 
     437        int i = RandomGen.NextInt(0, pelaajaLista.Count); 
     438        GameObject kohde = pelaajaLista[i]; 
     439 
     440        pahis.Weapon.Angle = ((kohde.Position + new Vector(RandomGen.NextDouble(-10, +10), RandomGen.NextDouble(-10, +10))) - pahis.Position).Angle; 
     441 
     442        if (ammus != null) 
     443        { 
     444            ammus.Velocity = pahis.Weapon.Angle.GetVector().Normalize() * (ammusnopeus1 * 0.5); 
     445            ammus.Size *= 1.0; 
     446            ammus.Image = luoti; 
     447            ammus.MaximumLifetime = TimeSpan.FromSeconds(0.7); 
     448            ammus.Tag = "PahisLuoti"; 
     449 
     450        } 
     451    } 
     452     
     453 
    402454    void LisaaPahis2(Vector paikka, double leveys, double korkeus) 
    403455    { 
    404         PlatformCharacter pahis2 = new PlatformCharacter(leveys, korkeus); 
     456        Vihu pahis2 = new Vihu(leveys, korkeus); 
    405457        pahis2.Image = orkki2; 
    406458        pahis2.Position = paikka; 
    407459        pahis2.CollisionIgnoreGroup = 10; 
     460        pahis2.ElamaLaskuri.MaxValue = 10; 
     461        pahis2.ElamaLaskuri.Value = pahis2.ElamaLaskuri.MaxValue; 
    408462        Add(pahis2); 
    409463        PlatformWandererBrain tasoAivot = new PlatformWandererBrain(); 
     
    412466        tasoAivot.TriesToJump = true; 
    413467        pahis2.Brain = tasoAivot; 
     468        AddCollisionHandler(pahis2, "ammus", delegate(PhysicsObject P, PhysicsObject A) 
     469        { 
     470            pahis2.ElamaLaskuri.Value -= 1; 
     471            A.Destroy(); 
     472        }); 
     473        AddCollisionHandler(pahis2, "sniper", delegate(PhysicsObject P, PhysicsObject A) 
     474        { 
     475            pahis2.ElamaLaskuri.Value -= 3; 
     476            A.Destroy(); 
     477        }); 
    414478    } 
    415479    void maali(PhysicsObject pelaaja, PhysicsObject maali) 
     
    460524        pelaaja2.Weapon.InfiniteAmmo = true; 
    461525    } 
     526 
    462527} 
     528class Vihu : PlatformCharacter 
     529{ 
     530    private IntMeter elamaLaskuri = new IntMeter(5, 0, 5); 
     531    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } 
     532        set { elamaLaskuri = value; } 
     533    } 
     534 
     535    public Vihu(double leveys, double korkeus) 
     536        : base(leveys, korkeus) 
     537    { 
     538        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     539    } 
     540} 
Note: See TracChangeset for help on using the changeset viewer.