Cocos2d-x3.0新機能-沈海Cocos 2 d-x 3.0チュートリアル1


3.0時代は間もなく到来して、ついにObjective-cの影を抜け出して、C++に復帰して、そして強大なC++11の新しい特性を支持して、小さいニュース:2014年10との開発者大会は正式版を出すことができて、しかし私は開発チームがやはり2.2を基礎に審査することを提案して、3.0が完備してから更に新しいバージョンを待って、しかし先に研究することができますか.
Cocos2d-x3.0環境要件の実行:
  • Android 2.3 or newer

  • iOS 5.0 or newer
    OS X 10.7 or newer
    Windows (which version?)
    Linux Ubuntu 12.04 (or newer)
    コンパイル環境の要件:
    Xcode 4.6 (for iOS or Mac)
    gcc 4.7 for Linux or Android. For Android ndk-r8e or newer is required.
  • Visual Studio 2012(for Windows)(XPシステムで開発中の子供靴、交換済み)
  • 重要な更新内容:
  • Replace Objective-C patters with C++ (C++11) patterns and best practices
  • Improve Labels
  • Improve renderer

  • ここでC++11の新しい特性:
    A subset of C++11 features are being used in cocos2d-x:
  • std::function , including lambda objects for callbacks
  • strongly typed enums, for most of the cocos2d-x enums and constants
  • std::thread  for threading
  • override  context keyword, for overriden methods

  • st  std::function CallFunc  can be created with an  std::function<void()> CallFuncN  can be created with an  std::function<void(Node*)>
  • CallFuncND  and  CallFuncO  were removed since it can be created with simulated with  CallFuncN  and  CallFunc . See ActionsTest.cpp for more examples
  • MenuItem  supports  std::function<void(Node*)>  as callbacks
    強力な列挙タイプの更新:
    Examples:
    v2.1
    v3.0 kCCTexture2DPixelFormat_RGBA8888 Texture2D::PixelFormat::RGBA8888 kCCDirectorProjectionCustom Director::Projection::CUSTOM ccGREEN Color3B::GREEN CCPointZero Point::ZERO CCSizeZero Size::ZERO
    The old values can still be used, but are not deprecated.
    override
    虚関数がoverride関健字で修飾されると,サブクラス実装時にoverrideタグがある.
    Removed Objective-C patternsはすべてのObject-cモードを除去し、CCを削除する前に中退して純粋なC++関数を使用する
    クラスの使用の変更:
    2 dx-3.0両方ともusing coco 2 d namespaceを使用しない
         clone() instead of copy() clone()  returns an autoreleased version of the copy. copy()  is no longer supported. If you use it, it will compile, but the code will crash.
    Example:
    1// v2.1
    2CCMoveBy *action = (CCMoveBy*) move->copy();
    3action->autorelease();
    4
    5// v3.0
    6// No need to do autorelease, no need to do casting.
    7auto action = move->clone();

         
         Singletons use getInstance() and destroyInstance()
    All singletons use  getInstance()  and  destroyInstance()  (if applicable) to get and destroy the instance.
    Examples:
    v2.1
    v3.0 CCDirector->sharedDirector() Director->getInstance() CCDirector->endDirector() Director->destroyInstance()
    etc...
    v2.1 methods are still available, but they were tagged as deprecated.
         getters
    Getters now use the  get  prefix.
    Examples:
    v2.1
    v3.0 node->boundingBox() node->getBoundingBox() sprite->nodeToParentTransform() sprite->getNodeToParentTransform()
    etc...
    And getters were also tagged as  const  in their declaration. Example:
    1// v2.1
    2virtual float getScale();
    3
    4// v3.0
    5virtual float getScale() const;
    

    v2.1 methods are still available, but they were tagged as deprecated.
         POD types
    Methods that were receiving POD types as arguments (eg:  TexParamsPointSize , etc.) are being passed as  const reference.
    Example:
    1// v2.1
    2void setTexParameters(ccTexParams* texParams);
    3
    4// v3.0
    5void setTexParameters(const ccTexParams& texParams);
    

       Misc API Changes   ccTypes.h
    Remove cc prefix for structure names in ccTypes.h, move global functions into static member functions, and move global constants into const static member variables.
    structure name before changing
    structure name after changing 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
    Global functions changed example
     1
     2// in v2.1
     3ccColor3B color3B = ccc3(0, 0, 0);
     4ccc3BEqual(color3B, ccc3(1, 1, 1));
     5ccColor4B color4B = ccc4(0, 0, 0, 0); 
     6ccColor4F color4F = ccc4f(0, 0, 0, 0);
     7color4F = ccc4FFromccc3B(color3B);
     8color4F = ccc4FFromccc4B(color4B);
     9ccc4FEqual(color4F, ccc4F(1, 1, 1, 1));
    10color4B = ccc4BFromccc4F(color4F);
    11
    12color3B = ccWHITE;
    13
    14// in v3.0
    15Color3B color3B = Color3B(0, 0, 0);
    16color3B.equals(Color3B(1, 1, 1));
    17Color4B color4B = Color4B(0, 0, 0, 0);
    18Color4F color4F = Color4F(0, 0, 0, 0);
    19color4F = Color4F(color3B);
    20color4F = Color4F(color4B);
    21color4F.equals(Color4F(1, 1, 1, 1));
    22color4B = Color4B(color4F);
    23
    24color3B = Color3B::WHITE;
    
      deprecated functions and global variables
    old name
    new name 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