The content is as follows:
# Include "cocos2d. h "# include" cocostudio/CocoStudio. h "// tagtypedef enum {catTag = 1 ,}; // cocostudio animation frame tagtypedef enum {cat1_tag = 1001 ,}; class Base: public cocos2d :: layer {public: Base ();~ Base (); // create a void createSpriteInMap (cocos2d: TMXTiledMap * map, const std: string & strObj, int _ tag in the map, const std: string & strJosn, const std: string & _ index, float scale); // create an animated cococostudio: Armature * createArmature (const std :: string & strJosn, const std: string & _ index, float scale); // remove the animation void removeArmature (int _ tag1, int _ tag2 );};
#include "Base.h"USING_NS_CC;using namespace cocostudio;Base::Base(){}Base::~Base(){}void Base::createSpriteInMap(TMXTiledMap* map, const std::string& strObj,int _tag, const std::string& strJosn, const std::string& _index, float scale){auto group =map->getObjectGroup(strObj);auto& objs = group->getObjects();for (auto& obj : objs){ValueMap& dict =obj.asValueMap();float x =dict["x"].asFloat();float y =dict["y"].asFloat(); auto sprite = Sprite::create();sprite->setPosition(Point(x,y));ArmatureDataManager::getInstance()->addArmatureFileInfo(strJosn);Armature *armature = Armature::create(_index);armature->getAnimation()->playWithIndex(0);armature->setScale(scale);switch (_tag){ case catTag: sprite->addChild(armature, 2, catWalkTag); this->addChild(sprite, 2,catTag);}}}cocostudio::Armature* Base::createArmature(const std::string& strJosn, const std::string& _index, float scale){ArmatureDataManager::getInstance()->addArmatureFileInfo(strJosn);Armature *armature = Armature::create(_index);armature->getAnimation()->playWithIndex(0);armature->setScale(scale);return armature;}void Base::removeArmature(int _tag1,int _tag2){auto sprite =this->getChildByTag(_tag1);sprite->removeChildByTag(_tag2);}
this->createSpriteInMap(myMap, "jlmPoint", 1, "cat/CatWalks/CatWalks.ExportJson", "CatWalks", 0.5f);