feat(地图系统): 增强移动区域调试功能

- 添加移动区域边界结构体MoveAreaBounds并集成到地图配置中
- 实现移动区域索引查找和高亮显示功能
- 增加可移动区域检查开关movableAreaCheckEnabled
- 优化调试信息显示,包括坐标和当前所在移动区域
- 重构移动区域相关代码,提高可维护性
This commit is contained in:
2026-04-06 14:36:51 +08:00
parent bcc285eed6
commit f86ce35b68
8 changed files with 165 additions and 44 deletions

View File

@@ -7,17 +7,26 @@ namespace frostbite2D {
class GameMapLayer : public Actor {
public:
static constexpr size_t kInvalidMoveAreaIndex = static_cast<size_t>(-1);
void Render() override;
void SetDebugFeasibleAreaPolygon(const std::vector<Vec2>& polygon);
void AddDebugMoveAreaInfo(const Rect& rect);
void AddDebugMoveAreaInfo(const Rect& rect, size_t index);
void SetDebugHighlightedMoveAreaIndex(size_t index);
void ClearDebugAreaInfo();
void AddObject(RefPtr<Actor> obj);
private:
struct DebugMoveAreaInfo {
Rect rect;
size_t index = kInvalidMoveAreaIndex;
};
std::vector<Vec2> feasibleAreaPolygon_;
std::vector<Rect> feasibleAreaFillRects_;
std::vector<Rect> moveAreaInfoList_;
std::vector<DebugMoveAreaInfo> moveAreaInfoList_;
size_t highlightedMoveAreaIndex_ = kInvalidMoveAreaIndex;
};
} // namespace frostbite2D