cocos2d-x常用功能与控件

CCDirector,主要职责是管理场景和切换场景,游戏暂停等.另外他还负责初始化openes相关的一东西.是一个单例类

常用函数

runWithScene 运行场景

replaceScene 替换场景

getRunningScene  获得当前场景

getAnimationInterval 获取帧间距

setAnimationInterval 设置帧间距

isDisplayFPS 是否显示帧率

setDisplayFPS    设置是否显示帧率,可以再调试阶段使用

getWinSize   获取窗口大小

getWinSizeInPixels       获取窗口像素大小

drawScene        绘制场景所有元素

 

CCScene,场景类,游戏场景一般是指在某个时刻能独立运行的部分,包括可见的怪物,地形和不可见的逻辑脚本等.例如一个游戏的一个特定关卡,游戏菜单,过场动画等都是一个独立的场景.cocos2d中的场景又由不同的层(CCLayer)组成. CCScene是CCNode的子类, 主要作用是一个容器

 

CCNode,节点类,是游戏中最重要,最基础的对象,cocos2dx,任何可见的或不可以的游戏逻辑对象都是一个节点,节点有以下特点:

a)        是一个容器,可以包含任意多个其它节点.

b)        可以执行一个行为(CCAction)

c)        可以执行一定时的任务回调

d)        拥有坐标变换(transform)信息,postion,scale,rotation

e)        由于一个节点可以添加任意个子节点,所有的节点组成一个树状结构,因此父节点的坐标变换会影响子节点在世界坐标系中的坐标,一个节点只能拥有一个父节点

 

常用函数:

getScale 获取缩放

setScale 设置缩放

addChild 添加子节点

removeChild  删除子节点

removeFromParentAndCleanup   从父节点移除,同时移除子节点

removeChildByTag 移除标记节点

removeAllChildrenWithCleanup 移除所有子节点

getChildByTag    获得标记节点

runAction        执行动作

stopAction   停止动作

stopAllActions   停止所有动作

scheduleUpdate   执行update函数,需要重载

unscheduleUpdate 停止执行update函数

schedule(SEL_SCHEDULE selector);      执行回调

unschedule(SEL_SCHEDULE selector);    停止执行回调

 

CCLayer,层类,继承自CCNode类,主要是起到容器和处理案件消息的作用

registerWithTouchDispatcher  注册事件监听

ccTouchBegan 按下按键处理回调,需重载

ccTouchesMoved   移动按键处理回调,需重载

ccTouchesEnded   弹起按键处理回调,需重载

layerWithColorWidthHeight    用颜色初始化函数

 

CCMenu 菜单类,主要用于添加按钮,处理案件消息。CCMenuCClayer派生而来,可以处理输入消息,CCMenu包含多个CCMenuItem对象,在接收到输入消息之后,根据触摸位置,将输入消息分发到相应MenuItem,执行回调函数。

CCMenuItem 菜单项的基类,目前cocos2d只从CCMenuItem派生了CCMenuItemLabel,CCMenuItemSprite,CCMenuToggle三个类.当然也可以派生新的类,实现其它的菜单项,例如 checkbox等.

主要函数:

menuWithItems

例子:

CCMenuItemSprite * timerItem = CCMenuItemSprite::itemFromNormalSprite(

                 CCSprite::spriteWithFile("tomorrowVisit/syyd-ui_07a.png"),

                 CCSprite::spriteWithFile("tomorrowVisit/syyd-ui_07a.png"));

             timerTomorrowVisitButton= CCMenu::menuWithItem(timerItem);

             timerItem->setTarget(this, menu_selector(UserStateLayer::buttonTomorrowVisitAction));

CCScheduler 类似于定时器,游戏从开始就一直有一个公用的定时器在后台运行,通过CCScheduler::sharedScheduler()可以获取,可用于定时执行某些任务

主要函数:

scheduleSelector 定时执行回调

scheduleUpdateForTarget      定时执行update函数,需重载

unscheduleSelector       取消定时执行回调

