Gondwana Game Engine
Gondwana is a cross-platform 2.5D game and rendering engine written in C#/.NET 8. It provides fine-grained control over rendering, timing, and scene composition, with built-in support for parallax, z-ordering, pixel overhang, collision detection, and particle effects. Gondwana targets desktop, mobile, and web platforms using SkiaSharp for graphics and NAudio for sound.
Loading...
Searching...
No Matches
Gondwana.Drawing.Sprites.Sprite Class Reference
Inheritance diagram for Gondwana.Drawing.Sprites.Sprite:
Gondwana.Drawing.Tile Gondwana.Drawing.IDrawable

Public Member Functions

Vector2 GetPosition ()
void SetPosition (Vector2 pos)
override void Dispose ()
 Releases all resources used by the tile, including removing it from animation tracking, disposing its animator, and clearing collision references.
void ResizeTo (Size targetSize, float durationSeconds)
 Smoothly resize the sprite to an absolute pixel size over the given duration (seconds).
void ScaleBy (float factor, float durationSeconds)
 Scale to a factor relative to current RenderSize over the given duration (seconds). factor > 1 grows; factor < 1 shrinks.
void CancelResize ()
 Cancel any in-progress resize.
Public Member Functions inherited from Gondwana.Drawing.Tile
virtual RectangleF GetDrawLocationScreen (View view)
 Converts the tile's world location to screen coordinates based on the specified view.
virtual RectangleF GetCollisionAreaScreen (View view)
 Converts the tile's collision area from world coordinates to screen coordinates.
virtual void Draw (BackbufferBase backbuffer, RectangleF destRectScreen)
 Renders the tile to the specified backbuffer at the given screen location.
int CompareTo (Tile? tile)
 Compares this tile to another tile for sorting purposes. Fixed-position tiles are rendered first, followed by tiles sorted by Y-coordinate, Z-order, and X-coordinate.

Properties

MovementSpace PositionSpace [get]
MovementController Movement [get]
HorizontalAlignment HorizAlign [get, set]
VerticalAlignment VertAlign [get, set]
int NudgeX [get, set]
int NudgeY [get, set]
Size RenderSize [get, set]
override Rectangle DrawLocationWorld [get]
override bool IsPositionFixed [get]
override PointF SceneLayerCoordinates [get]
override SceneLayer SceneLayer [get]
virtual new int ZOrder [get, set]
 Gets the z-order of the element, which determines its visual stacking order relative to other elements. Higher z-order values are drawn on top of lower ones.
Properties inherited from Gondwana.Drawing.Tile
static List< TileTilesAnimating = new() [get]
 Gets the collection of all tiles that are currently animating in the scene. Used to track and update animated tiles during the render cycle.
bool IsPositionFixed [get]
 Gets a value indicating whether the tile's position is fixed in screen space (e.g., UI elements) or moves with the world (e.g., game objects).
Rectangle DrawLocationWorld [get]
 Gets the tile's draw location in world coordinates as a rectangle. This represents the area occupied by the tile in the game world.
PointF SceneLayerCoordinates [get]
 Gets the tile's position within its scene layer using the layer's coordinate system.
SceneLayer SceneLayer [get]
 Gets the scene layer that contains this tile.
Guid Id = Guid.NewGuid() [get]
 Gets the unique identifier for this tile instance.
string? Nickname [get, set]
 Gets or sets an optional friendly name for the tile, useful for debugging and identification.
virtual bool Visible [get, set]
 Gets or sets a value indicating whether the tile is visible and should be rendered. Setting this property triggers a refresh of the tile's screen area.
virtual int ZOrder [get, set]
 Gets or sets the Z-order (depth) of the tile for rendering priority. Higher values are drawn later (on top of lower values). Setting this property triggers a refresh of the tile's screen area.
virtual Overhang OverhangPixels [get]
 Gets the overhang dimensions (in pixels) that extend beyond the tile's primary area. This is typically used for tiles with visual elements that exceed their logical boundaries.
virtual Frame CurrentFrame [get, set]
 Gets or sets the current frame being displayed for this tile. Setting this property triggers a refresh of both the old and new tile areas to handle size changes.
virtual Animator TileAnimator [get]
 Gets the animator responsible for managing frame transitions and animation sequences for this tile.
virtual bool PauseAnimation [get, set]
 Gets or sets a value indicating whether the tile's animation is currently paused.
