载入中...
搜索中...
未找到

ECS tile layer entity. Script mutates tile GIDs / tileset / draw; TileRenderSystem batch-draws atlas quads (or solid debug colors when no texture). 更多...

#include <TileLayer.h>

类 eve::map::TileLayer 继承关系图:

struct  Config
 
struct  Draw
 
struct  Resource
 
struct  Tiles
 
struct  Tileset
 

Public 成员函数

void release () override
 
void setOrigin (float x, float y)
 World origin of the layer (pixels).
 
float getX ()
 
float getY ()
 
int getMapWidth ()
 Map dimensions in tiles.
 
int getMapHeight ()
 
float getTileWidth ()
 Tile size in pixels.
 
float getTileHeight ()
 
void setTileSize (float tileW, float tileH)
 
void resize (int mapW, int mapH)
 Resizes the tile grid (existing GIDs preserved where possible).
 
void setTile (int tx, int ty, int gid)
 Tile GID access; 0 = empty.
 
int getTile (int tx, int ty)
 
void fill (int gid)
 Fills the whole layer with one GID.
 
void clear ()
 Clears the layer to empty.
 
void setTileset (graphics::Texture *texture, int firstGid, int columns, int margin=0, int spacing=0)
 Binds the atlas texture and tile table.
 
void setTilesetTileSize (int tileW, int tileH)
 Tile size in pixels of the bound tileset.
 
graphics::TexturegetTilesetTexture ()
 Bound tileset accessors.
 
int getTilesetFirstGid ()
 
int getTilesetColumns ()
 
void setCanvas (graphics::Canvas *canvas)
 Draw target canvas / camera.
 
void setCamera (graphics::Camera2D *camera)
 
void setLayer (int layer)
 Draw order layer / visibility / tint.
 
int getLayer ()
 
void setVisible (bool visible)
 
bool isVisible ()
 
void setTint (float r, float g, float b, float a=1.f)
 
bool applyConfig (const std::string &json)
 Applies a map JSON config (Config + Tiles + Tileset + Draw).
 
bool loadConfig (const std::string &path)
 Loads a config file and binds it for hot reload.
 
bool reloadConfig ()
 Re-reads the bound config file (hot reload).
 
void setAutoReload (bool enable)
 Enables/disables automatic config hot reload.
 
bool getAutoReload ()
 
std::string getConfigPath ()
 Path of the bound config file.
 
void tileToWorld (int tx, int ty, float &wx, float &wy)
 Tile-index ↔ world-pixel conversions (per layer orientation).
 
float depthY (int tx, int ty)
 Painter's-algorithm depth for 2.5D draw ordering.
 
void worldToTile (float wx, float wy, int &tx, int &ty)
 
float tileToWorldX (int tx, int ty)
 Scalar conversion helpers.
 
float tileToWorldY (int tx, int ty)
 
float depthYAt (int tx, int ty)
 
int worldToTileX (float wx, float wy)
 
int worldToTileY (float wx, float wy)
 

静态 Public 成员函数

static TileLayercreateLayer (int mapW, int mapH, float tileW=32.f, float tileH=32.f)
 

详细描述

ECS tile layer entity. Script mutates tile GIDs / tileset / draw; TileRenderSystem batch-draws atlas quads (or solid debug colors when no texture).

GID 0 = empty. Tiled flip flags (high bits) are masked on read/draw.

在文件 TileLayer.h30 行定义.

成员函数说明

◆ applyConfig()

bool eve::map::TileLayer::applyConfig ( const std::string &  json)

Applies a map JSON config (Config + Tiles + Tileset + Draw).

在文件 TileLayer.cpp109 行定义.

引用了 eve::map::applyConfigText().

◆ clear()

void eve::map::TileLayer::clear ( )

Clears the layer to empty.

在文件 TileLayer.cpp69 行定义.

引用了 fill().

◆ createLayer()

TileLayer * eve::map::TileLayer::createLayer ( int  mapW,
int  mapH,
float  tileW = 32.f,
float  tileH = 32.f 
)
static

在文件 TileLayer.cpp12 行定义.

引用了 resize(), setTileSize(), tileH , 以及 tileW.

被这些函数引用 eve::map::Map::newLayer().

