Changeset 1582 for 2010


Ignore:
Timestamp:
2010-08-03 21:19:53 (13 years ago)
Author:
tekrjant
Message:

Valittu esine näkyy kädessä.

Location:
2010/30/tekrjant/Seikkailu
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/tekrjant/Seikkailu/Esine.cs

    r1556 r1582  
    3939{ 
    4040    public EsineenTyyppi Tyyppi; 
     41    public GameObject Klooni = null; 
    4142 
    4243 
  • 2010/30/tekrjant/Seikkailu/HUD.cs

    r1542 r1582  
    8383    } 
    8484 
    85     public void Vasemmalle() 
     85    public void LiikutaValintaa( Direction suunta ) 
    8686    { 
    8787        if ( esineet.Count == 0 ) 
    8888            return; 
    8989 
    90         if ( valittuIndeksi > 0 ) 
    91             valittuIndeksi--; 
    92         else 
    93             valittuIndeksi = esineet.Count - 1; 
     90        switch ( suunta ) 
     91        { 
     92            case Direction.Left: 
     93                if ( valittuIndeksi > 0 ) 
     94                    valittuIndeksi--; 
     95                else 
     96                    valittuIndeksi = esineet.Count - 1; 
     97                break; 
    9498 
    95         PaivitaNuoli(); 
    96     } 
     99            case Direction.Right: 
     100                if ( valittuIndeksi < ( esineet.Count - 1 ) ) 
     101                    valittuIndeksi++; 
     102                else 
     103                    valittuIndeksi = 0; 
     104                break; 
    97105 
    98     public void Oikealle() 
    99     { 
    100         if ( esineet.Count == 0 ) 
    101             return; 
    102  
    103         if ( valittuIndeksi < ( esineet.Count - 1 ) ) 
    104             valittuIndeksi++; 
    105         else 
    106             valittuIndeksi = 0; 
     106            default: 
     107                throw new ArgumentException(); 
     108                break; 
     109        } 
    107110 
    108111        PaivitaNuoli(); 
  • 2010/30/tekrjant/Seikkailu/Peli.cs

    r1556 r1582  
    265265        Keyboard.Listen( Key.Right, ButtonState.Released, EiKaanny, null ); 
    266266 
    267         Keyboard.Listen( Key.Q, ButtonState.Pressed, esineValikko.Vasemmalle, null ); 
    268         Keyboard.Listen( Key.W, ButtonState.Pressed, esineValikko.Oikealle, null ); 
     267        Keyboard.Listen( Key.Q, ButtonState.Pressed, EsineValinta, null, Direction.Left ); 
     268        Keyboard.Listen( Key.W, ButtonState.Pressed, EsineValinta, null, Direction.Right ); 
    269269        Keyboard.Listen( Key.Space, ButtonState.Pressed, KaytaValittuaEsinetta, null ); 
    270270 
    271271        Keyboard.Listen( Key.P, ButtonState.Pressed, Keraa, null ); 
     272    } 
     273 
     274    void EsineValinta( Direction suunta ) 
     275    { 
     276        if ( esineValikko.ValittuEsine == null ) 
     277            return; 
     278 
     279        Esine vanhaEsine = esineValikko.ValittuEsine; 
     280        esineValikko.LiikutaValintaa( suunta ); 
     281        Esine uusiEsine = esineValikko.ValittuEsine; 
     282 
     283        if ( vanhaEsine.Klooni != null ) 
     284            vanhaEsine.Klooni.IsVisible = false; 
     285        if ( uusiEsine.Klooni != null ) 
     286            uusiEsine.Klooni.IsVisible = true; 
    272287    } 
    273288 
     
    338353    } 
    339354 
    340     double Etaisyys( Vector p1, Vector p2 ) 
    341     { 
    342         double dx = p2.X - p1.X; 
    343         double dy = p2.Y - p1.Y; 
    344         return Math.Abs( dx * dx + dy * dy ); 
    345     } 
    346  
    347355    void Keraa() 
    348356    { 
     
    350358            return; 
    351359 
    352         if ( ( Etaisyys( pelaaja.Position, viimeksiKoskettuEsine.Position ) - pelaaja.Width / 2 - viimeksiKoskettuEsine.Width / 2 ) > 0 ) 
     360        if ( ( Vector.Distance( pelaaja.Position, viimeksiKoskettuEsine.Position ) - pelaaja.Width / 2 - viimeksiKoskettuEsine.Width / 2 ) > 0 ) 
    353361            return; 
    354362 
     
    359367        { 
    360368            case EsineenTyyppi.TuliSauva: 
    361                 GameObject klooni = new GameObject( viimeksiKoskettuEsine.Width, viimeksiKoskettuEsine.Height ); 
    362                 klooni.Image = viimeksiKoskettuEsine.Image; 
    363                 pelaaja.Add( klooni ); 
    364                 klooni.X = pelaaja.Width / 2 + klooni.Width / 4; 
     369                Poimi( viimeksiKoskettuEsine ); 
     370                break; 
     371            case EsineenTyyppi.EnergiaSauva: 
     372                Poimi( viimeksiKoskettuEsine ); 
     373                break; 
     374            case EsineenTyyppi.Miekka: 
     375                Poimi( viimeksiKoskettuEsine ); 
    365376                break; 
    366377            case EsineenTyyppi.Lyhty: 
     
    379390    } 
    380391 
     392    void Poimi( Esine esine ) 
     393    { 
     394        GameObject klooni = new GameObject( esine.Width, esine.Height ); 
     395        klooni.Image = esine.Image; 
     396        klooni.IsVisible = false; 
     397        klooni.X = pelaaja.Width / 2 + klooni.Width / 4; 
     398        klooni.Y = 0; 
     399        esine.Klooni = klooni; 
     400        pelaaja.Add( klooni ); 
     401    } 
     402 
    381403    void KaytaLamppua() 
    382404    { 
    383405        if ( lyhdynValo.Intensity <= 0.1 ) 
    384406        { 
    385            lyhtyAjastin.Start(); 
     407            lyhtyAjastin.Start(); 
    386408        } 
    387409        else 
Note: See TracChangeset for help on using the changeset viewer.