unscheduleUpdateForTarget         取消执行update函数

unscheduleAllSelectorsForTarget   取消目标的所有定时回调

unscheduleAllSelectors   取消所有定时回调

pauseTarget  暂停目标的定时回调

resumeTarget 恢复目标的定时回调


CCSprite:精灵类,主要用于图像的绘制

主要函数:

spriteWithTexture    通过纹理创建精灵

spriteWithSpriteFrameName    通过已经加载的大图里面的小图名字创建精灵

spriteWithFile   通过文件创建精灵

addChild     增加子节点

removeChild  删除子节点

setPosition  设置位置

setPositionInPixels  设置像素位置

setRotation  设置旋转角度

setSkewX 设置x轴扭曲

setSkewY 设置y轴扭曲

setScaleX        设置x轴缩放

setScaleY        设置y轴缩放

setScale     设置等比例缩放

setAnchorPoint   设置描点

setIsVisible 设置是否可见

setFlipX     设置x轴翻转

setFlipY     设置y轴翻转

setContentSizeInPixel    设置占用大小

 

例子:

CCSprite * textTake = CCSprite::spriteWithFile("tomorrowVisit/ui_icon_19.png");

        textTake->setPositionInPixels(ccp(16,32));

        textTake->setAnchorPoint(ccp(0,0));

        timerOnlineRewardText->addChild(textTake);

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("UIState/UIStateDeNA.plist");

CCSprite *sp1 = CCSprite::spriteWithSpriteFrameName("ui_icon_15a.png");


CCLabelTTF:文字类,主要用户显示文字

常用函数:

labelWithString  通过char型数字初始化文字

setString        设置修改文字

getString        获取文字

例子:

CCLabelTTF* freeNum = CCLabelTTF::labelWithString(DENA_PRE_FREE_NUM, CCSizeZero,CCTextAlignmentLeft, "Marker Felt", 20);

 

CCLabelBMFont:另外一种文字类,类似于图片状文字。主要用于数字字符的显示,一般数字是美工做好的图片,通过特定工具比如bmfont生成.fnt文件。

主要函数:

labelWithString  初始化字串

setString        设置字串

getString        获取字串

例子:

CCLabelBMFont* nNumLable1;

    nNumLable1= CCLabelBMFont::labelWithString("0", "Font/RedFont1.fnt");

    nNumLable1->setPosition(ccp(26,7));

    numBg1->addChild(nNumLable1);

 

动作:action,CCAction,动作类,CCAtion就好像指派给CCNode的命令一样,在特定时间(或立即)内修改CCNode的属性,例如位置,旋转,缩放等,主要用于动画效果

常用的包括:

CCSequence:序列

CCSpawn:综合

CCRotateTo:旋转到

CCRotateBy:旋转

CCMoveTo:移动到

CCMoveBy:移动

CCScaleTo:缩放到

CCScaleBy:缩放

CCFadeIn:淡入

CCFadeOut:淡出

CCSkewTo:扭曲到

CCSkewBy:扭曲

CCJumpBy:跳动

CCBezierBy:bezier曲线

以下是一个例子

CCFiniteTimeAction *act1= CCMoveBy::actionWithDuration(0.8,ccp(0, 56));

        CCFiniteTimeAction*act2 = CCFadeTo::actionWithDuration(0.8,0);

        CCFiniteTimeAction*spawnAct = CCSpawn::actions(act1, act2, NULL);

 

iconOnlineRewardFly->runAction(CCSequence::actions(

             spawnAct,

             CCCallFunc::actionWithTarget(this,callfunc_selector(UserStateLayer::onlineRewardFlyOver)),

             NULL));

 

Act1表示向上移动56像素,act2表示淡入到0.8的透明度,spawnAct表示两者的综合。

此外还有一个序列,表示执行完动画之后执行UserStateLayer::onlineRewardFlyOver函数。

 

 

posted @ 2013-10-30 18:02  随风的博客  阅读(163)  评论(0编辑  收藏  举报