Beispiel #1
0
        private void GameSceneClick(object s, GameSceneZoneEventArgs e)
        {
            if (e.Button == MouseButtons.Left)                        // Левый клик
            {
                if (ButtonsSelector.IsSelected())                     // Выбрано здание
                {
                    if (_game.IsCellFree(e.HoverCellX, e.HoverCellY)) // есть здание
                    {
                        _game.Build(e.HoverCellX, e.HoverCellY, ButtonsSelector.ButtonName);
                        ButtonsSelector.Deselect();
                    }
                    else
                    {
                        MessageBox.Show("Здесь нельзя строить");
                    }
                }
                else // Наводим пустой курсор
                {
                    if (_game.IsCellFree(e.HoverCellX, e.HoverCellY) == false) // есть здание
                    {
                        CellSelector.Select(e.HoverCellX, e.HoverCellY);
                    }
                    else
                    {
                        CellSelector.Deselect();
                    }
                }
            }

            if (e.Button == MouseButtons.Right) // Правый клик
            {
                CellSelector.Deselect();
            }
        }
Beispiel #2
0
        private Button ButtonsInitialization(Timer timer, String capture, int x, int y)
        {
            const int buttonSize     = 100;
            Building  buttonBuilding = new Building(capture);
            const int buildingIndent = (buttonSize - CellPainter.CellSize) / 2 + 2;

            Button.Draw drawNormal = (buttonX, buttonY, width, height) =>
            {
                var color = CellPainter.NormalCellColor;
                MainForm.G.FillRectangle(new SolidBrush(color), buttonX - 1, buttonY - 1, width + 2, height + 2);
                BuildingPainter.Draw(buttonBuilding, buttonX + buildingIndent, buttonY + buildingIndent);
            };

            Button.Draw drawHover = (buttonX, buttonY, width, height) =>
            {
                var color = CellPainter.HoverCellColor;
                MainForm.G.FillRectangle(new SolidBrush(color), buttonX, buttonY, width, height);
                BuildingPainter.Draw(buttonBuilding, buttonX + buildingIndent, buttonY + buildingIndent);
            };

            Button.Draw drawActive = (buttonX, buttonY, width, height) =>
            {
                var color = CellPainter.GreenColor;
                MainForm.G.FillRectangle(new SolidBrush(color), buttonX, buttonY, width, height);
                BuildingPainter.Draw(buttonBuilding, buttonX + buildingIndent, buttonY + buildingIndent);
            };

            var button = new Button(_mainForm, timer, X + x, Y + y, buttonSize, buttonSize, drawNormal, drawHover, drawActive);


            button.Click += (s, e) =>
            {
                CellSelector.Deselect();
                ButtonsSelector.Select(capture);
            };

            _mainForm.MouseClick += (s, e) =>
            {
                if (e.Button == MouseButtons.Right)
                {
                    ButtonsSelector.Deselect();
                }
            };

            ButtonsSelector.Deselected += () =>
            {
                button.Deactivate();
            };

            ButtonsSelector.Selected += (buttonName) =>
            {
                if (capture != buttonName)
                {
                    button.Deactivate();
                }
            };

            return(button);
        }