- Timestamp:
- 2011-12-09 00:29:00 (9 years ago)
- Location:
- 2010/23/hniemi/JyTris/JyTris
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/23/hniemi/JyTris/JyTris/JyTris.csproj
r1994 r2626 70 70 <ItemGroup> 71 71 <Reference Include="Jypeli4"> 72 <HintPath>..\..\..\ Jypeli\lib\x86\Jypeli4.dll</HintPath>72 <HintPath>..\..\..\..\Jypeli\lib\x86\Jypeli4.dll</HintPath> 73 73 </Reference> 74 74 <Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553"> -
2010/23/hniemi/JyTris/JyTris/Peli.cs
r1994 r2626 20 20 { 21 21 #region Muuttujat 22 private string versio = "0.5"; 23 24 const int leveys = 10; 25 const int korkeus = 26; 26 const int palikkojenSivu = 30; 27 28 GameObject[][] pelikentta; 29 GameObject[][] ennustuskentta; 30 TetrisPalikka aktiivinenPalikka; 31 TetrisPalikka ennustusPalikka; 32 GameObject pausenappula; 22 private const string versio = "0.5"; 23 private const string file = "state.xml"; 24 25 private const int leveys = 10; 26 private const int korkeus = 26; 27 private const int palikkojenSivu = 30; 28 29 //Pelikenttä 30 private GameObject[][] pelikentta; 31 private GameObject[][] ennustuskentta; 32 33 private TetrisPalikka aktiivinenPalikka; 34 private TetrisPalikka ennustusPalikka; 35 36 private GameObject pausenappula; 33 37 34 38 //Liikutusvektorit 35 Vector vasemmalle = new Vector(-1, 0); 36 Vector oikealle = new Vector(1, 0); 37 Vector alas = new Vector(0, 1); 38 39 40 Timer tiputusajastin; 39 private Vector vasemmalle = new Vector(-1, 0); 40 private Vector oikealle = new Vector(1, 0); 41 private Vector alas = new Vector(0, 1); 42 43 private Timer tiputusajastin; 41 44 42 45 //Statistiikka 43 double vaikeusaste = 0.9; 44 //bool purkkabool = false; 45 IntMeter pisteet = new IntMeter(0); 46 IntMeter taso = new IntMeter(0); 47 int tuhotutRivit = 0; 46 private double vaikeusaste = 0.9; 47 private IntMeter pisteet = new IntMeter(0); 48 private IntMeter taso = new IntMeter(0); 49 50 private int tuhotutRivit = 0; 51 private int pelinTila = 0; 52 48 53 //HighScoreList topLista; 49 54 50 Label tasonaytto;51 Label pistenaytto;52 Label status;55 private Label tasonaytto; 56 private Label pistenaytto; 57 private Label status; 53 58 54 59 /* 55 60 * Introon tarvittavat muuttujat 56 61 */ 57 Timer introajastin; 62 private Timer introajastin; 63 58 64 private int indeksi = 0; 59 65 private int suunta = 1; 60 66 private int vaihtoCounter = 0; 61 67 #endregion 68 #region Talletettavat 69 /// <summary> 70 /// Pelaajan pisteet 71 /// </summary> 72 public IntMeter Pisteet 73 { 74 get { return pisteet; } 75 set { pisteet = value; } 76 } 77 78 /// <summary> 79 /// Menossa oleva taso 80 /// </summary> 81 public IntMeter Taso 82 { 83 get { return taso; } 84 set { taso = value; } 85 } 86 87 /// <summary> 88 /// Tuhottujen rivien määrä 89 /// </summary> 90 public int TuhotutRivit 91 { 92 get { return tuhotutRivit; } 93 set { tuhotutRivit = value; } 94 } 95 96 /// <summary> 97 /// Pelikenttä 98 /// </summary> 99 public GameObject[][] Pelikentta 100 { 101 get { return pelikentta; } 102 set { pelikentta = value; } 103 } 104 105 /// <summary> 106 /// Palikka, joka tulee seuraavaksi 107 /// </summary> 108 public TetrisPalikka EnnustusPalikka 109 { 110 get { return ennustusPalikka; } 111 set { ennustusPalikka = value; } 112 } 113 114 /// <summary> 115 /// Ennustuskenttä, näyttää seuraavan palikan 116 /// </summary> 117 public GameObject[][] Ennustuskentta 118 { 119 get { 120 return ennustuskentta; 121 } 122 set { ennustuskentta = value; } 123 } 124 125 /// <summary> 126 /// Aktiivinen palikka tällä hetkellä 127 /// </summary> 128 public TetrisPalikka AktiivinenPalikka 129 { 130 get { return aktiivinenPalikka; } 131 set { aktiivinenPalikka = value; } 132 } 133 134 /// <summary> 135 /// Pelin vaikeusaste tällä hetkellä 136 /// </summary> 137 public double Vaikeusaste 138 { 139 get { return vaikeusaste; } 140 set { vaikeusaste = value; } 141 } 62 142 #endregion 63 143 … … 77 157 } 78 158 159 160 79 161 public void AsetaPistelista() 80 162 { … … 83 165 84 166 #region WP7-Metodit 167 168 /// <summary> 169 /// Palauttaa ohjelman tilan 170 /// </summary> 171 public override void Continue() 172 { 173 base.Continue(); 174 Puhelinasetukset(); 175 LoadState lataus = DataStorage.BeginLoad(file); 176 pelinTila = lataus.Load<int>(pelinTila, "pelinTila"); 177 178 LuoPelikentta(); 179 AsetaPistelista(); 180 LuoHud(); 181 //Jos peli ei ollut käynnissä 182 if (pelinTila == 0) 183 { 184 AlkuIntro(); 185 } 186 187 //Jos peli oli käynnissä 188 if (pelinTila == 1) 189 { 190 pelikentta = lataus.Load<GameObject[][]>(pelikentta, "pelikentta"); 191 aktiivinenPalikka = new TetrisPalikka(4); 192 aktiivinenPalikka = lataus.Load<TetrisPalikka>(aktiivinenPalikka,"aktiivinenPalikka"); 193 194 LuoHud(); 195 ennustuskentta = lataus.Load<GameObject[][]>(ennustuskentta,"ennustuskentta" ); 196 197 ennustusPalikka = new TetrisPalikka(4); 198 ennustusPalikka = lataus.Load<TetrisPalikka>(ennustusPalikka,"ennustusPalikka" ); 199 200 taso = lataus.Load<IntMeter>(taso,"taso" ); 201 pisteet = lataus.Load<IntMeter>(pisteet, "pisteet"); 202 tuhotutRivit = lataus.Load<int>(tuhotutRivit, "tuhotutRivit"); 203 vaikeusaste = lataus.Load<double>(vaikeusaste, "vaikeusaste"); 204 205 LuoTiputusajastin(); 206 tiputusajastin.Start(); 207 } 208 lataus.EndLoad(); 209 210 } 211 85 212 /// <summary> 86 213 /// Asettaa näytön asennon ja zoomin kohilleen. … … 93 220 Camera.Move(new Vector(40, 0)); 94 221 TouchPanel.Listen(ButtonState.Pressed, KasitteleKosketus, null); 222 223 Phone.Deactivated += TilaTalletus; 224 } 225 226 /// <summary> 227 /// Toimenpiteet, mitä tehdään, kun poistutaan pelistä 228 /// </summary> 229 public void TilaTalletus() 230 { 231 SaveState tallennus = DataStorage.BeginSave(file); 232 233 tallennus.Save<int>(pelinTila, "pelinTila"); 234 if (pelinTila == 1) 235 { 236 tallennus.Save<GameObject[][]>(pelikentta, "pelikentta"); 237 tallennus.Save<GameObject[][]>(ennustuskentta, "ennustuskentta"); 238 tallennus.Save<TetrisPalikka>(aktiivinenPalikka, "aktiivinenPalikka"); 239 tallennus.Save<TetrisPalikka>(ennustusPalikka, "ennustusPalikka"); 240 tallennus.Save<IntMeter>(taso, "taso"); 241 tallennus.Save<IntMeter>(pisteet, "pisteet"); 242 tallennus.Save<int>(tuhotutRivit, "tuhotutRivit"); 243 tallennus.Save<double>(vaikeusaste, "vaikeusaste"); 244 } 245 tallennus.EndSave(); 95 246 } 96 247 … … 143 294 } 144 295 296 /// <summary> 297 /// Käsittelee pause-nappia painaneen kosketuksen 298 /// </summary> 299 /// <param name="b"></param> 145 300 public void KasittelePauseKosketus(Touch b) 146 301 { … … 151 306 #region Intro 152 307 /// <summary> 153 /// Käynnistää alkuintron154 /// </summary> 155 void AlkuIntro()308 /// Luo introajastimen 309 /// </summary> 310 private void LuoIntroAjastin() 156 311 { 157 312 introajastin = new Timer(); 158 313 introajastin.Interval = 0.05; 159 introajastin.Trigger += IntroPyoritys; 314 introajastin.Timeout += IntroPyoritys; 315 } 316 317 /// <summary> 318 /// Käynnistää alkuintron 319 /// </summary> 320 private void AlkuIntro() 321 { 322 LuoIntroAjastin(); 160 323 introajastin.Start(); 161 324 } … … 165 328 /// </summary> 166 329 /// <param name="ajastin">Ei käytössä</param> 167 void IntroPyoritys(Timer ajastin)330 private void IntroPyoritys() 168 331 { 169 332 TuhoaRivi(korkeus - 1); … … 199 362 /// Luo näyttöön pistenäytöt ja muut elementit. 200 363 /// </summary> 201 void LuoHud()364 private void LuoHud() 202 365 { 203 366 Widget statistiikka = new Widget(120, 100); … … 256 419 /// </summary> 257 420 /// <param name="palikka">Näytettävä palikka</param> 258 void AsetaEnnustusnaytto(TetrisPalikka palikka)421 private void AsetaEnnustusnaytto(TetrisPalikka palikka) 259 422 { 260 423 for (int i = 0; i < ennustuskentta.Length; i++) … … 278 441 /// Luo pelikentän ylhäällä määrätyistä vakioista 279 442 /// </summary> 280 void LuoPelikentta()443 private void LuoPelikentta() 281 444 { 282 445 //Tässä säädetään pelialueen koko, jotta seinät tulevat oikeille kohdille … … 313 476 /// Asettaa pelin aikana tarvittavat näppäimet. 314 477 /// </summary> 315 void AsetaPeliNappaimet()478 private void AsetaPeliNappaimet() 316 479 { 317 480 Vector vasemmalle = new Vector(-1, 0); … … 322 485 Keyboard.Listen(Key.Left, ButtonState.Pressed, Liikuta, "Liikuttaa palikkaa vasemmalle", vasemmalle); 323 486 Keyboard.Listen(Key.Right, ButtonState.Pressed, Liikuta, "Liikuttaa palikkaa oikealle", oikealle); 324 Keyboard.Listen(Key.Down, ButtonState.Down, Laske, "Liikuttaa palikkaa alas" , tiputusajastin);487 Keyboard.Listen(Key.Down, ButtonState.Down, Laske, "Liikuttaa palikkaa alas"); 325 488 Keyboard.Listen(Key.Up, ButtonState.Pressed, Kaanna, "Kääntää palikkaa"); 326 489 Keyboard.Listen(Key.Space, ButtonState.Pressed, Tiputa, "Tiputtaa palikan"); … … 331 494 } 332 495 333 void AsetaTaukoNappaimet()496 private void AsetaTaukoNappaimet() 334 497 { 335 498 Keyboard.Listen(Key.P, ButtonState.Pressed, Pysayta, "Jatkaa peliä", false); … … 340 503 /// Asettaa menuissa käytettävät näppäimet 341 504 /// </summary> 342 void AsetaMenuNappaimet()505 private void AsetaMenuNappaimet() 343 506 { 344 507 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistuu pelistä"); … … 352 515 /// </summary> 353 516 /// <param name="suunta">X ja Y oltava kokonaislukuja.</param> 354 void Liikuta(Vector suunta)517 private void Liikuta(Vector suunta) 355 518 { 356 519 PaivitaPalikka(aktiivinenPalikka, Color.Transparent); … … 367 530 /// Kääntää palikkaa 368 531 /// </summary> 369 void Kaanna()532 private void Kaanna() 370 533 { 371 534 PaivitaPalikka(aktiivinenPalikka, Color.Transparent); … … 392 555 /// </summary> 393 556 /// <param name="timer">Ei käytössä</param> 394 void Laske(Timer timer)557 private void Laske() 395 558 { 396 559 PaivitaPalikka(aktiivinenPalikka, Color.Transparent); … … 412 575 /// Tiputtaa palikkan kokonaan alas. 413 576 /// </summary> 414 void Tiputa() 415 { 577 private void Tiputa() 578 { 579 //Lasketaan, kunnes ei ole sama palikka ohjattavana. 416 580 TetrisPalikka palikka = aktiivinenPalikka; 417 while (aktiivinenPalikka == palikka) Laske( tiputusajastin);581 while (aktiivinenPalikka == palikka) Laske(); 418 582 } 419 583 … … 427 591 /// <param name="palikka">Palikka, jonka suhteen tarkistetaan</param> 428 592 /// <returns>true, jos palikan siirtäminen on mahdollista</returns> 429 bool VoikoSiirtaa(Vector[] siirrot, TetrisPalikka palikka)593 private bool VoikoSiirtaa(Vector[] siirrot, TetrisPalikka palikka) 430 594 { 431 595 Vector[] sijainnit = palikka.Sijainti(); … … 445 609 /// <param name="palikka">Palikka, jonka suhteen tarkistetaan</param> 446 610 /// <returns>true, jos siirto on mahdollinen</returns> 447 bool VoikoSiirtaa(Vector siirto, TetrisPalikka palikka)611 private bool VoikoSiirtaa(Vector siirto, TetrisPalikka palikka) 448 612 { 449 613 Vector[] siirrot = new Vector[4]; … … 462 626 /// <param name="paikka">X ja Y oltava kokonaislukuja</param> 463 627 /// <returns>true, jos paikka on tyhjä</returns> 464 bool OnkoTyhja(Vector paikka)628 private bool OnkoTyhja(Vector paikka) 465 629 { 466 630 if (paikka.X > leveys - 1 || paikka.X < 0) return false; … … 476 640 /// <param name="palikka">Tämän sijainti väritetään</param> 477 641 /// <param name="vari">Väri, jolla väritetään</param> 478 void PaivitaPalikka(TetrisPalikka palikka, Color vari)642 private void PaivitaPalikka(TetrisPalikka palikka, Color vari) 479 643 { 480 644 Vector[] sijainnit = palikka.Sijainti(); … … 493 657 /// <param name="koordinaatit">Haluttu koordinaatti</param> 494 658 /// <returns>Gameobject, joka vastaa koordinaatteja</returns> 495 GameObject AnnaKoordinaateista(Vector koordinaatit)659 private GameObject AnnaKoordinaateista(Vector koordinaatit) 496 660 { 497 661 return pelikentta[(int)Math.Round(koordinaatit.Y)][(int)Math.Round(koordinaatit.X)]; … … 504 668 /// Tulee antamaan satunnaisen palikan 505 669 /// </summary> 506 void LuoPalikka()670 private void LuoPalikka() 507 671 { 508 672 //Luo uuden palikan ja siirtää ennustuspalikan aktiiviseksi … … 546 710 /// Resetoi vaikeusasteen! 547 711 /// </summary> 548 void KaynnistaPeli()712 private void KaynnistaPeli() 549 713 { 550 714 status.Color = Color.Transparent; 551 715 status.TextColor = Color.Transparent; 716 pelinTila = 1; 552 717 pisteet.Value = 0; 553 718 taso.Value = 1; … … 567 732 */ 568 733 vaikeusaste = 0.9; 734 LuoTiputusajastin(); 735 tiputusajastin.Start(); 736 LuoPalikka(); 737 } 738 739 /// <summary> 740 /// Luo ajastimen, joka tiputtaa palikoita 741 /// </summary> 742 private void LuoTiputusajastin() 743 { 569 744 tiputusajastin = new Timer(); 570 745 tiputusajastin.Interval = vaikeusaste; 571 tiputusajastin.Trigger += Laske; 572 tiputusajastin.Start(); 573 LuoPalikka(); 746 tiputusajastin.Timeout += Laske; 574 747 } 575 748 … … 580 753 /// </summary> 581 754 /// <param name="pysaytetaan">true, jos peli halutaan pysäyttää</param> 582 void Pysayta(bool pysaytetaan)755 private void Pysayta(bool pysaytetaan) 583 756 { 584 757 if (pysaytetaan) … … 601 774 /// Tuhoaa täydet rivit kentältä 602 775 /// </summary> 603 void TuhoaTaydet()776 private void TuhoaTaydet() 604 777 { 605 778 bool tyhjia; … … 635 808 /// Tuhoaa kaikki palikat kentältä. 636 809 /// </summary> 637 void TuhoaKaikki()810 private void TuhoaKaikki() 638 811 { 639 812 //Tässä käydään lävitse kaikki laatikot ja asetetaan ne läpinäkyviksi. … … 651 824 /// </summary> 652 825 /// <param name="rivinIndeksi">Tiputettavan rivin indeksi</param> 653 void TuhoaRivi(int rivinIndeksi)826 private void TuhoaRivi(int rivinIndeksi) 654 827 { 655 828 if (rivinIndeksi > pelikentta.Length || rivinIndeksi < 0) return; … … 676 849 /// - Asettaa menunapit toimintaan 677 850 /// </summary> 678 void PeliLoppui()851 private void PeliLoppui() 679 852 { 680 853 tiputusajastin.Stop(); … … 688 861 } 689 862 #endregion 863 864 690 865 } 691 866 } -
2010/23/hniemi/JyTris/JyTris/TetrisPalikka.cs
r1980 r2626 21 21 /// Luo satunnaisen palikan, joka luulee olevansa paikassa (0,7) pelikentällä. 22 22 /// </summary> 23 class TetrisPalikka23 public class TetrisPalikka 24 24 { 25 25 private Vector[] sijainnit; -
2010/23/hniemi/JyTris/JyTris/Windows Phone Copy of JyTris.csproj
r1994 r2626 148 148 <ItemGroup> 149 149 <Reference Include="Jypeli4"> 150 <HintPath>..\..\..\ Jypeli\lib\Windows Phone\Jypeli4.dll</HintPath>150 <HintPath>..\..\..\..\Jypeli\lib\Windows Phone\Jypeli4.dll</HintPath> 151 151 </Reference> 152 152 <Reference Include="Microsoft.Xna.Framework">
Note: See TracChangeset
for help on using the changeset viewer.