Gamedev Framework (gf)  0.17.0
A C++14 framework for 2D games
Classes | Public Member Functions | Static Public Attributes | List of all members
gf::TileLayer Class Reference

A tile layer. More...

#include <gf/TileLayer.h>

Inheritance diagram for gf::TileLayer:
Inheritance graph
[legend]

Public Member Functions

 TileLayer ()
 Constructor. More...
 
 TileLayer (Vector2i layerSize, TileOrientation orientation=TileOrientation::Orthogonal)
 Constructor. More...
 
Vector2i getMapSize () const
 Get the size of the layer. More...
 
RectF getLocalBounds () const
 Get the local bounding rectangle of the layer. More...
 
void setAnchor (Anchor anchor)
 Set the anchor origin of the entity. More...
 
VertexBuffer commitGeometry () const
 Create a buffer with the current geometry. More...
 
virtual void draw (RenderTarget &target, const RenderStates &states) override
 Draw the object to a render target. More...
 
Tileset parameters
void setTexture (const Texture &texture)
 Change the source texture of the tileset. More...
 
const TexturegetTexture () const
 Get the source texture of the tileset. More...
 
bool hasTexture () const
 Check if a texture is set. More...
 
void unsetTexture ()
 Unset the source texture of the tile layer. More...
 
void setTilesetTileSize (Vector2i tileSize)
 Set the tile size in the tileset. More...
 
Vector2i getTilesetTileSize () const
 Get the tile size in the tileset. More...
 
void setMargin (int margin)
 Set the margin of the tileset. More...
 
void setMargin (Vector2i margin)
 Set the margin of the tileset. More...
 
Vector2i getMargin () const
 Get the margin of the tileset. More...
 
void setSpacing (int spacing)
 Set the spacing of the tileset. More...
 
void setSpacing (Vector2i spacing)
 Set the spacing of the tileset. More...
 
Vector2i getSpacing () const
 Get the spacing of the tileset. More...
 
void setOffset (Vector2i offset)
 Set the offset of the tileset. More...
 
Vector2i getOffset () const
 Get the offset of the tileset. More...
 
Tile definition
void setTileSize (Vector2i tileSize)
 Set the tile size. More...
 
Vector2i getTileSize () const
 Get the tile size. More...
 
void setTile (Vector2i position, int tile, Flags< Flip > flip=None)
 Set a tile. More...
 
int getTile (Vector2i position) const
 Get a tile. More...
 
Flags< FlipgetFlip (Vector2i position) const
 Get the flip properties of a tile. More...
 
void clear ()
 Remove all the tiles. More...
 
- Public Member Functions inherited from gf::Transformable
 Transformable ()
 Default constructor. More...
 
void setOrigin (Vector2f origin)
 Set the local origin of the object. More...
 
Vector2f getOrigin () const
 Get the local origin of the object. More...
 
void setPosition (Vector2f position)
 Set the position of the object. More...
 
Vector2f getPosition () const
 Get the position of the object. More...
 
void move (Vector2f offset)
 Move the object by a given offset. More...
 
void setRotation (float angle)
 Set the orientation of the object. More...
 
float getRotation () const
 Get the orientation of the object. More...
 
void rotate (float angle)
 Rotate the object. More...
 
void setScale (Vector2f factors)
 Set the scale factors of the object. More...
 
void setScale (float factor)
 Set the scale factor of the object. More...
 
Vector2f getScale () const
 Get the current scale of the object. More...
 
void scale (Vector2f factors)
 Scale the object. More...
 
void scale (float factor)
 Scale the object. More...
 
Matrix3f getTransform () const
 Get the combined transform of the object. More...
 
Matrix3f getInverseTransform () const
 Get the inverse of the combined transform of the object. More...
 
- Public Member Functions inherited from gf::Drawable
virtual ~Drawable ()
 Virtual desctructor. More...
 

Static Public Attributes

static constexpr int NoTile = -1
 A constant meaning that there is no tile. More...
 

Additional Inherited Members

- Protected Member Functions inherited from gf::Transformable
void setOriginFromAnchorAndBounds (Anchor anchor, const RectF &bounds)
 Set the origin from an anchor and bounds. More...
 

Detailed Description

A tile layer.

A tile layer represents a map made of tiles. gf::TileLayer makes it easy to draw a tile map.

A tile layer is associated to a single tileset. A tileset is a texture that contains all the tiles, ordered in a grid. The tileset has several parameters that are inspired by the parameters in Tiled:

The tile layer is given with an array of indices. Each index correspond to a tile in the tileset. Tile 0 correspond to the tile at the top left in the tileset. Then tile are numbered from left to right, and then from top to bottom. If a tile is not present in the tile layer, the constant gf::TileLayer::NoTile can be used.

Constructor & Destructor Documentation

◆ TileLayer() [1/2]

gf::TileLayer::TileLayer ( )

Constructor.

◆ TileLayer() [2/2]

gf::TileLayer::TileLayer ( Vector2i  layerSize,
TileOrientation  orientation = TileOrientation::Orthogonal 
)

Constructor.

Parameters
layerSizeThe size of the layer, in number of tiles
orientationThe orientation of the layer

Member Function Documentation

◆ clear()

void gf::TileLayer::clear ( )

Remove all the tiles.

◆ commitGeometry()

VertexBuffer gf::TileLayer::commitGeometry ( ) const

Create a buffer with the current geometry.

The geometry is uploaded in the graphics memory so that it's faster to draw.

Returns
A buffer with the current geometry

◆ draw()

