private void TurunkanBlok() { //int grid_i = _terkiniBlok.koordKiriAtas.Y / OFFSETPIXEL; //int grid_j = _terkiniBlok.koordKiriAtas.X / OFFSETPIXEL; //for (int i = grid_i, j = grid_j; j < Blok.PANJANG; j++) //{ // _elemen[i, j] = HITAM; //} //System.Drawing.Point koordLama = _terkiniBlok.koordKiriAtas; //_terkiniBlok.koordKiriAtas.Y += OFFSETPIXEL; //hapus bekas blok _terkiniBlok.HapusDariPapan(this); //turunkan satu grid unit System.Drawing.Point koordLama = _terkiniBlok.koordKiriAtas; _terkiniBlok.koordKiriAtas.Y += OFFSETPIXEL; //redraw blok _terkiniBlok.Draw(this); Size s = new Size((Blok.PANJANG * OFFSETPIXEL), (Blok.LEBAR * OFFSETPIXEL) + OFFSETPIXEL); this.Invalidate(new Rectangle(koordLama, s)); //this.UpdateTerkiniTinggiTumpukan(); //cek tumpukan //Thread t = new Thread(new ThreadStart(CekTumpukan)); //t.Start(); }
//private void PapanPermainan_KeyPress(object sender, KeyPressEventArgs e) //{ // //BlokGaris b1 = new BlokGaris(); // //b1.koordKiriAtas = new Point(0, 0); // //b1.Draw(); // //BlokKros b2 = new BlokKros(); // //b1.koordKiriAtas = new Point(80, 0); // //b2.Draw(); // //BlokZNormal b3 = new BlokZNormal(); // //b3.koordKiriAtas = new Point(160, 0); // //b3.Draw(); // switch (e.KeyChar) // { // case 'M': // goto case 'm'; // case 'm' : // BuatBlokBaru(); // break; // } // e.Handled = true; //} private void BuatBlokBaru() { // antara 0-6(termasuk 0 dan 6) int spesifikasi = _random.Next(0, 7); _terkiniBlok = BlokFactory.BuatkanBlok(spesifikasi); _terkiniBlok.koordKiriAtas = new Point(100, -60); //hitamkan area sebelum buat blok baru //Graphics g = this.CreateGraphics(); //SolidBrush hitam = new SolidBrush(Color.Black); int i_max = _terkiniBlok.koordKiriAtas.X + (Blok.PANJANG * OFFSETPIXEL); int j_max = _terkiniBlok.koordKiriAtas.Y + (Blok.LEBAR * OFFSETPIXEL); for (int i = _terkiniBlok.koordKiriAtas.X; i < i_max; i += OFFSETPIXEL) { for (int j = _terkiniBlok.koordKiriAtas.Y; j < j_max; j += OFFSETPIXEL) { if (i >= 0 && j >= 0) { _elemen[j / OFFSETPIXEL, i / OFFSETPIXEL] = HITAM; } //g.FillRectangle(hitam, i, j, OFFSETPIXEL, OFFSETPIXEL); } } //tampilkan blok baru _terkiniBlok.Draw(this); //panggil invalidate Size s = new Size(Blok.PANJANG * OFFSETPIXEL, Blok.LEBAR * OFFSETPIXEL); this.Invalidate(new Rectangle(_terkiniBlok.koordKiriAtas, s)); //hitam.Dispose(); //g.Dispose(); }