这一次来讲讲帧动画,来做一个酷炫的火焰效果,首先看看效果

首先,创建helloworld项目,先编译一下。

接着创建MyAction.hpp和MyAction.cpp。记得勾选helloworld-desktop

然后添加图片资源,最后的各个文件如下

接着修改代码

HelloWorld.h

#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"class HelloWorld : public cocos2d::Scene
{
public:static cocos2d::Scene* createScene();virtual bool init();// a selector callbackvoid menuCloseCallback(cocos2d::Ref* pSender);void OnclickMenu(cocos2d::Ref *pSender);// implement the "static create()" method manuallyCREATE_FUNC(HelloWorld);
};#endif // __HELLOWORLD_SCENE_H__

HelloWorld.cpp

#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"
#include "MyAction.hpp"USING_NS_CC;Scene* HelloWorld::createScene()
{return HelloWorld::create();
}// Print useful error message instead of segfaulting when files are not there.
static void problemLoading(const char* filename)
{printf("Error while loading: %s\n", filename);printf("Depending on how you compiled you might have to add 'Resources/' in front of filenames in HelloWorldScene.cpp\n");
}// on "init" you need to initialize your instance
bool HelloWorld::init()
{//// 1. super init firstif ( !Scene::init() ){return false;}cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();cocos2d::Vec2 origin = cocos2d::Director::getInstance()->getVisibleOrigin();auto bg = cocos2d::Sprite::create("HelloWorld.png");if (bg == nullptr){problemLoading("'HelloWorld.png'");}else{bg->setPosition(Vec2(origin.x+visibleSize.width/2,origin.y+visibleSize.height/2));this->addChild(bg);}auto FireLable = cocos2d::Label::createWithBMFont("fonts/fnt2.fnt", "Fire");auto FireMenu = cocos2d::MenuItemLabel::create(FireLable, CC_CALLBACK_1(HelloWorld::OnclickMenu, this));auto mn = cocos2d::Menu::create(FireMenu, NULL);mn->alignItemsVertically();mn->setPosition(Vec2(origin.x+visibleSize.width/4, origin.y+visibleSize.height/2));this->addChild(mn);return true;
}void HelloWorld::OnclickMenu(cocos2d::Ref *pSender) {cocos2d::MenuItem *mnItem = (cocos2d::MenuItem*)pSender;auto sc = MyAction::create();auto reScene = cocos2d::TransitionSlideInR::create(1.0f, sc);cocos2d::Director::getInstance()->replaceScene(reScene);}

MyAction.hpp

