Changeset 1346 for 2010/30/tekrjant/Seikkailu/HUD.cs
- Timestamp:
- 2010-07-27 21:02:46 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/30/tekrjant/Seikkailu/HUD.cs
r1265 r1346 24 24 25 25 using System; 26 using System.Collections.Generic; 26 27 using Jypeli; 27 28 using Jypeli.Widgets; 29 30 31 class EsineValikko : Widget 32 { 33 class Valinta : Widget 34 { 35 public Esine Esine; 36 37 public Valinta( double width, double height, Esine e ) 38 : base( width, height ) 39 { 40 this.Esine = e; 41 Image = e.Image; 42 } 43 } 44 45 46 double esineenLeveys; 47 Widget vaakaValikko; 48 Widget valintaNuoli; 49 List<Valinta> esineet = new List<Valinta>(); 50 int valittuIndeksi = 0; 51 52 public Esine ValittuEsine 53 { 54 get 55 { 56 if ( esineet.Count == 0 ) 57 return null; 58 return esineet[valittuIndeksi].Esine; 59 } 60 } 61 62 63 public EsineValikko( double leveys, double korkeus ) 64 : base( leveys, korkeus ) 65 { 66 IsVisible = false; 67 Color = Color.TransparentBlack; 68 esineenLeveys = korkeus / 2; 69 70 vaakaValikko = new Widget( new HorizontalLayout() ); 71 vaakaValikko.Height = korkeus / 2; 72 vaakaValikko.X = 0; 73 vaakaValikko.Y = -korkeus / 4; 74 vaakaValikko.Color = new Color( 150, 100, 10, 100 ); 75 Add( vaakaValikko ); 76 77 valintaNuoli = new Widget( esineenLeveys * 0.9, korkeus * 0.4, Shapes.Triangle ); 78 valintaNuoli.Color = Color.Red; 79 valintaNuoli.Angle = Angle.Degrees( 180 ); 80 valintaNuoli.X = 0; 81 valintaNuoli.Y = korkeus / 4; 82 Add( valintaNuoli ); 83 } 84 85 public void Vasemmalle() 86 { 87 if ( esineet.Count == 0 ) 88 return; 89 90 if ( valittuIndeksi > 0 ) 91 valittuIndeksi--; 92 else 93 valittuIndeksi = esineet.Count - 1; 94 95 PaivitaNuoli(); 96 } 97 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; 107 108 PaivitaNuoli(); 109 } 110 111 void PaivitaNuoli() 112 { 113 valintaNuoli.X = Left + ( valittuIndeksi * esineenLeveys ) + esineenLeveys / 2; 114 } 115 116 public void Add( Esine e ) 117 { 118 Valinta v = new Valinta( esineenLeveys, Height, e ); 119 vaakaValikko.Add( v ); 120 esineet.Add( v ); 121 double uusiLeveys = esineet.Count * esineenLeveys; 122 this.Width = uusiLeveys; 123 vaakaValikko.Width = uusiLeveys; 124 IsVisible = true; 125 126 if ( esineet.Count == 1 ) 127 valittuIndeksi = 0; 128 PaivitaNuoli(); 129 } 130 } 131 28 132 29 133 class EsineRuutu : Widget
Note: See TracChangeset
for help on using the changeset viewer.