cocos3.0使用cocostudio动画帧结合地图对象键值创建精灵动画
来源:未知 责任编辑:责任编辑 发表时间:2014-05-26 10:56 点击:次
内容如下:
#include "cocos2d.h" #include "cocostudio/CocoStudio.h" //精灵猫和其他精灵的tag typedef enum{ catTag =1, }; //cocostudio 动画帧tag typedef enum{ catWalkTag = 1001, }; class Base :public cocos2d::Layer { public: Base(); ~Base(); //在地图中创建一个活多个空精灵节点 void createSpriteInMap(cocos2d::TMXTiledMap* map, const std::string& strObj,int _tag, const std::string& strJosn, const std::string& _index, float scale); //创建精灵的动画 cocostudio::Armature* createArmature(const std::string& strJosn, const std::string& _index, float scale); //移除动画 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);
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>
您可能感兴趣的文章
- cocos2d-x Jni c++ java互调 并且相互刷新UI控件最简单例子(下
- Cocos2d-x初学指南(4): 生成animation 帧动画的2种方法
- cocos2dx 精灵的移动
- AVAudioPlayer连续播放音乐的代码(通到单例)
- PhoneGap API中文帮助文档——Device(设备)
- COCOS2D-X之骨骼动画武器换装效果Demo
- cocos2d-x编译安卓版本时实现“再按一次退出程序”的效果
- Cocos2d-x--非布景层类和非布景层类的子类使用触摸
- cocos2d-x-3.0 alpha1与C++11练习三:飞镖忍者,如何移动精灵及
- ReactiveCocoa (2) map,filter,fold