Example #1
0
 public void MoveLeft(Loptica el)
 {
     if (Canvas.GetLeft(rect) - pomeraj > 0)
     {
         Canvas.SetLeft(rect, Canvas.GetLeft(rect) - pomeraj);
     }
     if (!isLaunched)
     {
         if (Canvas.GetLeft(rect) + rect.Width <= Canvas.GetLeft(el.Ell) + el.Ell.Width)
         {
             Canvas.SetLeft(rect, Canvas.GetLeft(rect) + pomeraj);
         }
     }
 }
Example #2
0
 public void MoveRight(double width, Loptica el)
 {
     if (Canvas.GetLeft(rect) + rect.Width + pomeraj <= width)
     {
         Canvas.SetLeft(rect, Canvas.GetLeft(rect) + pomeraj);
     }
     if (!isLaunched)
     {
         if (Canvas.GetLeft(rect) >= Canvas.GetLeft(el.Ell))
         {
             Canvas.SetLeft(rect, Canvas.GetLeft(rect) - pomeraj);
         }
     }
 }
Example #3
0
 public bool LevelUp_Myb(Loptica ball, ref bool rad)
 {
     if (Provera())
     {
         MessageBox.Show($"NIVO {level} USPESNO RESEN", "BRAVO");
         NoviNivo();
         lb.Content = $"{level}";
         player.BaseSet();
         ball.BaseSet(player);
         rad = false;
         return(true);
     }
     return(false);
 }
Example #4
0
        private bool Cosak(Loptica ball, int i, int j)
        {
            Rectangle blok  = bricks[i, j].Blok;
            Ellipse   lopta = ball.Ell;

            double levo_blok = Canvas.GetLeft(bricks[i, j].Blok);
            double gore_blok = Canvas.GetTop(bricks[i, j].Blok);

            double levo_lopta = Canvas.GetLeft(ball.Ell);
            double gore_lopta = Canvas.GetTop(ball.Ell);

            if ((levo_blok + blok.Width <= levo_lopta + lopta.Width && (gore_lopta + lopta.Height > gore_blok || gore_lopta < gore_blok)) || (levo_blok <= levo_lopta + lopta.Width && (gore_lopta + lopta.Height > gore_blok || gore_lopta < gore_blok)))
            {
                if (ball.Ugao >= 0)
                {
                    if (levo_blok + blok.Width <= levo_lopta + lopta.Width)
                    {
                        ball.Odbij_Gore_Dole();
                    }
                    if (levo_blok <= levo_lopta + lopta.Width)
                    {
                        ball.Ugao = 180 + ball.Ugao;
                    }
                }
                else
                {
                    if (levo_blok + blok.Width <= levo_lopta + lopta.Width)
                    {
                        ball.Ugao = 180 + ball.Ugao;
                    }
                    if (levo_blok <= levo_lopta + lopta.Width)
                    {
                        ball.Odbij_Gore_Dole();
                    }
                }
                return(true);
            }
            return(false);
        }
