public void start() { if (gui != null) { gui.RemoveAllWidgets(); } gui = new Gui(SceneManager.instance().window); font = new Font("EightBitDragon-anqx.ttf"); gui.Font = font; //Создание главной панели MainPanel = new Panel(); Layout2d layout2D = new Layout2d("20%", "100%"); MainPanel.SizeLayout = layout2D; MainPanel.Renderer.BackgroundColor = Color.Black; MainPanel.Renderer.BorderColor = Color.White; MainPanel.Renderer.Borders = new Outline(5); gui.Add(MainPanel); font = new Font("EightBitDragon-anqx.ttf"); //Создание панели с кистями. BrushesPanel = new ScrollablePanel(); BrushesPanel.ScrollbarWidth = 8; BrushesPanel.Renderer.BackgroundColor = Color.Black; BrushesPanel.Renderer.BorderColor = Color.White; BrushesPanel.PositionLayout = new Layout2d("0%", "5%"); BrushesPanel.SizeLayout = new Layout2d("100%", "25%"); MainPanel.Add(BrushesPanel); //Кисти. RadioButtonGroup brushes = new RadioButtonGroup(); Dictionary <string, Color> tempColors = BrushManager.instance().getColors(); //получаем список цветов от менеджера кистей int positionOffset = 0; //определяет смещение для кнопки foreach (var colorKey in tempColors.Keys) { positionOffset += 15; RadioButton colorBrush_Btn = new RadioButton(colorKey); //создаем кнопку с именем colorBrush_Btn.Renderer.TextColor = Color.White; colorBrush_Btn.Renderer.TextColorHover = Color.Blue; colorBrush_Btn.PositionLayout = new Layout2d("0%", positionOffset + "%"); //производим смещение colorBrush_Btn.Toggled += (e, a) => { if (colorBrush_Btn.Checked) { BrushManager.instance().changeCurrentColor(colorKey); } }; //привязываем к кнопке метод изменяющий текущий цвет у менеджера кистей BrushesPanel.Add(colorBrush_Btn); //добавляем кнопку на панель } BrushesPanel.Add(brushes); //список слоев ListBox LayerList = new ListBox(); LayerList.Renderer.TextColor = Color.White; layers = new Dictionary <string, Image>(); Layer[] tempLayerList = SceneManager.instance().currentScene.getLayers(); foreach (var lay in tempLayerList) { //добавляем слои в словарь. При выборе значения в списке - значение будет передано словарю в качестве ключа и будет получение изображение, которое будет передано менеджеру кисти //таким образом рисование будет происходить на выбранном пользователем слое layers.Add(lay.name, lay.picture.image); LayerList.AddItem(lay.name, lay.name); } LayerList.ItemSelected += (e, a) => { BrushManager.instance().changeCurrentImage(layers[LayerList.GetSelectedItemId()]); }; LayerList.Renderer.BackgroundColor = Color.Transparent; LayerPanel = new Panel(); LayerPanel.Renderer.BackgroundColor = Color.Black; LayerPanel.Renderer.BorderColor = Color.White; LayerPanel.PositionLayout = new Layout2d("0%", "30%"); LayerPanel.SizeLayout = new Layout2d("100%", "30%"); LayerPanel.Renderer.Borders = new Outline(0, 5, 0, 0); LayerPanel.Add(LayerList); MainPanel.Add(LayerPanel); //Данные производительности performancePanel = new Panel(); performancePanel.Renderer.BackgroundColor = Color.Black; performancePanel.Renderer.BorderColor = Color.White; performancePanel.Renderer.Borders = new Outline(0, 5, 0, 5); performancePanel.PositionLayout = new Layout2d("0%", "50%"); performancePanel.SizeLayout = new Layout2d("100%", "10%"); frameDelay = new TextBox(); frameDelay.Renderer.BackgroundColor = Color.Transparent; frameDelay.Renderer.TextColor = Color.White; performancePanel.Add(frameDelay); MainPanel.Add(performancePanel); //Контроль симуляций (включение/выключение) objectsControlPanel = new ScrollablePanel(); objectsControlPanel.ScrollbarWidth = 8; GameObject[] Scene_objects = SceneManager.instance().GetGameObjects(); positionOffset = 0; foreach (var obj in Scene_objects) { CheckBox gameObjectSwitcher = new CheckBox(); gameObjectSwitcher.Checked = true; gameObjectSwitcher.Text = obj.name; gameObjectSwitcher.Toggled += (e, a) => { obj.toggleActive(); }; gameObjectSwitcher.PositionLayout = new Layout2d("0%", positionOffset + "%"); gameObjectSwitcher.Renderer.TextColor = Color.White; gameObjectSwitcher.Renderer.TextColorHover = Color.Green; gameObjectSwitcher.Renderer.Font = font; positionOffset += 13; objectsControlPanel.Add(gameObjectSwitcher); } objectsControlPanel.Renderer.BackgroundColor = Color.Black; objectsControlPanel.Renderer.BorderColor = Color.White; objectsControlPanel.Renderer.Borders = new Outline(0, 5, 0, 5); objectsControlPanel.PositionLayout = new Layout2d("0%", "60%"); objectsControlPanel.SizeLayout = new Layout2d("100%", "30%"); MainPanel.Add(objectsControlPanel); }