- Timestamp:
- 2010-07-27 21:02:46 (13 years ago)
- Location:
- 2010/30/tekrjant/Seikkailu
- Files:
-
- 2 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 -
2010/30/tekrjant/Seikkailu/Peli.cs
r1269 r1346 36 36 37 37 EsineRuutu esineRuutu; 38 EsineValikko esineValikko; 38 39 39 40 PhysicsObject pelaaja; 40 List<Esine> pelaajanTavarat = new List<Esine>();41 41 Esine viimeksiKoskettuEsine; 42 42 … … 67 67 esineRuutu.Y = Screen.Top - esineRuutu.Height / 2; 68 68 Add( esineRuutu ); 69 70 esineValikko = new EsineValikko( 100, 100 ); 71 esineValikko.X = 0; 72 esineValikko.Y = Screen.Bottom + esineValikko.Height / 2; 73 Add( esineValikko ); 69 74 } 70 75 … … 222 227 Keyboard.Listen( Key.Right, ButtonState.Released, EiKaanny, null ); 223 228 229 Keyboard.Listen( Key.Q, ButtonState.Pressed, esineValikko.Vasemmalle, null ); 230 Keyboard.Listen( Key.W, ButtonState.Pressed, esineValikko.Oikealle, null ); 231 Keyboard.Listen( Key.Space, ButtonState.Pressed, KaytaValittuaEsinetta, null ); 232 224 233 Keyboard.Listen( Key.P, ButtonState.Pressed, Keraa, null ); 225 226 Keyboard.Listen( Key.Z, ButtonState.Pressed, KaytaTaikaSauvaa, null ); 227 Keyboard.Disable( Key.Z ); 228 229 Keyboard.Listen( Key.L, ButtonState.Pressed, KaytaLamppua, null ); 230 Keyboard.Disable( Key.L ); 234 } 235 236 void KaytaValittuaEsinetta() 237 { 238 Esine valittu = esineValikko.ValittuEsine; 239 240 switch ( valittu.Tyyppi ) 241 { 242 case EsineenTyyppi.Taikasauva: 243 KaytaTaikaSauvaa(); 244 break; 245 case EsineenTyyppi.Lyhty: 246 KaytaLamppua(); 247 break; 248 case EsineenTyyppi.Timantti: 249 break; 250 default: 251 break; 252 } 231 253 } 232 254 … … 246 268 return; 247 269 270 Remove( viimeksiKoskettuEsine ); 271 esineValikko.Add( viimeksiKoskettuEsine ); 272 248 273 switch ( viimeksiKoskettuEsine.Tyyppi ) 249 274 { 250 275 case EsineenTyyppi.Taikasauva: 251 viimeksiKoskettuEsine.Destroy(); 252 GameObject taikaSauva = new GameObject( viimeksiKoskettuEsine.Width, viimeksiKoskettuEsine.Height ); 253 taikaSauva.Color = viimeksiKoskettuEsine.Color; 254 pelaaja.Add( taikaSauva ); 255 taikaSauva.X = pelaaja.Width / 2 + taikaSauva.Width / 4; 256 Keyboard.Enable( Key.Z ); 257 viimeksiKoskettuEsine = null; 276 GameObject klooni = new GameObject( viimeksiKoskettuEsine.Width, viimeksiKoskettuEsine.Height ); 277 klooni.Color = viimeksiKoskettuEsine.Color; 278 pelaaja.Add( klooni ); 279 klooni.X = pelaaja.Width / 2 + klooni.Width / 4; 258 280 break; 259 281 case EsineenTyyppi.Lyhty: 260 Remove( viimeksiKoskettuEsine );261 pelaajanTavarat.Add( viimeksiKoskettuEsine );262 Keyboard.Enable( Key.L );263 viimeksiKoskettuEsine = null;264 282 break; 265 283 case EsineenTyyppi.Timantti: … … 272 290 break; 273 291 } 292 293 viimeksiKoskettuEsine = null; 274 294 } 275 295
Note: See TracChangeset
for help on using the changeset viewer.