八月份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)
- Replace Objective-C patters with C++ (C++11) patterns and best practices
- Improve Labels
- Improve renderer
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::threadfor threadingoverridecontext keyword, for overriden methods
st std::function
CallFunccan be created with anstd::function<void()>CallFuncNcan be created with anstd::function<void(Node*)>CallFuncNDandCallFuncOwere removed since it can be created with simulated withCallFuncNandCallFunc. See ActionsTest.cpp for more examplesMenuItemsupportsstd::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.
Removed Objective-C patterns
移除了所有Object-c模式,删除了CC前辍使用纯C++函数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:
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:
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 constreference.
Example:
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
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 |
Cocos2d-x 官方发布 v3.0 版本,更新内容丰富,包括运行环境和编译环境需求、C++11 新特性应用、强大枚举类型更新、类使用改变、单例类调用方式、getter 方法修改、POD 类型参数变化等。同时提供创建跨平台项目的指导。
4158

被折叠的 条评论
为什么被折叠?



