Map module — factory + script binding for 2D tilemaps. Per-frame: TileConfigSystem (hot reload) → unified sprite+tile render. Pathfinding: newPathfinder / newPathfinderSize → A* + Flow Field group paths. FOV: newFov / newFovSize → shadowcast visibility + explored memory. 更多...
#include <Map.h>
Public 成员函数 | |
| Module_REG (Map) | |
| Map ()=default | |
| ~Map () override=default | |
| TileLayer * | newLayer (int mapW, int mapH, float tileW=32.f, float tileH=32.f) |
| Pathfinder * | newPathfinder (TileLayer *layer) |
| Pathfinder bound to a TileLayer (syncs walkability from GIDs). | |
| Pathfinder * | newPathfinderSize (int mapW, int mapH) |
| Custom grid pathfinder (no layer); fill with setBlocked / setCellCost. | |
| Fov * | newFov (TileLayer *layer) |
| FOV bound to a TileLayer (syncs opacity from opaque GIDs). | |
| Fov * | newFovSize (int mapW, int mapH) |
| Custom grid FOV (no layer); fill with setOpaque. | |
| Fov * | newFovVolume (int mapW, int mapH, int depth) |
| Volume FOV (W×H×D voxels); mode defaults to volume. | |
| TileLayer * | newLayerFromFile (const std::string &path) |
| Load map JSON (Tiled-compatible subset or EVEngine simplified format). Creates one TileLayer per tile layer; returns the first (nullptr on failure). Refreshes the module object cache from objectgroup layers. | |
| int | loadFromFile (const std::string &path) |
| Same as newLayerFromFile but returns how many layers were created (0 on failure). | |
| void | update (float dt) |
| void | render (graphics::Graphics *gfx) |
| int | pollConfigs () |
| int | getLayerCount () const |
| TileLayer * | getLayer (int index) const |
| Layer created by the most recent loadFromFile/newLayerFromFile call. | |
| int | getObjectCount () const |
| std::string | getObjectName (int i) const |
| std::string | getObjectType (int i) const |
| float | getObjectX (int i) const |
| float | getObjectY (int i) const |
| float | getObjectWidth (int i) const |
| float | getObjectHeight (int i) const |
| int | getObjectGid (int i) const |
| void | setObjects (std::vector< MapObject > objects) |
| Replace object cache (used by load / hot reload). | |
| bool | resolveDualGrid (TileLayer *logic, TileLayer *display) |
| Dual-grid resolve: paint logic (filled/empty), fill display with 15-tile autotiles on a half-offset grid. See DualGrid.h. filledGid 0 = any non-zero logic cell counts as filled. | |
| bool | resolveDualGridFilled (TileLayer *logic, TileLayer *display, int filledGid) |
| int | dualGridMaskAt (TileLayer *logic, int dx, int dy, int filledGid) |
| 4-bit corner mask at display cell (dx,dy); see DualGrid.h. | |
| int | dualGridFrame (int mask) |
| Default atlas frame for mask (-1 = empty). | |
| float | dualGridOffsetX (TileLayer *logic) |
| Projection-correct half-step origin delta for a logic layer. | |
| float | dualGridOffsetY (TileLayer *logic) |
| std::string | lastDualGridError () const |
Public 成员函数 继承自 eve::Module | |
| virtual | ~Module () |
| virtual std::string | getName () const =0 |
详细描述
Map module — factory + script binding for 2D tilemaps. Per-frame: TileConfigSystem (hot reload) → unified sprite+tile render. Pathfinding: newPathfinder / newPathfinderSize → A* + Flow Field group paths. FOV: newFov / newFovSize → shadowcast visibility + explored memory.
构造及析构函数说明
◆ Map()
|
default |
◆ ~Map()
|
overridedefault |
成员函数说明
◆ dualGridFrame()
| int eve::map::Map::dualGridFrame | ( | int | mask | ) |
Default atlas frame for mask (-1 = empty).
◆ dualGridMaskAt()
| int eve::map::Map::dualGridMaskAt | ( | TileLayer * | logic, |
| int | dx, | ||
| int | dy, | ||
| int | filledGid | ||
| ) |
4-bit corner mask at display cell (dx,dy); see DualGrid.h.
◆ dualGridOffsetX()
| float eve::map::Map::dualGridOffsetX | ( | TileLayer * | logic | ) |
Projection-correct half-step origin delta for a logic layer.
◆ dualGridOffsetY()
| float eve::map::Map::dualGridOffsetY | ( | TileLayer * | logic | ) |
◆ getLayer()
| TileLayer * eve::map::Map::getLayer | ( | int | index | ) | const |
◆ getLayerCount()
◆ getObjectCount()
◆ getObjectGid()
◆ getObjectHeight()
◆ getObjectName()
◆ getObjectType()
◆ getObjectWidth()
◆ getObjectX()
◆ getObjectY()
◆ lastDualGridError()
◆ loadFromFile()
| int eve::map::Map::loadFromFile | ( | const std::string & | path | ) |
Same as newLayerFromFile but returns how many layers were created (0 on failure).
引用了 eve::map::loadMapFile() , 以及 setObjects().
◆ Module_REG()
| eve::map::Map::Module_REG | ( | Map | ) |
◆ newFov()
◆ newFovSize()
| Fov * eve::map::Map::newFovSize | ( | int | mapW, |
| int | mapH | ||
| ) |
◆ newFovVolume()
| Fov * eve::map::Map::newFovVolume | ( | int | mapW, |
| int | mapH, | ||
| int | depth | ||
| ) |
◆ newLayer()
引用了 eve::map::TileLayer::createLayer(), tileH , 以及 tileW.
◆ newLayerFromFile()
| TileLayer * eve::map::Map::newLayerFromFile | ( | const std::string & | path | ) |
Load map JSON (Tiled-compatible subset or EVEngine simplified format). Creates one TileLayer per tile layer; returns the first (nullptr on failure). Refreshes the module object cache from objectgroup layers.
引用了 eve::map::loadMapFile() , 以及 setObjects().
◆ newPathfinder()
| Pathfinder * eve::map::Map::newPathfinder | ( | TileLayer * | layer | ) |
◆ newPathfinderSize()
| Pathfinder * eve::map::Map::newPathfinderSize | ( | int | mapW, |
| int | mapH | ||
| ) |
◆ pollConfigs()
| int eve::map::Map::pollConfigs | ( | ) |
◆ render()
| void eve::map::Map::render | ( | graphics::Graphics * | gfx | ) |
◆ resolveDualGrid()
Dual-grid resolve: paint logic (filled/empty), fill display with 15-tile autotiles on a half-offset grid. See DualGrid.h. filledGid 0 = any non-zero logic cell counts as filled.
引用了 ok , 以及 eve::map::resolveDualGrid().
◆ resolveDualGridFilled()
◆ setObjects()
| void eve::map::Map::setObjects | ( | std::vector< MapObject > | objects | ) |
Replace object cache (used by load / hot reload).
被这些函数引用 loadFromFile() , 以及 newLayerFromFile().
◆ update()
| void eve::map::Map::update | ( | float | dt | ) |
该类的文档由以下文件生成:
Public 成员函数 继承自