cocos2d-3.x 创建动画
1.多文件帧序列动画
TrademarkAnimation.h
#ifndef __TRADEMARK_ANIMATION_H__
#define __TRADEMARK_ANIMATION_H__
#include "cocos2d.h"
USING_NS_CC; class TrademarkAnimation : public cocos2d::CCLayer{
private:
Animate* createAnimate();
public :
~TrademarkAnimation();
virtual bool init(); CREATE_FUNC(TrademarkAnimation);
};
#endif
TrademarkAnimation.cpp
#include "TrademarkAnimation.h" bool TrademarkAnimation::init(){
if(!CCLayer::init())return false;
Sprite* runSp=Sprite::create();
runSp->setPosition(Point(,));
this->addChild(runSp); runSp->runAction(createAnimate());
return true;
} Animate* TrademarkAnimation::createAnimate(){
int totalFrames=;
SpriteFrame* frame=NULL;
Vector<SpriteFrame*> frameVec; for(int i=;i<=totalFrames;i++){
//tdmark/tdmark0001.png....tdmark/tdmark0319.png
frame=SpriteFrame::create(StringUtils::format("tdmark/tdmark%04d.png",i),Rect(,,,));
frameVec.pushBack(frame);
} Animation* animation=Animation::createWithSpriteFrames(frameVec);
animation->setLoops(-);
animation->setDelayPerUnit(0.04f);//: 1/帧频 Animate* action=Animate::create(animation);
return action;
} TrademarkAnimation::~TrademarkAnimation(){ }
2.plist文件创建动画
#include "TrademarkAnimation.h" bool TrademarkAnimation::init(){
if(!CCLayer::init())return false; Size size=Director::getInstance()->getVisibleSize();
Sprite* runSp=Sprite::create();
runSp->setPosition(size.width*0.5,size.height*0.5);
this->addChild(runSp);
runSp->runAction(createAnimate());
return true;
} Animate* TrademarkAnimation::createAnimate(){
//如果flash出图,设置:
//Algorithm: Basic/MaxRects
//Data format: cocos2D v2
//Trim: false
//Stack frames: false
SpriteFrameCache* frameCache=SpriteFrameCache::getInstance();
frameCache->addSpriteFramesWithFile("trademark.plist","trademark.png"); //或 frameCache->addSpriteFramesWithFile("trademark.plist"); int totalFrames=;
SpriteFrame* frame=NULL;
Vector<SpriteFrame*> frameVec;
for(int i=;i<totalFrames;i++){
//T1 instance 10000.......T1 instance 10318
frame=frameCache->getSpriteFrameByName(StringUtils::format("T1 instance 1%04d",i));
frameVec.pushBack(frame);
} Animation* animation=Animation::createWithSpriteFrames(frameVec);
animation->setLoops(-);
animation->setDelayPerUnit(0.04f); Animate* action=Animate::create(animation);
return action;
} TrademarkAnimation::~TrademarkAnimation(){ }
cocos2d-3.x 创建动画的更多相关文章
- Cocos2d-X使用CCAnimation创建动画
动画在游戏中是很常见的 程序1:创建一个简单的动画 首先须要在project文件夹下的Resource文件夹中放一张有各种不同动作的图片 在程序中加入以下的代码 #include "Anim ...
- cocos2dx中创建动画的三种方法
1.最最原始的方法,先创建动画帧,再创建动画打包(animation),再创建动画(animate) 第一步: 创建动画帧:CCSpriteFrame,依赖于原始的资源图片(xx.png,xx.jpg ...
- wpf 创建动画三种方式
动画类型 : 故事版,CompositionTarget,DispachTime 那么到此,三种动态创建动画的方法都已经详细介绍过了,大家可能会有种感觉,比较钟情于第一种WPF/Silverlight ...
- 《Programming WPF》翻译 第8章 5.创建动画过程
原文:<Programming WPF>翻译 第8章 5.创建动画过程 所有在这章使用xaml举例说明的技术,都可以在代码中使用,正如你希望的.可是,代码可以使用动画在某种程度上不可能在x ...
- UWP 创建动画的极简方式 — LottieUWP
提到 UWP 中创建动画,第一个想到的大多都是 StoryBoard.因为 UWP 和 WPF 的界面都是基于 XAML 语言的,所以实现 StoryBoard 会非常方便. 来看一个简单的 Stor ...
- WPF/WP/Silverlight/Metro App代码创建动画的思路
在2010年之前,我都是用Blend创建动画,添加触发器实现自动动画,后来写成代码创建的方式.如今Blend已经集成到Visual Studio安装镜像中了,最新的VS2015安装,Blend的操作界 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(九):创建动画
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- cocos2d环境及创建一个自己的项目
一. mac环境: 1.在终端操作,准备好mac系统下的sdk,adt,ndk,ant文件,放在自己的目录中 2.进入mac终端,输入: vim ~/.bash_profile 然后回 ...
- [UE4]创建动画的3中方法
一.基于现有动画的骨骼,从头开始创建一个全新的动画.(不推荐) 选中左边的骨骼节点做旋转变化. 调整完成了别忘记点击添加“Key”以创建一个关键帧,然后再保存. 二.基于当前动画的姿势创建一个动画.( ...
随机推荐
- linux内核内存管理(zone_dma zone_normal zone_highmem)
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数 ...
- mabatis传入参数
1.传入一个list,遍历时collection默认是list,如果在参数前面使用@Param,则list里面应该换成相应的value. 2.传入一个array,遍历时collection默认是arr ...
- Jmeter对基于websocket协议的压力测试
WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex). 浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就 ...
- Java定时器Timer简述
概述 主要用于Java线程里指定时间或周期运行任务.Timer是线程安全的,但不提供实时性(real-time)保证. 构造函数 Timer() 默认构造函数. Timer(boolean) 指定关联 ...
- 浅谈href=#与href=javascript:void(0)的区别
#"包含了一个位置信息 默认的锚点是#top 也就是网页的上端 而javascript:void(0) 仅仅表示一个死链接 这就是为什么有的时候页面很长浏览链接明明是#可是跳动到了页首 而 ...
- Jquery Form表单取值
之前js取form表单的值都是一个一个的取,数量一多之后容易出错而且烦透了.感谢那些愿意分享的人. 页面定义form,并给form指定id值,里面的元素只要是需要键值对应的都赋予name属性,并且na ...
- iOS 10 之后,相机权限问题及易出现的Crash
1: iOS 10 之后,访问相机需要设置相关的权限 麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风? 相机权限: Priva ...
- maven插件报错之解决
maven插件报错之解决 用m2eclipse创建Maven项目时报错 maveneclipsebuilddependenciesauthorizationplugins 用m2eclipse创建 ...
- java基础<迷你DVD系统>
一.写在main方法中 import java.util.*; public class MyDVDMgr { public static void main(String[] args){ Scan ...
- MySQL中的事务
MySQL中的事务性: MySQL的InnoDB引擎是支持事务性的,事务是由多条SQL语句组成,是一个连续的一组数据库操作.只有该组内的每一个操作都成功时,整个事务才执行成功.(例如银行转账操作,只有 ...