예제 #1
0
        //-------------------------------------------------Перемещение камеры( SM - Scrolling of Move )-----------------------------------------------------------------\\

        static public void SM_Drawing(ScreenSideofDrawing VectorofScrolling, bool ReDraw)
        {
            /*
             *  Метод перерисовки клеток
             *  при
             *
             *   скроллинге перемещения
             *
             *    ( метод ScrollingMove в классе ScrollPosition )
             *
             */

            byte VoS = (byte)VectorofScrolling;                                        //  Подготовка

            IndexX = ScrollPosition.GetCameraX() - 1;                                  //
            IndexY = ScrollPosition.GetCameraY() - 1;                                  //  метода

            IndexX = IndexX - RowsCount;                                               //  ( задание начальных
            IndexY = IndexY - RowsCount;                                               //   значений переменных


            while (ScrollPosition.GetCameraX() - 1 + RowsCount + 1 > IndexX)            //  Перемещение
            {
                while (ScrollPosition.GetCameraY() - 1 + RowsCount + 1 > IndexY)        //
                                                                                        //  камеры
                {
                    EmptyCells.SM_OffsetingImages(IndexX, IndexY, cellhgh, VoS);        //

                    IndexY++;                                                           //  ( клеток
                }                                                                       //   в обратную
                IndexX++;                                                               //   сторону )
                IndexY = IndexY - (2 * RowsCount) - 1;                                  //
            }


            if (ReDraw == true)                             //  добавление и удаление картинок

            {
                EmptyCells.SM_DeletingCells(RowsCount, VoS);        //  удаление ячеек, что попали за границу экрана

                EmptyCells.SM_AddingCells(RowsCount, VoS, cellhgh); //  отрисовка ячеек, что были за границей экрана
            }
        }
예제 #2
0
        static public void SetCellhghOffsets()
        {
            int ScrnSize;

            if (SystemParameters.PrimaryScreenHeight > SystemParameters.PrimaryScreenWidth)
            {
                ScrnSize = Convert.ToInt32(SystemParameters.PrimaryScreenHeight);
            }
            else
            {
                ScrnSize = Convert.ToInt32(SystemParameters.PrimaryScreenWidth);
            }

            if (cellhghOffsetAprx > 0)
            {
                cellhghOffsetAprx = Convert.ToInt32(cellhgh / (ScrnSize / ScrollPosition.GetAprxOffset()));
            }

            if (cellhghOffsetAprx > 0)
            {
                cellhghOffsetDist = Convert.ToInt32(cellhgh / (ScrnSize / ScrollPosition.GetAprxOffset()));
            }
        }
예제 #3
0
        //----------------------------------------------------------------------------------------------------------------------------------\\

        static public void Drawing(Grid grid)
        {
            /*
             *  Метод отрисовки картинок
             *  ячеек на старте игры
             *  и при скроллинге
             *    приближения и отдаления
             */

            //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\

            if (SystemParameters.PrimaryScreenHeight > SystemParameters.PrimaryScreenWidth)
            {
                cellhgh = Convert.ToInt32(SystemParameters.PrimaryScreenHeight / (5 + ScrollPosition.GetAprx()));  //cellhgh = ширина экрана / (5*scrollposition.aprx)
            }
            else
            {
                cellhgh = Convert.ToInt32(SystemParameters.PrimaryScreenWidth / (5 + ScrollPosition.GetAprx()));
            }

            cellhghVisual = cellhgh - cellhghOffsetDist + cellhghOffsetAprx;

            //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\

            IndexX = ScrollPosition.GetCameraX() - 1;
            IndexY = ScrollPosition.GetCameraY() - 1;

            EmptyCells.SetGridImage(IndexX, IndexY, grid);

            EmptyCells.SetImagePosition(IndexX, IndexY, cellhgh);

            valueconst = 3;

            while (valueconst < ScrollPosition.GetAprx() + 7)
            {
                value     = valueconst;
                RowsCount = (valueconst - 1) / 2;
                IndexX    = IndexX + RowsCount;
                IndexY    = IndexY + RowsCount;
                while (value > 0)
                {
                    EmptyCells.SetGridImage(IndexX, IndexY, grid);

                    EmptyCells.SetImagePosition(IndexX, IndexY, cellhghVisual, RowsCount, valueconst, value, ScreenSideofDrawing.SD_BottomSide);

                    IndexX--;
                    value--;
                }

                IndexY--;
                value = valueconst - 1;

                while (value > 0)
                {
                    EmptyCells.SetGridImage(IndexX, IndexY, grid);

                    EmptyCells.SetImagePosition(IndexX, IndexY, cellhghVisual, RowsCount, valueconst, value, ScreenSideofDrawing.SD_LeftSide);

                    IndexY--;
                    value--;
                }

                IndexX++;
                value = valueconst - 1;

                while (value > 0)
                {
                    EmptyCells.SetGridImage(IndexX, IndexY, grid);

                    EmptyCells.SetImagePosition(IndexX, IndexY, cellhghVisual, RowsCount, valueconst, value, ScreenSideofDrawing.SD_RightSide);

                    IndexX++;
                    value--;
                }

                IndexY++;
                value = valueconst - 2;

                while (value > 0)
                {
                    EmptyCells.SetGridImage(IndexX, IndexY, grid);

                    EmptyCells.SetImagePosition(IndexX, IndexY, cellhghVisual, RowsCount, valueconst, value, ScreenSideofDrawing.SD_TopSide);

                    IndexY++;
                    value--;
                }

                IndexX      = ScrollPosition.GetCameraX() - 1;
                IndexY      = ScrollPosition.GetCameraY() - 1;
                valueconst += 2;
            }
        }