Changeset 1482 for 2010/23/hniemi/JyTris
- Timestamp:
- 2010-07-31 01:07:40 (13 years ago)
- Location:
- 2010/23/hniemi/JyTris/JyTris
- Files:
-
- 1 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/23/hniemi/JyTris/JyTris/JyTris.csproj
r1480 r1482 83 83 </ItemGroup> 84 84 <ItemGroup> 85 <Compile Include="J.cs" />86 <Compile Include="L.cs" />87 <Compile Include="Pitka.cs" />88 85 <Compile Include="Properties\AssemblyInfo.cs" /> 89 86 <Compile Include="Ohjelma.cs" /> 90 87 <Compile Include="Peli.cs" /> 91 <Compile Include=" ITetrispalikka.cs" />88 <Compile Include="TetrisPalikka.cs" /> 92 89 </ItemGroup> 93 90 <ItemGroup> -
2010/23/hniemi/JyTris/JyTris/Peli.cs
r1480 r1482 6 6 namespace JyTris 7 7 { 8 9 8 /// <summary> 10 /// JyTris 9 /// JyTris 0.1 11 10 /// 12 11 /// Peli on tetrisklooni, joka on tarkoituksena toteuttaa JyPelillä … … 15 14 /// Seuraavana tulossa: 16 15 /// - Lisääntyvät pisteet 17 /// - Loput palikat16 /// - Kuvat palikoille 18 17 /// </summary> 19 18 public class Peli : Game … … 24 23 25 24 GameObject[][] pelikentta; 26 ITetrispalikka aktiivinenPalikka;25 TetrisPalikka aktiivinenPalikka; 27 26 28 27 Timer tiputusajastin; 29 double vaikeusaste = 0. 2;28 double vaikeusaste = 0.9 ; 30 29 31 30 IntMeter pisteet = new IntMeter(0); 32 31 Label pistenaytto; 33 32 33 /* 34 * Introon tarvittavat muuttujat 35 */ 36 Timer introajastin; 37 private int indeksi = 0; 38 private int suunta = 1; 39 private int vaihtoCounter = 0; 40 41 /// <summary> 42 /// Tekee pelin alkuvalmistelut 43 /// </summary> 34 44 protected override void Begin() 35 45 { 36 46 LuoPelikentta(); 47 AlkuIntro(); 48 AsetaMenuNappaimet(); 37 49 //LuoHud(); 38 AsetaNappaimet(); 39 KaynnistaPeli(); 50 //AsetaPeliNappaimet(); 51 //KaynnistaPeli(); 52 } 53 54 /// <summary> 55 /// Käynnistää alkuintron 56 /// </summary> 57 void AlkuIntro() 58 { 59 introajastin = new Timer(); 60 introajastin.Interval = 0.05; 61 introajastin.Trigger += IntroPyoritys; 62 introajastin.Start(); 63 } 64 65 /// <summary> 66 /// Pyörittää introa 67 /// </summary> 68 /// <param name="ajastin">Ei käytössä</param> 69 void IntroPyoritys(Timer ajastin) 70 { 71 TuhoaRivi(korkeus-1); 72 73 Color randomvari = RandomGen.NextColor(); 74 75 for (int i = 0; i < pelikentta[0].Length; i++) 76 { 77 pelikentta[0][i].Color = randomvari; 78 } 79 pelikentta[0][indeksi].Color = Color.Brown; 80 indeksi += suunta; 81 vaihtoCounter++; 82 if (indeksi > leveys-1 && suunta > 0) 83 { 84 indeksi = 0; 85 } 86 if (indeksi < 0 && suunta < 0) 87 { 88 indeksi = leveys - 1; 89 } 90 if (vaihtoCounter > 50) 91 { 92 vaihtoCounter = 0; 93 suunta = -suunta; 94 } 40 95 } 41 96 … … 44 99 /// 45 100 /// Luo ensimmäisen palikan ja tekee ajastimen. 101 /// Tuhoaa myös kaikki valmiina olevat palikat. 102 /// 103 /// Poistaa asetetut kontrollit ja asettaa pelikontrollit. 104 /// 105 /// Resetoi vaikeusasteen! 46 106 /// </summary> 47 107 void KaynnistaPeli() 48 108 { 49 LuoPalikka(); 50 109 introajastin.Stop(); 110 TuhoaKaikki(); 111 ClearControls(); 112 AsetaPeliNappaimet(); 113 114 vaikeusaste = 0.9; 51 115 tiputusajastin = new Timer(); 52 116 tiputusajastin.Interval = vaikeusaste; 53 117 tiputusajastin.Trigger += Laske; 54 118 tiputusajastin.Start(); 119 LuoPalikka(); 55 120 } 56 121 … … 158 223 159 224 /// <summary> 160 /// Asettaa näppäimet.161 /// </summary> 162 void Aseta Nappaimet()225 /// Asettaa pelin aikana tarvittavat näppäimet. 226 /// </summary> 227 void AsetaPeliNappaimet() 163 228 { 164 229 Vector vasemmalle = new Vector(-1, 0); … … 166 231 Vector alas = new Vector(0, 1); 167 232 233 Keyboard.Listen(Key.Escape, ButtonState.Pressed, PeliLoppui, "Keskeyttää pelin"); 168 234 Keyboard.Listen(Key.Left, ButtonState.Pressed, Liikuta, "Liikuttaa palikkaa vasemmalle", vasemmalle); 169 235 Keyboard.Listen(Key.Right, ButtonState.Pressed, Liikuta, "Liikuttaa palikkaa oikealle", oikealle); … … 174 240 175 241 /// <summary> 242 /// Asettaa menuissa käytettävät näppäimet 243 /// </summary> 244 void AsetaMenuNappaimet() 245 { 246 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistuu pelistä"); 247 Keyboard.Listen(Key.F2, ButtonState.Pressed, KaynnistaPeli, "Aloittaa uuden pelin"); 248 } 249 250 /// <summary> 176 251 /// Liikuttaa palikkaa halutun verran. 177 252 /// </summary> … … 221 296 PaivitaPalikka(aktiivinenPalikka, Color.TransparentWhite); 222 297 298 tiputusajastin.Reset(); 223 299 if (!VoikoSiirtaa(new Vector(0,1), aktiivinenPalikka)) 224 300 { … … 238 314 void Tiputa() 239 315 { 240 ITetrispalikka palikka = aktiivinenPalikka;316 TetrisPalikka palikka = aktiivinenPalikka; 241 317 while (aktiivinenPalikka == palikka) Laske(tiputusajastin); 242 318 } 243 319 244 bool VoikoSiirtaa(Vector[] siirrot, ITetrispalikka palikka) 320 /// <summary> 321 /// Tarkistaa, voiko palikalle suorittaa annetut siirrot 322 /// 323 /// Annetut siirrot siis lisätään niitä vastaaviin palikan 324 /// sijainteihin. 325 /// </summary> 326 /// <param name="siirrot">X- ja Y-arvot oltava kokonaislukuja</param> 327 /// <param name="palikka">Palikka, jonka suhteen tarkistetaan</param> 328 /// <returns>true, jos palikan siirtäminen on mahdollista</returns> 329 bool VoikoSiirtaa(Vector[] siirrot, TetrisPalikka palikka) 245 330 { 246 331 Vector[] sijainnit = palikka.Sijainti(); … … 253 338 } 254 339 255 bool VoikoSiirtaa(Vector siirto, ITetrispalikka palikka) 340 /// <summary> 341 /// Tarkistaa voiko kaikkia palikan osia siirtää annetun 342 /// vektorin verran 343 /// </summary> 344 /// <param name="siirto">X- ja Y-arvo oltava kokonaislukuja</param> 345 /// <param name="palikka">Palikka, jonka suhteen tarkistetaan</param> 346 /// <returns>true, jos siirto on mahdollinen</returns> 347 bool VoikoSiirtaa(Vector siirto, TetrisPalikka palikka) 256 348 { 257 349 Vector[] siirrot = new Vector[4]; … … 284 376 /// <param name="palikka">Tämän sijainti väritetään</param> 285 377 /// <param name="vari">Väri, jolla väritetään</param> 286 void PaivitaPalikka( ITetrispalikka palikka, Color vari)378 void PaivitaPalikka(TetrisPalikka palikka, Color vari) 287 379 { 288 380 Vector[] sijainnit = palikka.Sijainti(); … … 301 393 void LuoPalikka() 302 394 { 303 //aktiivinenPalikka = new Pitka(leveys / 2); 304 //aktiivinenPalikka = new L(leveys / 2); 305 aktiivinenPalikka = new J(leveys / 2); 395 aktiivinenPalikka = new TetrisPalikka(leveys / 2); 396 tiputusajastin.Reset(); 397 398 Vector[] sijainnit = aktiivinenPalikka.Sijainti(); 399 for (int i = 0; i < sijainnit.Length; i++) 400 { 401 if (!OnkoTyhja(sijainnit[i])) 402 { 403 PeliLoppui(); 404 return; 405 } 406 } 407 306 408 PaivitaPalikka(aktiivinenPalikka, aktiivinenPalikka.Vari()); 409 } 410 411 /// <summary> 412 /// Lopettaa pelin. 413 /// - Palikkoja ei tipu 414 /// - Poistaa vanhat kontrollit 415 /// - Asettaa menunapit toimintaan 416 /// </summary> 417 void PeliLoppui() 418 { 419 tiputusajastin.Stop(); 420 ClearControls(); 421 AsetaMenuNappaimet(); 307 422 } 308 423
Note: See TracChangeset
for help on using the changeset viewer.