Cocos2D-X2.2.3学习笔记12(瞬间动作)

到眼下我们已经学习了有

坐标系统

内存管理

UI系统

事件处理

几何图形

今天我们来学习动作管理OK

我们来看看类结构图

CCAction   全部动作的基类

以下派生了三个子类:CCFiniteTimeAction,CCFollow,CCSpeed

这些我们先不看  我们主要来介绍一下瞬时动作,

CCActionInstant

瞬时动作 故而 一瞬间就完毕的动作,它没有延迟时间的

好的  開始

#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__

#include "cocos2d.h"

class HelloWorld : public cocos2d::CCLayer
{
public:
    // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
    virtual bool init();  

    // there's no 'id' in cpp, so we recommend returning the class instance pointer
    static cocos2d::CCScene* scene();

    // implement the "static node()" method manually
    CREATE_FUNC(HelloWorld);
};

#endif // __HELLOWORLD_SCENE_H__
#include "HelloWorldScene.h"

USING_NS_CC;

CCScene* HelloWorld::scene()
{
    // 'scene' is an autorelease object
    CCScene *scene = CCScene::create();

    // 'layer' is an autorelease object
    HelloWorld *layer = HelloWorld::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}

// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }

    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
	CCSprite* pSprite1= CCSprite::create("Icon.png");
	pSprite1->setPosition(ccp(visibleSize.width/2-pSprite1->getContentSize().width,visibleSize.height/2));
	this->addChild(pSprite1);

	CCSprite* pSprite2= CCSprite::create("Icon.png");
	pSprite2->setPosition(ccp(visibleSize.width/2+pSprite1->getContentSize().width,visibleSize.height/2));
	this->addChild(pSprite2);

    return true;
}

我们创建了二个精灵显示,这里主要是为了等下演示翻转动作时候能看出效果来

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }

    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
	CCSprite* pSprite1= CCSprite::create("Icon.png");
	pSprite1->setPosition(ccp(visibleSize.width/2-pSprite1->getContentSize().width,visibleSize.height/2));
	this->addChild(pSprite1);

	//翻转X轴
	//參数:true 翻转   false 不翻转
	CCActionInstant* pFlipX= CCFlipX::create(true);
	pSprite1->runAction(pFlipX);
	//翻转Y轴
	//參数:true 翻转   false 不翻转
	 CCActionInstant* pFlipY=CCFlipY::create(true);
	 pSprite1->runAction(pFlipY);

	CCSprite* pSprite2= CCSprite::create("Icon.png");
	pSprite2->setPosition(ccp(visibleSize.width/2+pSprite1->getContentSize().width,visibleSize.height/2));
	this->addChild(pSprite2);

    return true;
}

我们用精灵1运行动作。精灵2什么都不做,明显就看到差别了

显示隐藏动作:

//隐藏动画
	 CCActionInstant* pHide= CCHide::create();
	 pSprite1->runAction(pHide);

	 //显示动画
	 CCActionInstant* pShow= CCShow::create();
	 pSprite1->runAction(pShow);

	 //假设是隐藏运行该动作就显示,假设是显示运行动作后就隐藏
	 CCActionInstant* pToggleVisibility= CCToggleVisibility::create();;
	 pSprite1->runAction(pToggleVisibility);

移动位置动作:

//參数:须要移动到指定的位置
	 CCActionInstant* pPlace= CCPlace::create(ccp(visibleSize.width/2-pSprite1->getContentSize().width,visibleSize.height/2-50));
	 pSprite1->runAction(pPlace);

移除动作:

//參数:是否清理内存,true 清理 false 不清理
	 //注:这里的參数可不是是否移除咯
	 CCActionInstant* pRemoveSelf= CCRemoveSelf::create(true);
	 pSprite1->runAction(pRemoveSelf);

OK   瞬时动作就这些,还有几个神马神马Grid,Bsound神马神马的   都不经常使用。以后用到的时候再暂时发挥吧

总结:

瞬时动作基类  CCActionInstant

翻转动作:CCFlipX,CCFlipY

隐藏显示动作:CCHideCCShow
CCToggleVisibility

