Beispiel #1
0
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            g = this.CreateGraphics();
            Block clickBlock;
            /*PointF clickLocation = findNearest(e.Location, possibleLocations);
            clickBlock             = new Block(new Pen(new SolidBrush(Color.Maroon)), new RectangleF(clickLocation, new SizeF(500 / 10.0f, 500 / 10.0f)));*/
            clickBlock = findClickedBlock(e.Location, blockList.list);
            blockList.list.Remove(clickBlock);  //changes
            if (e.Button == MouseButtons.Left)
            {
                if (clickAction == 1)
                {
                    clickBlock._isMain = true;  //changes
                    clickBlock.Draw(g); //changes
                    //blockList.DrawBlocksInList(g);
                }
                else if (clickAction == 2)
                    if (clickBlock._Rectangle.Width > clickBlock._Rectangle.Height)    //Better to draw a line that splits the rectangle instead of drawing individual rectangles but then you'd have to think of another way to fill the rects;
                    {
                        Block firstHalfBlock = new Block(pen,
                            new RectangleF(clickBlock._Rectangle.Location,
                            new SizeF(clickBlock._Rectangle.Size.Width / 2, clickBlock._Rectangle.Size.Height)), false); //changed

                        Block secondHalfBlock = new Block(pen,
                            new RectangleF(
                                new PointF(clickBlock._Rectangle.X + clickBlock._Rectangle.Width / 2, clickBlock._Rectangle.Y),
                                clickBlock._Rectangle.Size), false); //changed

                        blockList.list.Add(firstHalfBlock); blockList.list.Add(secondHalfBlock);
                        firstHalfBlock.Draw(g); //changed
                        secondHalfBlock.Draw(g); //changed
                    }
                    else
                    {
                        Block firstHalfBlock = new Block(pen,
                            new RectangleF(clickBlock._Rectangle.Location,
                            new SizeF(clickBlock._Rectangle.Size.Width, clickBlock._Rectangle.Size.Height / 2)), false); //changed

                        Block secondHalfBlock = new Block(pen,
                            new RectangleF(
                                new PointF(clickBlock._Rectangle.X, clickBlock._Rectangle.Y + clickBlock._Rectangle.Height / 2),
                                new SizeF(clickBlock._Rectangle.Size.Width, clickBlock._Rectangle.Size.Height)), false); //changed

                        blockList.list.Add(firstHalfBlock); blockList.list.Add(secondHalfBlock);
                        firstHalfBlock.Draw(g); //changed
                        secondHalfBlock.Draw(g); //changed
                    }
            }
            else if (e.Button == MouseButtons.Right)
            {
                generateDefaultMapList(blockList); //changed
                g.Clear(Color.White);
                blockList.DrawBlocksInList(g); //changed
                this.Invalidate();
            }
        }