zoukankan      html  css  js  c++  java
  • 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函数。

     

     

  • 相关阅读:
    平方十位数
    随意组合
    显示二叉树
    四阶幻方
    方格填数
    数字排列
    青蛙跳N阶(变态跳)
    Mysql可重复读、避免幻读原理
    动态规划典型例题--连续子数组的最大和
    行列有序的二维数组查找
  • 原文地址:https://www.cnblogs.com/skyxu123/p/9543823.html
Copyright © 2011-2022 走看看