#ifndef MyAction_hpp
#define MyAction_hpp#include "cocos2d.h"class MyAction: public cocos2d::Scene
{bool hiddenFlag;cocos2d::Sprite *sprite;cocos2d::NodeGrid *nodegrid;public:static cocos2d::Scene* createScene();virtual bool init();// implement the "static create()" method manuallyCREATE_FUNC(MyAction);};#endif /* MyAction_hpp */

MyAction.cpp


#include "SimpleAudioEngine.h"
#include "MyAction.hpp"
#include "HelloWorldScene.h"USING_NS_CC;Scene* MyAction::createScene()
{return MyAction::create();
}// Print useful error message instead of segfaulting when files are not there.
static void problemLoading(const char* filename)
{printf("Error while loading: %s\n", filename);printf("Depending on how you compiled you might have to add 'Resources/' in front of filenames in HelloWorldScene.cpp\n");
}// on "init" you need to initialize your instance
bool MyAction::init()
{//// 1. super init firstif ( !Scene::init() ){return false;}cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();cocos2d::Vec2 origin = cocos2d::Director::getInstance()->getVisibleOrigin();auto bg = cocos2d::Sprite::create("HelloWorld.png");if (bg == nullptr){problemLoading("'HelloWorld.png'");}else{bg->setPosition(Vec2(origin.x+visibleSize.width/2,origin.y+visibleSize.height/2));this->addChild(bg);}Animation *animation=Animation::create();for(int i=1;i<18;i++){auto frameName=String::createWithFormat("campFire%02d.png",i);animation->addSpriteFrameWithFile(frameName->getCString());}animation->setDelayPerUnit(0.11f);animation->setRestoreOriginalFrame(true);Animate * action=Animate::create(animation);auto sp01=Sprite::create("campFire01.png");if (sp01 == nullptr){problemLoading("'campFire01.png'");}else{sp01->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));this->addChild(sp01);sp01->runAction(RepeatForever::create(action));}return true;
}

这样就可以了。看看跟上面的一样

附上代码和资源包。

https://download.csdn.net/download/qq_37656219/10344506

就到这里了,DRW

MAC_COCOS2D-X学习——Cocos2dx帧动画实现火焰效果相关推荐

  1. cocos2d-x 帧动画学习

    今天学了一下cocos2d-x的帧动画,在这里记录一下,如果有什么错误的地方还请大家指出,我及时改正.在这里我创建了一个SpriterLayer的类,他是继承自CClayer的,在这里我先把头文件的定 ...

  2. cocos2d-x帧动画实现(续)

    猴子原创, 欢迎转载,转载请在明显处注明! 谢谢. 原文地址:http://blog.csdn.net/yanghuiliu/article/details/6933421 之前我介绍过cocos2d ...

  3. Android动画学习之帧动画

    帧动画简介 介绍帧动画之前先了解一下'帧'的概念:帧,影像动画中最小单位,也就是最小的单幅画面.相当于电影脚上的每一格镜头.一帧就是最小的一张单幅画面,多个帧连接在一起就会形成动画.通常所说的帧数,是 ...

  4. cocos2d-x 帧动画

    ani = cc.Animation:create(); ...... local animate = cc.Animate:create(ani); s:runAction(animate); 发现 ...

  5. android 张口逐帧动画,《Android 动画》逐帧动画

    关于 Android 的动画学习可以分为以下几个大类: 逐帧动画 补间动画(也说 View 动画) 属性动画 转场动画 这里注意,我只是从学习的角度分为了这四类:从面试的角度,只需要说前面三类,转场动 ...

  6. cocos2d-x 连帧动画实现

    最开始的动画片也是用图片叠加的方法,下面介绍如何有多张图片实现一个小小的动画: 首先,把你要进行叠加的图片命名成 Name(数字)的形式:如 name1,name2... ... 然后在你的init函 ...

  7. cocos2d-x之逐帧动画

    cocos2d-x之逐帧动画 在bool HelloWorld::init()中添加如下内容 //缓存,帧动画的帧的缓存 auto cache = SpriteFrameCache::getInsta ...

  8. Cocos2d-x Lua中实例:帧动画使用

    Cocos2d-x Lua中实例:帧动画使用 下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画. ...

  9. Android动画学习之补间动画和逐帧动画,移动互联网app开发

    | fromXScale | 指定动画开始时X轴上的缩放系数 | 值为1.0表示不再变化 | | fromYScale | 指定动画开始时Y轴上的缩放系数 | 值为1.0表示不再变化 | | toXS ...

最新文章

  1. 【0729作业】随机生成20个手机号码
  2. 智慧树omg期末测试答案_智慧树答案广告文案写作单元期末见面课知到章节测试答案...
  3. ML一:python的KNN算法
  4. WCF发布到IIS 7.0,并以https访问
  5. 基于ASP.NET的开源Blog程序总结
  6. bp神经网络数据预测实例,bp神经网络预测数据
  7. 镜像下载vscode
  8. 微信一键激活 设置开卡字段
  9. 硬件设计18之什么是VGA?
  10. 软件工程——什么是软件
  11. 湖南省首届逻辑推理大赛(中南大学)
  12. solr增量 dih deltaimport 入门
  13. C#,.net将DataTable转为对应的Model实体类
  14. 计网必会:UDP差错检测,检验和、可靠数据传输原理
  15. 二.MUI框架 开始体验MUI
  16. vue里面的ref详解
  17. Android 如何批量改变字体颜色
  18. mac数据库操作(忘记密码)
  19. excel高效之拆分单元格数据、导入ppt实现修改同步
  20. 城镇固定资产投资增速27.6%

热门文章

  1. 【Ecstore2.0】计划任务/队列/导入导出 的执行问题
  2. oracle常用数据统计,学习笔记:Oracle DBMS_STATS常用方法汇总 常用于收集统计oracle...
  3. TIMO后台管理系统crud
  4. 《百家讲坛》大汉风云人物
  5. JavaScript基础一些重要知识-JavaWeb篇
  6. 【WPS表格】函数里的一些特殊符号
  7. 高德地图API全家桶python3
  8. 2021高考广西扶绥中学成绩查询,扶绥中学隆重举行2021届高考百日冲刺誓师大会_扶绥论坛...
  9. 男人成熟的28个标志
  10. 直播行业的“杀手锏”