转眼五一就到了,放假三天应该做些什么呢?窝在家里钻研技术?写博客?no no no no,这样的“伤害”自己的方式实在让我无法忍受。本来和大学那伙人越好了一起去哪里玩玩,喝酒聊天啥的,因为一部分的犹豫不决导致计划搁浅。人心啊,当然我也不是抱怨人心变得太快啥的,仅仅是觉得难得有机会聚聚实在不应该轻易放弃,所谓且行且珍惜。一小伙伴毕业才半年就结婚了,实在搞不懂为什么要如此之早的将自己拉入“坟墓”?看看如今,叫他出来high都推三阻四的,有家室后就成了还有一个世界的人了。
我也有思考过假设女友和我同居(前提是有个女友),或者结婚啥的,那我下班后还会有这么多时间学习新技术么?个人觉得难。所以啊,趁青春正好,趁阳光不老,赶紧该干嘛干嘛去!

---
非常短,但能够旋转”,这是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 小技巧(十一) 小人虽短,但能够旋转的更多相关文章

  1. Cocos2dx 小技巧(十三)聊聊坐标系

    一好友考上了空姐.她说:以后基本上不会回来了.等下次见面时请叫我白富美!尽管有点羡慕.但我依然不甘示弱回复:下次见面时请叫我高富帅! 未来,谁说得准呢? ------------------有段时间没 ...

  2. 【cocos2dx 小技巧】半透明屏蔽罩和弹出框的实现

    今天介绍一下,弹出框的和屏蔽罩的小实现~ 弹出框主要用到了cocos2dx生命周期里面的OnEnter()函数,就是当Layer被addChild的时候会调用的函数(所以假设把OnEnter的代码加到 ...

  3. Cocos2dx 小技巧(九)现成的粒子特效

    和高中的她 差点儿相同有两三年没见面了吧.下午她正好来泉州.我俩出来一起吃了个饭. 怎么说呢,自从高中毕业后我俩的联系就少了非常多.大学期间也就见过两三面吧. 现在毕业也快一年了,她已是人妇,而我自己 ...

  4. cocos2d-x 小技巧

    1.字符串 与 数据结构互转 CCPoint: CCPointFromString(); {x, y} CCSize: CCSizeFromString(); {w, h} CCRect: CCSiz ...

  5. Cocos2dx 小技巧(十四)ScrollView实现缩放效果

    这阶段心绪比較乱,所以这篇开头就不扯淡了.(谁说大姨夫来了我跟谁急!~~)说到大姨夫我突然想到英雄联盟有个美女讲解叫伊芙蕾亚,她的堂弟ID居然叫:姨夫累呀,好笑吧(呵呵,有点冷~~额,我都说不扯淡了) ...

  6. Cocos2dx 小技巧(十五)话说ScrollView的delegate实现过程

    附:本文參加了CSDN博客大赛.亲假设认为这篇文章不错,就大胆的来投上一票吧! !!http://vote.blog.csdn.net/Article/Details? articleid=34140 ...

  7. Cocos2dx 小技巧(十二) 一种可行的系列动画播放方式

    今早发生了一件事让我感觉特气愤!去年的这个时候,我和小伙伴们一起在操场上拍毕业照,之后有个当地报纸的记者来我们学校取材,看到我们后打算给我们拍几张创意张扬点的毕业照.之后呢,照片出来了,拍的效果大伙都 ...

  8. Cocos2dx 小技巧(十六)再谈visit(getDescription)

    之前两篇都是介绍与Value相关的,这篇我继续这个话题吧,正好凑个"Value三板斧系列...".在非常久非常久曾经.我用写过一篇博客,关于怎样查看CCArray与CCDictio ...

  9. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

随机推荐

  1. 解决ImportError: cannot import name HTTPConnection的方法

    在写python程序的时候,使用from httplib import HTTPConnection,在run的时候提示ImportError: cannot import name HTTPConn ...

  2. poj 2418 Hardwood Species (map)

    题目:http://poj.org/problem?id=2418 在poj 上交题总是有各种错误,再次感叹各个编译器. c++ AC代码,G++为超时,上代码: #include<cstdio ...

  3. 对 Azure 虚拟网络网关的改进

    YU-SHUN WANG Azure 网络高级项目经理 在 2014 年欧洲 TechEd 大会上,我们宣布了对Azure 虚拟网络网关的多项改进: 1.  高性能网关 SKU 2.  Azure 虚 ...

  4. 【jQuery】jQuery操作<input>的聚焦与全选其内容

    实现效果: 源代码: $(function() { $("#exist_code_remind").attr("style","display:non ...

  5. 使用SVN小结

    自从加入团队后,开始使用SVN,以下是个人对SVN的一些认识和小结. 一.SVN是什么? SVN是版本管理工具,譬如团队进行项目开发,项目代码都储存在服务器上,成员可用SVN在本地获得并更新代码. 二 ...

  6. jvm常量池 vsv为什么1000 == 1000返回为False,而100 == 100会返回为True?

    在jvm规范中,每个类型都有自己的常量池.常量池是某类型所用常量的一个有序集合,包括直接常量(基本类型,String)和对其他类型.字段.方法的符号引用.之所以是符号引用而不是像c语言那样,编译时直接 ...

  7. HDU 5637 Transform 搜索

    题意:bc round 74 div1 1002 中文题 分析(官方题解):注意到答案实际上只和s⊕t有关, bfs预处理下从0到xx的最短步数, 然后查询O(1)回答即可. #include < ...

  8. HDU 2602 Find a way BFS搜索

    题意:找到总时间最少的KFC 分析:两遍BFS 找KFC比较一下 注:有些地方的KFC可能到达不了,wa了一次 #include <iostream> #include <cstdi ...

  9. VIP网络水军账号

    作为一个技术部的组长,主管公司用户相关的项目.今天一名营销同事找我说他想长生3000个水军账号,我首先就想到了以下几个问题: 1.如何实现 2.产生水军对运营项目的影响,主要问题就是一个真实性问题. ...

  10. JAVA一个关于传递引用的测试

    以下测试主要为了说明:对传递对象或传递引用进行修改,对最终值的影响情况 public class PassTest {     @Before     public void setUp() thro ...