Ignore:
Timestamp:
2013-07-25 15:04:33 (7 years ago)
Author:
anlakane
Message:

Korjattu kopteri. Tehty uutta Escape-pelimuotoa ja lisätty sille valikko. Lisätty deathmatchiin vaihtoehtoinen teema.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/MiskaK/MW2(My Warfare 2)/MW2(My Warfare 2)/MW2(My Warfare 2)/Helikopteri.cs

    r4647 r4677  
    66using Jypeli.Widgets; 
    77using Jypeli.Effects; 
     8using Jypeli.Assets; 
     9 
    810 
    911/// <summary> 
     
    3739    public ProgressBar ElamaMittari { get; private set; } 
    3840 
     41    private PathFollowerBrain ReittiAivot { get; set; } 
     42 
    3943    private const double LAPOJEN_MAX_PYORIMISNOPEUS = 20; 
    4044    private const double KOPTERIN_KOON_MUUTOS_AIKA = 6; 
    41     private const double KOPTERIN_MINIMI_LEVEYS = 73; 
     45    private const double KOPTERIN_MINIMI_LEVEYS = 330; 
    4246 
    4347    public Helikopteri(double width, double height, double kesto, bool aloittaakoIlmasta) 
     
    4953        KopterinLavat.AngularDamping = 1.00; 
    5054        KopterinLavat.Shape = Shape.FromImage(kopterinLavatKuva); 
     55        MW2_My_Warfare_2_.Peli.Add(KopterinLavat, 2); 
    5156        this.Mass = 10000; 
    5257        this.LinearDamping = 0.90; 
    5358        this.AngularDamping = 0.90; 
    54         this.MakeStatic(); 
     59        //this.MakeStatic(); 
    5560        this.Image = kopteriIlmanLapojaKuva; 
    56         this.Add(KopterinLavat); 
     61        //this.Add(KopterinLavat); 
    5762        this.OnkoIlmassa = false; 
    5863        NousuAjastin = new Timer(); 
     
    7277        ElamaMittari.BarColor = Color.Blue; 
    7378        ElamaMittari.BorderColor = Color.White; 
    74         Add(ElamaMittari); 
     79        ElamaMittari.Angle += Angle.FromDegrees(90); 
     80        //Add(ElamaMittari); 
    7581 
    7682        IsUpdated = true; 
     
    8086            this.KopterinLavat.AngularVelocity = 20; 
    8187            this.OnkoIlmassa = true; 
     88            for (int i = 0; i < 120; i++) 
     89            { 
     90                this.Size *= 1.005; 
     91                this.KopterinLavat.Size *= 1.005; 
     92                this.IgnoresCollisionResponse = true; 
     93            } 
    8294        } 
     95        ReittiAivot = new PathFollowerBrain(); 
     96        this.Brain = ReittiAivot; 
    8397    } 
    8498 
     
    136150                PienennysAjastin.Stop(); 
    137151                PienennysAjastin.Reset(); 
    138                 Laskeudu(); 
     152                ViimeisteleLasku(); 
    139153                return; 
    140154            } 
     
    144158    } 
    145159 
    146     public void AloitaLaskeutuminen() 
     160    public void Laskeudu() 
    147161    { 
    148162        LaskeKopteria(); 
    149163    } 
    150164 
    151     private void Laskeudu() 
     165    private void ViimeisteleLasku() 
    152166    { 
    153167        this.OnkoIlmassa = false; 
     
    164178    public override void Update(Time time) 
    165179    { 
    166         this.ElamaMittari.Position = new Vector(this.X, this.Y + this.Size.Y / 2 + 30); 
    167         KopterinLavat.Position = new Vector(this.Position.X, this.Size.Y / 4.3); 
    168         if (this.OnkoIlmassa) 
     180        //this.ElamaMittari.Position = new Vector(this.X, this.Y + this.Size.Y / 2 + 30); 
     181        //KopterinLavat.Position = new Vector(this.Position.X, this.Size.Y / 4.3); 
     182        KopterinLavat.Position = this.Position; 
     183        if (OnkoIlmassa) 
    169184            this.KopterinLavat.AngularVelocity = LAPOJEN_MAX_PYORIMISNOPEUS; 
    170185 
    171186        base.Update(time); 
    172187    } 
     188 
     189    /// <summary> 
     190    /// Liikutetaan kopteria aloittaen sen nykyisestä paikasta. Ei voi liikuttaa, jos kopteri ei ole ilmassa. 
     191    /// </summary> 
     192    /// <param name="reitti">Reitti, jota kopteri seuraa.</param> 
     193    public void LiikutaKopteria(double nopeus, bool laskeutuukoPerilla, params Vector[] reitti) 
     194    { 
     195        if (!OnkoIlmassa) return; 
     196 
     197        ReittiAivot.Speed = nopeus; 
     198        ReittiAivot.Loop = false; 
     199        ReittiAivot.TurnWhileMoving = true; 
     200        ReittiAivot.Path = reitti; 
     201 
     202        ReittiAivot.ArrivedAtEnd += delegate 
     203        { 
     204            ReittiAivot.Active = false; 
     205            if (laskeutuukoPerilla) 
     206                this.Laskeudu(); 
     207        }; 
     208 
     209    } 
    173210} 
Note: See TracChangeset for help on using the changeset viewer.