예제 #1
0
        static void TickHandler(object sender, EventArgs e)
        {
            if (Figure == null)
            {
                Scores += Parameters.LineBreak();

                switch (NextF)
                {
                case 0: Figure = new LineFigure(); break;

                case 1: Figure = new TriangleFigure(); break;

                case 2: Figure = new SquareFigure(); break;

                case 3:
                    if (NextFRlyPos == 1)
                    {
                        Figure = new FourLeftFigure();
                    }
                    else
                    {
                        Figure = new FourRightFigure();
                    }
                    break;

                case 4: Figure = new HorseFigure(NextFRlyPos); break;
                }
                if ((NextFRlyPos = rnd.Next() % 2) == 0)
                {
                    NextFRlyPos = -1;
                }
                else
                {
                    NextFRlyPos = 1;
                }
                NextF = rnd.Next() % 5;
                MiniPics.ShowJpg(NextF, NextFRlyPos);
            }
            else
            {
                if (!Figure.TickAction())
                {
                    Figure = null;
                }
            }
            Scores += WaitTime / 100;
            Test.ScoreSet(Scores);
        }
예제 #2
0
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics gr = e.Graphics;
            Pen      p = new Pen(Color.Black, 1);         // цвет линии и ширина
            int      j; int i;
            int      plus      = 300 / Parameters.vpravo; //приращение для нашей сетки.
            int      MaxVnizPx = 40 + Parameters.vniz * plus;

            //Прорисовка сетки
            if (Parameters.GridView)
            {
                //Вертикальныые линии сетки:
                for (i = 20 + plus; i <= 320 - plus; i += plus)
                {
                    gr.DrawLine(p, i, 40, i, MaxVnizPx); // вертикальная
                }
                //Горизонтальные линии сетки:
                for (j = 40 + plus; j <= MaxVnizPx - plus; j += plus)
                {
                    gr.DrawLine(p, 20, j, 20 + plus * Parameters.vpravo, j); // горизонтальная
                }
            }
            //Прорисовка рамки
            gr.DrawRectangle(p, 20, 40, plus * Parameters.vpravo, MaxVnizPx - 40);

            // Тут рисуем все  квадратики, которые закрашены.
            if (Program.time.Enabled)
            {
                for (i = 1; i <= Parameters.vniz; i++)
                {
                    for (j = 0; j < Parameters.vpravo; j++)
                    {
                        if (Parameters.CellInfo(i, j) != 0 && Parameters.CellInfo(i, j) != 255)
                        {
                            FillSquare(ref e, ref gr, i - 1, j);
                        }
                    }
                }
            }
            if (Program.time.Enabled)
            {
                MiniPics.ShowJpg(Program.NextF, Program.NextFRlyPos);
            }
            gr.Dispose();// освобождаем все ресурсы, связанные с отрисовкой
        }