Cocos2d-x3.0新機能-沈海Cocos 2 d-x 3.0チュートリアル1
19828 ワード
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: strongly typed enums, for most of the cocos2d-x enums and constants
st std::function
強力な列挙タイプの更新:
Examples:
v2.1
v3.0
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()
Example:
Singletons use getInstance() and destroyInstance()
All singletons use
Examples:
v2.1
v3.0
etc...
v2.1 methods are still available, but they were tagged as deprecated.
getters
Getters now use the
Examples:
v2.1
v3.0
etc...
And getters were also tagged as
v2.1 methods are still available, but they were tagged as deprecated.
POD types
Methods that were receiving POD types as arguments (eg:
Example:
Misc API Changes
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
Global functions changed example
old name
new name
Cocos2d-x3.0環境要件の実行:
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.
ここでC++11の新しい特性:
A subset of C++11 features are being used in cocos2d-x:
std::function
, including lambda objects for callbacks 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:
TexParams
, Point
, Size
, 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