virtual ? ICollider Collider [get]
 Gets the collider used for collision detection with this tile. Returns null if the tile has no collision detection.
virtual Rectangle CollisionArea [get]
 Gets the effective collision area of the tile in world coordinates, incorporating any adjustments specified by AdjustCollisionArea.
virtual bool EnableFog [get, set]
 Gets or sets a value indicating whether fog of war rendering is enabled for this tile. Setting this property triggers a refresh of the tile's screen area.
virtual Point[] OutlinePointsWorld [get]
 Used to determine polygonal area when drawing grid lines or fog. Override this property in a derived class to define custom areas for these effects.
virtual CollisionDetectionAdjustment AdjustCollisionArea = CollisionDetectionAdjustment.None [get, set]
 Gets or sets the collision area adjustment values that modify the tile's collision boundaries. Use this to fine-tune the collision detection area relative to the tile's visual bounds.
TypedValueBag ValueBag = new() [get]
 Gets the value bag for storing arbitrary typed values associated with this tile. Useful for attaching custom game-specific data without subclassing.

Events

Action< SpriteMovedEventArgs >? SpriteMoved
Action< Sprite >? Disposing

Additional Inherited Members

Protected Attributes inherited from Gondwana.Drawing.Tile
bool pauseAnimation
ICollider_collider

Member Function Documentation

◆ CancelResize()

void Gondwana.Drawing.Sprites.Sprite.CancelResize ( )

Cancel any in-progress resize.

◆ Dispose()

override void Gondwana.Drawing.Sprites.Sprite.Dispose ( )
virtual

Releases all resources used by the tile, including removing it from animation tracking, disposing its animator, and clearing collision references.

Reimplemented from Gondwana.Drawing.Tile.

◆ GetPosition()

Vector2 Gondwana.Drawing.Sprites.Sprite.GetPosition ( )

◆ ResizeTo()

void Gondwana.Drawing.Sprites.Sprite.ResizeTo ( Size targetSize,
float durationSeconds )

Smoothly resize the sprite to an absolute pixel size over the given duration (seconds).

◆ ScaleBy()

void Gondwana.Drawing.Sprites.Sprite.ScaleBy ( float factor,
float durationSeconds )

Scale to a factor relative to current RenderSize over the given duration (seconds). factor > 1 grows; factor < 1 shrinks.

◆ SetPosition()

void Gondwana.Drawing.Sprites.Sprite.SetPosition ( Vector2 pos)

Property Documentation

◆ DrawLocationWorld

override Rectangle Gondwana.Drawing.Sprites.Sprite.DrawLocationWorld
get

◆ HorizAlign

HorizontalAlignment Gondwana.Drawing.Sprites.Sprite.HorizAlign
getset

◆ IsPositionFixed

override bool Gondwana.Drawing.Sprites.Sprite.IsPositionFixed
get

◆ Movement

MovementController Gondwana.Drawing.Sprites.Sprite.Movement
get

◆ NudgeX

int Gondwana.Drawing.Sprites.Sprite.NudgeX
getset

◆ NudgeY

int Gondwana.Drawing.Sprites.Sprite.NudgeY
getset

◆ PositionSpace

MovementSpace Gondwana.Drawing.Sprites.Sprite.PositionSpace
get

◆ RenderSize

Size Gondwana.Drawing.Sprites.Sprite.RenderSize
getset

◆ SceneLayer

override SceneLayer Gondwana.Drawing.Sprites.Sprite.SceneLayer
get

◆ SceneLayerCoordinates

override PointF Gondwana.Drawing.Sprites.Sprite.SceneLayerCoordinates
get

◆ VertAlign

VerticalAlignment Gondwana.Drawing.Sprites.Sprite.VertAlign
getset

◆ ZOrder

virtual new int Gondwana.Drawing.Sprites.Sprite.ZOrder
getset

Gets the z-order of the element, which determines its visual stacking order relative to other elements. Higher z-order values are drawn on top of lower ones.

Implements Gondwana.Drawing.IDrawable.

Event Documentation

◆ Disposing

Action<Sprite>? Gondwana.Drawing.Sprites.Sprite.Disposing

◆ SpriteMoved

Action<SpriteMovedEventArgs>? Gondwana.Drawing.Sprites.Sprite.SpriteMoved