#include "Mon_Animation.h" #include "Actor/Object/MonsterObject.h" #include "Global/Global_Game.h" void Mon_Animation::Init(MonsterObject *parent) { // 调用RenderBase类的初始化 才能挂上标签 RenderBase::Init(); parent->AddChild(this); mon_parent = parent; GlobalMonsterScript::MonsterConfig Config = Global_Game::GetInstance().GetMonsterInfo(mon_parent->Id); // 遍历所有动作Ani路径 for (const auto &pair : Config.animationPath) { std::string ActionName = pair.first; std::string Path = std::string(Config.folder + Tool_toLowerCase(pair.second)); RefPtr Ani = new Animation(Path); this->ActionAnis[ActionName] = Ani; Ani->SetVisible(false); this->AddChild(Ani); } // 默认动作 this->SetAction("waiting"); } void Mon_Animation::SetAction(std::string actionName) { // 先将原动作的Ani设置为不可见 ActionAnis[CurrentActionTag]->Reset(); ActionAnis[CurrentActionTag]->SetVisible(false); // 再将新动作的Ani设置为可见 ActionAnis[actionName]->SetVisible(true); CurrentActionTag = actionName; }