private void g_main_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { movedEllipse = e.OriginalSource as Ellipse; if (movedEllipse != null) { clickPosition = e.GetPosition(movedEllipse); movedEllipse.CaptureMouse(); } }
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; } }