Exemple #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="type">Typ klocka, pobrany z BlockTypesEnum</param>
        public Block(ref World _worldRef, Texture2D texture, BLOCKTYPES _type, float rotation)
        {
            // Przypisania
            type = _type;
            worldRef = _worldRef;
            tex = texture;

            // Stworzenie zmiennej do rysowania
            spriteBatch = new SpriteBatch(SharedGraphicsDeviceManager.Current.GraphicsDevice);

            // Stworzenie nowego ciała
            myBody = new Body(worldRef);

            initialRotation= rotation;

            // Odpal funkcję inicjalizującą mnie
            InitializeBlock();
        }
Exemple #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="type">Typ klocka, pobrany z BlockTypesEnum</param>
        public Block(GraphicsDevice graphic, ref World _worldRef, Texture2D texture, BLOCKTYPES _type, float rotation)
        {
            // Przypisania
            type = _type;
            worldRef = _worldRef;
            tex = texture;

            // Stworzenie zmiennej do rysowania
            spriteBatch = new SpriteBatch(graphic);

            // Stworzenie nowego ciała
            myBody = new Body(worldRef);

            initialRotation= rotation;

            heightChecked = false;
            // Odpal funkcję inicjalizującą mnie
            InitializeBlock();
        }
Exemple #3
0
        /// <summary>
        /// Funkcja w zaleznosci od typu klocka tetrisowego, tworzy ciało skłądające się z kwadratów
        /// o odpowiednim ułożeniu
        /// </summary>
        /// <param name="type">Typ Bloku</param>
        private void MakeMe(BLOCKTYPES type)
        {
            // Lista wierzchołków kwadratów
            List<Vertices> rects = new List<Vertices>();

            for (int i = 1; i < 5; i++)
            {
                rects.Add(PolygonTools.CreateRectangle(GameCC.Settings.blockSize, GameCC.Settings.blockSize));

            }

            // Główny switch po typach
            switch (type)
             {
                 case BLOCKTYPES.I_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         rects[0].Translate(new Vector2(0, -0.75f*GameCC.Settings.blockSize));
                         rects[1].Translate(new Vector2(0, -0.25f*GameCC.Settings.blockSize));
                         rects[2].Translate(new Vector2(0, 0.25f*GameCC.Settings.blockSize));
                         rects[3].Translate(new Vector2(0, 0.75f*GameCC.Settings.blockSize));
                        // rects[i - 1].Translate(new Vector2(GameCC.Settings.blockSize/2, (i * 2*GameCC.Settings.blockSize - 2*GameCC.Settings.blockSize)));
                     }

                     break;

                 case BLOCKTYPES.J_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         rects[0].Translate(new Vector2(0, -0.75f * GameCC.Settings.blockSize));
                         rects[1].Translate(new Vector2(0, -0.25f * GameCC.Settings.blockSize));
                         rects[2].Translate(new Vector2(0, 0.25f * GameCC.Settings.blockSize));
                         rects[3].Translate(new Vector2(-0.5f * GameCC.Settings.blockSize, 0.25f * GameCC.Settings.blockSize));
                     }

                     break;
                 case BLOCKTYPES.L_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         rects[0].Translate(new Vector2(0, -0.75f * GameCC.Settings.blockSize));
                         rects[1].Translate(new Vector2(0, -0.25f * GameCC.Settings.blockSize));
                         rects[2].Translate(new Vector2(0, 0.25f * GameCC.Settings.blockSize));
                         rects[3].Translate(new Vector2(0.5f * GameCC.Settings.blockSize, 0.25f * GameCC.Settings.blockSize));

                     }

                     break;
                 case BLOCKTYPES.O_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         rects[0].Translate(new Vector2(-0.25f*GameCC.Settings.blockSize, -0.25f * GameCC.Settings.blockSize));
                         rects[1].Translate(new Vector2(0.25f * GameCC.Settings.blockSize, -0.25f * GameCC.Settings.blockSize));
                         rects[2].Translate(new Vector2(-0.25f*GameCC.Settings.blockSize, 0.25f * GameCC.Settings.blockSize));
                         rects[3].Translate(new Vector2(0.25f*GameCC.Settings.blockSize, 0.25f * GameCC.Settings.blockSize));

                     }
                     break;
                 case BLOCKTYPES.S_SHAPE:

                     for (int i = 1; i < 5; i++)
                     {
                         rects[0].Translate(new Vector2(0, -0.25f * GameCC.Settings.blockSize));
                         rects[1].Translate(new Vector2(0, 0.25f * GameCC.Settings.blockSize));
                         rects[2].Translate(new Vector2(0.5f*GameCC.Settings.blockSize, -0.25f * GameCC.Settings.blockSize));
                         rects[3].Translate(new Vector2(-0.5f*GameCC.Settings.blockSize, 0.25f * GameCC.Settings.blockSize));
                     }

                     break;
                 case BLOCKTYPES.T_SHAPE:

                     for (int i = 1; i < 5; i++)
                     {
                         rects[0].Translate(new Vector2(0, -0.5f * GameCC.Settings.blockSize));
                         rects[1].Translate(new Vector2(0, 0));
                         rects[2].Translate(new Vector2(-0.5f * GameCC.Settings.blockSize, 0));
                         rects[3].Translate(new Vector2(0.5f * GameCC.Settings.blockSize, 0));
                     }

                     break;
                 case BLOCKTYPES.Z_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         rects[0].Translate(new Vector2(0, -0.25f * GameCC.Settings.blockSize));
                         rects[1].Translate(new Vector2(0, 0.25f * GameCC.Settings.blockSize));
                         rects[2].Translate(new Vector2(-0.5f * GameCC.Settings.blockSize, -0.25f * GameCC.Settings.blockSize));
                         rects[3].Translate(new Vector2(0.5f * GameCC.Settings.blockSize, 0.25f * GameCC.Settings.blockSize));
                     }

                     break;
             }
            myBody = BodyFactory.CreateCompoundPolygon(worldRef, rects, 1.0f);
        }
