//-------------------------------------------------Перемещение камеры( 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); // отрисовка ячеек, что были за границей экрана } }
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())); } }
//----------------------------------------------------------------------------------------------------------------------------------\\ 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; } }