Example #5
0
        public bool Pogodjen(Loptica ball, Igrac igrac, ref int score, Label lb, ref bool rad)
        {
            for (int i = 0; i < bricks.GetLength(0); i++)
            {
                for (int j = 0; j < bricks.GetLength(1); j++)
                {
                    if (bricks[i, j] == null)
                    {
                        continue;
                    }
                    Rectangle blok    = bricks[i, j].Blok;
                    Ellipse   lopta   = ball.Ell;
                    double    circleR = lopta.Width / 2;

                    double levo_blok = Canvas.GetLeft(bricks[i, j].Blok);
                    double gore_blok = Canvas.GetTop(bricks[i, j].Blok);

                    double levo_lopta = Canvas.GetLeft(ball.Ell);
                    double gore_lopta = Canvas.GetTop(ball.Ell);

                    double halfX = blok.Width / 2;
                    double halfY = blok.Height / 2;

                    double lopta_centarX = levo_lopta + lopta.Width / 2;
                    double lopta_centarY = gore_lopta + lopta.Height / 2;

                    double centerX = lopta_centarX - (levo_blok + halfX);
                    double centerY = lopta_centarY - (gore_blok + halfY);

                    double sideX = Math.Abs(centerX) - halfX;
                    double sideY = Math.Abs(centerY) - halfY;

                    if (sideX < 0 || sideY < 0)
                    {
                        if (Math.Abs(sideX) < circleR && sideY < 0)
                        {
                            ball.Odbij_Desno_Levo();

                            if (bricks[i, j].Pogodjen(ref score, lb))
                            {
                                cnv.Children.Remove(bricks[i, j].Blok);
                                bricks[i, j] = null;
                            }
                            bool p = false;
                            ball.Pomeraj(cnv.Width, cnv.Height, igrac, ref p);
                            return(LevelUp_Myb(ball, ref rad));
                        }
                        else if (Math.Abs(sideY) < circleR && sideX < 0)
                        {
                            ball.Odbij_Gore_Dole();

                            if (bricks[i, j].Pogodjen(ref score, lb))
                            {
                                cnv.Children.Remove(bricks[i, j].Blok);
                                bricks[i, j] = null;
                            }
                            bool p = false;
                            ball.Pomeraj(cnv.Width, cnv.Height, igrac, ref p);
                            return(LevelUp_Myb(ball, ref rad));
                        }
                    }
                    if (sideX * sideX + sideY * sideY < circleR * circleR)
                    {
                        ball.Odbij_Gore_Dole();
                        ball.Odbij_Desno_Levo();

                        if (bricks[i, j].Pogodjen(ref score, lb))
                        {
                            cnv.Children.Remove(bricks[i, j].Blok);
                            bricks[i, j] = null;
                        }
                        bool p = false;
                        ball.Pomeraj(cnv.Width, cnv.Height, igrac, ref p);
                        return(LevelUp_Myb(ball, ref rad));
                    }

                    /*if (gore_blok + blok.Height >= gore_lopta && gore_blok <= gore_lopta + lopta.Height)
                     * {
                     *  //MessageBox.Show("cao");
                     *  if (levo_blok + blok.Width >= levo_lopta && levo_blok <= levo_lopta + lopta.Width)
                     *  {
                     *      //if (!Cosak(ball, i, j))
                     *      {
                     *          if (levo_blok + blok.Width <= levo_lopta + lopta.Width || levo_lopta < levo_blok)
                     *              ball.Odbij_Desno_Levo();
                     *          if (gore_lopta + lopta.Height > gore_blok || gore_lopta < gore_blok)
                     *              ball.Odbij_Gore_Dole();
                     *      }
                     *
                     *      double dy = gore_blok - gore_lopta;
                     *      dy = Math.Abs(dy);
                     *      if(dy<blok.Height-3)
                     *      {
                     *          ball.Odbij_Desno_Levo();
                     *      }
                     *      else
                     *      {
                     *          if (gore_lopta + lopta.Height > gore_blok || gore_lopta < gore_blok)
                     *              ball.Odbij_Gore_Dole();
                     *      }
                     *
                     *      //if (gore_lopta + lopta.Height > gore_blok || gore_lopta < gore_blok)
                     *          ball.Odbij_Gore_Dole();
                     *      else
                     *      if (levo_blok + blok.Width <= levo_lopta + lopta.Width || levo_lopta < levo_blok)
                     *          ball.Odbij_Desno_Levo();
                     *
                     *
                     *
                     *      if (bricks[i, j].Pogodjen())
                     *      {
                     *          cnv.Children.Remove(bricks[i, j].Blok);
                     *          bricks[i, j] = null;
                     *      }
                     *      bool p = false;
                     *      ball.Pomeraj(cnv.Width,cnv.Height,igrac,ref p);
                     *      return;
                     *  }
                     * }*/
                }
            }
            return(false);
        }