◆ depthY()

float eve::map::TileLayer::depthY ( int  tx,
int  ty 
)

Painter's-algorithm depth for 2.5D draw ordering.

在文件 TileLayer.cpp123 行定义.

引用了 eve::map::tileToDepthY().

被这些函数引用 depthYAt().

◆ depthYAt()

float eve::map::TileLayer::depthYAt ( int  tx,
int  ty 
)

在文件 TileLayer.cpp141 行定义.

引用了 depthY().

◆ fill()

void eve::map::TileLayer::fill ( int  gid)

Fills the whole layer with one GID.

在文件 TileLayer.cpp64 行定义.

引用了 tiles , 以及 v.

被这些函数引用 clear().

◆ getAutoReload()

bool eve::map::TileLayer::getAutoReload ( )

在文件 TileLayer.cpp116 行定义.

◆ getConfigPath()

std::string eve::map::TileLayer::getConfigPath ( )

Path of the bound config file.

在文件 TileLayer.cpp117 行定义.

◆ getLayer()

int eve::map::TileLayer::getLayer ( )

在文件 TileLayer.cpp100 行定义.

被这些函数引用 eve::map::resolveDualGrid().

◆ getMapHeight()

int eve::map::TileLayer::getMapHeight ( )

◆ getMapWidth()

int eve::map::TileLayer::getMapWidth ( )

Map dimensions in tiles.

在文件 TileLayer.cpp33 行定义.

被这些函数引用 eve::map::applyConfigDocument(), eve::map::applyConfigText() , 以及 eve::map::resolveDualGrid().

◆ getTile()

int eve::map::TileLayer::getTile ( int  tx,
int  ty 
)

在文件 TileLayer.cpp58 行定义.

引用了 c , 以及 tiles.

被这些函数引用 eve::map::dualGridLogicFilled().

◆ getTileHeight()

float eve::map::TileLayer::getTileHeight ( )

在文件 TileLayer.cpp36 行定义.

被这些函数引用 eve::map::resolveDualGrid().

◆ getTilesetColumns()

int eve::map::TileLayer::getTilesetColumns ( )

在文件 TileLayer.cpp94 行定义.

◆ getTilesetFirstGid()

int eve::map::TileLayer::getTilesetFirstGid ( )

在文件 TileLayer.cpp93 行定义.

◆ getTilesetTexture()

graphics::Texture * eve::map::TileLayer::getTilesetTexture ( )

Bound tileset accessors.

在文件 TileLayer.cpp92 行定义.

◆ getTileWidth()

float eve::map::TileLayer::getTileWidth ( )

Tile size in pixels.

在文件 TileLayer.cpp35 行定义.

被这些函数引用 eve::map::resolveDualGrid().

◆ getX()

float eve::map::TileLayer::getX ( )

在文件 TileLayer.cpp30 行定义.

被这些函数引用 eve::map::resolveDualGrid().

◆ getY()

float eve::map::TileLayer::getY ( )

在文件 TileLayer.cpp31 行定义.

被这些函数引用 eve::map::resolveDualGrid().

◆ isVisible()

bool eve::map::TileLayer::isVisible ( )

在文件 TileLayer.cpp103 行定义.

◆ loadConfig()

bool eve::map::TileLayer::loadConfig ( const std::string &  path)

Loads a config file and binds it for hot reload.

在文件 TileLayer.cpp111 行定义.

引用了 eve::map::loadConfigFile().

◆ release()

void eve::map::TileLayer::release ( )
inlineoverride

在文件 TileLayer.h34 行定义.

◆ reloadConfig()

bool eve::map::TileLayer::reloadConfig ( )

Re-reads the bound config file (hot reload).

在文件 TileLayer.cpp113 行定义.

引用了 eve::map::reloadConfigFile().

◆ resize()

void eve::map::TileLayer::resize ( int  mapW,
int  mapH 
)

Resizes the tile grid (existing GIDs preserved where possible).

在文件 TileLayer.cpp44 行定义.

引用了 c, n, tiles , 以及 u.

被这些函数引用 createLayer() , 以及 eve::map::resolveDualGrid().

◆ setAutoReload()

void eve::map::TileLayer::setAutoReload ( bool  enable)

