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(),再进行碰撞,以增加游戏真实感.
浙公网安备 33010602011771号