答案1:

问题解决 
将step改为如下即可
-(void)step:(ccTime)dt
{
    if (rotate == 360) {
        rotate = 0;
    }
    rotate += 5;
    float fradian = rotate * PI / 180;
    NSLog(@"%f  %f",rotate,fradian);
    id ac0 = [CCMoveTo actionWithDuration:0.01 
                                 position:*****(centerx + radius * sinf(fradian),
                                              centery + radius * cosf(fradian))];
    id ac1 = [CCRotateTo actionWithDuration:0.01 angle:(int)(rotate)];
    [sparrowhead runAction:[CCSpawn actions:ac0,ac1,nil]];
}

答案2:

根据算法,写成一个cocos2d的action

 
  1. /** Round circle a CCNode object clockwise a number of degrees by modiying it's rotation attribute.
  2. */
  3. @interface CCRoundBy : CCActionInterval <NSCopying>
  4. {
  5. BOOL turn;// Forward or Reverse round
  6. float startAngle;// default
  7. float radius;// Round circle radius
  8. CGPoint center;// Round circle center point
  9. }
  10. /** creates the action */
  11. +(id) actionWithDuration:(ccTime)duration turn:(BOOL)a center:(CGPoint)point radius:(float)r;
  12. /** initializes the action */
  13. -(id) initWithDuration:(ccTime)duration turn:(BOOL)a center:(CGPoint)point radius:(float)r;
  14. @end
 
  1. //
  2. // CCRoundBy
  3. //
  4. #pragma mark -
  5. #pragma mark CCRoundBy
  6. @implementation CCRoundBy
  7. +(id) actionWithDuration: (ccTime) t turn:(BOOL) a center:(CGPoint)point radius:(float)r
  8. {
  9. return [[[self alloc] initWithDuration:t turn:a center:point radius:r] autorelease];
  10. }
  11. -(id) initWithDuration: (ccTime) t turn:(BOOL) a center:(CGPoint)point radius:(float)r
  12. {
  13. if( (self=[super initWithDuration: t]) ) {
  14. turn = a;
  15. radius = r;
  16. center = point;
  17. }
  18. return self;
  19. }
  20. -(id) copyWithZone: (NSZone*) zone
  21. {
  22. CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] turn: turn center:center radius:radius];
  23. return copy;
  24. }
  25. -(void) startWithTarget:(id)aTarget
  26. {
  27. [super startWithTarget:aTarget];
  28. startAngle = [target_ rotation];
  29. if (turn) {
  30. ((CCNode *)target_).position = *****Add(center, *****(-radius, 0));
  31. }
  32. else {
  33. ((CCNode *)target_).position = *****Add(center, *****(radius, 0));
  34. }
  35. }
  36. -(void) update: (ccTime) t
  37. {
  38. // XXX: shall I add % 360
  39. float rotate =  (startAngle + 360.0f * t );
  40. if (turn) {
  41. rotate *= -1;
  42. }
  43. [target_ setRotation:rotate];
  44. float fradian = rotate * M_PI / 180.0f;
  45. CGPoint pos = *****(center.x + radius * sinf(fradian),
  46. center.y + radius * cosf(fradian));
  47. [target_ setPosition: pos];
  48. }
  49. -(CCActionInterval*) reverse
  50. {
  51. BOOL result = !turn;
  52. return [[self class] actionWithDuration:duration_ turn:result center:center radius:radius];
  53. }
  54. @end
类别:Uitouch||添加到搜藏 |分享到i贴吧|浏览(346)|评论 (0)
最近读者:
登录后,您就出现在这里。  

转载于:https://www.cnblogs.com/wujian1360/archive/2012/03/10/2389613.html

