コード例 #1
0
ファイル: Piece.cs プロジェクト: lea-and-anthony/Tetrim
 public Piece(int x , int y, int generatorKey)
 {
     _shape = pickShape(randomGenerator, generatorKey);
     _color = pickColor(_shape);
     _blocks = new Block[Constants.BlockPerPiece];
     placeBlockAccordingToShape(x+1, y+2);
     _angle = 0;
     turnPieceAccordingToAngle(null, pickAngle());
 }
コード例 #2
0
ファイル: Piece.cs プロジェクト: lea-and-anthony/Tetrim
 public Piece(Shape shape, uint angle, Grid grid)
 {
     _shape = shape;
     _color = pickColor (_shape);
     _blocks = new Block[Constants.BlockPerPiece];
     placeBlockAccordingToShape((Constants.GridSizeXmin + Constants.GridSizeXmax) / 2, Constants.GridSizeYmax);
     _angle = 0;
     turnPieceAccordingToAngle(grid, angle);
     movePieceUp(Constants.GridSizeYmax);
 }
コード例 #3
0
ファイル: Piece.cs プロジェクト: lea-and-anthony/Tetrim
 public Piece(Piece piece)
 {
     _shape = piece._shape;
     _color = piece._color;
     _blocks = new Block[Constants.BlockPerPiece];
     _angle = piece._angle;
     for (uint i = 0 ; i < Constants.BlockPerPiece ; i++)
     {
         _blocks[i] = new Block(piece._blocks[i]);
     }
 }
コード例 #4
0
ファイル: Piece.cs プロジェクト: lea-and-anthony/Tetrim
 //--------------------------------------------------------------
 // PRIVATE METHODS
 //--------------------------------------------------------------
 private void placeBlockAccordingToShape(int x, int y)
 {
     switch (_shape)
     {
     case Shape.I:
         _blocks [0] = new Block (x, y, _color);
         _blocks [1] = new Block (x - 1, y, _color);
         _blocks [2] = new Block (x + 1, y, _color);
         _blocks [3] = new Block (x + 2, y, _color);
         break;
     case Shape.J:
         _blocks [0] = new Block (x , y, _color);
         _blocks [1] = new Block (x - 1, y, _color);
         _blocks [2] = new Block (x + 1, y, _color);
         _blocks [3] = new Block (x + 1, y - 1, _color);
         break;
     case Shape.L:
         _blocks [0] = new Block (x , y, _color);
         _blocks [1] = new Block (x - 1, y, _color);
         _blocks [2] = new Block (x - 1, y - 1, _color);
         _blocks [3] = new Block (x + 1, y, _color);
         break;
     case Shape.O:
         _blocks [0] = new Block (x , y, _color);
         _blocks [1] = new Block (x + 1, y, _color);
         _blocks [2] = new Block (x, y - 1, _color);
         _blocks [3] = new Block (x + 1, y - 1, _color);
         break;
     case Shape.S:
         _blocks [0] = new Block (x , y, _color);
         _blocks [1] = new Block (x + 1, y, _color);
         _blocks [2] = new Block (x, y - 1, _color);
         _blocks [3] = new Block (x - 1, y - 1, _color);
         break;
     case Shape.T:
         _blocks [0] = new Block (x , y, _color);
         _blocks [1] = new Block (x - 1, y, _color);
         _blocks [2] = new Block (x + 1, y, _color);
         _blocks [3] = new Block (x, y - 1, _color);
         break;
     case Shape.Z:
         _blocks [0] = new Block (x , y, _color);
         _blocks [1] = new Block (x - 1, y, _color);
         _blocks [2] = new Block (x, y - 1, _color);
         _blocks [3] = new Block (x + 1, y - 1, _color);
         break;
     }
 }
コード例 #5
0
ファイル: Piece.cs プロジェクト: lea-and-anthony/Tetrim
 private bool isCollision(Block[,] map, int x, int y)
 {
     if(map[x,y] != null)
     {
         return true;
     }
     return false;
 }
コード例 #6
0
ファイル: BlockView.cs プロジェクト: lea-and-anthony/Tetrim
        private bool _isShadow; // true if the block is a shadow at the bottom of the grid

        #endregion Fields

        #region Constructors

        //--------------------------------------------------------------
        // CONSTRUCTORS
        //--------------------------------------------------------------
        public BlockView(Block block, bool isShadow)
        {
            Update(block, isShadow);
        }
コード例 #7
0
ファイル: BlockView.cs プロジェクト: lea-and-anthony/Tetrim
 public void Update(Block block, bool isShadow)
 {
     // Associate the new instances
     _block = block;
     _isShadow = isShadow;
 }