Changeset 5332 for 2014/27/NoelV


Ignore:
Timestamp:
2014-07-03 10:59:03 (5 years ago)
Author:
novaanan
Message:
 
Location:
2014/27/NoelV/turhakepeli
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2014/27/NoelV/turhakepeli/turhakepeli/turhakepeli/turhakepeli.cs

    r5292 r5332  
    2222    Image hahmoHyokkaa = LoadImage("pelaajaHyokkaa"); 
    2323 
     24    DoubleMeter enkkaLaskuri; 
     25    DoubleMeter EnergiaLaskuri; 
     26 
     27 
    2428    private Image[] hahmonLiikeAlas = LoadImages("hahmo01", "hahmo02"); 
    2529    private Image[] hahmonLiikeYlos = LoadImages("hahmo01", "hahmo02"); 
     30    private Image[] hahmonLiikeOikea = LoadImages("hahmo01", "hahmo02"); 
    2631    Image taustaKuva = LoadImage("maa"); 
    2732      
     
    3540 
    3641 
    37         GameObject taustaPilvet = new GameObject(10000, 10000); 
    38         taustaPilvet.Image = taustaKuva; 
    39         Add(taustaPilvet, -3); 
     42        //GameObject taustaPilvet = new GameObject(10000, 10000); 
     43       // taustaPilvet.Image = taustaKuva; 
     44        //Add(taustaPilvet, -3); 
    4045        //Layers[-3].RelativeTransition = new Vector(0.5, 0.5); 
    4146 
     
    5156        LisaaOhjaimet(); 
    5257 
     58        LuoEnkkaLaskuri(); 
     59 
     60        LuoEnergiaLaskuri(); 
     61 
    5362       
    5463        
     
    7180        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    7281 
     82        Keyboard.Listen(Key.D, ButtonState.Down, HahmonAnimaatioOikea, null, hahmonLiikeOikea); 
     83        Keyboard.Listen(Key.D, ButtonState.Released, AnimaatioLopetus, null); 
     84 
     85        Keyboard.Listen(Key.A, ButtonState.Down, HahmonAnimaatioOikea, null, hahmonLiikeOikea); 
     86        Keyboard.Listen(Key.A, ButtonState.Released, AnimaatioLopetus, null); 
    7387 
    7488        Keyboard.Listen(Key.S, ButtonState.Down, HahmonAnimaatio, null, hahmonLiikeAlas); 
     
    89103 
    90104        Keyboard.Listen(Key.Escape, ButtonState.Pressed, KysyPoistumista, "Lopeta peli"); 
     105    } 
     106    void HahmonAnimaatioOikea(Image[] hahmonLiikeOikea) 
     107    { 
     108        if (pelaaja.Velocity != Vector.Zero) return; 
     109        pelaaja.Animation = new Animation(hahmonLiikeOikea); 
     110        pelaaja.Animation.FPS = 5; 
     111        pelaaja.Animation.Start(); 
    91112    } 
    92113             
     
    149170 
    150171 
    151          
    152172 
    153173        Timer vihunLuontiAjastin = new Timer(); 
     
    220240        pelaaja.Position = paikka; 
    221241        pelaaja.CanRotate = false; 
    222         pelaaja.Restitution = 0; 
     242        pelaaja.Restitution = 1; 
    223243        pelaaja.MaxVelocity = 300; 
     244        pelaaja.LinearDamping = 0.9; 
     245        pelaaja.Shape = Shape.Circle; 
    224246        Add(pelaaja); 
     247        AddCollisionHandler(pelaaja, "vihu", OsuuViholliseen); 
    225248       
    226249    } 
     
    248271    private void LuoVihollinen(Vector vektori) 
    249272    { 
    250         PhysicsObject vihollinen = new PhysicsObject(20, 20); 
    251         
    252          
     273        Vihu vihollinen = new Vihu(20, 20); 
     274 
     275        vihollinen.ElamaLaskuri = new IntMeter(5, 0, 5); 
    253276 
    254277        Add(vihollinen); 
     
    277300        hyokkaus.Image = hyokkauksenKuva; 
    278301        hyokkaus.CollisionIgnoreGroup = 1; 
     302        hyokkaus.Shape = Shape.Circle; 
     303 
     304 
    279305        Add(hyokkaus); 
    280306        hyokkaus.CanRotate = false; 
     
    282308        Add(liitos); 
    283309        pelaaja.Image = hahmoHyokkaa; 
     310        AddCollisionHandler(hyokkaus, "vihu", HyokkausOsuu); 
    284311        //pelaaja. 
    285312 
     
    308335        pelaaja.Image = hahmo; 
    309336    } 
     337    void HyokkausOsuu(PhysicsObject hyokkaus, PhysicsObject kohde) 
     338    { 
     339        if (kohde.Tag.Equals("vihu")) 
     340        { 
     341            TuhoaVihu(kohde); 
     342        } 
     343    } 
     344    private void TuhoaVihu(PhysicsObject kohde) 
     345    { 
     346        //Explosion rajahdys = new Explosion(150); 
     347        //rajahdys.Position = kohde.Position; 
     348        //rajahdys.ShockwaveColor = Color.Transparent; 
     349        //Add(rajahdys); 
     350         
     351 
     352        (kohde as Vihu).ElamaLaskuri.Value--; 
     353        if ((kohde as Vihu).ElamaLaskuri.Value <= 0) kohde.Destroy(); 
     354    } 
     355 
     356    void LuoEnkkaLaskuri() 
     357    { 
     358       enkkaLaskuri = new DoubleMeter(10); 
     359       enkkaLaskuri.MaxValue = 10; 
     360       enkkaLaskuri.LowerLimit += ElamaLoppui; 
     361 
     362        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     363        elamaPalkki.X = Screen.Left + 150; 
     364        elamaPalkki.Y = Screen.Top - 20; 
     365        elamaPalkki.BindTo(enkkaLaskuri); 
     366        Add(elamaPalkki); 
     367    } 
     368 
     369    void ElamaLoppui() 
     370    { 
     371 
     372        Explosion rajahdys = new Explosion(50); 
     373 
     374        rajahdys.Position = pelaaja.Position; 
     375        Add(rajahdys); 
     376        IsPaused = true; 
     377 
     378        pelaaja.Destroy(); 
     379        MessageDisplay.Add("Hävisit pelin"); 
     380 
     381        Label teksti = new Label("PELI LOPPUI!!!"); 
     382        teksti.TextScale = new Vector(3, 3); 
     383        Add(teksti); 
     384        teksti.Color = Color.Red; 
     385 
     386        
     387    } 
     388     void OsuuViholliseen(PhysicsObject pelaaja, PhysicsObject vihu) 
     389    { 
     390        
     391         if (vihu.Tag.Equals("vihu")) 
     392         { 
     393            enkkaLaskuri.Value--; 
     394         } 
     395     } 
     396     void LuoEnergiaLaskuri() 
     397     { 
     398        EnergiaLaskuri = new DoubleMeter(10); 
     399        EnergiaLaskuri.MaxValue = 10; 
     400        EnergiaLaskuri.LowerLimit += ElamaLoppui; 
     401 
     402         ProgressBar energiaPalkki = new ProgressBar(150, 20); 
     403         energiaPalkki.X = Screen.Left + 150; 
     404         energiaPalkki.Y = Screen.Top - 10; 
     405         energiaPalkki.BindTo(EnergiaLaskuri); 
     406         Add(energiaPalkki); 
     407     } 
    310408    
     409    
    311410 
    312411} 
     412class Vihu : PhysicsObject 
     413{ 
     414    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3); 
     415    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } set { elamaLaskuri = value; } } 
     416 
     417    public Vihu(double leveys, double korkeus) 
     418        : base(leveys, korkeus) 
     419    { 
     420        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     421    } 
     422} 
Note: See TracChangeset for help on using the changeset viewer.