C# Класс FlatRedBall.AI.LineOfSight.VisibilityGrid

Represents a 2D grid of cells which identify what can be seen given a list of IViewers. This supports line of sight.
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
Activity ( ) : bool

Checks if any viewers have changed since last Update, and if so it updates the grid.

AddViewer ( IViewer viewerToAdd ) : void

Adds an IViewer to this grid.

BleedDirectlyVisibleToWalls ( ) : void

Makes walls visible if they are adjacent to visible non-walls.

BlockWorld ( float worldX, float worldY ) : void

Adds a block (or wall) at a given world location.

ClearBlockedTiles ( ) : void

Clears all blocked tiles.

Destroy ( ) : void

Destroys the VisibilityGrid - specifically disposing its internal fog texture.

ForceUpdateImageData ( ) : void
ForceUpdateVisibilityGrid ( ) : void
IndexToWorld ( int xIndex, int yIndex, float &worldX, float &worldY ) : void
IsPositionInDirectView ( IViewer viewer, Microsoft.Xna.Framework.Vector3 &targetPosition ) : bool

Returns whether a given world position is in view of a given viewer.

IsRevealed ( int xIndex, int yIndex ) : bool

Returns whether a given X and Y index is revealed.

IsRevealedWorld ( float worldX, float worldY ) : bool

Returns whether a given world coordinate is relealed.

MakeAllHidden ( ) : void

Hides the entire grid (makes it not revealed).

MakeAllRevealed ( ) : void

Reveals the entire grid.

RemoveViewer ( IViewer viewerToRemove ) : void

Removes a viewer.

RevealArea ( int x0, int y0, int x1, int y1 ) : void
RevealAreaWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
RevealCircle ( int xIndex, int yIndex, int tileRadius ) : void
RevealCircleWorld ( float worldX, float worldY, float worldRadius ) : void

Reveals a circle around the given world coordinate using a given radius

RevealLine ( int x0, int y0, int x1, int y1 ) : void
RevealLineWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
UnBlockWorld ( float X, float Y ) : void

Unblocks a tile that was previously marked as a world blocker

UpdateDisplay ( ) : void
UpdateFog ( ) : void
UpdateFog ( bool fullUpdate ) : void
VisibilityGrid ( float xSeed, float ySeed, float gridSpacing, int numberOfXTiles, int numberOfYTiles ) : System

Instantiates a new VisibilityGrid.

WorldToIndex ( float worldX, float worldY, float &xIndex, float &yIndex ) : void
WorldToIndex ( float worldX, float worldY, int &xIndex, int &yIndex ) : void

Приватные методы

Метод Описание
CalculateFogColorByDistance ( float x, float y, byte alpha ) : byte
CalculateFogColorByDistance ( float x, float y, byte alpha, IViewer viewer ) : byte
UpdateRevealedFromViewers ( ) : void
UpdateViewersLocalVisibilityGrid ( IViewer viewer, ViewerInformation viewerInformation ) : void

Описание методов

Activity() публичный Метод

Checks if any viewers have changed since last Update, and if so it updates the grid.
public Activity ( ) : bool
Результат bool

AddViewer() публичный Метод

Adds an IViewer to this grid.
public AddViewer ( IViewer viewerToAdd ) : void
viewerToAdd IViewer The viewer to add.
Результат void

BleedDirectlyVisibleToWalls() публичный Метод

Makes walls visible if they are adjacent to visible non-walls.
public BleedDirectlyVisibleToWalls ( ) : void
Результат void

BlockWorld() публичный Метод

Adds a block (or wall) at a given world location.
public BlockWorld ( float worldX, float worldY ) : void
worldX float The world coordinate X.
worldY float The world coordinate Y.
Результат void

ClearBlockedTiles() публичный Метод

Clears all blocked tiles.
public ClearBlockedTiles ( ) : void
Результат void

Destroy() публичный Метод

Destroys the VisibilityGrid - specifically disposing its internal fog texture.
public Destroy ( ) : void
Результат void

ForceUpdateImageData() публичный Метод

public ForceUpdateImageData ( ) : void
Результат void

ForceUpdateVisibilityGrid() публичный Метод

