Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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();

            }
        }