Пример #1
0
        }//mouseEnter

        private void mouseLeave(object sender, MouseEventArgs e)
        {
            int queee = que.Count;

            for (int i = 0; i < queee; i++)
            {
                rektangelInfo rekinfo = new rektangelInfo();
                rekinfo = (rektangelInfo)que.Dequeue();
                Brush     color = rekinfo.br;
                Rectangle rekt  = rekinfo.rekt;
                rekt.Fill = color;
            }
        }//mouseLeave
Пример #2
0
        }//fallDown

        public void connectedColors(ImageBrush pressedColor, double ptX, double ptY)
        {
            Point  pt  = new Point();
            object obj = new object();

            pt.X = ptX;
            pt.Y = ptY;

            if (pt.X < maxX && pt.X > minX && pt.Y < maxY && pt.Y > minY)
            {
                HitTestResult hr = VisualTreeHelper.HitTest(window.canvas1, pt);
                obj = hr.VisualHit;
            }

            if (obj is Rectangle)
            {
                Rectangle  figur              = (Rectangle)obj;
                ImageBrush figurImage         = (ImageBrush)figur.Fill;
                string     pressedImagestring = Convert.ToString(pressedColor.ImageSource);
                string     figurImageString   = Convert.ToString(figurImage.ImageSource);
                if (figurImageString == pressedImagestring)
                {
                    rektangelInfo rekinfo = new rektangelInfo();
                    rekinfo.br   = pressedColor;
                    rekinfo.rekt = figur;
                    que.Enqueue(rekinfo);
                    double top  = Canvas.GetTop(figur);
                    double left = Canvas.GetLeft(figur);
                    string str  = "";
                    str        = figurImageString.Remove(figurImageString.Length - 4, 4) + "H.png";
                    figur.Fill = new ImageBrush(new BitmapImage(new Uri(@str, UriKind.Relative)));
                    connectedColors(pressedColor, pt.X + _rectSize, pt.Y);
                    connectedColors(pressedColor, pt.X - _rectSize, pt.Y);
                    connectedColors(pressedColor, pt.X, pt.Y + _rectSize);
                    connectedColors(pressedColor, pt.X, pt.Y - _rectSize);
                }
            }
        }//connectedColors
Пример #3
0
        }//figur_Click

        private void mouseEnter(object sender, MouseEventArgs e)
        {
            IsHover = true;
            Rectangle  entered      = (Rectangle)sender;
            double     top          = Canvas.GetTop(entered);
            double     left         = Canvas.GetLeft(entered);
            ImageBrush enteredImage = (ImageBrush)entered.Fill;

            connectedColors(enteredImage, left + _rectSize / 2, top + _rectSize / 2);
            if (que.Count < 3)
            {
                object obj   = new object();
                int    queee = que.Count;
                for (int i = 0; i < queee; i++)
                {
                    rektangelInfo rekinfo = new rektangelInfo();
                    rekinfo = (rektangelInfo)que.Dequeue();
                    Brush     color = rekinfo.br;
                    Rectangle rekt  = rekinfo.rekt;
                    rekt.Fill = color;
                    IsHover   = false;
                }
            }
        }//mouseEnter
Пример #4
0
        }//connectedColors

        //tar bort blocken som man håller över och flyttar ner blocken som är över.
        private void figur_Click(object sender, RoutedEventArgs e)
        {
            if (IsHover)
            {
                window.BlockClicks.Visibility = Visibility.Visible;
                window.Points.Content         = scorePoints(que.Count);
                window._time += addTime(que.Count);
            }

            List <Rectangle> columRek = new List <Rectangle>();
            rektangelInfo    rekinfo  = new rektangelInfo();

            for (int i = 0; i < que.Count; i++)
            {
                rekinfo = (rektangelInfo)que.Dequeue();
                Brush     color = rekinfo.br;
                Rectangle rekt  = rekinfo.rekt;
                que.Enqueue(rekinfo);
                window.canvas1.Children.Remove(rekt);
            }
            double rekLeft = 0;
            int    queee   = que.Count;

            while (que.Count != 0)
            {
                for (int i = 0; i < queee; i++)
                {
                    rekinfo = (rektangelInfo)que.Dequeue();
                    Rectangle rekt = rekinfo.rekt;

                    if (columRek.Count == 0 || rekLeft == Canvas.GetLeft(rekt))
                    {
                        rekLeft = Canvas.GetLeft(rekt);
                        columRek.Add(rekt);
                    }
                    else
                    {
                        que.Enqueue(rekinfo);
                    }
                }
                queee = que.Count;
                int    columnCount = columRek.Count;
                double bottom      = 0;
                for (int i = 0; i < columnCount; i++)
                {
                    Rectangle tangel = columRek[i];

                    if (bottom < Canvas.GetTop(tangel))
                    {
                        bottom = Canvas.GetTop(tangel);
                    }
                }
                Point pt = new Point(rekLeft + 1, bottom - _rectSize + 1);
                columRek.Clear();
                while (pt.X < maxX && pt.X > minX && pt.Y < maxY && pt.Y > minY)
                {
                    HitTestResult hr = VisualTreeHelper.HitTest(window.canvas1, pt);

                    if (hr.VisualHit is Rectangle)
                    {
                        Rectangle  re = (Rectangle)hr.VisualHit;
                        Storyboard sb = new Storyboard();
                        fallDown(Canvas.GetTop(re), Canvas.GetLeft(re), sb, re, bottom, 0.15);
                        sb.Begin();
                        bottom -= _rectSize;
                        pt.Y   -= _rectSize;
                    }
                    else
                    {
                        pt.Y -= _rectSize;
                    }
                }
            }

            if (IsHover)
            {
                var mChanger = new System.Threading.Thread(new System.Threading.ThreadStart(Blockclickproperly));
                mChanger.Start();
            }
            IsHover = false;
        }//figur_Click