![]() |
Gamedev Framework (gf) 1.2.0
A C++17 framework for 2D games
|
A tile layer. More...
#include <gf/TileLayer.h>
Public Member Functions | |
TileLayer () | |
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 | |
std::size_t | createTilesetId () |
Create a tileset id. More... | |
Tileset & | getTileset (std::size_t id) |
Get a tileset with a tileset id. More... | |
const Tileset & | getTileset (std::size_t id) const |
Get a tileset with a tileset id. More... | |
void | setTilesetSmooth (bool smooth=true) |
Enable or disable the smooth filter on the texture of tilesets. More... | |
Tile definition | |
void | setTile (Vector2i position, std::size_t tileset, int tile, Flags< Flip > flip=None) |
Set a tile. More... | |
int | getTile (Vector2i position) const |
Get a tile. More... | |
Flags< Flip > | getFlip (Vector2i position) const |
Get the flip properties of a tile. More... | |
std::size_t | getTileTileset (Vector2i position) const |
Get the tileset property of a tile. More... | |
void | clear () |
Remove all the tiles. More... | |
![]() | |
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... | |
![]() | |
virtual | ~Drawable () |
Virtual desctructor. More... | |
virtual void | draw (RenderTarget &target, const RenderStates &states)=0 |
Draw the object to a render target. More... | |
Static Public Member Functions | |
static TileLayer | createOrthogonal (Vector2i layerSize, Vector2i tileSize) |
Create an orthogonal tile layer. More... | |
static TileLayer | createStaggered (Vector2i layerSize, Vector2i tileSize, CellAxis axis, CellIndex index) |
Create a staggered tile layer. More... | |
static TileLayer | createHexagonal (Vector2i layerSize, Vector2i tileSize, int sideLength, CellAxis axis, CellIndex index) |
Create a hexagonal tile layer. More... | |
Static Public Attributes | |
static constexpr int | NoTile = -1 |
A constant meaning that there is no tile. More... | |
Additional Inherited Members | |
![]() | |
void | setOriginFromAnchorAndBounds (Anchor anchor, const RectF &bounds) |
Set the origin from an anchor and bounds. More... | |
A tile layer.
A tile layer represents a map made of tiles. gf::TileLayer makes it easy to draw a tile map.
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.
gf::TileLayer::TileLayer | ( | ) |
Constructor.
void gf::TileLayer::clear | ( | ) |
Remove all the tiles.
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.
|
static |
Create a hexagonal tile layer.
layerSize | The size of the layer |
tileSize | The size of a tile |
sideLength | The side length |
axis | The cells axis |
index | The cells index |
Create an orthogonal tile layer.
layerSize | The size of the layer |
tileSize | The size of a tile |
|
static |
Create a staggered tile layer.
layerSize | The size of the layer |
tileSize | The size of a tile |
axis | The cells axis |
index | The cells index |
std::size_t gf::TileLayer::createTilesetId | ( | ) |
Create a tileset id.
|
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.
target | Render target to draw to |
states | Current render states |
Implements gf::Drawable.
Get the flip properties of a tile.
position | The position of the tile in the tile layer |
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.
|
inline |
Get the size of the layer.
int gf::TileLayer::getTile | ( | Vector2i | position | ) | const |
Get a tile.
position | The position of the tile in the tile layer |
gf::TileLayer::NoTile
Tileset & gf::TileLayer::getTileset | ( | std::size_t | id | ) |
Get a tileset with a tileset id.
id | A valid tileset id |
const Tileset & gf::TileLayer::getTileset | ( | std::size_t | id | ) | const |
Get a tileset with a tileset id.
id | A valid tileset id |
std::size_t gf::TileLayer::getTileTileset | ( | Vector2i | position | ) | const |
Get the tileset property of a tile.
position | The position of the tile in the tile layer |
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()
.
anchor | The anchor of the entity |
void gf::TileLayer::setTile | ( | Vector2i | position, |
std::size_t | tileset, | ||
int | tile, | ||
Flags< Flip > | flip = None |
||
) |
Set a tile.
position | The position of the tile in the tile layer |
tileset | The tileset id of the tile |
tile | The number of the tile in the tileset or gf::TileLayer::NoTile |
flip | The flip property of the tile |
void gf::TileLayer::setTilesetSmooth | ( | bool | smooth = true | ) |
Enable or disable the smooth filter on the texture of tilesets.
smooth | True to enable smoothing, false to disable it |
|
staticconstexpr |
A constant meaning that there is no tile.