Esempio n. 1
0
        void render()
        {
            Tetris.Kvadrat[,] ploca = igra.StanjePloce();
            Bitmap   bm = new Bitmap(bit);
            Graphics g  = Graphics.FromImage(bm);

            int w = panel1.Width / (tig.Stupaca + 2);
            int h = panel1.Height / (tig.Redaka + 2);

            for (int r = 0; r < tig.Redaka + 2; ++r)
            {
                for (int s = 0; s < tig.Stupaca + 2; ++s)
                {
                    Brush p = Brushes.White;
                    switch (ploca[r, s])
                    {
                    case Tetris.Kvadrat.OkupiraPrviLik:
                        p = igra.aktivniOblikPrvi.vratiBrush();
                        break;

                    case Tetris.Kvadrat.DeaktiviraniPrvi:
                        p = Brushes.Yellow;
                        break;

                    case Tetris.Kvadrat.OkupiraPrepreka:
                        p = Brushes.DarkGray;
                        break;

                    case Tetris.Kvadrat.OkupiraDrugiLik:
                        p = igra.aktivniOblikDrugi.vratiBrush();
                        break;

                    case Tetris.Kvadrat.DeaktiviraniDrugi:
                        p = Brushes.Yellow;
                        break;

                    case Tetris.Kvadrat.OkupiraNagradni:
                        p = Brushes.Yellow;
                        break;

                    default:
                        break;
                    }

                    if (!new Tetris.Kvadrat[] { Tetris.Kvadrat.OkupiraPrepreka, Tetris.Kvadrat.Slobodan }.Contains(ploca[r, s]))
                    {
                        g.FillRectangle(p, new Rectangle(new Point((s * w) + 1, (r * h) + 1), new Size(w - 3, h - 3)));
                        g.DrawImage(img, new Point(s * w, r * h));
                    }

                    //dio za prepreke
                    if (s != 0 && r != 0 && (r < tig.Redaka + 1) && (s < tig.Stupaca + 1) && tig.Nivoi[igra.trenutni_nivo].Prepreke && ploca[r, s] == Tetris.Kvadrat.OkupiraPrepreka)
                    {
                        g.FillRectangle(p, new Rectangle(new Point((s * w) + 1, (r * h) + 1), new Size(w - 3, h - 3)));
                        g.DrawImage(img, new Point(s * w, r * h));
                    }
                }
            }

            panel1.BackgroundImage = bm;

            render(panelSljedeciPrvi, igra.sljedeciOblikPrvi, Brushes.Yellow);

            //ako imamo dvostruki lik
            if (tig.Nivoi[igra.trenutni_nivo].ViseLikova == true)
            {
                render(panelSljedeciDrugi, igra.sljedeciOblikDrugi, Brushes.DarkGreen);
            }
        }