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咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
随机推荐
- ngui 脚本绘制sprite
public GameObject _background; public UIAtlas atlas; private Dictionary<int, UISprite> _allCar ...
- centos 如何用 rsyslog 搭建本地日志服务(续1: omprog模块与php deamon的配合使用)
上一篇说到了如何用 rsyslog 搭建本地的日志服务,地址在这里,没有看的童鞋可以先瞅一眼 : http://www.cnblogs.com/smallrookie/p/5677004.html 显 ...
- 函数hash_get_nth_cell
/************************************************************//** Gets the nth cell in a hash table. ...
- Oracle tnsname.ora 链接问题
oracle数据库需要配置tns链接 这里我发现了一个问题: 在D:\Oracle\product\10.1.0\Client_3\NETWORK\ADMIN 目录中配置链接字符串的时候要特别注意: ...
- BZOJ_1019_[SHOI2008]_汉诺塔_(DP)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1019 汉诺塔游戏,但是有移动优先级,在不违反原有规则的情况下,给定优先移动目标.求完成游戏所需 ...
- python跟踪脚本进度(类似bash-x)
#详细追踪 python -m trace --trace jin.py #显示调用了哪些函数 python -m trace --trackcalls jin.py
- python20151130
tab和空格混排是报错的 import os #如何获取当前路径 #当前路径可以用'.'表示,再用os.path.abspath()将其转换为绝对路径 print(os.path.abspath('. ...
- Java [Leetcode 292]Nim Game
问题描述: You are playing the following Nim Game with your friend: There is a heap of stones on the tabl ...
- linux下socket keep alive讲解
[需求] 不影响服务器处理的前提下,检测客户端程序是否被强制终了.[现状]服务器端和客户端的Socket都设定了keepalive属性.服务器端设定了探测次数等参数,客户端.服务器只是打开了keepa ...
- HDU 1520-Anniversary party(树形dp入门)
题意: n个人参加party,已知每人的欢乐值,给出n个人的工作关系树,一个人和他的顶头上司不能同时参加,party达到的最大欢乐值. 分析:dp[i][f],以i为根的子树,f=0,i不参加,f=1 ...