• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
指尖上的快乐
博客园    首页    新随笔    联系   管理    订阅  订阅

Day05 动作,动画,加速,碰撞检测

今天学了一大堆API(动作方面),虽难度不大,但比较繁琐,现将其罗列出来,以便将来查看

1 CCDelayTime:表示时间的延迟,本质是动作

2 CCFlipX:旋转,沿X坐标

3动作之中的by与to: by是在原来的基础上加,to则是直接到其参数设定的值.

4 CCBezierTo: 贝塞尔曲线,需要设定三个点

5 CCSkewTo:扭曲

6 CCTintTo:染色

7 CCFadeIn:颜色渐变

8 CCBink:闪烁

9 CCCardinalSplineTo :直线弯曲运动,代码示例如下

CCCardinalSplineTo  * to = CCCardinalSplineTo::create(5, array, 1);

10 CCSpawn:并行运动,与CCSequence不同的是.两个以上的动作同时运动.时间周期为动作最大的那个周期,而CCSequence表示串行运动.时间周期为各动作之和,但CCSequence不能有一直重复的运动.

11 CCEaseExponentialIn, CCEaseElasticIn, CCEaseBounceIn ,渐变速运动

 

动画

两个类CCAnimation, CCAnimate,前者是将动画的每一帧打包,最后由后者来调用,打包的方式

 

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("run.plist");

CCAnimation *animation = CCAnimation::create();

for (int i = 0; i < 15; i++)

{

         CCString *str = CCString::createWithFormat("run%d.png", i + 1);

         animation->addSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(str->getCString()));

}

animation->setDelayPerUnit(0.1f);

animation->setLoops(-1);

 

将每一帧的图片打包,然后通过CCAnimate *animate = CCAnimate::create(animation);方式来调用.最后将animate视作为一个动作,由hero->runAction(animate);去执行.

animate的统一了动作的接口,可以将animate视作为一个动作.

 

CCSpeed:加速,将某个动作加速

碰撞检测:       CCRect heroRect = CCRectMake(hero->boundingBox().origin.x + 50,

                                                                            hero->boundingBox().origin.y,

                                                                            hero->boundingBox().size.width - 100,

                                                                            hero->boundingBox().size.height);

heroRect.intersectsRect(food->boundingBox())

缩小boundingBox(),再进行碰撞,以增加游戏真实感.

posted @ 2016-01-05 17:02  指尖上的快乐  阅读(219)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3