• Cocos2dx 3.0 提高篇(一) 初体验


     

    Cocos2dx 3.0 提高篇(一) 初体验

    分类: cocos2d-x学习笔记 299人阅读 评论(2) 收藏 举报

    转发请注明来源:http://blog.csdn.net/start530/article/details/18052953

    有段时间没更新博客了,自认为水平实在够菜,不忍心出来坑人~~~~

    昨天cocos2dx 3.0 beta 版也出来了,我之前也用过一两个星期的alpha1版,所以决定写一些关于3.0的博文,这里不仅只有我个人的一些理解和看法,同时我也会把开发过程中遇到的问题贴上来,希望大神们给予回答~~


    1、以CC开头的类从此去掉CC,如:
    | v2.1       | v3.0     |
    | CCSprite   | Sprite   |
    | CCNode     | Node     |
    | CCDirector | Director |
    | etc...                |

    举个例子,创建一个精灵的方式:
    1. v2.0   
    2. CCSprite* sp = CCSprite::create();  
    3.   
    4.   
    5. v3.0  
    6. auto sp = Sprite::create();  


    2、clone() 替代 copy(), 这个我用的不多,所以也就不多交代了;


    3、Director的单例换成getInstance() 和 destroyInstance();
    | v2.1                          | v3.0                        |
    | CCDirector->sharedDirector()  | Director->getInstance()     |
    | CCDirector->endDirector()     | Director->destroyInstance() |
    | etc...                                                      |
                                                 |
    4、新的触摸机制,先贴一段代码给大家看看,可能是下一篇或者下下篇我会详细讲下新的触摸机制的。(嘻嘻,搞得我好像很牛逼哄哄的样子)
    1. auto sprite = Sprite::create("file.png");  
    2. ...  
    3. auto listener = EventListenerTouchOneByOne::create();  
    4. listener->setSwallowTouch(true);  
    5. listener->onTouchBegan     = [](Touch* touch, Event* event) { do_some_thing();  return true;  };  
    6. listener->onTouchMoved     = [](Touch* touch, Event* event) { do_some_thing();  };  
    7. listener->onTouchEnded     = [](Touch* touch, Event* event) { do_some_thing();  };  
    8. listener->onTouchCancelled = [](Touch* touch, Event* event) { do_some_thing();  };  
    9. // The priority of the touch listener is based on the draw order of sprite  
    10. EventDispatcher::getInstance()->addEventListenerWithSceneGraphPriority(listener, sprite);  
    11. // Or the priority of the touch listener is a fixed value  
    12. EventDispatcher::getInstance()->addEventListenerWithFixedPriority(listener, 100); // 100 is a fixed value  

    5、还有一些杂七杂八的东西,本人理解的不透,也就不发出来献丑了,最后将CCType.h 里的一些变动贴出来,让我们愉快的结束这篇博文。
    | v2.1 struct names | v3.0 struct names |
    | ccColor3B         | Color3B |
    | ccColor4B         | Color4B |
    | ccColor4F         | Color4F |
    | ccVertex2F        | Vertex2F |
    | ccVertex3F        | Vertex3F |
    | ccTex2F           | Tex2F |
    | ccPointSprite     | PointSprite |
    | ccQuad2           | Quad2 |
    | ccQuad3           | Quad3 |
    | ccV2F_C4B_T2F     | V2F_C4B_T2F |
    | ccV2F_C4F_T2F     | V2F_C4F_T2F |
    | ccV3F_C4B_T2F     | V3F_C4B_T2F |
    | ccV2F_C4B_T2F_Triangle | V2F_C4B_T2F_Triangle |
    | ccV2F_C4B_T2F_Quad | V2F_C4B_T2F_Quad |
    | ccV3F_C4B_T2F_Quad | V3F_C4B_T2F_Quad |
    | ccV2F_C4F_T2F_Quad | V2F_C4F_T2F_Quad |
    | ccBlendFunc       | BlendFunc |
    | ccT2F_Quad        | T2F_Quad |
    | ccAnimationFrameData | AnimationFrameData |
    

    一些全局的定义

    // in v2.1
    ccColor3B color3B = ccc3(0, 0, 0);
    ccc3BEqual(color3B, ccc3(1, 1, 1));
    ccColor4B color4B = ccc4(0, 0, 0, 0);
    ccColor4F color4F = ccc4f(0, 0, 0, 0);
    color4F = ccc4FFromccc3B(color3B);
    color4F = ccc4FFromccc4B(color4B);
    ccc4FEqual(color4F, ccc4F(1, 1, 1, 1));
    color4B = ccc4BFromccc4F(color4F);
    
    color3B = ccWHITE;
    
    // in v3.0
    Color3B color3B = Color3B(0, 0, 0);
    color3B.equals(Color3B(1, 1, 1));
    Color4B color4B = Color4B(0, 0, 0, 0);
    Color4F color4F = Color4F(0, 0, 0, 0);
    color4F = Color4F(color3B);
    color4F = Color4F(color4B);
    color4F.equals(Color4F(1, 1, 1, 1));
    color4B = Color4B(color4F);
    
    color3B = Color3B::WHITE;
    

    继续...

    | v2.1 names    | v3.0 names |
    | ccp           | Point |
    | ccpNeg        | Point::- |
    | ccpAdd        | Point::+ |
    | ccpSub        | Point::- |
    | ccpMult       | Point::* |
    | ccpMidpoint   | Point::getMidpoint |
    | ccpDot        | Point::dot |
    | ccpCrosss     | Point::cross |
    | ccpPerp       | Point::getPerp |
    | ccpRPerp      | Point::getRPerp |
    | ccpProject    | Point::project |
    | ccpRotate     | Point::rotate |
    | ccpUnrotate   | Point::unrotate |
    | ccpLengthSQ   | Point::getLengthSq() |
    | ccpDistanceSQ | Point::getDistanceSq |
    | ccpLength     | Point::getLength |
    | ccpDistance   | Point::getDistance |
    | ccpNormalize  | Point::normalize |
    | ccpForAngle   | Point::forAngle |
    | ccpToAngle    | Point::getAngle |
    | ccpClamp      | Point::getClampPoint |
    | ccpFromSize   | Point::Point |
    | ccpCompOp     | Point::compOp |
    | ccpLerp       | Point::lerp |
    | ccpFuzzyEqual | Point::fuzzyEqual |
    | ccpCompMult   | Point::Point |
    | ccpAngleSigned | Point::getAngle |
    | ccpAngle      | Point::getAngle |
    | ccpRotateByAngle | Point::rotateByAngle |
    | ccpLineInersect | Point::isLineIntersect |
    | ccpSegmentIntersect | Point::isSegmentIntersect |
    | ccpIntersectPoint | Point::getIntersectPoint |
    | CCPointMake   | Point::Point |
    | CCSizeMake    | Size::Size |
    | CCRectMake    | Rect::Rect |
    | PointZero     | Point::ZERO |
    | SizeZero      | Size::ZERO |
    | RectZero      | Rect::ZERO |
    | TiledGrid3DAction::tile | TiledGrid3DAction::getTile |
    | TiledGrid3DAction::originalTile | TiledGrid3DAction::getOriginalTile |
    | TiledGrid3D::tile | TiledGrid3D::getTile |
    | TiledGrid3D::originalTile | TiledGrid3D::getOriginalTile |
    | Grid3DAction::vertex | Grid3DAction::getVertex |
    | Grid3DAction::originalVertex | Grid3DAction::getOriginalVertex |
    | Grid3D::vertex | Grid3D::getVertex |
    | Grid3D::originalVertex | Grid3D::getOriginalVertex |
    | Configuration::sharedConfiguration | Configuration::getInstance |
    | Configuration::purgeConfiguration | Configuration::destroyInstance() |
    | Director::sharedDirector() | Director::getInstance() |
    | FileUtils::sharedFileUtils | FileUtils::getInstance |
    | FileUtils::purgeFileUtils | FileUtils::destroyInstance |
    | EGLView::sharedOpenGLView | EGLView::getInstance |
    | ShaderCache::sharedShaderCache | ShaderCache::getInstance |
    | ShaderCache::purgeSharedShaderCache | ShaderCache::destroyInstance |
    | AnimationCache::sharedAnimationCache | AnimationCache::getInstance |
    | AnimationCache::purgeSharedAnimationCache | AnimationCache::destroyInstance |
    | SpriteFrameCache::sharedSpriteFrameCache | SpriteFrameCache::getInstance |
    | SpriteFrameCache:: purgeSharedSpriteFrameCache | SpriteFrameCache::destroyInstance |
    | NotificationCenter::sharedNotificationCenter | NotificationCenter::getInstance |
    | NotificationCenter:: purgeNotificationCenter | NotificationCenter::destroyInstance |
    | Profiler::sharedProfiler | Profiler::getInstance |
    | UserDefault::sharedUserDefault | UserDefault::getInstance |
    | UserDefault::purgeSharedUserDefault | UserDefault::destroyInstance |
    | Application::sharedApplication | Application::getInstance |
    | ccc3()        | Color3B() |
    | ccc3BEqual()  | Color3B::equals() |
    | ccc4()        | Color4B() |
    | ccc4FFromccc3B() | Color4F() |
    | ccc4f()       | Color4F() |
    | ccc4FFromccc4B() | Color4F() |
    | ccc4BFromccc4F() | Color4B() |
    | ccc4FEqual()  | Color4F::equals() |
    | ccWHITE       | Color3B::WHITE |
    | ccYELLOW      | Color3B::YELLOW |
    | ccBLUE        | Color3B::BLUE |
    | ccGREEN       | Color3B::GREEN |
    | ccRED         | Color3B::RED |
    | ccMAGENTA     | Color3B::MAGENTA |
    | ccBLACK       | Color3B::BLACK |
    | ccORANGE      | Color3B::ORANGE |
    | ccGRAY        | Color3B::GRAY |
    | kBlendFuncDisable | BlendFunc::BLEND_FUNC_DISABLE |

    第一篇内容比较简单,所以也没什么问题要请教大伙的。嘿嘿~~

    具体资料可以查看官方文档:
    https://github.com/cocos2d/cocos2d-x/blob/develop/docs/RELEASE_NOTES.md
  • 相关阅读:
    将博客搬至CSDN
    IDEA安装对应版本的lombok才生效
    shift键复选dataGrid的记录时多余的文本总被选择了。
    git 导出新修改的文件
    svn老鸟转用git必须理解的概念
    java中Long类型和long类型的大小比较
    eclipse反编译插件jadClipse安装使用教程
    js闭包
    java泛型讲解
    常用加密解密算法【RSA、AES、DES、MD5】介绍和使用
  • 原文地址:https://www.cnblogs.com/AlanShearer/p/3524645.html
Copyright © 2020-2023  润新知