转自:http://www.cnblogs.com/jiangu66/archive/2013/08/09/3249354.html
八月份cocos2d-x官网发布了v3.0版本,这次更新的内容特别多,包括2dx的架构以及使用
总得来说,给开发者带来了很大的便利:
运行环境需求:
- 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)
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 threadingoverride
context keyword,for overriden methods
st std::function
-
CallFunc
can be created with anstd::function<void()>
- CallFuncNcan be created with an
std::function<void(Node*)>
CallFuncND
andCallFuncO
were removed since it can be created with simulated withCallFuncN
andCallFunc
. See ActionsTest.cpp for more examples- MenuItemsupports
std::function<void(Node*)>
as callbacks
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.
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 usegetInstance()
anddestroyInstance()
(if applicable) to get and destroy the instance.
Examples:
Director->getInstance() | |
CCDirector->endDirector() | Director->destroyInstance() |
etc... |
v2.1 methods are still available,but they were tagged as deprecated.
Getters now use theget
prefix.
node->boundingBox()
const
in their declaration. Example:
2virtual float getScale(); 3 45float getScale() const;
POD types
Methods that were receiving POD types as arguments (eg:TexParams
,Point
,250)">Size,etc.) are being passed asconst
reference.
void setTexParameters(ccTexParams* texParams);
void setTexParameters(const ccTexParams& texParams);
Misc API Changes
ccTypes.h
Removeccprefix 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); 4ccc3BEqual(color3B,1,207)">1)); 5ccColor4B color4B = ccc4(0); 6ccColor4F color4F = ccc4f( 7color4F = ccc4FFromccc3B(color3B); 8color4F = ccc4FFromccc4B(color4B); 9ccc4FEqual(color4F,ccc4F(10color4B = ccc4BFromccc4F(color4F); 11 12color3B = ccWHITE; 13 14// in v3.0 15Color3B color3B = Color3B(16color3B.equals(Color3B(17Color4B color4B = Color4B(18Color4F color4F = Color4F(19color4F = Color4F(color3B); 20color4F = Color4F(color4B); 21color4F.equals(Color4F(22color4B = Color4B(color4F); 23 24color3B = Color3B::WHITE;
deprecated functions and global variables
new name | ||||
ccp | Point | |||
ccpNeg | Point::- | |||
ccpAdd | Point::+ | |||
ccpSub | 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 | ccpAngleSigned | ccpAngle | ccpRotateByAngle | Point::rotateByAngle |
ccpLineInersect | Point::isLineIntersect | |||
ccpSegmentIntersect | Point::isSegmentIntersect | |||
ccpIntersectPoint | Point::getIntersectPoint | |||
CCPointMake | CCSizeMake | Size::Size | ||
CCRectMake | Rect::Rect | |||
PointZero | 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() | ccc4FFromccc4B() | ccc4BFromccc4F() | ccc4FEqual() | Color4F::equals() |
ccWHITE | Color3B::WHITE | |||
ccYELLOW | Color3B::YELLOW | |||
ccBLUE | Color3B::BLUE | |||
ccRED | Color3B::RED | |||
ccMAGENTA | Color3B::MAGENTA | |||
ccBLACK | Color3B::BLACK | |||
ccORANGE | Color3B::ORANGE | |||
ccGRAY | Color3B::GRAY | |||
kBlendFuncDisable | BlendFunc::BLEND_FUNC_DISABLE |