zoukankan      html  css  js  c++  java
  • Cocos2dX数据、动作、消息的基本操作

    添加类的create方法:
    CREATE_FUNC(ClassName) 使用这个宏可以为类添加一个create方法。
    创建类的对象时一律用Class::create()的形式。
    在CREATE_FUNC这个宏中定义的类初始化调用顺序为:构造函数、init。且将这个类对象设置为autorelease,这也就意味着,用create创建的对象无需手动delete。但是有时还是要在切换场景等操作时,保留这个对象。这就需要使用retain()函数,当然使用它的同时,你就需要为内存管理负责,要手动delete。

    数据绑定:
    CC_SYNTHESIZE_READONLY(varType, varName, funName) 使用这个宏可以自动创建get和set方法。

    整体框架结构:

     
    动作使用:
    动作是挂在人物(精灵)上的。使用动作三步走。1、找到相应精灵。2、编辑动作。3、精灵运行动作。
    动作类如下结构。动作分为瞬时动作(基类CCActionInstanse)和延时动作(基类CCActionInterval)。可以直接声明一个CCFiniteTimeAction指针用于操作,省的分辨具体是那个动作类型,虽然其实也挺好记的。
     
    通常精灵会使用runAction来执行动作。对于多个动作顺序执行的情况,通常使用sprite->runAction(CCSquence::create(act1,act2,...,NULL));
    回调动作:
    是即时动作即:CCActionInstant中的CCCallFuncN。使用时,第一个参数为this。第二个参数选择相应的回调。

    设置背景:
    在初始化Layer时,使用CCLayerColor::initWithColor(ccc4(r,g,b,a));

    回调函数:
    callfuncN_selector等方法进行转换类型。
    一些函数的参数被定义为回调。(为了实现异步么?)其类型是SE_XXX。这样我们就需要更改我们相应函数的类型。使用这一组宏,可将普通函数更改为回调函数。

    精灵显示、隐藏:
    layer->addChild()、layer->removeChild()。

    定时调用函数(层中):
    layer->schedule()。可方便的以一个延时为标准,定制的调用函数。

    触屏消息响应:
    Scene中 :通常用于菜单中的响应。Layer中:用于响应动作。
    1、调用setTouchEnabled(true);接收点击消息。
    2、重写响应
    ccTouchesBegan(CCSet *pTouches,CCEvent *pEvent);//触屏开始事件
    ccTouchesMoved(CCSet *pTouches,CCEvent *pEvent);//拖动事件
    ccTouchesEnded(CCSet *pTouches,CCEvent *pEvent);//触屏结束事件
     
    获得坐标的方法:
    CCTouch* touch = (CCTouch*)(touches->anyObject());
    CCPoint location = touch->getLocation();

    数据结构:
    CCArray。使用CCARRAY_FOREACH(m_abc, it)的宏化简for循环。CC版的for_each。

    点、方形
    ccp(x,y) 返回一个CCPoint。
    CCRectMake(x,y,width,height)返回一个CCRect。

    碰撞检测:
    rectA.intersectsRect 来判断两个方形是否有相交。

    播放音乐:
    CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic(); //背景音乐
    CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect(); //动作效果音乐

    场景创建:
    场景要继承于CCScene。首先要在其初始化函数中调用CCScene::init()函数。然后调用addChild在其中加入Layer。

    动作延时:
    CCDelayTime::create(n)。延迟动作,n秒后结束。

    切换场景:
    CCDirector::sharedDirector()->replaceScene(scene)。更换场景。


    本篇博客出自 阿修罗道 ,转载请注明出处: http://blog.csdn.net/fansongy/article/details/8810555

  • 相关阅读:
    手机自动化测试:appium源码分析之bootstrap九
    手机自动化测试:appium源码分析之bootstrap八
    手机自动化测试:appium源码分析之bootstrap七
    HashMap
    Java 泛型
    LinkedList
    ArrayList
    Synchronzied(内置锁)
    第十四章 构建自定义的同步工具
    第十三章 ReentrantLock 简介
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3024743.html
Copyright © 2011-2022 走看看