//============================================= //создать новую фигуру на базе фигуры из очереди (взять из нее каркас и типы камней) //queueFigura - каркас + типы квадратов (без графики) public void Create_Figura(OneQueueFigura queueFigura, Transform parent) { carcas_type = queueFigura.carcas_type; carcas = queueFigura.carcas; //myUtils.console_log(carcas_type, carcas); //создание фигуры по центру плашки Vector2 min = new Vector2((float)carcas.getMinD(0), (float)carcas.getMinD(1)); Vector2 pt_center = new Vector2((float)GameConstants.AREA_WIDTH / 2f, -min.y + (float)GameConstants.AREA_VISUAL_HEIGHT); for (int i = 0; i < carcas.numPoints; i++) { int type = queueFigura.squaresList[i].type; float dx = GameConstants.AREA_START.x + ((float)carcas.coords[i, 0] + pt_center.x + 0.5f) * GameConstants.AREA_SQUARE_SIZE.x; float dy = GameConstants.AREA_START.y + ((float)carcas.coords[i, 1] + pt_center.y + 0.5f) * GameConstants.AREA_SQUARE_SIZE.y; OneSquare square = myUtils.create_OneSquare(new Vector3(dx, dy, 0f), parent, GameConstants.AREA_SQUARE_SCALE, type, GameConstants.sANIM_BASE); squaresList.Add(square); } coords = new Vector2Int( Mathf.RoundToInt(pt_center.x), Mathf.RoundToInt(pt_center.y) ); delta = new Vector2(0f, 0f); last_move_time = 0f; rotate_index = 0; flagFastSpeed = false; figure_area_acept_time = 0; anti_click_space_first_frame = true; }
//========================================= //добавить случайную фигуру в конец очереди public void Add_Random_Figura() { CarcasType carcase_type = FiguraCarcasesList.get_RandomCarcasType(); //myUtils.console_log("random carcase_type =", carcase_type); Vector3 crd = new Vector3(0f, -top_point_y - GameConstants.QUEUE_START.y - (float)figures_Queue.Count * GameConstants.QUEUE_ITEM_HEIGHT, 0f); OneQueueFigura qfigura = new OneQueueFigura(); Transform parent = GameObject.FindGameObjectWithTag("queue_figures").GetComponent <Transform>(); qfigura.Create_Queue_Figura(carcase_type, parent); qfigura.MoveTo(crd); figures_Queue.Add(qfigura); }
//========================================= //получить первую фигуру в очереди public OneQueueFigura get_FirstFigure() { OneQueueFigura figura = figures_Queue[0]; return(figura); }