コード例 #1
0
        public void MoveBlock(EM_MOVE_METHOD moveMethod)
        {
            switch (moveMethod)
            {
            case EM_MOVE_METHOD.DOWN:            //down
                m_block_container.MoveBlock(EM_MOVE_METHOD.DOWN);
                break;

            case EM_MOVE_METHOD.RIGHT:            //right
                m_block_container.MoveBlock(EM_MOVE_METHOD.RIGHT);
                break;

            case EM_MOVE_METHOD.LEFT:            //left
                m_block_container.MoveBlock(EM_MOVE_METHOD.LEFT);
                break;

            case EM_MOVE_METHOD.ROTATE:
                m_block_container.RotateBlock();
                break;

            default:
                break;
            }

            if (m_block_container.IsLowest)
            {
                MigrateNextBlockToContainer();
            }

            m_block_container.CheckRemoveRow();
        }
コード例 #2
0
 public void MoveBlock(EM_MOVE_METHOD moveMethod)
 {
     Move(moveMethod);
     if (IsAbnormal())
     {
         MoveRollback(moveMethod);
         if (IsMoveToLowest(moveMethod))
         {
             IsLowest = true;
         }
     }
     Confirm();
 }
コード例 #3
0
        void SetPositionAccordingMove(EM_MOVE_METHOD moveMethod, int forward)
        {
            switch (moveMethod)
            {
            case EM_MOVE_METHOD.DOWN:
                m_current_block_position_y += forward;
                break;

            case EM_MOVE_METHOD.RIGHT:
                m_current_block_position_x += forward;
                break;

            case EM_MOVE_METHOD.LEFT:
                m_current_block_position_x -= forward;
                break;

            default:
                break;
            }
        }
コード例 #4
0
        void MoveRollback(EM_MOVE_METHOD moveMethod)
        {
            int forward = -1;

            SetPositionAccordingMove(moveMethod, forward);
        }
コード例 #5
0
 static bool IsMoveToLowest(EM_MOVE_METHOD moveMethod)
 {
     return(moveMethod == EM_MOVE_METHOD.DOWN);
 }