void airstrike_Click(object sender, RoutedEventArgs e) { Proyectil p; for (int i = 0; i < 350; i = i + 100) { p = new Proyectil(-100, 0, turnos.Peek().CanvasXPos + i, 10, 40, 40); Image img = new Image(); var image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri(System.IO.Directory.GetCurrentDirectory() + "\\..\\..\\..\\gifs\\bazooka.gif"); image.EndInit(); ImageBehavior.SetAnimatedSource(img, image); Canvas.SetTop(img, p.CanvasPosY); Canvas.SetLeft(img, p.CanvasPosX); MyCanvas.Children.Add(img); proyectiles.Add(new Tuple<Image, Proyectil>(img, p)); } }
void ActualizarBazooka(object sender, EventArgs e) { var mousePosX = Mouse.GetPosition(MyCanvas).X; var mousePosY = Mouse.GetPosition(MyCanvas).Y -80; var bazookaPosX = turnos.Peek().CanvasXPos+15; var bazookaPosY = turnos.Peek().CanvasYPos-30; // Angulo de ataque var controller = ImageBehavior.GetAnimationController(turnos.Peek().icono); var angle = Math.Atan((mousePosY - bazookaPosY) / (mousePosX - bazookaPosX)) + (Math.PI/2); // va de 0 a Pi var frame = 0.0; if (mousePosX < bazookaPosX) { frame = (angle * 31) / (Math.PI); ScaleTransform scale = new ScaleTransform(); scale.ScaleX = 1; scale.CenterX = 45; TransformGroup myTransformGroup = new TransformGroup(); myTransformGroup.Children.Add(scale); turnos.Peek().icono.RenderTransform = myTransformGroup; controller.GotoFrame((int)frame); } else { ScaleTransform scale = new ScaleTransform(); scale.ScaleX = -1; scale.CenterX = 45; TransformGroup myTransformGroup = new TransformGroup(); myTransformGroup.Children.Add(scale); turnos.Peek().icono.RenderTransform = myTransformGroup; frame = -1*(((angle * 31) / (Math.PI)) - 14) + 17; controller.GotoFrame((int)frame); } //Barra de potencia var speedx = mousePosX - bazookaPosX; var speedy = mousePosY - bazookaPosY; var speed = Math.Sqrt(Math.Pow(speedx, 2) + Math.Pow(speedy, 2)); var barraPotencia = (160.0/speed)*950 ; //lb.Content = barraPotencia; if (barraPotencia >= 33) { potencia.Margin = new Thickness(33, 600, barraPotencia, 10); } //lb.Content = "frame = " + frame; if (Mouse.LeftButton == MouseButtonState.Pressed && proyectiles.Count == 0){ potencia.Visibility = System.Windows.Visibility.Hidden; potencia2.Visibility = System.Windows.Visibility.Hidden; Proyectil p = new Proyectil(speedx, speedy, turnos.Peek().CanvasXPos, turnos.Peek().CanvasYPos, 90, 40); Image img = new Image(); var image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri(System.IO.Directory.GetCurrentDirectory() + "\\..\\..\\..\\gifs\\bazooka.gif"); image.EndInit(); ImageBehavior.SetAnimatedSource(img, image); Canvas.SetTop(img, p.CanvasPosY); Canvas.SetLeft(img, p.CanvasPosX); MyCanvas.Children.Add(img); proyectiles.Add(new Tuple<Image, Proyectil>(img, p)); BazookaControl.Stop(); } }