cocos2d 环绕已知点移动一圈相关推荐

  1. 【小米校招笔试】假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。

    2016年小米校招笔试第三题(西安站) 3 假如已知有n个人和m对好友关系(存于数字r).如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共 ...

  2. 已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机...

    已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈, 问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从 ...

  3. 已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈, 问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从

    转载! 已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈, 问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所 ...

  4. MATLAB已知坐标均匀取电,基于MATLAB带钢卷取电液伺服控制系统的分析(word文档良心出品)(11页)-原创力文档...

    系统动力学结课作业-基于MATLAB的 带钢卷取电液控制系统的研究 姓名: 王紫民 流水号:学号: 专业: 机械工程 日期: 2014.05.10 基于MATLAB^钢卷取电液伺服控制系统的分析 一. ...

  5. 三角形已知边长求高公式_五年级数学:“长方形、正方形、三角形、平行四边形、梯形” 知识重点、难点全解析,附习题!...

    张老师 - 5年级(多品小学教育) 里辛镇中心小学谭老师和冰溪镇县后山小学谭老师需要的这份学习资料现在分享. 本资料已制作电子版 下载码是:5odc7n2i 多边形的面积知识点 1公式 长方形:周长= ...

  6. 已知最小小行星准备迎接人类探视

    "赫拉"与史上最小小行星. 图片来源:欧洲空间局网站 来源:科技日报 欧洲空间局(ESA)官网的报道称,将于2023年派遣无人驾驶航天器"赫拉"(Hera)探索 ...

  7. jQuery九宫格跑马灯抽奖(已知结果)

    描述: 写两个抽奖,等级不同,找到一个原生写法的,原作者链接如下: 参考( https://www.cnblogs.com/yangqing22/p/14065754.html ) 略改了一下,换成了 ...

  8. 已知小红今年12岁c语言编程,C语言程序设计第轮复习习题.doc

    C语言程序设计第轮复习习题 第1章 C语言概述.以下叙述正确的是 . A.在C程序中,main函数必须位于子程序的最前面 B.C程序的每一行中只能写一条语句 C.在对一个C程序进行编译的过程中,可发现 ...

  9. 已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者。

    已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者. 答案: int max(int a,int b) { return (a+b+abs(a-b))/2; } ...

最新文章

  1. this Activity.this Activity.class
  2. 禁用任何未使用的端口com_分享连接思科路由器控制台端口的正确设置
  3. 白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示
  4. 深度学习在情感分析中的应用
  5. ast.literal_eval
  6. 当一个程序员真正掌握算法之后,会变得有多强...
  7. 工作233:定义有对话框的按钮
  8. XidianOJ 1123 K=1 Problem of Orz Pandas
  9. 面向对象开发方法概述
  10. C/C++void *memset(void *s, int ch, size_t n)的关键之处
  11. Docker 数据管理
  12. android思维导图软件推荐,好用的思维导图软件,安卓思维导图软件哪个好
  13. java calendar 时分秒_java 时间处理类Calendar获取年月日时分秒毫秒的方法实例
  14. 一级计算机ms上网,2014计算机一级MSOFFICE上网 1
  15. 中国石油大学(北京)-《 油气藏经营管理》第二阶段在线作业
  16. 局域网语音对讲系统_IP广播对讲系统停车场解决方案
  17. My97DatePicker(WdatePicker)日期控件用法
  18. java使用poi导出Excel表发回浏览器或是保存到本地
  19. golang 模拟登陆微信公众平台,突破微信群发每日一条限制
  20. 运用Python的turtle库绘制等边三角形

热门文章

  1. SharePoint Server 2007 trial --- 年末大餐细细品尝 (第七口)
  2. 微信小程序实现支付功能
  3. Windows下将nginx安装为服务运行
  4. 给文本框添加模糊搜索功能(“我记录”MVC框架下实现)
  5. 第三方控件radupload 使用方式以及报错处理
  6. 看下你是否都做了吗?系统140种实用设置2
  7. android Glide简单使用
  8. android 获取文件夹下的所有文件
  9. spring_ioc,DI
  10. 解决Unable to create group (name already exists)