导演类 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
cocos2d-x 笔记小记1
最新推荐文章于 2023-03-25 12:26:39 发布