cocos2d0基础篇笔记二
1.菜单的使用:
CCMenuItemimage*image=CCMenuItemImage*create("xxx.png",
"xxx,png",
"xxx.png",
this,
menu_selector(HelloWorld::selfdefinefunc));//第一个參数:未选中时使用的图片。第二个參数:选中时使用的图片,第三个參数:进入时选用的图片。第四个參数:在哪个对象上,第四个參数:详细的响应函数。
CCMenu*menu=CCMenu::create(iamge,NULL);//创建菜单
menu->addChild(menu);
2.精灵运行的动作:
CCMoveBy*moveby=CCMoveBy::create(2.0f,ccp(800,0));
CCCallFuncN*selfaction=CCCallFuncN::create(this,callfuncN_selector(HelloWorld::selfdefine));//CCCallFuncN也是一个动作,仅仅只是这个动作是回调一个函数(带一个參数)。
CCSequence*action=CCSequence::create(moveby,selfaction,NULL);//组合动作
sprite1->runAction(action);
3.如何开启定时器:
bool HelloWorld::init()
{
//省略非常多代码
this->schedule(schedule_selector(HelloWorld::usecreatesprite),2);//第一个參数:响应函数。第二个參数:间隔多久运行一次。
return true;
}
void HelloWorld::usecreatesprite(float dt){
createsprite();
}
void HelloWorld::createsprite(){
CCSize visiblesize=CCDirector::sharedDirector()->getVisibleSize();
CCSprite* sprite1=CCSprite::create("sprite.png");//由于要创建非常多精灵,所以使用局部变量,不适用类成员。
int y=rand()%(int)(visiblesize.height);
sprite1->setPosition(ccp(10,y));
this->addChild(sprite1);
CCMoveBy*moveby=CCMoveBy::create(2.0f,ccp(800,0));
CCCallFuncN*selfaction=CCCallFuncN::create(this,callfuncN_selector(HelloWorld::selfdefine));
CCSequence*action=CCSequence::create(moveby,selfaction,NULL);
sprite1->runAction(action);
}
提问:为什么在用定时器时不直接启用createsprie函数,而是在usecreatesprite(float dt)函数中调用?
由于schedule里的运行函数的原型是固定的,返回值是void型。參数类型是float。而createsprite函数不符合要求,所以用usecreatesprite函数起到一个过渡函数的作用。
cocos2d0基础篇笔记二的更多相关文章
- cocos2d0基础篇笔记一
1.了解了基本的几个类:Director(导演),Scene(场景),Layer(层),Sprite(精灵): 2.创建精灵: CCSize visiblesize=CCDirector::share ...
- 小猪猪逆袭成博士之C++基础篇(二) 常量、处理类型、自定义头文件
小猪猪逆袭成博士之C++基础篇(二) const .auto. decltype 上一章我们介绍了一些常用的类型和常见的问题,下面再介绍一些学习的时候不是特别常用但是在实际工程中很有用的一些东西. 一 ...
- Hibernate.基础篇《二》. getOpenSession() 和 getCurrentSession() - 1
Hibernate.基础篇<二>. getOpenSession() 和 getCurrentSession() - 1 说明: 在Hibernate应用中,Session接口的使用最为广 ...
- python基础篇(二)
PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...
- [原]Java修炼 之 基础篇(二)Java语言构成
上次的博文中Java修炼 之 基础篇(一)Java语言特性我们介绍了一下Java语言的几个特性,今天我们介绍一下Java语言的构成. 所谓的Java构成,主要是指Java运行环境的组成, ...
- Python学习笔记之基础篇(二)python入门
一.pycharm 的下载与安装: 使用教程:https://www.cnblogs.com/jin-xin/articles/9811379.html 破解的方法:http://xianchang. ...
- 【笔记】DOM探索基础篇(二)
# 浏览器的渲染(HTML解析) ——参考: <前端必读:浏览器内部工作原理>http://kb.cnblogs.com/page/129756/ <谈谈DOMContentLoad ...
- Python成长笔记 - 基础篇 (二)python基本语法
Python的设计目标之一是让代码具备高度的可阅读性.它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观.它不像其他的静态语言如C.Pascal那样需要重复书写声明语句,也不像 ...
- 【Android开发日记】之基础篇(二)——Android的动画效果
什么是动画,动画的本质是通过连续不断地显示若干图像来产生“动”起来的效果.比如说一个移动的动画,就是在一定的时间段内,以恰当的速率(起码要12帧/秒以上,才会让人产生动起来的错觉)每隔若干 ...
随机推荐
- Welcome-to-Swift-19类型嵌套(Nested Types)
枚举类型常被用于实现特定类或结构体的功能.也能够在有多种变量类型的环境中,方便地定义通用类或结构体来使用,为了实现这种功能,Swift允许你定义类型嵌套,可以在枚举类型.类和结构体中定义支持嵌套的类型 ...
- Problem 1004: 蛤玮打扫教室(区间覆盖端点记录)
Problem 1004: 蛤玮打扫教室 Time Limits: 1000 MS Memory Limits: 65536 KB 64-bit interger IO format: %l ...
- 洛谷P2664 树上游戏 【点分治 + 差分】
题目 lrb有一棵树,树的每个节点有个颜色.给一个长度为n的颜色序列,定义s(i,j) 为i 到j 的颜色数量.以及 现在他想让你求出所有的sum[i] 输入格式 第一行为一个整数n,表示树节点的数量 ...
- POJ3349 Snowflake Snow Snowflakes 【哈希表】
题目 很简单,给一堆6元组,可以从任意位置开始往任意方向读,问有没有两个相同的6元组 题解 hash表入门题 先把一个六元组的积 + 和取模作为hash值,然后查表即可 期望\(O(n)\) #inc ...
- 学习 WebService 第二步:知识准备——SOAP vs REST(wsdl和wadl区别)(转)
原文地址:蓝精灵——默默争上游 笔记: SOAP和REST是两种实现WebService的主要方案(Web API部署REST貌似占了大半壁江山) REST Web Services 基于 HTTP ...
- 在vue单页面应用当中使用sass
之前在项目当中有使用过sass,但是使用的方式有点Low,是在vue文件当中的style下面通过@import的方式引入的. 其实在webpack当中也可以通过在main.js当中import &qu ...
- uva 12723 概率dp
Dudu is a very starving possum. He currently stands in the first shelf of a fridge. This fridge isco ...
- Java-河内塔问题
河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市:1883年法国数学家 Edouard Lucas曾 ...
- AC日记——[福利]可持久化线段树 cogs 2554
2554. [福利]可持久化线段树 ★★☆ 输入文件:longterm_segtree.in 输出文件:longterm_segtree.out 简单对比时间限制:3 s 内存限制:2 ...
- AC日记——线段树练习4 codevs 4919
4919 线段树练习4 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 给你N个数,有两种操作 ...