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