标签:
最近在看网络编程(java-C#),所以突然对cocos2d.x有了想法,买了本钟迪龙的《Coco2d-x 3.x游戏开发之旅》,感觉不错~
所以就在这里记录一下学习笔记吧~
(PASS:开发环境已配,但不知为什么cocos2d在VS2015不可用,只好搞个虚拟机安装VS2012在虚拟机上玩了~还好电脑不错~)
1.场景切换:Director:导演类
例:加载第一个场景:runWithScene
Director::getInstance()->runWithScene(scene);
2.简单的切换场景:replaceScene
Director::getInstance()->replaceScene(scene);
3.menuCloseCallback:是关闭按钮的回调函数~(书上说以后会讲~)
4.TransitionSlideInT:场景类(实现动画特效哦~)
TransitionSlideInT(float t, Scene *scene);
当然也有其它的:
TransitionJumpZoom:原场景缩小弹出,新场景放大弹入
TransitionProgressRadialCCW:逆时针切换
TransitionProgressHorizontal:水平指针切换
TransitionProgressInOut:从里向外切换
TransitionCrossFade:原场景慢慢消失,新场景同时慢慢出现
TransitioPageForward:翻页,下一页;
TransitionFadeTR:方块切换左下角
TransitionFadeUp:从下向上的百叶窗
TransitionTurnOffTiles:方块切换,到处都是
TransitionSplitRows:分离的矩形横向切换
TransitionFade:渐渐消失(变黑),渐变出现
FlipXLeftOver:整体横向翻转,从左往右
ZoomFlipXLeftOver:整体横向翻转,从左往右,并且根据离视野远近缩放大小
TransitionShrinkGrow:原场景往后方缩小消失,新场景从后方往前放到出现
TransitionRotoZoom:原场景螺旋式往后方缩小消失,新场景螺旋式往前方放大出现
TransitionMoveInL:新场景从左向右移入
TransitionSlideInL:新旧场景同时从左向右移动
5.场景的推进和弹出场景:
上面的ReplaceScene函数进行场景的切换,会导致旧场景被释放(因为开发中一个场景或许会占用很多资源)
但是此种方式不需要释放旧场景,新旧场景依旧同时存放在内存中
如:pushSene函数:将
popScene函数:将新场景释放,恢复旧场景显示
1 // HelloWorldScene.cpp部分 2 void HelloWorld::menuCloseCallback(Ref* pSender) 3 { 4 // 推进场景 5 Director::getInstance()->pushScene(SecondScene::createScene()); 6 } 7 8 // SenondScene.cpp部分 9 bool SecondScene::init() { 10 Label* label = Label::create("Hi, are you mutou?", "Arial", 40); 11 label->setPosition(ccp(200, 200)); 12 this->addChild(label); 13 /* 添加按钮 */ 14 MenuItemImage *pCloseItem = MenuItemImage::create( 15 "CloseNormal.png", 16 "CloseSelected.png", 17 this, 18 menu_selector(SecondScene::popScene)); 19 pCloseItem->setPosition(ccp(Director::getInstance()->getWinSize().width - 20, 20)); 20 21 Menu* pMenu = Menu::create(pCloseItem, NULL); 22 pMenu->setPosition(Point(0, 0)); 23 this->addChild(pMenu, 1); 24 return true; 25 }
标签:
原文地址:http://www.cnblogs.com/DeepinSky/p/5548994.html