【Cocos2d-x3.0学习笔记 03】一些基本的使用

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的基类,大部分类都是继承他的

②Node:拥有简单功能的类,特别是update的调用

③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>

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...