Esempio n. 1
0
        public static void FromTetromino(Tetris tetrisState, Tetromino tetromino, int startAngle, float time)
        {
            for (int x = 0; x < 4; x++)
                for (int y = 0; y < 4; y++)
                {
                    if (tetromino.Structure[x, y])
                    {
                        Tuple<int, int> XY = Tuple.Create(tetromino.X + x, tetromino.Y + y);
                        Transition t;
                        if (tetrisState.Transitions.ContainsKey(XY))
                        {
            #if diagnose
                            Debug.WriteLine("({0},{1}) reused for rotation", XY.Item1, XY.Item2);
            #endif
                            t = tetrisState.Transitions[XY];
                        }
                        else
                        {
            #if diagnose
                            Debug.WriteLine("({0},{1}) Created for rotation", XY.Item1, XY.Item2);
            #endif
                            t = new Transition(tetrisState, XY, time);
                        }

                        t.AddRotation(startAngle, new Vector2(tetromino.X + 2, tetromino.Y + 2));
                    }
                }
        }
Esempio n. 2
0
        public static void FromTetromino(Tetris tetrisState, Tetromino tetromino, int startX, int startY, float time, bool noAdd = false)
        {
            for (int x = 0; x < 4; x++)
                for (int y = 0; y < 4; y++)
                {
                    if (tetromino.Structure[x, y])
                    {
                        Tuple<int, int> XY = Tuple.Create(tetromino.X + x, tetromino.Y + y);
                        Transition t;
                        if (tetrisState.Transitions.ContainsKey(XY))
                            t = tetrisState.Transitions[XY];
                        else
                        {
            #if diagnose
                            Debug.WriteLine("({0},{1}) Created for tet translation", XY.Item1, XY.Item2);
            #endif
                            t = new Transition(tetrisState, XY, time);
                        }

                        t.AddTranslation(new Vector2((tetromino.X - startX), (tetromino.Y - startY)));
                    }
                }
        }
Esempio n. 3
0
 public static void FromRow(Tetris tetrisState, int startRow, int targetRow, float time, bool noAdd = false)
 {
     for (int i = 0; i < Tetris.Width; i++)
     {
         if (tetrisState.Grid[i, targetRow] != Color.Transparent)
         {
             Tuple<int, int> XY = Tuple.Create(i, targetRow);
             Transition t;
             if (tetrisState.Transitions.ContainsKey(XY))
             {
     #if diagnose
                 Debug.WriteLine("({0},{1}) reused for row translation", XY.Item1, XY.Item2);
     #endif
                 t = tetrisState.Transitions[XY];
             }
             else
             {
     #if diagnose
                 Debug.WriteLine("({0},{1}) Created for row translation", XY.Item1, XY.Item2);
     #endif
                 t = new Transition(tetrisState, XY, time);
             }
             t.AddTranslation(new Vector2(0, (targetRow - startRow)));
         }
     }
 }