12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- //
- // BTManger.cpp
- // redream_runtime
- //
- // Created by zhu on 2022/11/26.
- //
- #include "BTManger.hpp"
- #include "behaviac/behaviac.h"
- #include "BehaviacFileManager.hpp"
- static BTManger *s_pBTManger = nullptr;
- static behaviac::BehaviacFileManager *s_pBehaviacFileManager = nullptr;
- BTManger::BTManger()
- {
- _globalVarStringMap.clear();
- }
- BTManger::~BTManger() {
- BEHAVIAC_DELETE(s_pBehaviacFileManager);
- _globalVarStringMap.clear();
- s_pBehaviacFileManager = nullptr;
- }
- BTManger* BTManger::getInstance() {
- if (s_pBTManger == nullptr) {
- s_pBTManger = new (std::nothrow)BTManger();
- s_pBehaviacFileManager = BEHAVIAC_NEW behaviac::BehaviacFileManager();
- }
- return s_pBTManger;
- }
- void BTManger::startGame(){
- _gameRunTime = 0;
- _gameRunFram = 0;
- _gameStartTime = utils::gettime();
- // Director::getInstance()->getScheduler()->schedule([=](float dt){
- // this->updateTime(dt);
- // }, this, 1, false, "BTManger::startGame");
-
- Director::getInstance()->getScheduler()->scheduleUpdate(this, 0, false);
- }
- void BTManger::setRootPath(std::string path){
- s_pBehaviacFileManager->setRootPath(path);
- }
- void BTManger::updateTime(float dt){
- // _gameRunTime += dt;
- double time = utils::gettime() - _gameStartTime;
- behaviac::Workspace::GetInstance()->SetTimeSinceStartup(time);
- behaviac::Workspace::GetInstance()->SetDoubleValueSinceStartup(time);
- }
- void BTManger::update(float dt){
- _gameRunFram++;
- behaviac::Workspace::GetInstance()->SetFrameSinceStartup(_gameRunFram);
- double time = utils::gettime() - _gameStartTime; //MARK: 进度需求放在每一帧里面计算开始时间,但是这个获取时间的性能如果需要研究
- behaviac::Workspace::GetInstance()->SetTimeSinceStartup(time);
- behaviac::Workspace::GetInstance()->SetDoubleValueSinceStartup(time);
- }
- void BTManger::setGlobalDataVar(std::string key, std::string content){
- _globalVarStringMap[key] = content;
- }
- std::string BTManger::getGlobalDataVar(std::string key, ReboltErrorInfo& errorInfo){
- auto it = _globalVarStringMap.find(key);
- if(it != _globalVarStringMap.end()){
- std::string str = it->second;
- return str;
- } else{
- errorInfo.errorType = ReboltErrorTypeError;
- errorInfo.errorDes = StringUtils::format("没有找到全局变量[%s]", key.c_str());
- return "";
- }
- }
|