zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    sqlplus时报Linux-x86_64 Error: 13: Permission denied
    thrift之TTransport层的缓存传输类TBufferedTransport和缓冲基类TBufferBase
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 合并石子
  • 原文地址:https://www.cnblogs.com/AlanShearer/p/3524645.html
Copyright © 2011-2022 走看看