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()); }
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); }
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]); } }
//-------------------------------------------------------------- // 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; } }
private bool isCollision(Block[,] map, int x, int y) { if(map[x,y] != null) { return true; } return false; }
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); }
public void Update(Block block, bool isShadow) { // Associate the new instances _block = block; _isShadow = isShadow; }