Example #1
0
                private bool IsAdjacencyBlocked(uint x, uint y, uint width, uint height, Direction?direction)
                {
                    /** Precondition: IsHittingEdge was already called to this point */
                    switch (direction)
                    {
                    case Direction.LEFT:
                        return(blockMask.GetColumn(x - 1, y, y + height - 1, Bitmask.CheckType.ANY_BLOCKED));

                    case Direction.UP:
                        return(blockMask.GetRow(x, x + width - 1, y - 1, Bitmask.CheckType.ANY_BLOCKED));

                    case Direction.RIGHT:
                        return(blockMask.GetColumn(x + width, y, y + height - 1, Bitmask.CheckType.ANY_BLOCKED));

                    case Direction.DOWN:
                        return(blockMask.GetRow(x, x + width - 1, y + height, Bitmask.CheckType.ANY_BLOCKED));

                    default:
                        return(true);
                    }
                }