Exemple #4
0
        /// <summary>
        /// Funkcja w zaleznosci od typu klocka tetrisowego, tworzy ciało skłądające się z kwadratów
        /// o odpowiednim ułożeniu
        /// </summary>
        /// <param name="type">Typ Bloku</param>
        private void MakeMe(BLOCKTYPES type)
        {
            // Lista wierzchołków kwadratów
            List<Vertices> rects = new List<Vertices>();

            for (int i = 1; i < 5; i++)
            {
                rects.Add(PolygonTools.CreateRectangle(GameC.Settings.blockSize, GameC.Settings.blockSize));
            }

            // Główny switch po typach
            switch (type)
             {
                 case BLOCKTYPES.I_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         rects[i-1].Translate(new Vector2(0, i *2*GameC.Settings.blockSize));
                     }

                     break;

                 case BLOCKTYPES.J_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         if (i == 4)
                         {
                             rects[i - 1].Translate(new Vector2(-2 * GameC.Settings.blockSize, i * GameC.Settings.blockSize + (2 * GameC.Settings.blockSize)));
                         }
                         else
                             rects[i - 1].Translate(new Vector2(0, i * 2 * GameC.Settings.blockSize));

                     }

                     break;
                 case BLOCKTYPES.L_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         if (i == 4)
                         {
                             rects[i - 1].Translate(new Vector2(2 * GameC.Settings.blockSize, i * GameC.Settings.blockSize + (2 * GameC.Settings.blockSize)));
                         }
                         else
                             rects[i - 1].Translate(new Vector2(0, i * 2 * GameC.Settings.blockSize));

                     }

                     break;
                 case BLOCKTYPES.O_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         if (i == 2)
                             rects[i - 1].Translate(new Vector2(2 * GameC.Settings.blockSize, 0));

                         else if(i == 3)
                             rects[i - 1].Translate(new Vector2(0, 2 * GameC.Settings.blockSize));

                         else if(i == 4)
                             rects[i - 1].Translate(new Vector2(2 * GameC.Settings.blockSize, 2 * GameC.Settings.blockSize));

                     }
                     break;
                 case BLOCKTYPES.S_SHAPE:

                     for (int i = 1; i < 5; i++)
                     {
                         if (i == 2)
                             rects[i - 1].Translate(new Vector2(2 * GameC.Settings.blockSize, 0));

                         else if(i == 3)
                             rects[i - 1].Translate(new Vector2(0, 2 * GameC.Settings.blockSize));

                         else if(i == 4)
                             rects[i - 1].Translate(new Vector2(-2 * GameC.Settings.blockSize, 2 * GameC.Settings.blockSize));

                     }

                     break;
                 case BLOCKTYPES.T_SHAPE:

                     for (int i = 1; i < 5; i++)
                     {
                         if (i == 2)
                             rects[i - 1].Translate(new Vector2(0, 2 * GameC.Settings.blockSize));

                         else if (i == 3)
                             rects[i - 1].Translate(new Vector2(-2 * GameC.Settings.blockSize, 2 * GameC.Settings.blockSize));

                         else if (i == 4)
                             rects[i - 1].Translate(new Vector2(2 * GameC.Settings.blockSize, 2 * GameC.Settings.blockSize));

                     }

                     break;
                 case BLOCKTYPES.Z_SHAPE:
                     for (int i = 1; i < 5; i++)
                     {
                         if (i == 2)
                             rects[i - 1].Translate(new Vector2(0, 2 * GameC.Settings.blockSize));

                         else if (i == 3)
                             rects[i - 1].Translate(new Vector2(2 * GameC.Settings.blockSize, 2 * GameC.Settings.blockSize));

                         else if (i == 4)
                             rects[i - 1].Translate(new Vector2(-2 * GameC.Settings.blockSize, 0));

                     }

                     break;
             }
            myBody = BodyFactory.CreateCompoundPolygon(worldRef, rects, 0.4f);
        }