Changeset 4929


Ignore:
Timestamp:
2014-06-09 15:28:37 (5 years ago)
Author:
eefadjuk
Message:
 
Location:
2014/24/EeroF/FysiikkaPeli1
Files:
53 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2014/24/EeroF/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs

    r4910 r4929  
    1111public class FysiikkaPeli1 : PhysicsGame 
    1212{ 
     13#region yleiset  
    1314    IntMeter pisteLaskuri; 
    1415    PhysicsObject Mikko; 
     
    3233    Image Tahti = LoadImage("Tahti"); 
    3334    DoubleMeter elamaLaskuri; 
     35    DoubleMeter Mittari; 
    3436    DoubleMeter elamalaskuri2; 
    3537    AssaultRifle pelaajan1Ase; 
    3638    AssaultRifle pelaajan2Ase; 
    3739    EasyHighScore topLista = new EasyHighScore(); 
     40    Timer ajastin; 
     41    public static FysiikkaPeli1 peli; 
     42    bool onkoHuijattu = false; 
     43    bool huijausmode = false; 
     44    int nukeViilennysAika = 0; 
     45    double vihunLuontiAika = 7.5; 
    3846    int pelaajia; 
    3947    double nopeusVakioAmmukselle = 1; 
     48#endregion 
    4049    public override void Begin() 
    4150    { 
     51        peli = this; 
    4252        IsPaused = false; 
    4353        ClearAll(); 
     
    4656        Level.Size = new Vector(1000, 800); 
    4757        Camera.ZoomFactor = 1; 
     58 
    4859 
    4960        MultiSelectWindow valikko = new MultiSelectWindow("Tervetuloa peliin", 
     
    8596        LuoPelaaja(); 
    8697        LuoKentta(); 
     98 
     99        vihunLuontiAika = 7.5; 
     100        vaikeutusAika = 60000; 
     101        onkoHuijattu = false; 
    87102 
    88103        LuoPistelaskuri(); 
     
    114129 
    115130        } 
    116  
     131        Mittari = new DoubleMeter(0, 0, 1); 
     132  
    117133        AsetaOhjaimet(); 
    118134    } 
     
    151167    } 
    152168 
    153  
     169    #region Asetaohjaimet 
    154170    void AsetaOhjaimet() 
    155171    { 
     
    170186        Keyboard.Listen(Key.RightControl, ButtonState.Down, Ampuu, "Ampuu", pelaajan1Ase); 
    171187        Keyboard.Listen(Key.H, ButtonState.Pressed, ShowControlHelp, "Apu"); 
     188        Keyboard.Listen(Key.NumPad5, ButtonState.Pressed, mode, null); 
     189        Keyboard.Listen(Key.I, ButtonState.Pressed, Huijaus, null); 
     190        Keyboard.Listen(Key.U, ButtonState.Pressed, Huijaus2, null); 
     191        Keyboard.Listen(Key.K, ButtonState.Pressed, Huijaus3, null); 
     192         Keyboard.Listen(Key.J, ButtonState.Pressed, Huijaus4, null); 
     193 
     194         Keyboard.Listen(Key.Delete, ButtonState.Pressed, NUKE, null); 
     195         Keyboard.Listen(Key.Home, ButtonState.Pressed, Koti, null); 
    172196 
    173197        if (pelaajia == 2) 
     
    199223                Keyboard.Listen(Key.E, ButtonState.Down, KaantyyOikealle2, "Pelaaja kääntyy vähän", Mikkokaveri); 
    200224                Keyboard.Listen(Key.LeftShift, ButtonState.Down, Ampuu, "Ampuu", pelaajan2Ase); 
     225 
    201226            } 
    202227 
     
    230255        Mikko.AngularVelocity = 5.0; 
    231256    } 
     257    #endregion 
    232258    void Ampuu(AssaultRifle ase) 
    233259    { 
     
    242268        } 
    243269    } 
     270 
     271    #region ohjaaminen 
     272    void Huijaus() 
     273    { 
     274        if (huijausmode == true) 
     275        { 
     276            onkoHuijattu = true; 
     277            if (Mittari.Value == 0) 
     278            { 
     279                pelaajan1Ase.FireRate += 50; 
     280                Mittari.Value += 1; 
     281                if (pelaajia == 2) 
     282                { 
     283                    pelaajan2Ase.FireRate += 50; 
     284                }; 
     285            } 
     286 
     287            else 
     288            { 
     289                pelaajan1Ase.FireRate -= 50; 
     290                Mittari.Value -= 1; 
     291                if (pelaajia == 2) 
     292                { 
     293                    pelaajan2Ase.FireRate -= 50; 
     294                }; 
     295            }; 
     296        }; 
     297    } 
     298    void Huijaus2() 
     299    { 
     300        if (huijausmode == true) 
     301        { 
     302            onkoHuijattu = true; 
     303            elamaLaskuri.Value += 10; 
     304            if (pelaajia == 2) 
     305            { 
     306                elamalaskuri2.Value += 10; 
     307            }; 
     308        }; 
     309    } 
     310    void Huijaus3() 
     311    { 
     312        if (huijausmode == true) 
     313        { 
     314            onkoHuijattu = true; 
     315            Vector impulssi = new Vector(50000.0, 0.0); 
     316            Mikko.Hit(impulssi); 
     317            if (pelaajia == 2) 
     318            { 
     319                Mikkokaveri.Hit(impulssi); 
     320            }; 
     321        }; 
     322    } 
     323    void Huijaus4() 
     324    { 
     325        if (huijausmode == true) 
     326        { 
     327            onkoHuijattu = true; 
     328            Vector impulssi = new Vector(-50000.0, 0.0); 
     329            Mikko.Hit(impulssi); 
     330            if (pelaajia == 2) 
     331            { 
     332                Mikkokaveri.Hit(impulssi); 
     333            }; 
     334        }; 
     335    } 
     336    void NUKE() 
     337    { 
     338        if (nukeViilennysAika > 0) 
     339            return; 
     340        // Aika millisekunteina. 
     341        nukeViilennysAika = 30000; 
     342        List<GameObject> hamikset = GetObjectsWithTag(new String[]{"Hamis"}); 
     343        foreach (var hamis in hamikset) 
     344        { 
     345            Vihu vihu = hamis as Vihu; 
     346            vihu.ElamaLaskuri.Value -= 5; 
     347        } 
     348    } 
     349    void Koti() 
     350    { 
     351        List<GameObject> pelaajat = GetObjectsWithTag(new String[] { "pelaaja" }); 
     352 
     353        foreach (var mikko in pelaajat) 
     354        { 
     355 
     356            mikko.MoveTo(new Vector(0, 0), 100000);  
     357 
     358        } 
     359 
     360 
     361    } 
     362    void mode() 
     363    { 
     364        this.huijausmode = true;  
     365    } 
    244366    void KaantyyOikealle2(PhysicsObject Mikko) 
    245367    { 
     
    250372        Mikko.AngularVelocity = 1.0; 
    251373    } 
    252     void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     374    #endregion 
     375 
     376    public void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    253377    { 
    254378        ammus.Destroy(); 
     
    281405        { 
    282406 
    283             int luku = RandomGen.NextInt(-5000, 5000); 
    284             int luku2 = RandomGen.NextInt(-5000, 5000); 
     407            int luku = RandomGen.NextInt(-4500, 4500); 
     408            int luku2 = RandomGen.NextInt(-4500, 4500); 
    285409            int luku3 = RandomGen.NextInt(3, 15); 
    286410 
     
    306430        Level.CreateBorders(); 
    307431 
    308         Timer ajastin = new Timer(); 
    309         ajastin.Interval = 7.5; 
     432        ajastin = new Timer(); 
     433        ajastin.Interval = vihunLuontiAika; 
    310434        ajastin.Timeout += LisaaVihuja; 
    311435        ajastin.Start(); 
    312436 
    313         Timer ajastin2 = new Timer(); 
    314         ajastin2.Interval = 10; 
    315         ajastin2.Timeout += delegate { LuoHamis2(); }; 
    316         ajastin2.Start(); 
    317     } 
     437        Timer perusLooppi = new Timer(); 
     438        perusLooppi.Interval = 0.1; 
     439        perusLooppi.Timeout += PerusLooppi; 
     440        perusLooppi.Start(); 
     441       // LuoTurret(); 
     442    } 
     443    void LuoTurret() 
     444    { 
     445        Turret turret = new Turret(60, 50, Mikko, 0.5); 
     446        Add(turret); 
     447    } 
     448    int vaikeutusAika = 60000; 
     449    void PerusLooppi() 
     450    { 
     451        if (nukeViilennysAika > 0) 
     452            nukeViilennysAika -= 100; 
     453        vaikeutusAika -= 100; 
     454        if (vaikeutusAika < 0) 
     455        { 
     456            vihunLuontiAika -= 0.2; 
     457            if (vihunLuontiAika < 0.1) 
     458                vihunLuontiAika = 0.1; 
     459            if (onkoHuijattu) 
     460             vaikeutusAika = 500; 
     461            else 
     462                vaikeutusAika = 60000; 
     463        } 
     464    } 
     465 
    318466    void LisaaVihuja() 
    319467    { 
    320         for (int i = 0; i < 2; i++) 
     468        ajastin.Interval = vihunLuontiAika; 
     469        if (GetObjectsWithTag(new String[]{"Hamis"}).Count > 200) 
     470            return; 
     471        int luku = RandomGen.NextInt(1, 5); 
     472        for (int i = 0; i < luku; i++) 
    321473        { 
    322474            LuoHamis(); 
     475        } 
     476        luku = RandomGen.NextInt(0, 3); 
     477        for (int i = 0; i < luku; i++) 
     478        { 
     479            LuoHamis2(); 
    323480        } 
    324481    } 
     
    398555    void ElamaLoppui(PhysicsObject kuollut) 
    399556    { 
     557        Camera.StopFollowing(); 
    400558        kuollut.Destroy(); 
    401         if (kuollut.Image.Equals(mikkokuva)) Kuoli.Play(); 
    402         else Kuoli2.Play(); 
     559 
     560        if (kuollut.Image.Equals(mikkokuva)) 
     561        { 
     562            Kuoli.Play(); 
     563            Camera.Follow(Mikkokaveri); 
     564        } 
     565        else 
     566        { 
     567            Kuoli2.Play(); 
     568            Camera.Follow(Mikko); 
     569        } 
    403570 
    404571    } 
     
    514681        Mikko = new PhysicsObject(70, 49); 
    515682        Mikko.Image = mikkokuva; 
    516         Mikko.LinearDamping = 0.9; 
    517         Mikko.AngularDamping = 0.9; 
     683        Mikko.LinearDamping = 1; 
     684       Mikko.AngularDamping = 1; 
    518685 
    519686 
     
    540707        Mikkokaveri = new PhysicsObject(70, 49); 
    541708        Mikkokaveri.Image = mikkokaveri; 
    542         Mikko.LinearDamping = 0.9; 
    543         Mikko.AngularDamping = 0.9; 
     709        //Mikko.LinearDamping = 0.9; 
     710        //Mikko.AngularDamping = 0.9; 
    544711        Mikkokaveri.X = -60; 
    545712        Mikkokaveri.Tag = "pelaaja"; 
     
    566733        if (tormaaja.Image.Equals(mikkokuva)) 
    567734        { 
    568             int luku = RandomGen.NextInt(1, 3); 
     735            int luku = RandomGen.NextInt(1, 5); 
    569736            pelaajan1Ase.FireRate += luku; 
    570737            nopeusVakioAmmukselle += 0.1; 
     
    572739        else 
    573740        { 
    574             int luku = RandomGen.NextInt(1, 3); 
     741            int luku = RandomGen.NextInt(1, 5); 
    575742            pelaajan2Ase.FireRate += luku; 
    576743            nopeusVakioAmmukselle += 0.1; 
     
    613780        } 
    614781    } 
    615  
    616  
    617  
    618  
    619782} 
    620783 
     
    631794    } 
    632795} 
     796 
     797public class Turret : PhysicsObject 
     798{ 
     799    public GameObject Kohde { get; set; } 
     800 
     801    private AssaultRifle ase; 
     802 
     803    double FireRate { 
     804 
     805        get { return ShootTimer.Interval; } 
     806        set { ShootTimer.Interval = value; } 
     807         
     808    } 
     809 
     810    Timer ShootTimer { get; set; } 
     811 
     812    //double tahtaysNopeus; 
     813 
     814    public Turret(double width, double height, GameObject kohde, double fireRate) 
     815        :base(width, height) 
     816    { 
     817        this.IsUpdated = true; 
     818        Kohde = kohde; 
     819        MakeStatic(); 
     820        ase = new AssaultRifle(40, 40); 
     821        ase.IsVisible = false; 
     822        this.Add(ase); 
     823        ShootTimer = new Timer(); 
     824        ShootTimer.Interval = fireRate; 
     825        ShootTimer.Timeout += Ammu; 
     826        ShootTimer.Start(); 
     827    } 
     828 
     829    public override void Update(Time time) 
     830    { 
     831        if (Kohde != null) 
     832            this.Angle = (Kohde.AbsolutePosition - this.AbsolutePosition).Angle; 
     833        base.Update(time); 
     834    } 
     835 
     836    private void Ammu() 
     837    { 
     838        PhysicsObject ammus = this.ase.Shoot(); 
     839        FysiikkaPeli1.peli.AddCollisionHandler(ammus, FysiikkaPeli1.peli.AmmusOsui); 
     840    } 
     841} 
Note: See TracChangeset for help on using the changeset viewer.