public ForceUpdateVisibilityGrid ( ) : void
Результат void

IndexToWorld() публичный Метод

public IndexToWorld ( int xIndex, int yIndex, float &worldX, float &worldY ) : void
xIndex int
yIndex int
worldX float
worldY float
Результат void

IsPositionInDirectView() публичный Метод

Returns whether a given world position is in view of a given viewer.
public IsPositionInDirectView ( IViewer viewer, Microsoft.Xna.Framework.Vector3 &targetPosition ) : bool
viewer IViewer The viewer to check visibility for.
targetPosition Microsoft.Xna.Framework.Vector3 The world coordinates.
Результат bool

IsRevealed() публичный Метод

Returns whether a given X and Y index is revealed.
public IsRevealed ( int xIndex, int yIndex ) : bool
xIndex int The x index
yIndex int The y index
Результат bool

IsRevealedWorld() публичный Метод

Returns whether a given world coordinate is relealed.
public IsRevealedWorld ( float worldX, float worldY ) : bool
worldX float The world x coordinate.
worldY float The world y coordinate.
Результат bool

MakeAllHidden() публичный Метод

Hides the entire grid (makes it not revealed).
public MakeAllHidden ( ) : void
Результат void

MakeAllRevealed() публичный Метод

Reveals the entire grid.
public MakeAllRevealed ( ) : void
Результат void

RemoveViewer() публичный Метод

Removes a viewer.
public RemoveViewer ( IViewer viewerToRemove ) : void
viewerToRemove IViewer The argument IViewer to remove.
Результат void

RevealArea() публичный Метод

public RevealArea ( int x0, int y0, int x1, int y1 ) : void
x0 int
y0 int
x1 int
y1 int
Результат void

RevealAreaWorld() публичный Метод

public RevealAreaWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
worldX1 float
worldY1 float
worldX2 float
worldY2 float
Результат void

RevealCircle() публичный Метод

public RevealCircle ( int xIndex, int yIndex, int tileRadius ) : void
xIndex int
yIndex int
tileRadius int
Результат void

RevealCircleWorld() публичный Метод

Reveals a circle around the given world coordinate using a given radius
public RevealCircleWorld ( float worldX, float worldY, float worldRadius ) : void
worldX float The world coordinate X
worldY float The world coordinate Y
worldRadius float The radius in world units
Результат void

RevealLine() публичный Метод

public RevealLine ( int x0, int y0, int x1, int y1 ) : void
x0 int
y0 int
x1 int
y1 int
Результат void

RevealLineWorld() публичный Метод

public RevealLineWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
worldX1 float
worldY1 float
worldX2 float
worldY2 float
Результат void

UnBlockWorld() публичный Метод

Unblocks a tile that was previously marked as a world blocker
public UnBlockWorld ( float X, float Y ) : void
X float The X coordinate of the tile
Y float The Y coordinate of the tile
Результат void

UpdateDisplay() публичный Метод

public UpdateDisplay ( ) : void
Результат void

UpdateFog() публичный Метод

public UpdateFog ( ) : void
Результат void

UpdateFog() публичный Метод

public UpdateFog ( bool fullUpdate ) : void
fullUpdate bool
Результат void

VisibilityGrid() публичный Метод

Instantiates a new VisibilityGrid.
public VisibilityGrid ( float xSeed, float ySeed, float gridSpacing, int numberOfXTiles, int numberOfYTiles ) : System
xSeed float The absolute x coordinate seed value.
ySeed float The absolute y coordinate seed value.
gridSpacing float The amount of distance in world coordinates between rows and columns.
numberOfXTiles int Number of tiles wide (on the X axis)
numberOfYTiles int Number of tiles heigh (on the Y axis)
Результат System

WorldToIndex() публичный Метод

public WorldToIndex ( float worldX, float worldY, float &xIndex, float &yIndex ) : void
worldX float
worldY float
xIndex float
yIndex float
Результат void

WorldToIndex() публичный Метод

public WorldToIndex ( float worldX, float worldY, int &xIndex, int &yIndex ) : void
worldX float
worldY float
xIndex int
yIndex int
Результат void