移动位置动作:CCPlace

删除操作:CCRemoveSelf

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-08-27 02:04:46

Cocos2D-X2.2.3学习笔记12(瞬间动作)的相关文章

python基础教程_学习笔记12:充电时刻——模块

充电时刻--模块 python的标准安装包括一组模块,称为标准库. 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 任何python程序都可以作为模块导入. $ cat hello.py #!/usr/bin/python print "Hello,signjing!" $ ./hello.py Hello,signjing! 假设将python程序保存在/home/ggz2/magiccube/mysh/p

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

Swift学习笔记(12)--数组和字典的复制

Swift中,数组Array和字典Dictionary是用结构来实现的,但是数组与字典和其它结构在进行赋值或者作为参数传递给函数的时候有一些不同. 并且数组和字典的这些操作,又与Foundation中的NSArray和NSDictionary不同,它们是用类来实现的. 注意:下面的小节将会介绍数组,字典,字符串等的复制操作.这些复制操作看起来都已经发生,但是Swift只会在确实需要复制的时候才会完整复制,从而达到最优的性能. 字典的赋值和复制操作 每次将一个字典Dictionary类型赋值给一个

[原创]java WEB学习笔记12:一个简单的serlet连接数据库实验

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

《JavaScript高级程序设计》学习笔记12篇

写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的东西进去 目录 JS学习笔记1_基础与常识 JS学习笔记2_面向对象 JS学习笔记3_函数表达式 JS学习笔记4_BOM JS学习笔记5_DOM JS学习笔记6_事件 JS学习笔记7_表单脚本 JS学习笔记8_错误处理 JS学习笔记9_JSON JS学习笔记10_Ajax JS学习笔记11_高级技巧

MiZ702学习笔记12——封装一个普通的VGA IP

还记得<MiZ702学习笔记(番外篇)--纯PL VGA驱动>这篇文章中,用verilog写了一个VGA驱动.我们今天要介绍的就是将这个工程打包成一个普通的IP,目的是为后面的一篇文章做个铺垫. 打包成一个普通的IP的目的,可以直接将这个IP粘贴到Block文件中.(和用文本实例化是一个意思).应为我们调用zynq的核的时候一般是用Block的形式,为了zynq和我们的VGA模块更方便的组织起来,就需要这种IP打包方式. 为什么是强调是普通的IP,这个主意是区分带AXI接口的IP,这个在后面介

《ASP.NET MVC 4 实战》学习笔记 12:结束与总结

本篇是<ASP.NET MVC 4 实战>这本书学习笔记的最后一篇,最后还是没有坚持将全书的内容学习下来... 其实后面还讲了许多内容:AutoMapper.区域.NHibernate.测试.部署等,但是我基本都搞不懂了. 当时选这本书作教材就是因为偏向实践,可越往后越偏向于理论,很多知识点没有实例也搞不懂在讲什么. 原因有三:1.学习能力不强:2.心情有点急躁:3.不知是原文就这样还是翻译的原因,很多地方的表述很奇怪,不知道到底想表达什么. 因为没有坚持下来,心情很不美丽,不过这段时间的学习

Xitrum学习笔记12 - 范围

一.Request 参数种类 1. 文本参数:名为textParams,类型为 scala.collection.mutable.Map[Sting, Seq[String]] 1)queryParams:URL中 ? 后面的参数,例:http://example.com/blah?x=1&y=2 2)bodyTextParams:在POST请求体里的参数 3)pathParams:嵌入到URL的参数,例:GET("articles/:id/:title") 从1)到3),同名

Cocos2D-X2.2.3学习笔记12(瞬时动作)

到眼下我们已经学习了有 坐标系统 内存管理 UI系统 事件处理 几何图形 今天我们来学习动作管理OK 我们来看看类结构图 CCAction   全部动作的基类 以下派生了三个子类:CCFiniteTimeAction,CCFollow,CCSpeed 这些我们先不看  我们主要来介绍一下瞬时动作, CCActionInstant 瞬时动作 故而 一瞬间就完毕的动作,它没有延迟时间的 好的  開始 #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORL