Changeset 1479 for 2010/23/hniemi/JyTris/JyTris/Peli.cs
- Timestamp:
- 2010-07-30 16:50:55 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/23/hniemi/JyTris/JyTris/Peli.cs
r1478 r1479 1 1 using System; 2 2 using Jypeli; 3 using Jypeli. ScreenObjects;3 using Jypeli.Widgets; 4 4 using Jypeli.Assets; 5 5 6 6 namespace JyTris 7 7 { 8 9 /// <summary> 10 /// JyTris 11 /// 12 /// Peli on tetrisklooni, joka on tarkoituksena toteuttaa JyPelillä 13 /// mahdollisimman yksinkertaisesti. 14 /// 15 /// Seuraavana tulossa: 16 /// - Lisääntyvät pisteet 17 /// - Loput palikat 18 /// </summary> 8 19 public class Peli : Game 9 20 { … … 18 29 double vaikeusaste = 0.2; 19 30 31 IntMeter pisteet = new IntMeter(0); 32 Label pistenaytto; 33 20 34 protected override void Begin() 21 35 { 22 36 LuoPelikentta(); 37 //LuoHud(); 23 38 AsetaNappaimet(); 24 39 KaynnistaPeli(); 25 //pelikentta[9][5].Color = Color.Turquoise; 26 } 27 40 } 41 42 /// <summary> 43 /// Käynnistää pelin 44 /// 45 /// Luo ensimmäisen palikan ja tekee ajastimen. 46 /// </summary> 28 47 void KaynnistaPeli() 29 48 { … … 36 55 } 37 56 57 /// <summary> 58 /// Tuhoaa täydet rivit kentältä 59 /// </summary> 38 60 void TuhoaTaydet() 39 61 { … … 55 77 } 56 78 79 /// <summary> 80 /// Tuhoaa kaikki palikat kentältä. 81 /// </summary> 57 82 void TuhoaKaikki() 58 83 { … … 67 92 } 68 93 94 /// <summary> 95 /// Tuhoaa indeksiä vastaavan rivin ja tiputtaa sen päällä olevia rivejä. 96 /// </summary> 97 /// <param name="rivinIndeksi">Tiputettavan rivin indeksi</param> 69 98 void TuhoaRivi(int rivinIndeksi) 70 99 { … … 85 114 } 86 115 116 void LuoHud() 117 { 118 pistenaytto = new Label(80, 20); 119 pistenaytto.BindTo(pisteet); 120 Add(pistenaytto); 121 122 //pistenaytto.Position.X = Screen.RightSafe - 40; 123 } 124 125 /// <summary> 126 /// Luo pelikentän ylhäällä määrätyistä vakioista 127 /// </summary> 87 128 void LuoPelikentta() 88 129 { 89 130 //Tässä säädetään pelialueen koko, jotta seinät tulevat oikeille kohdille 90 Level.Width = leveys * palikkojenSivu + leveys;91 Level.Height = korkeus * palikkojenSivu + korkeus;131 Level.Width = leveys * palikkojenSivu;// + leveys; 132 Level.Height = korkeus * palikkojenSivu;// + korkeus; 92 133 Level.CreateBorders(true); 93 134 … … 109 150 pelikentta[i][j] = new GameObject(palikkojenSivu, palikkojenSivu, Shapes.Rectangle); 110 151 pelikentta[i][j].Color = Color.TransparentWhite; 111 pelikentta[i][j].X = Level.Left + (palikkojenSivu / 2) + j * (palikkojenSivu + 1);112 pelikentta[i][j].Y = Level.Top - (palikkojenSivu / 2) - i * (palikkojenSivu + 1);152 pelikentta[i][j].X = Level.Left + (palikkojenSivu / 2) + j * (palikkojenSivu); 153 pelikentta[i][j].Y = Level.Top - (palikkojenSivu / 2) - i * (palikkojenSivu); 113 154 Add(pelikentta[i][j]); 114 155 } … … 116 157 } 117 158 159 /// <summary> 160 /// Asettaa näppäimet. 161 /// </summary> 118 162 void AsetaNappaimet() 119 163 { … … 124 168 Keyboard.Listen(Key.Left, ButtonState.Pressed, Liikuta, "Liikuttaa palikkaa vasemmalle", vasemmalle); 125 169 Keyboard.Listen(Key.Right, ButtonState.Pressed, Liikuta, "Liikuttaa palikkaa oikealle", oikealle); 126 Keyboard.Listen(Key.Down, ButtonState.Pressed, Laske, "Liikuttaa palikkaa alas", tiputusajastin); 170 Keyboard.Listen(Key.Down, ButtonState.Down, Laske, "Liikuttaa palikkaa alas", tiputusajastin); 171 Keyboard.Listen(Key.Up, ButtonState.Pressed, Kaanna, "Kääntää palikkaa"); 127 172 Keyboard.Listen(Key.Space, ButtonState.Pressed, Tiputa, "Tiputtaa palikan"); 128 173 } 129 174 175 /// <summary> 176 /// Liikuttaa palikkaa halutun verran. 177 /// </summary> 178 /// <param name="suunta">X ja Y oltava kokonaislukuja.</param> 130 179 void Liikuta(Vector suunta) 131 180 { … … 140 189 } 141 190 191 /// <summary> 192 /// Kääntää palikkaa 193 /// </summary> 194 void Kaanna() 195 { 196 PaivitaPalikka(aktiivinenPalikka, Color.TransparentWhite); 197 198 //Tämä kohta tarkistaa, voiko palikkaa kääntää 199 //Jos ei voi, niin poistutaan. 200 Vector[] tulevaSijainti = aktiivinenPalikka.TulevaKaanto(); 201 for (int i = 0; i < tulevaSijainti.Length; i++) 202 { 203 if (!OnkoTyhja(tulevaSijainti[i])) 204 { 205 PaivitaPalikka(aktiivinenPalikka, aktiivinenPalikka.Vari()); 206 return; 207 } 208 } 209 210 aktiivinenPalikka.Kaanna(); 211 PaivitaPalikka(aktiivinenPalikka, aktiivinenPalikka.Vari()); 212 } 213 214 /// <summary> 215 /// Laskee palikkaa yhdellä. Jos palikkaa ei voi laskea, 216 /// lähettää uuden palikan. 217 /// </summary> 218 /// <param name="timer">Ei käytössä</param> 142 219 void Laske(Timer timer) 143 220 { … … 147 224 { 148 225 PaivitaPalikka(aktiivinenPalikka, aktiivinenPalikka.Vari()); 226 TuhoaTaydet(); 149 227 LuoPalikka(); 150 228 return; … … 152 230 aktiivinenPalikka.Liikuta(new Vector(0, 1)); 153 231 PaivitaPalikka(aktiivinenPalikka, aktiivinenPalikka.Vari()); 154 } 155 232 233 } 234 235 /// <summary> 236 /// Tiputtaa palikkan kokonaan alas. 237 /// </summary> 156 238 void Tiputa() 157 239 { 158 240 ITetrispalikka palikka = aktiivinenPalikka; 241 while (aktiivinenPalikka == palikka) Laske(tiputusajastin); 159 242 } 160 243 … … 180 263 } 181 264 265 /// <summary> 266 /// Tarkistaa, onko annetut paikka tyhjä 267 /// 268 /// Paikka on tyhjä, jos sen väri on Color.TransparentWhite 269 /// </summary> 270 /// <param name="paikka">X ja Y oltava kokonaislukuja</param> 271 /// <returns>true, jos paikka on tyhjä</returns> 182 272 bool OnkoTyhja(Vector paikka) 183 273 { … … 189 279 } 190 280 281 /// <summary> 282 /// Värittää paikkaa vastaavat laatikot annetulla värillä 283 /// </summary> 284 /// <param name="palikka">Tämän sijainti väritetään</param> 285 /// <param name="vari">Väri, jolla väritetään</param> 191 286 void PaivitaPalikka(ITetrispalikka palikka, Color vari) 192 287 { … … 199 294 } 200 295 296 /// <summary> 297 /// Luo palikan keskelle ylälaitaa 298 /// 299 /// Tulee antamaan satunnaisen palikan 300 /// </summary> 201 301 void LuoPalikka() 202 302 {
Note: See TracChangeset
for help on using the changeset viewer.