Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        //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();
        }