/* public AbstractBrick(Vector2D positionUL, Vector2D positionUR, Vector2D positionDL,string p)
 {
     this.PositionUL = positionUL;
     this.PositionUR = positionUR;
     this.PositionDL = positionDL;
     this.picture = p;
 }*/
 public AbstractBrick(Vector2D positionUL, Vector2D positionUR, Vector2D positionDL, GameBitmap bmp)
 {
     this.PositionUL = positionUL;
     this.PositionUR = positionUR;
     this.PositionDL = positionDL;
     this.bmp = bmp;
     this.ObjectTextures = null;
 }
        public BigBrick(Vector2D positionVector, int virtualGameWidth, int virtualGameHeight, GameBitmap bmp)
            : base(new Vector2D(positionVector), new Vector2D(positionVector.X + 220, positionVector.Y), //+ висината
            new Vector2D(positionVector.X, positionVector.Y + 100) /* + висината */ ,bmp/*slikata*/)
        {
            this.GameWidth = virtualGameWidth;
            this.GameHeight = virtualGameHeight;
            this.Position = new Vector2D(positionVector);

            ObjectWidth = 220;
            ObjectHeight = 100;
            Velocity = new Vector2D(0, 0);

            this.Health = 200;
            this.DamageEffect = 200;
            this.InitTextures();
        }
        //дечки, тоа што сте го пратиле на конструкторот
        //: base(new Vector2D(positionVector), positionVector + new Vector2D(200, 0), //+ висината
        //positionVector + new Vector2D(0, 80) /* + висината */, p)
        //тука треба да биде како што го поправив, овој + new Vector2D(100, 0) поместува
        //од горното лево теме до горното десно при што поместувањето треба
        //да биде за вектор (должина, 0), затоа тука е 100, не 200.
        public SmallBrick(Vector2D positionVector, int virtualGameWidth, int virtualGameHeight,GameBitmap bmp)
            : base(new Vector2D(positionVector), new Vector2D(positionVector.X + 100, positionVector.Y), //+ ШИРИНА (width)
            new Vector2D(positionVector.X, positionVector.Y + 100) /* + висината (height) */,bmp)
        {
            this.GameWidth = virtualGameWidth;
            this.GameHeight = virtualGameHeight;
            this.Position = new Vector2D(positionVector);

            ObjectWidth = 100;
            ObjectHeight = 100;
            Velocity = new Vector2D(0, 0);

            this.Health = 100;
            this.DamageEffect = 200;
            this.InitTextures();
        }
 /// <summary>
 /// Иницијализирај ги (вчитај ги) сите слики за циглите во меморија. Овој метод е направен
 /// поради оптимизација. Сите цигли од ист тип ќе користат иста слика (бидејќи
 /// сите од ист тип се и со исти димензии нема да има resize).
 /// </summary>
 private void InitBrickTextures()
 {
     BrickTextureRedRectangle = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_red_rectangle.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTextureBlueRectangle = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_blue_rectangle.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTexturePurpleRectangle = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_purple_rectangle.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTextureYellowRectangle = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_yellow_rectangle.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTextureGreyRectangle = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_grey_rectangle.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTextureGreenRectangle = new GameBitmap(RendererCache.GetBitmapFromFile(
               "\\Resources\\Images\\element_green_rectangle.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTextureRedRectangle1 = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_red_square.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTextureBlueRectangle1 = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_blue_square.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTexturePurpleRectangle1 = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_purple_square.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTextureYellowRectangle1 = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_yellow_square.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTextureGreyRectangle1 = new GameBitmap(RendererCache.GetBitmapFromFile(
                "\\Resources\\Images\\element_grey_square.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
     BrickTextureGreenRectangle1 = new GameBitmap(RendererCache.GetBitmapFromFile(
               "\\Resources\\Images\\element_green_square.png"), new Vector2D(0, 0),
                   new Vector2D(200, 0), new Vector2D(0, 100));
 }
        private void CreateBricks()
        {
            Random r = new Random((int)DateTime.Now.Ticks);

            double y = 100;
            GameBitmap BrickTexture = null;

            for (int i = 0; i < 6; i++)
            {
                //int d = r.Next(3);
                int opcija = r.Next(6);
                if ((i % 2) == 0)
                {
                    if (opcija == 0)
                    {
                        BrickTexture = new GameBitmap(BrickTextureRedRectangle.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(200, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Red;
                    }
                    else if (opcija == 1)
                    {
                        BrickTexture = new GameBitmap(BrickTextureBlueRectangle.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(200, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Blue;
                    }
                    else if (opcija == 2)
                    {
                        BrickTexture = new GameBitmap(BrickTexturePurpleRectangle.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(200, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Purple;
                    }
                    else if (opcija == 3)
                    {
                        BrickTexture = new GameBitmap(BrickTextureYellowRectangle.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(200, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Yellow;
                    }
                    else if (opcija == 4)
                    {
                        BrickTexture = new GameBitmap(BrickTextureGreyRectangle.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(200, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Gray;
                    }
                    else
                    {
                        BrickTexture = new GameBitmap(BrickTextureGreenRectangle.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(200, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Green;
                    }

                    BigBrick grb = new BigBrick(new Vector2D(20, 100), Game.VirtualGameWidth,
                    Game.VirtualGameHeight, BrickTexture);

                    double offset = 180;
                    while (offset + grb.ObjectWidth < Game.VirtualGameWidth - 50)
                    {

                        GameBitmap temp = new GameBitmap(BrickTexture.UniqueKey, offset, y, 220,
                       100);
                        temp.ColorLowSpec = BrickTexture.ColorLowSpec;

                        Game.GameObjects.Add(new BigBrick(new Vector2D(offset, y), Game.VirtualGameWidth,
                    Game.VirtualGameHeight, temp));

                        offset += grb.ObjectWidth + 250;
                    }

                    y += grb.ObjectHeight + 100;
                }

                else
                {
                    if (opcija == 0)
                    {
                        BrickTexture = new GameBitmap(BrickTextureRedRectangle1.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(100, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Red;
                    }
                    else if (opcija == 1)
                    {
                        BrickTexture = new GameBitmap(BrickTextureBlueRectangle1.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(100, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Blue;
                    }
                    else if (opcija == 2)
                    {
                        BrickTexture = new GameBitmap(BrickTexturePurpleRectangle1.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(100, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Purple;
                    }
                    else if (opcija == 3)
                    {
                        BrickTexture = new GameBitmap(BrickTextureYellowRectangle1.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(100, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Yellow;
                    }
                    else if (opcija == 4)
                    {
                        BrickTexture = new GameBitmap(BrickTextureGreyRectangle1.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(100, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Gray;
                    }
                    else
                    {
                        BrickTexture = new GameBitmap(BrickTextureGreenRectangle1.UniqueKey, new Vector2D(0, 0),
                            new Vector2D(100, 0), new Vector2D(0, 100));
                        BrickTexture.ColorLowSpec = Color.Green;
                    }

                    SmallBrick grb = new SmallBrick(new Vector2D(20, 100), Game.VirtualGameWidth,
                    Game.VirtualGameHeight, BrickTexture);

                    double offset = 290;
                    while (offset + grb.ObjectWidth < Game.VirtualGameWidth - 50)
                    {

                        GameBitmap temp = new GameBitmap(BrickTexture.UniqueKey, offset, y, 100,
                        100);
                        temp.ColorLowSpec = BrickTexture.ColorLowSpec;

                        Game.GameObjects.Add(new SmallBrick(new Vector2D(offset, y), Game.VirtualGameWidth,
                    Game.VirtualGameHeight, temp));

                        offset += grb.ObjectWidth + 200;
                    }

                    y += grb.ObjectHeight + 140;
                }

            }
        }
 /// <summary>
 /// Исцртување на една слика
 /// </summary>
 /// <param name="?"></param>
 /// <param name="g"></param>
 /// <param name="frameWidth"></param>
 /// <param name="frameHeight"></param>
 public void Render(GameBitmap bitmap, Graphics g, int frameWidth, int frameHeight,
     bool lowSpec)
 {
     List<GameBitmap> list = new List<GameBitmap>(1);
     List<IList<GameBitmap>> list2 = new List<IList<GameBitmap>>();
     list2.Add(list);
     list.Add(bitmap);
     this.Render(list2, g, frameWidth, frameHeight, lowSpec);
 }
 private static bool MenuOptionHover(Point cursor, GameBitmap menuOptionBitmap)
 {
     return (cursor.X >= menuOptionBitmap.PositionUL.X
         && cursor.X <= menuOptionBitmap.PositionUR.X
                     && cursor.Y >= menuOptionBitmap.PositionUL.Y
                     && cursor.Y <= menuOptionBitmap.PositionDR.Y);
 }
 public void ReloadResources()
 {
     Bitmap textMT = StaticStringFactory.CreateOrangeString("Multithreading");
     textMultithreading = new GameBitmap(textMT, (VirtualGameWidth - 400) / 2.0, 5, 400,
         60);
 }