Cocos2dx 小技巧(十一) 小人虽短,但能够旋转
我也有思考过假设女友和我同居(前提是有个女友),或者结婚啥的,那我下班后还会有这么多时间学习新技术么?个人觉得难。所以啊,趁青春正好,趁阳光不老,赶紧该干嘛干嘛去!
---
“非常短,但能够旋转”,这是LOL讲解小智常调侃的一句话,所以本篇也讲下怎样做出“旋转”的效果。(呵呵,不知道你们有没有注意到这是一句冷笑话)
说起来非常不好意思,我居然才知道cocos2dx 有OrbitCamera的这样的接口(不是RotateTo),赶紧到testCpp里看了下,还真有,曾经居然没注意到!我果然还是太单纯了!
接口是酱紫的:
/** creates a OrbitCamera action with radius, delta-radius, z, deltaZ, x, deltaX */
static OrbitCamera* create(float t, float radius, float deltaRadius, float angleZ, float deltaAngleZ, float angleX, float deltaAngleX);
这參数多的让我头晕,到网上查了下意思,是用到了球坐标,參数各自是:旋转的时间,起始半径,半径差,起始z角,旋转z角差,起始x角,旋转x角差。这解释够具体了吧,可我还是没全搞懂~~~~。没办法,自己创建了个小人来转一转:
auto boy = Sprite::create("boy.png");
boy->setPosition(Point(300,300));
this->addChild(boy,2); boy->runAction(OrbitCamera::create(2.0f,1,0,0,180,0,0));
更改參数重复执行后找到了那么点门道:
第一个參数是旋转时间这个就不用说了;radius起始半径,仅仅要大于0效果都一样;deltaRadius半径差是什么东东,没看到啥门道来;angleZ起始Z角,就是看你要从哪个角度開始旋转(水平方向的),deltaAngleZ旋转Z角差,也就是要让图片旋转几度,360是一圈;至于起始X角和起始X角差,就是控制竖直方向的旋转。
发现并没有一个Y角差啥的,个人分析是x,y是处于一个平面,该平面垂直Z,所以X,Y旋转的效果是一样的。(假设你有更深入的看法,一定要告诉我!!!)
以下就做个旋转的样例吧:
本来是要做旋转的卡牌,这样起码名字看起来高端大气上档次,可是考虑到没有卡牌的素材(假设你有的话,请务必发给我一些),所以我就弄成旋转的小人,我们都知道卡牌都有正面和反面,这样转才有旋转的效果,所以我们的小人也该有正反,正面是boy图片,背面就是girl的图片。看到这里有人要吐槽了:boy背面怎么会是girl?你坑谁?我仅仅想说:淡定点骚年,常言道,每一个成功的男淫背后都靠着一个女人,所以,你别乱推測我没有boy的背面图,我仅仅是...反正别乱想。
流程例如以下:
1、创建boy和girl两个精灵,初始位置要一样,girl一開始要隐身。让他俩同一时候開始旋转!2s为1圈,即360°。
2、当boy旋转到90°时,也就是0.5s后要隐身,girl显示出来了;
3、girl旋转1s,也就是180°后,girl隐身,boy显示出来了。这样一直转下去。
以下看代码实现:
auto boy = Sprite::create("boy.png");
boy->setPosition(Point(300,300));
this->addChild(boy,2); auto girl = Sprite::create("girl_1.png");
girl->setPosition(Point(300,300));
girl->setVisible(false);//一開始设置为不可见
this->addChild(girl,2); auto seq1 = Sequence::create(DelayTime::create(0.5f),
Hide::create(),//0.5s后隐身,
DelayTime::create(1.0f),
Show::create(),//再过1s后现身
nullptr); auto rotate1 = OrbitCamera::create(2.0f,1,0,0,360,0,0); auto seq2 = Sequence::create(DelayTime::create(0.5f),
Show::create(),//0.5s后现身
DelayTime::create(1.0f),
Hide::create(),//再过1s后隐身
nullptr); auto rotate2 = rotate1->clone(); boy->runAction(RepeatForever::create(Spawn::create(rotate1,seq1,nullptr)));
girl->runAction(RepeatForever::create(Spawn::create(rotate2,seq2,nullptr)));
恩,执行如图:
顺便提下Show与Hide两个接口,它俩相似我们熟知的FadeIn,FadeOut,让对象隐身或者显示。但Fade须要时间參数,而Show,Hide不用。还是蛮好用的
就说到这里吧。
尊重原创,转载请注明来源:http://blog.csdn.net/star530/article/details/24836121
Cocos2dx 小技巧(十一) 小人虽短,但能够旋转的更多相关文章
- Cocos2dx 小技巧(十三)聊聊坐标系
一好友考上了空姐.她说:以后基本上不会回来了.等下次见面时请叫我白富美!尽管有点羡慕.但我依然不甘示弱回复:下次见面时请叫我高富帅! 未来,谁说得准呢? ------------------有段时间没 ...
- 【cocos2dx 小技巧】半透明屏蔽罩和弹出框的实现
今天介绍一下,弹出框的和屏蔽罩的小实现~ 弹出框主要用到了cocos2dx生命周期里面的OnEnter()函数,就是当Layer被addChild的时候会调用的函数(所以假设把OnEnter的代码加到 ...
- Cocos2dx 小技巧(九)现成的粒子特效
和高中的她 差点儿相同有两三年没见面了吧.下午她正好来泉州.我俩出来一起吃了个饭. 怎么说呢,自从高中毕业后我俩的联系就少了非常多.大学期间也就见过两三面吧. 现在毕业也快一年了,她已是人妇,而我自己 ...
- cocos2d-x 小技巧
1.字符串 与 数据结构互转 CCPoint: CCPointFromString(); {x, y} CCSize: CCSizeFromString(); {w, h} CCRect: CCSiz ...
- Cocos2dx 小技巧(十四)ScrollView实现缩放效果
这阶段心绪比較乱,所以这篇开头就不扯淡了.(谁说大姨夫来了我跟谁急!~~)说到大姨夫我突然想到英雄联盟有个美女讲解叫伊芙蕾亚,她的堂弟ID居然叫:姨夫累呀,好笑吧(呵呵,有点冷~~额,我都说不扯淡了) ...
- Cocos2dx 小技巧(十五)话说ScrollView的delegate实现过程
附:本文參加了CSDN博客大赛.亲假设认为这篇文章不错,就大胆的来投上一票吧! !!http://vote.blog.csdn.net/Article/Details? articleid=34140 ...
- Cocos2dx 小技巧(十二) 一种可行的系列动画播放方式
今早发生了一件事让我感觉特气愤!去年的这个时候,我和小伙伴们一起在操场上拍毕业照,之后有个当地报纸的记者来我们学校取材,看到我们后打算给我们拍几张创意张扬点的毕业照.之后呢,照片出来了,拍的效果大伙都 ...
- Cocos2dx 小技巧(十六)再谈visit(getDescription)
之前两篇都是介绍与Value相关的,这篇我继续这个话题吧,正好凑个"Value三板斧系列...".在非常久非常久曾经.我用写过一篇博客,关于怎样查看CCArray与CCDictio ...
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
IT咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
随机推荐
- Android 签名(8)签名前用Zipalign简单优化
1 为什么要优化 Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化.在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效 ...
- HTML5学习(十一)---服务器发送事件
参考教程:http://www.w3school.com.cn/html5/html_5_serversentevents.asp HTML5 服务器发送事件(server-sent event)允许 ...
- struts采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架
今天我用Ecipse搭建Struts框架,并且使用Struts框架编写一个最简单的例子,相信读者能够很容易的明白. Struts是当今Java比较流行的三大框架之一,三大框架是Struts,sprin ...
- 1439. Battle with You-Know-Who(splay树)
1439 路漫漫其修远兮~ 手抄一枚splay树 长长的模版.. 关于spaly树的讲解 网上很多随手贴一篇 貌似这题可以用什么bst啦 堆啦 平衡树啦 等等 这些本质都是有共同点的 查找.删除特 ...
- Oracle排序BUG
在今天项目开发中,遇到一个奇怪的问题,运用Oracle自身排序,然后将排序结果进行分页展示到前台时,发现数据有重复的现象. 这是数据表需要排序的全部结果,执行脚本:select * from ajb ...
- 经典SQL语句大全_主外键_约束
一.基础(建表.建约束.关系) 约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整 ...
- linux中的设备名称和设备号
看赵炯博士的<linux 0.11 源代码注释>已经两三周了,从今天起开始将一些个人总结和感悟分小标题写出来,聊作记忆以供后来查看.在linux0.11源码的 /linux/boot/bo ...
- HDU 3001 Travelling 3进制状压dp
题意:10个点,若干条边,边有花费,每个点最多走两次,求走过所有点,花费最少 分析:因为每个点最多走两次,所以联想到3进制,然后枚举状态,就行了(我也是照着网上大神的代码写的) #include &l ...
- Mac下安装Mysql出现 Can’t connect to local MySQL server through socket '/tmp/mysql.sock'
在Mac下安装mysql出现 Can't connect to local MySQL server through socket '/tmp/mysql.sock' 错误,解决如下: $ unset ...
- 利用doxygen提高源代码阅读效率
阅读开源项目的源代码是提高自己编程能力的好方法,而有一个好的源代码阅读工具无疑能够让你在阅读源代码时事半功倍.之前找过不少源代码阅读工具,像SourceInsight.sourcenav.scitoo ...