Exemple #1
0
 private void g_main_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     movedEllipse = e.OriginalSource as Ellipse;
     if (movedEllipse != null)
     {
         clickPosition = e.GetPosition(movedEllipse);
         movedEllipse.CaptureMouse();
     }
 }
Exemple #2
0
        private void Ellipse_MouseDown(object sender, MouseButtonEventArgs e)
        {
            clearTB();
            if (changemode)  //換色模式
            {
                double x, y;
                System.Windows.Shapes.Ellipse item = sender as System.Windows.Shapes.Ellipse;
                // item.Fill = new SolidColorBrush(Colors.Red);  //delete later, just for mouse test
                ImageBrush brush = null;
                //image1.Source = new BitmapImage(new Uri("images/dark.png", UriKind.Relative));
                //brush = new ImageBrush(image1.Source);
                //item.Fill = brush;
                y = (double)item.GetValue(Canvas.LeftProperty);
                x = (double)item.GetValue(Canvas.TopProperty);
                x = (x - 40) / 55;
                y = (y - 40) / 55;
                //      lb1.Content = x;
                //     lb2.Content = y;
                if (adv_ChangeMode)
                {
                    switch (orb[(int)x, (int)y])
                    {
                    case 6:
                        heart--;
                        break;

                    case 1:
                        gold--;
                        break;

                    case 2:
                        dark--;
                        break;

                    case 3:
                        fire--;
                        break;

                    case 4:
                        water--;
                        break;

                    case 5:
                        wood--;
                        break;

                    default:
                        //  MessageBox.Show("no NUBER!!!!!");
                        break;
                    }
                    switch (adv_type)
                    {
                    case 1:
                        image1.Source = new BitmapImage(new Uri("images/gold.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        gold++;
                        orb[(int)x, (int)y] = 1;
                        break;

                    case 2:
                        image1.Source = new BitmapImage(new Uri("images/dark.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        dark++;
                        orb[(int)x, (int)y] = 2;
                        break;

                    case 3:
                        image1.Source = new BitmapImage(new Uri("images/fire.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        fire++;
                        orb[(int)x, (int)y] = 3;
                        break;

                    case 4:
                        image1.Source = new BitmapImage(new Uri("images/water.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        water++;
                        orb[(int)x, (int)y] = 4;
                        break;

                    case 5:
                        image1.Source = new BitmapImage(new Uri("images/wood.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        wood++;
                        orb[(int)x, (int)y] = 5;
                        break;

                    case 6:
                        image1.Source = new BitmapImage(new Uri("images/heart.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        heart++;
                        orb[(int)x, (int)y] = 6;
                        break;

                    default:
                        MessageBox.Show("adv no puzzle!!!!!");
                        break;
                    }
                }
                else
                {
                    if (zero[(int)x, (int)y] == 0)
                    {
                        zero[(int)x, (int)y] = 1;
                        switch (orb[(int)x, (int)y])
                        {
                        case 6:
                            heart--;
                            break;

                        case 1:
                            gold--;
                            break;

                        case 2:
                            dark--;
                            break;

                        case 3:
                            fire--;
                            break;

                        case 4:
                            water--;
                            break;

                        case 5:
                            wood--;
                            break;

                        default:
                            //  MessageBox.Show("no NUBER!!!!!");
                            break;
                        }
                        orb[(int)x, (int)y] = 6;
                        heart++;
                    }
                    switch (orb[(int)x, (int)y])
                    {
                    case 6:
                        image1.Source = new BitmapImage(new Uri("images/gold.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        heart--;
                        gold++;
                        orb[(int)x, (int)y] = 1;
                        break;

                    case 1:
                        image1.Source = new BitmapImage(new Uri("images/dark.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        gold--;
                        dark++;
                        orb[(int)x, (int)y] = 2;
                        break;

                    case 2:
                        image1.Source = new BitmapImage(new Uri("images/fire.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        dark--;
                        fire++;
                        orb[(int)x, (int)y] = 3;
                        break;

                    case 3:
                        image1.Source = new BitmapImage(new Uri("images/water.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        fire--;
                        water++;
                        orb[(int)x, (int)y] = 4;
                        break;

                    case 4:
                        image1.Source = new BitmapImage(new Uri("images/wood.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        water--;
                        wood++;
                        orb[(int)x, (int)y] = 5;
                        break;

                    case 5:
                        image1.Source = new BitmapImage(new Uri("images/heart.png", UriKind.Relative));
                        brush         = new ImageBrush(image1.Source);
                        item.Fill     = brush;
                        wood--;
                        heart++;
                        orb[(int)x, (int)y] = 6;
                        break;

                    default:
                        MessageBox.Show("no puzzle!!!!!");
                        break;
                    }
                }
                lbdark.Content  = dark + "顆";
                lbwater.Content = water + "顆";
                lbfire.Content  = fire + "顆";
                lbwood.Content  = wood + "顆";
                lbgold.Content  = gold + "顆";
                lbheart.Content = heart + "顆";
                lbcombo.Content = "最大combo數: " + ((dark / 3) + (water / 3) + (fire / 3) + (wood / 3) + (gold / 3) + (heart / 3));
            }
            else  //轉珠模式
            {
                int time;//轉珠時間
                if (comboTime.SelectionBoxItem.ToString() == "無限制")
                {
                    time = 100;
                }
                else
                {
                    time = int.Parse(comboTime.SelectionBoxItem.ToString());
                }

                //MessageBox.Show(comboTime.SelectionBoxItem.ToString());
                //timer
                timersec          = new DispatcherTimer();
                timersec.Interval = TimeSpan.FromSeconds(time);
                timersec.Tick    += timersec_Tick;
                timersec.Start();
                //
                timershow            = new DispatcherTimer();
                timershow.Interval   = TimeSpan.FromSeconds(1.0);
                timershow.Tick      += timershow_Tick;
                this.lbtimer.Content = "0";
                timershow.Start();
                //

                curmouse = e;

                System.Windows.Shapes.Ellipse item = sender as System.Windows.Shapes.Ellipse;
                CurrentRec = item;           //記錄下要移動的正方形(hittest才可以判斷)
                // item.Fill = new SolidColorBrush(Colors.Red);  //delete later, just for mouse test
                Canvas.SetZIndex(item, 100); //移動的物體總是在最上方
                mouseX = e.GetPosition(null).X;
                mouseY = e.GetPosition(null).Y;
                item.CaptureMouse();
                oldpositionX = (double)item.GetValue(Canvas.LeftProperty);
                oldpositionY = (double)item.GetValue(Canvas.TopProperty);
                //    lb1.Content = oldpositionX;
                //     lb2.Content = oldpositionY;
            }
        }