1.场景(Scene)
3.0版本的场景集成了物理引擎的功能
2.导演(Director)
①加载第一个场景
Director::getInstance()->runWithScene(scene);
②简单切换场景
Director::getInstance()->replaceScene(scene);
③场景切换的特效
Director::getInstance()->replace(TransitionSlideInT::create(3.0f,scene));
一些场景的特效
TransitionJumpZoom 原场景缩小弹出,新场景放大弹入 TransitionProgressRadialCCW 逆时针切换 TransitionProgressHoriztal 水平向右切换 TransitionProgressInOut 从里向外切换 TransitionProgressCrossFade 原场景慢慢消失,新场景慢慢出现 TransitionPageForward 翻页,下一页 TransitionFadeTR 方块切换左下角 TransitionFadeUp 从下向上百叶窗 TransitionTurnOffTiles 方块切换,到处都是 TransitionSplitRows 分离的矩形横向切换 TransitionFade 渐变消失,渐变出现 FlipXLeftOver 整体横向翻转,从左往右 ZoomFlipXLeftOver 加上缩小 TransitionShrinkGrow 原场景往后缩小消失,新场景从后方往前放大 TransitionRotoZoom 原场景螺旋式往后方缩小 TransitionMoveInL 从左向右进入 TransitionSlideInL 从左向右
④推进和弹出,不需要释放原场景,类似弹出对话框什么的
Director::getInstance()->pushScene(scene);//推进场景 Director::getInstance()->popScene(scene);//弹出场景
3.层
Layer,每一层的精灵相对独立
Layer* layer = Layer::create();
4.精灵
Sprite
Sprite* s = Sprite::create("hello.png"); s->setPosition(100,100);
5.菜单
Menu
Size vSize = Director::getInstance()->getVisibleSize();//屏幕大小 MenuItemImage* imgMenu = MenuItem::create( "normal.png",//按钮正常图片 "select.png",//按钮按下图片 this,menu_selector(HelloWorld::onclick));//按钮监听事件 Label* label = Label::create("Menu","Arial",30);//创建个标签 MenuItemLabel* labelMenu = MenuItemLabel::create(label);//用标签创建标签菜单 Menu* menu = Menu::create(imgMenu,labelMenu,NULL);//创建菜单,存放菜单项 menu->alignItemsVertically();//设置菜单项垂直排列
6.三个重要的类
①Ref:cocos2d-x的基类,大部分类都是继承他的
③Layer:继承Node,拥有多功能的类,特别是屏幕触摸监听
7.Cocos2d-x3.0的新成员
Value, Vector, Map
①Value
Value可以存放很多种值
Value vStr = Value("Hello"); value vInt = Value(15); log("%s%d",vStr.asString.c_str(),vInt.asInt());
②Vector
Vector相对于java的List吧,应该是的
Vector<int> vec;//只能存放int类型的 int i = 10; int j = 20; vec.pushBack(i);//将i放到Vector钟 vec.pushBack(j); for(auto k : vec)//用for循环取出Vector中的内容 { log("%d",k); }
<span style="font-size:14px;">常用的函数 size()://长度 at(index);//下标为index的对象 front();//最先加入的对象 back();//最后加入的对象 pushBack(object);//在最后加入对象 eraSEObject(object);//在Vector中删除对象 erase(index);//删除下标为index 的对象 clear();//清空</span>
③Map
Map就是键值对
<span style="font-size:14px;">Map<int,int> mmap;//Map就是键值对 for(int i = 0;i<10;i++) { mmap.insert(i,i);//key是i,value也是i } int j = mmap.at(3);//取出index为3的数据</span>
④Value的特殊使用
整数,浮点数,字符串之间的转换
<span style="font-size:14px;">log("%d",Value("1234").asInt()); log("%f",Value("14.5").asFloat()); log("%s",Value(14.5f).asString().c_str())</span>