0
나는 HDD를 게임에 사용하기 위해 레벨 정의 파일을 구문 분석하는 데 rapidson을 사용하려고합니다.rapidjson을 사용하여 json에서 작업 목록 구문 분석
레벨 정의는 기본 동작과 여러 가지 다른 동작으로 구성됩니다.
저는 작업 유형에 따라 다른 팩토리를 생성 할 팩터 리를 만들려고합니다.
예를 들어, JSON :
이{
"actions": [
{
"type": "load-board",
"action": {
"id": "level_1.1.1",
"rows": 1,
"columns": 1,
"movements": 1,
"gameBoard": [
0
]
}
}
]
}
하지만이 초기화 상태에서 아무것도, 이동 액션을 위해로드 보드를 할 수 있습니다.
나는 각 액션을 std :: future에서 실행될 다른 액션 클래스로 캡슐화하고 싶다.
rapidjson::GenericValue
을 전달하면 템플릿에 필요한 매개 변수를 전달해야하므로 .GetString() 메서드가 제대로 구현되지 않아서 .
다른 개체와 작업을 만들기 위해 위임 팩토리를 구현 한 적이 있습니까?
이
내가 가지고 기다리고 있었다 무엇 :std::vector<LevelAction *> * GameBoardJsonPacker::unpackLevelActionsJson(std::string json)
{
std::vector<LevelAction *> * levelActions = new std::vector<LevelAction *>();
rapidjson::Document document;
document.Parse<0>(json.c_str());
auto actions = document["actions"].GetArray();
for(int i = 0; i < actions.Size(); i++)
{
levelActions->push_back(LevelActionFactory::getLevelAction(actions[i].GetString())); //here fails
}
return levelActions;
}