cocos2d-x学习记录2——CCAction动作
CCAction能够使CCNode运动起来,能够呈现出多种多样的动作。这些动作能够改变其运动方向、形状、大小、旋转等。
同时,还可利用CCCallFunc、CCCallFuncN、CCCallFuncO、CCCallFuncND等函数实现回调。
MyScene.h代码
#ifndef MyScene_H_H
#define MyScene_H_H #include "cocos2d.h"
using namespace cocos2d; class MyScene : public CCLayer
{
public:
static CCScene* createScene();
virtual bool init();
CREATE_FUNC( MyScene ); void callback1();
void callback2(CCNode *node);
void callback3(CCObject *obj);
void callback4(CCNode *node, void *data); private:
}; #endif
MyScene.cpp代码
#include "MyScene.h" CCScene* MyScene::createScene()
{
CCScene *scene = CCScene::create();
MyScene *layer = MyScene::create();
scene->addChild(layer);
return scene;
}; bool MyScene::init()
{
if( !CCLayer::init() ){
return false;
} CCSize size = CCDirector::sharedDirector()->getWinSize();
CCSprite *sprite = CCSprite::create("pal4.png");
sprite->setAnchorPoint( ccp(0.5, 0.5) );
//sprite->setPosition( ccp(size.width/2, size.height/2) );
sprite->setPosition( ccp(, ) );
sprite->setScale(0.5f);
sprite->setTag();
addChild(sprite); CCAction *action1 = CCMoveTo::create(, ccp(size.width-sprite->getContentSize().width/, size.height-sprite->getContentSize().height/));
CCAction *action2 = CCRotateBy::create(, );
CCAction *action3 = CCBlink::create(, );
CCAction *action4 = CCCallFunc::create( this, callfunc_selector(MyScene::callback1) );
CCAction *action5 = CCCallFuncN::create( this, callfuncN_selector(MyScene::callback2) );
CCAction *action6 = CCCallFuncO::create( this, callfuncO_selector(MyScene::callback3), sprite );
CCAction *action7 = CCCallFuncND::create( this, callfuncND_selector(MyScene::callback4), "funcND" ); CCArray *array = CCArray::createWithCapacity();
array->addObject(action1);
array->addObject(action2);
array->addObject(action3);
array->addObject(action4);
array->addObject(action5);
array->addObject(action6);
array->addObject(action7);
//array->addObject(NULL);
//array->retain();
//CCAction *totoalAction = CCSequence::create( action1, action2, action3, action4, action5, action6, action7, NULL );
CCAction *totalAction = CCSequence::create(array);
sprite->runAction(totalAction); return true;
} void MyScene::callback1()
{
CCLog( "callback1" );
} void MyScene::callback2(CCNode *node)
{
CCLog( "%d", node->getTag() );
} void MyScene::callback3(CCObject *obj)
{
CCNode *node = dynamic_cast<CCNode*>(obj);
if( node != NULL ){
CCLog( "%d", node->getTag() );
}
} void MyScene::callback4(CCNode *node, void *data)
{
CCLog( "%d, %s", node->getTag(), data );
CCMessageBox( "Over!", "Info" );
}
callback1到callback4分别对应4种回调形式,只是各自带的参数不同而已。
运行结果:
 
 
cocos2d-x学习记录2——CCAction动作的更多相关文章
- UWP学习记录3-设计和UI之样式
		
UWP学习记录3-设计和UI之样式 1.颜色 在系统的“设置”>“个性化”>“颜色”里,提供了主题色选择.选定主题色后,会根据颜色亮度的 HSB 值创建浅色和深色的主题色. 应用可使用阴影 ...
 - Java设计模式学习记录-命令模式
		
前言 这次要介绍的是命令模式,这也是一种行为型模式.最近反正没有面试机会我就写博客呗,该投的简历都投了.然后就继续看书,其实看书也会给自己带来成就感,原来以前不明白的东西,书上已经给彻底的介绍清楚了, ...
 - NodeJS 学习记录
		
这里是我学习NodeJs的学习记录 URL:网址解析的好帮手 URL,URI 首先,URI是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源.而URL是u ...
 - Python学习记录day8
		
目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...
 - Quartz 学习记录1
		
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
 - Java 静态内部类与非静态内部类 学习记录.
		
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
 - Apache Shiro 学习记录4
		
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
 - UWP学习记录12-应用到应用的通信
		
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
 - UWP学习记录11-设计和UI
		
UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...
 
随机推荐
- cuda中threadIdx、blockIdx、blockDim和gridDim的使用
			
threadIdx是一个uint3类型,表示一个线程的索引. blockIdx是一个uint3类型,表示一个线程块的索引,一个线程块中通常有多个线程. blockDim是一个dim3类型,表示线程块的 ...
 - CentOS 7 环境下 GitLab安装部署以及账号初始化
			
1. 安装相关依赖 yum install curl policycoreutils openssh-server openssh-clients -y # 确保sshd启动(正常情况下, sshd是 ...
 - 为什么Sql Server的查询有时候第一次执行很慢,第二次,第三次执行就变快了
			
老外提问: Hi, I have an sql query which takes 8 seconds in the first run. The next run there after takes ...
 - jboss eap6.1(5)(ejb升级)
			
以前的项目是基于ejb2.x做的,ejb的配置文件为ejb-jar.xml和jboss.xml,现在把这个项目移到新版本服务器中的时候,报解析ejb-jar错误. 查阅许多资料才找到解决办法,原来jb ...
 - 【转】Java学习---快速掌握RPC原理及实现
			
[原文]https://www.toutiao.com/i6592365493435236872/ RPC概述 RPC(Remote Procedure Call)即远程过程调用,也就是说两台服务器 ...
 - sysbench压力工具报错:
			
[root@ sysbench-]# /usr/local/sysbench/bin/sysbench --version : cannot open shared object file: No s ...
 - 不使用 vue-cli 与 vue 模版,使用 Vue2.x + webpack4.x 从零开始一步步搭建项目框架
			
说明 这是我根据慕课网上的一个课程 Vue+Webpack打造todo应用 过程一步步搭下来的框架,去掉了业务相关的逻辑. 项目最终的效果包括了引入vue框架:使用CSS预处理器:使用babel:引用 ...
 - SDN2017 第五次实验作业
			
实验目的 1.搭建如下拓扑并连接控制器 2.下发相关流表和组表实现负载均衡 3.抓包分析验证负载均衡 实验步骤 建立以下拓扑,并连接上ODL控制器. 利用ODL下发组表.流表,实现建议负载均衡 s1组 ...
 - 抓取js动态生成的数据分析案例
			
需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.html页面中的 ...
 - cocos2d-x2.2.3学习
			
cocos2d-x2.2.3抛弃了原先的vs模板,改为python创建项目,详细什么原因我不是非常清楚啊,可能更方便些吧. 毕竟用pythone能够一下子创建很多不同平台的项目,让项目移植更方便些.可 ...