C# Class 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.
Afficher le fichier Open project: vchelaru/FlatRedBall Class Usage Examples

Méthodes publiques

Méthode Description
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

Private Methods

Méthode Description
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

Method Details

Activity() public méthode

Checks if any viewers have changed since last Update, and if so it updates the grid.
public Activity ( ) : bool
Résultat bool

AddViewer() public méthode

Adds an IViewer to this grid.
public AddViewer ( IViewer viewerToAdd ) : void
viewerToAdd IViewer The viewer to add.
Résultat void

BleedDirectlyVisibleToWalls() public méthode

Makes walls visible if they are adjacent to visible non-walls.
public BleedDirectlyVisibleToWalls ( ) : void
Résultat void

BlockWorld() public méthode

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.
Résultat void

ClearBlockedTiles() public méthode

Clears all blocked tiles.
public ClearBlockedTiles ( ) : void
Résultat void

Destroy() public méthode

Destroys the VisibilityGrid - specifically disposing its internal fog texture.
public Destroy ( ) : void
Résultat void

ForceUpdateImageData() public méthode

public ForceUpdateImageData ( ) : void
Résultat void

ForceUpdateVisibilityGrid() public méthode

public ForceUpdateVisibilityGrid ( ) : void
Résultat void

IndexToWorld() public méthode

public IndexToWorld ( int xIndex, int yIndex, float &worldX, float &worldY ) : void
xIndex int
yIndex int
worldX float
worldY float
Résultat void

IsPositionInDirectView() public méthode

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.
Résultat bool

IsRevealed() public méthode

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
Résultat bool

IsRevealedWorld() public méthode

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.
Résultat bool

MakeAllHidden() public méthode

Hides the entire grid (makes it not revealed).
public MakeAllHidden ( ) : void
Résultat void

MakeAllRevealed() public méthode

Reveals the entire grid.
public MakeAllRevealed ( ) : void
Résultat void

RemoveViewer() public méthode

Removes a viewer.
public RemoveViewer ( IViewer viewerToRemove ) : void
viewerToRemove IViewer The argument IViewer to remove.
Résultat void

RevealArea() public méthode

public RevealArea ( int x0, int y0, int x1, int y1 ) : void
x0 int
y0 int
x1 int
y1 int
Résultat void

RevealAreaWorld() public méthode

public RevealAreaWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
worldX1 float
worldY1 float
worldX2 float
worldY2 float
Résultat void

RevealCircle() public méthode

public RevealCircle ( int xIndex, int yIndex, int tileRadius ) : void
xIndex int
yIndex int
tileRadius int
Résultat void

RevealCircleWorld() public méthode

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
Résultat void

RevealLine() public méthode

public RevealLine ( int x0, int y0, int x1, int y1 ) : void
x0 int
y0 int
x1 int
y1 int
Résultat void

RevealLineWorld() public méthode

public RevealLineWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
worldX1 float
worldY1 float
worldX2 float
worldY2 float
Résultat void

UnBlockWorld() public méthode

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
Résultat void

UpdateDisplay() public méthode

public UpdateDisplay ( ) : void
Résultat void

UpdateFog() public méthode

public UpdateFog ( ) : void
Résultat void

UpdateFog() public méthode

public UpdateFog ( bool fullUpdate ) : void
fullUpdate bool
Résultat void

VisibilityGrid() public méthode

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)
Résultat System

WorldToIndex() public méthode

public WorldToIndex ( float worldX, float worldY, float &xIndex, float &yIndex ) : void
worldX float
worldY float
xIndex float
yIndex float
Résultat void

WorldToIndex() public méthode

public WorldToIndex ( float worldX, float worldY, int &xIndex, int &yIndex ) : void
worldX float
worldY float
xIndex int
yIndex int
Résultat void