virtual void gf::TileLayer::draw ( RenderTarget target,
const RenderStates states 
)
overridevirtual

Draw the object to a render target.

This is a pure virtual function that has to be implemented by the derived class to define how the drawable should be drawn.

Parameters
targetRender target to draw to
statesCurrent render states

Implements gf::Drawable.

◆ getFlip()

Flags<Flip> gf::TileLayer::getFlip ( Vector2i  position) const

Get the flip properties of a tile.

Parameters
positionThe position of the tile in the tile layer
Returns
A flag to indicate how the tile is flipped
See also
setTile()

◆ getLocalBounds()

RectF gf::TileLayer::getLocalBounds ( ) const

Get the local bounding rectangle of the layer.

The returned rectangle is in local coordinates, which means that it ignores the transformations (translation, rotation, scale, ...) that are applied to the entity. In other words, this function returns the bounds of the entity in the entity's coordinate system.

Returns
Local bounding rectangle of the entity

◆ getMapSize()

Vector2i gf::TileLayer::getMapSize ( ) const
inline

Get the size of the layer.

Returns
The size of the layer, in number of tiles

◆ getMargin()

Vector2i gf::TileLayer::getMargin ( ) const
inline

Get the margin of the tileset.

Returns
The margin, in pixels
See also
setMargin()

◆ getOffset()

Vector2i gf::TileLayer::getOffset ( ) const
inline

Get the offset of the tileset.

Returns
The offset, in pixels
See also
setOffset()

◆ getSpacing()

Vector2i gf::TileLayer::getSpacing ( ) const
inline

Get the spacing of the tileset.

Returns
The spacing, in pixels
See also
setSpacing()

◆ getTexture()

const Texture& gf::TileLayer::getTexture ( ) const
inline

Get the source texture of the tileset.

The returned reference is const, which means that you can't modify the texture when you retrieve it with this function.

Returns
Reference to the tileset's texture
See also
setTexture()

◆ getTile()

int gf::TileLayer::getTile ( Vector2i  position) const

Get a tile.

Parameters
positionThe position of the tile in the tile layer
Returns
The number of the tile in the tileset or gf::TileLayer::NoTile
See also
setTile()

◆ getTilesetTileSize()

Vector2i gf::TileLayer::getTilesetTileSize ( ) const
inline

Get the tile size in the tileset.

Returns
The tile size, in pixels
See also
setTileSize()

◆ getTileSize()

Vector2i gf::TileLayer::getTileSize ( ) const
inline

Get the tile size.

Returns
The tile size, in pixels
See also
setTileSize()

◆ hasTexture()

bool gf::TileLayer::hasTexture ( ) const
inline

Check if a texture is set.

Returns
True if a texture is already set
See also
setTexture(), getTexture()

◆ setAnchor()

void gf::TileLayer::setAnchor ( Anchor  anchor)

Set the anchor origin of the entity.

Compute the origin of the entity based on the local bounds and the specified anchor. Internally, this function calls Transformable::setOrigin().

Parameters
anchorThe anchor of the entity
See also
getLocalBounds(), Transformable::setOrigin()

◆ setMargin() [1/2]

void gf::TileLayer::setMargin ( int  margin)
inline

Set the margin of the tileset.

Parameters
marginThe margin, in pixels
See also
getMargin()

◆ setMargin() [2/2]

void gf::TileLayer::setMargin ( Vector2i  margin)
inline

Set the margin of the tileset.

Parameters
marginThe margin, in pixels
See also
getMargin()

◆ setOffset()

void gf::TileLayer::setOffset ( Vector2i  offset)
inline

Set the offset of the tileset.

Parameters
offsetThe offset, in pixels
See also
getOffset();

◆ setSpacing() [1/2]

void gf::TileLayer::setSpacing ( int  spacing)
inline

Set the spacing of the tileset.

Parameters
spacingThe spacing, in pixels
See also
getSpacing()

◆ setSpacing() [2/2]

void gf::TileLayer::setSpacing ( Vector2i  spacing)
inline

Set the spacing of the tileset.

Parameters
spacingThe spacing, in pixels
See also
getSpacing()

◆ setTexture()

void gf::TileLayer::setTexture ( const Texture texture)
inline

Change the source texture of the tileset.

The texture must exist as long as the tile layer uses it. Indeed, the tile layer doesn't store its own copy of the texture, but rather keeps a pointer to the one that you passed to this function. If the source texture is destroyed and the tile layer tries to use it, the behavior is undefined.

Parameters
textureNew texture
See also
getTexture()

◆ setTile()

void gf::TileLayer::setTile ( Vector2i  position,
int  tile,
Flags< Flip flip = None 
)

Set a tile.

Parameters
positionThe position of the tile in the tile layer
tileThe number of the tile in the tileset or gf::TileLayer::NoTile
flipThe flip property of the tile
See also
getTile()

◆ setTilesetTileSize()

void gf::TileLayer::setTilesetTileSize ( Vector2i  tileSize)
inline

Set the tile size in the tileset.

Parameters
tileSizeThe new tile size, in pixels
See also
getTileSize()

◆ setTileSize()

void gf::TileLayer::setTileSize ( Vector2i  tileSize)

Set the tile size.

Parameters
tileSizeThe new tile size, in pixels
See also
getTileSize()

◆ unsetTexture()

void gf::TileLayer::unsetTexture ( )
inline

Unset the source texture of the tile layer.

After a call to this function, the tile layer has no source texture.

See also
setTexture()

Member Data Documentation

◆ NoTile

constexpr int gf::TileLayer::NoTile = -1
static

A constant meaning that there is no tile.