コード例 #1
0
        public static Cell GetCell(this Cell[,] grid, double positionX, double positionY)
        {
            int gridColumn = (int)Math.Floor(positionX / Map.CellSize);
            int gridRow    = (int)Math.Floor(positionY / Map.CellSize);

            return(grid.GetCell(gridColumn, gridRow));
        }
コード例 #2
0
 public static IEnumerable <Cell> GetTouchingCells(this Cell[,] grid, Vector position, double radius)
 {
     return(new[]
     {
         grid.GetCell(position.X + radius, position.Y - radius),
         grid.GetCell(position.X - radius, position.Y + radius),
         grid.GetCell(position.X + radius, position.Y + radius),
         grid.GetCell(position.X - radius, position.Y - radius),
         grid.GetCell(position.X + radius, position.Y),
         grid.GetCell(position.X - radius, position.Y),
         grid.GetCell(position.X, position.Y + radius),
         grid.GetCell(position.X, position.Y - radius)
     }.Distinct());
 }
コード例 #3
0
 public static Cell GetCell(this Cell[,] grid, Vector position)
 {
     return(grid.GetCell(position.X, position.Y));
 }