文档库 最新最全的文档下载
当前位置:文档库 › cocos2d的常用功能与常用控件

cocos2d的常用功能与常用控件

cocos2d的常用功能与常用控件
cocos2d的常用功能与常用控件

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

CCMenuItem 菜单项的基类,目前cocos2d只从CCMenuItem派生了CCMenuItemLabel,CCMenuItemSprite,CCMenuT oggle三个类.当然也可以派生新的类,实现其它的菜单项,例如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.p list");

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函数。

相关文档