cocos2d-x 笔记小记1

导演类
CCDirector *pDirector = CCDirector::sharedDirector();

在CCDirector中,我们定义了以下管理场景的方法。

runWithScene(CCScene* scene):启动游戏,并运行scene场景。这个方法在主程序启动时第一次启动主场景时调用。

replaceScene(CCScene* scene):直接使用传入的scene替换当前场景来切换画面,当前场景将被释放。这是切换场景时最常用的方法。

pushScene(CCScene* scene):将当前运行中的场景暂停并压入到代执行场景栈中,再将传入的scene设置为当前运行场景。

popScene:释放当前场景,再从代执行场景栈中弹出栈顶的场景,并将其设置为当前运行场景。如果栈为空,则直接结束应用。与pushScene成对使用,可以达到形如由主界面进入设置界面,然后回到主界面的效果。

pause:暂停当前运行场景中的所有计时器和动作,场景仍然会显示在屏幕上。

resume:恢复当前运行场景中被暂停的计时器和动作。它与pause配合使用。

end:结束场景,同时退出应用。

层CCLayer
void addChild(CCNode* child);  
void addChild(CCNode* child, int zOrder);  
void addChild(CCNode* child, int zOrder, int tag); 


精灵类CCSprite
CCRectMake(x,y,width,height)函数可以用来方便地创建CCRect

//纹理左上角100×100像素大小的部分
CCSprite* smallFish = CCSprite::create("fishes.png", CCRectMake(0, 0, 100, 100)); 

//获取屏幕大小
CCSize size = CCDirector::sharedDirector()->getWinSize(); 

CCPoint pos = ccp(size.width / 2, size.height / 2);

//根据tga获取精灵
CCSprite* hero = (CCSprite*)this->getChildByTag(HERO);

CCMenuItemImage::create(  
    "CloseNormal.png",      //普通状态下的图片  
    "CloseSelected.png",    //按下状态下的图片  
    this,                   //响应对象  
    menu_selector(HelloWorld::menuCloseCallback));  //响应函数 


按钮响应事件函数带CCNode *sender参数
void StartScene::startGame(CCNode *sender)  
{  

} 

CCSprite* sprite = CCSprite::create("fish.png");  
CCAction* action = CCMoveTo::create(1.0f, ccp(0, 0));  
sprite->runAction(action); 




CCMoveTo和CCMoveBy:用于使节点做直线运动。设置了动作时间和终点位置后,节点就会在规定时间内,从当前位置直线移动到设置的终点位置。它们的初始化方法分别为:

CCMoveTo::create(ccTime duration, CCPoint& pos);  
CCMoveBy::create(ccTime duration, CCPoint& pos); 
其中,duration参数表示动作持续的时间,pos参数表示移动的终点或距离。对于CCMoveTo,节点会被移动到pos对应的位置;对于CCMoveBy,节点会相对之前的位置移动pos的距离。

CCJumpTo和CCJumpBy:使节点以一定的轨迹跳跃到指定位置。它们的初始化方法如下:

CCJumpTo::create(ccTime duration, CCPoint pos, float height, int jumps);  
CCJumpBy::create(ccTime duration, CCPoint pos, float height, int jumps); 
其中pos表示跳跃的终点或距离,height表示最大高度,jumps表示跳跃次数。

CCScaleTo和CCScaleBy:产生缩放效果,使节点的缩放系数随时间线性变化。对应的初始化方法为:

CCScaleTo::create(ccTime duration, float s);  
CCScaleBy::create(ccTime duration, float s); 
其中,s为缩放系数的最终值或变化量。

CCRotateTo和CCRotateBy:产生旋转效果。对应的初始化方法为:

CCRotateTo::create(ccTime duration, float fDeltaAngle);  
CCRotateBy::create(ccTime duration, float fDeltaAngle); 
其中fDeltaAngle的单位是角度,正方向为顺时针方向。

CCFadeIn和CCFadeOut:产生淡入淡出效果,其中前者实现了淡入效果,后者实现了淡出效果。对应的初始化方法为:

CCFadeIn::create(ccTime duration);  
CCFadeOut::create(ccTime duration); 

CCBlink:使目标节点闪烁。其初始化方法为:

CCBlink::create(ccTime duration, unsigned int uBlicks); 
其中,uBlicks是闪烁次数。

1. 重复(CCRepeat/CCRepeatForever)

有的情况下,动作只需要执行一次即可,但我们还常常遇到一个动作反复执行的情况。对于一些重复的动作,如鱼的摆动、能量槽的转动,我们可以通过CCRepeat与CCRepeatForever这两个方式重复执行:

CCRepeat* CCRepeat::create(CCFiniteTimeAction *pAction, unsigned int times);  
CCRepeatForever *CCRepeatForever::create(CCActionInterval *pAction); 

2. 并列(CCSpawn)

指的是使一批动作同时执行。在《捕鱼达人》游戏中,鱼一边沿曲线游动一边摆尾巴,炮弹一边发射一边喷射气体,金币一边旋转一边移动等动作,都可以通过CCSpawn来实现。CCSpawn从CCActionInterval派生而来的,它提供了两个工厂方法:

CCSpawn::create(CCFiniteTimeAction *pAction1,...);  
CCSpawn::create(CCFiniteTimeAction *pAction1, CCFiniteTimeAction *pAction2); 


1. CCSpeed

CCSpeed用于线性地改变某个动作的速度,因此,可以实现成倍地快放或慢放功能。为了改变一个动作的速度,首先需要将目标动作包装到CCSpeed动作中:

CCRepeatForever* repeat = CCRepeatForever::create(animation);  
CCSpeed* speed = CCSpeed::create(repeat, 1.0f);  
speed->setTag(action_speed_tag);  
fish->runAction(speed); 
在上面的代码中,我们创建了一个animation动作的CCRepeatForever复合动作repeat,使动画被不断地重复执行。然后,我们又使用repeat动作创建了一个CCSpeed变速动作。create初始化方法中的两个参数分别为目标动作与变速比率。设置变速比率为1,目标动作的速度将不会改变。最后,我们为speed动作设置了一个tag属性,并把动作交给fish精灵,让精灵执行变速动作。此处设置的tag属性与CCNode的tag属性类似,用于从节点中方便地查找动作。

接下来,在需要改变速度的地方,我们通过修改变速动作的speed属性来改变动作速度。下面的代码将会把上面设置的动画速度变为原来的两倍:

CCSpeed * speed = fish->getActionByTag(action_speed_tag);  
speed->setSpeed(2.0f); 


2. CCActionEase

CCActionEase的使用方法与CCSpeed类似。以Sine缓冲为例,以下代码实现了InSine变速运动:

CCEaseSineIn* sineIn = CCEaseSineIn::create(action);  
sineIn->setTag(action_sine_in_tag);  
fish->runAction(sineIn);  


场景特效切换
CCDirector::sharedDirector()->replaceScene(CCTransitionFlipX::transitionWithDuration(2, pScene)); 

场景特效类
描述
CCTransitionJumpZoom
跳跃缩放,当前场景会先
缩小,然后跳跃切换
CCTransitionFade
淡出淡入效果,可以设置覆盖颜色
CCTransitionFlipX
(CCTransitionFlipY)
沿着x轴向左翻
CCTransitionShrinkGrow
交错切换场景
CCTransitionMoveInL
从左进入覆盖原场景
CCTransitionSlideInL
从左进入推出原场景

波浪
CCTransitionFadeTR
CCTransitionFadeUp

百叶窗
CCTransitionFadeUp
CCTransitionFadeDown


CCTransitionPageTurn



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值