Enables/disables automatic config hot reload.

在文件 TileLayer.cpp115 行定义.

◆ setCamera()

void eve::map::TileLayer::setCamera ( graphics::Camera2D camera)

在文件 TileLayer.cpp97 行定义.

被这些函数引用 eve::map::resolveDualGrid().

◆ setCanvas()

void eve::map::TileLayer::setCanvas ( graphics::Canvas canvas)

Draw target canvas / camera.

在文件 TileLayer.cpp96 行定义.

被这些函数引用 eve::map::resolveDualGrid().

◆ setLayer()

void eve::map::TileLayer::setLayer ( int  layer)

Draw order layer / visibility / tint.

在文件 TileLayer.cpp99 行定义.

引用了 layer.

被这些函数引用 eve::map::resolveDualGrid().

◆ setOrigin()

void eve::map::TileLayer::setOrigin ( float  x,
float  y 
)

World origin of the layer (pixels).

在文件 TileLayer.cpp25 行定义.

引用了 x , 以及 y.

被这些函数引用 eve::map::resolveDualGrid().

◆ setTile()

void eve::map::TileLayer::setTile ( int  tx,
int  ty,
int  gid 
)

Tile GID access; 0 = empty.

在文件 TileLayer.cpp52 行定义.

引用了 c , 以及 tiles.

被这些函数引用 eve::map::resolveDualGrid().

◆ setTileset()

void eve::map::TileLayer::setTileset ( graphics::Texture texture,
int  firstGid,
int  columns,
int  margin = 0,
int  spacing = 0 
)

Binds the atlas texture and tile table.

在文件 TileLayer.cpp71 行定义.

引用了 columns, firstGid, margin, spacing, tileH , 以及 tileW.

◆ setTilesetTileSize()

void eve::map::TileLayer::setTilesetTileSize ( int  tileW,
int  tileH 
)

Tile size in pixels of the bound tileset.

在文件 TileLayer.cpp86 行定义.

引用了 tileH , 以及 tileW.

◆ setTileSize()

void eve::map::TileLayer::setTileSize ( float  tileW,
float  tileH 
)

在文件 TileLayer.cpp38 行定义.

引用了 c, tileH , 以及 tileW.

被这些函数引用 createLayer() , 以及 eve::map::resolveDualGrid().

◆ setTint()

void eve::map::TileLayer::setTint ( float  r,
float  g,
float  b,
float  a = 1.f 
)

在文件 TileLayer.cpp105 行定义.

引用了 a , 以及 b.

◆ setVisible()

void eve::map::TileLayer::setVisible ( bool  visible)

在文件 TileLayer.cpp102 行定义.

被这些函数引用 eve::map::resolveDualGrid().

◆ tileToWorld()

void eve::map::TileLayer::tileToWorld ( int  tx,
int  ty,
float &  wx,
float &  wy 
)

Tile-index ↔ world-pixel conversions (per layer orientation).

在文件 TileLayer.cpp119 行定义.

引用了 eve::map::tileToWorld().

被这些函数引用 tileToWorldX() , 以及 tileToWorldY().

◆ tileToWorldX()

float eve::map::TileLayer::tileToWorldX ( int  tx,
int  ty 
)

Scalar conversion helpers.

在文件 TileLayer.cpp129 行定义.

引用了 tileToWorld().

◆ tileToWorldY()

float eve::map::TileLayer::tileToWorldY ( int  tx,
int  ty 
)

在文件 TileLayer.cpp135 行定义.

引用了 tileToWorld().

◆ worldToTile()

void eve::map::TileLayer::worldToTile ( float  wx,
float  wy,
int &  tx,
int &  ty 
)

在文件 TileLayer.cpp125 行定义.

引用了 eve::map::worldToTile().

被这些函数引用 worldToTileX() , 以及 worldToTileY().

◆ worldToTileX()

int eve::map::TileLayer::worldToTileX ( float  wx,
float  wy 
)

在文件 TileLayer.cpp143 行定义.

引用了 worldToTile().

◆ worldToTileY()

int eve::map::TileLayer::worldToTileY ( float  wx,
float  wy 
)

在文件 TileLayer.cpp149 行定义.

引用了 worldToTile().


该类的文档由以下文件生成: