内容例如以下:

#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);

cocos3.0使用cocostudio动画帧结合地图对象键值创建精灵动画的更多相关文章

  1. cocos2d-x创建精灵动画方式汇总

    1.创建精灵框架缓存,并向其中添加相应的动画文件(plist),最后,通过动画集缓存生产动画 CCSpriteFrameCache *cache = CCSpriteFrameCache::share ...

  2. cocos2d-x创建精灵动画

    创建动画一般过程: 1.创建精灵框架缓存,并向其中添加相应的动画文件(plist),最后,通过动画集缓存生产动画 CCSpriteFrameCache *cache = CCSpriteFrameCa ...

  3. CSS3的自定义动画帧

    CSS3新增的动画帧非常绚丽,可以简单实现一些动画效果,目前除IE外各大主流浏览器都支持 本文演示三个:transform: scale3d(x, y, z)-缩放;.transform: trans ...

  4. 网页小实验——用canvas生成精灵动画图片

    实验目标:借助canvas把一张国际象棋棋子图片转换为一组适用于WebGL渲染的精灵动画图片,不借助其他图片处理工具,不引用其他库只使用原生js实现. 初始图片如下: 一.图片分割 将初始图片分割为六 ...

  5. 精灵动画Animation对话框组成Idle动画的各精灵

    精灵动画Animation对话框组成Idle动画的各精灵 1.3  精灵动画 场景中已经添加了精灵,现在是时候让让它动起来了.读者也许已经从精灵图集中,各精灵的命名中看出来了,这个精灵一共有两种动画状 ...

  6. CocoStudio创建动画帧

    进入动画编辑器 选择“形体模式” 右键点击资源窗口的资源,可以进行删除,重命名的操作:  可以再资源窗口下方的预览窗口,查看选中的资源预览效果图: 右键点击“对象结构”,创建图层 选择“动画模式” 右 ...

  7. CocoStudio基础教程(6)使用CocoStudio编辑帧事件并关联到程序

    1.概述 帧事件也是新加入的功能.这篇中我们将看到如何使用它.我们将上篇中制作的动画稍加修改. 2.用途与原理 首先介绍一下帧事件.正如其名:一个与帧相关联的事件. 为什么要这么做呢?首先没人想做一大 ...

  8. cocostudio使用plist创建序列帧动画图片名称序列错乱的问题

    cocostudio 版本v2.2.9 用texturePacker将动画帧打包成一个plist和一张png,将plist拖入cocostudio中的资源栏中. 如图所示,plist里面的图片顺序是乱 ...

  9. 【转】CSS3动画帧数科学计算法

    本文来源于:财付通TID 原作者:bboy90 总结都浓缩在这个工具里了,想知道工具的地址或想窥探工具诞生的趣事请往下看 . —————————————————————–     华丽丽的开篇     ...

随机推荐

  1. POJ 2230 Watchcow(欧拉回路:输出点路径)

    题目链接:http://poj.org/problem?id=2230 题目大意:给你n个点m条边,Bessie希望能走过每条边两次,且两次的方向相反,让你输出以点的形式输出路径. 解题思路:其实就是 ...

  2. 四、ansible主机组定义

    1.打开hosts文件 vim /etc/ansible/hosts 2.定义一个主机组 [web-server] 192.168.1.1 3.定义多个组(继承) [web:children] web ...

  3. webapi调用post时自动匹配参数

    [HttpPost] public async Task<string> Post() { dynamic model = await Request.Content.ReadAsAsyn ...

  4. Zookeeper(二)Zookeeper原理与API应用

    一 Zookeeper概述 1.1 概述 Zookeeper是Google的Chubby一个开源的实现.它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.名字服务. 分布式同步.组服 ...

  5. Asp.net MVC CSS/Javascript Bundle 配置文件

    Asp.net mvc 中使用 Web Optimization 可以合并.压缩JS和CSS文件,但是每次修改都要改代码 ~/App_Start/BundleConfig.cs ,遂有了将它挪到配置文 ...

  6. 在kubernetes运行一个容器案例

    1. 检查kubernetes 组件是否正常运行. [root@c720120 ~]# kubectl get cs NAME                 STATUS    MESSAGE    ...

  7. 用于浏览器本地存储的js插件 - jStorage

    简介 jStorage是一个跨浏览器的将key-value类型的数据存储到浏览器本地存储的js插件——jStorage支持所有主流浏览器,PC机(甚至包括是IE6)和移动终端均可用.此外,jStora ...

  8. Scrapy 笔记(一)

    这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: scrapy startproject test1 You can star ...

  9. BNUOJ 52509 Borrow Classroom

    最近公共祖先. 如果$A$到$1$的时间小于$B$到$C$再到$1$的时间,那么一定可以拦截. 如果上述时间相等,需要在到达$1$之前,两者相遇才可以拦截. #include<bits/stdc ...

  10. (转)Ubuntu 16.04 安裝Docker(PS:本文适用amd64位的ubuntu系统)

    1.前置安裝,確保你的系統是64位 $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-p ...