您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x v2 升级到 v3

2015-09-07 16:45 423 查看

常用类名改变

删除了CC前缀

CCAction

CCAction
-> Action

CCPoint
-> Point

CCAnimation
-> Animation

CCSprite
-> Sprite

CCLabel
-> Label

CCMenu
-> Menu

CCObject
-> Ref

CCNode
-> Node

CCScene
-> Scene

CCLayer
-> Layer

CCSpriteBatchNoe
-> SpriteBatchNode

CCTMXTiledMap
-> TMXTiledMap

CCDictionary
-> ValueMap

CCArray
-> ValueVector

CCString
-> Value

CCString 改变

之前:

CCString* str = CCString::createWithFormat("%s.png","picture");


之后:

std::string str = StringUtils::format("%s.png","picture");


CCDictionary 改变

之前:

CCDictionary* dict = CCDictionary::createWithContentsOfFile("name.plist");
CCArray* arr = (CCArray*) dict->objectForKey("Levels");


之后:

std::string path = FileUtils::getInstance()->fullPathForFilename("name.plist");
ValueMap dict = FileUtils::getInstance()->getValueMapFromFile(path);
ValueVector arrLevels = dict.at("Levels").asValueVector();


CCArray 改变

改为标准的vector容器

CCArray* arr;
->
ValueVector arr;


arr->addObject(sprite);
->
arr.pushBack(sprite);


arr->removeObject(sprite);
->
arr.eraseObject(sprite);


arr->removeObjectAtIndex(i);
->
arr.erase(i);


arr->objectAtIndex(i);
->
arr.at(i);


arr->count();
->
arr.size();


触摸函数改变

ccTouchBegan
->
onTouchBegan


ccTouchMoved
->
onTouchMoved


ccTouchEnded
->
onTouchEnded


MenuItem 菜单 变化

ccMacros.h中宏定义

// new callbacks based on C++11
#define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__)
#define CC_CALLBACK_1(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, ##__VA_ARGS__)
#define CC_CALLBACK_2(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, ##__VA_ARGS__)
#define CC_CALLBACK_3(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, ##__VA_ARGS__)


v2调用方法

CMenuItemImage *item1 = CCMenuItemImage::create(s_pPathB1, s_pPathB2, this, menu_selector(ActionsDemo::backCallback));


v3调用方法1

MenuItemImage *item1 = MenuItemImage::create(s_pPathB1, s_pPathB2, CC_CALLBACK_1(ActionsDemo::backCallback, this));


v3调用方法2

MenuItemImage *item1 = MenuItemImage::create(s_pPathB1, s_pPathB2, [=](Ref* sender){
    //code here
}););


全局单例类的改变

CCEGLView::sharedOpenGLView();
->
Director::getInstance()->getOpenGLView();


CCTextureCache::sharedTextureCache();
->
Director::getInstance()->getTextureCache();


CCNotificationCenter::sharedNotificationCenter();
->
Director::getInstance()->getEventDispatcher();


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


kBlendFuncDisable
->
BlendFunc::BLEND_FUNC_DISABLE


CCTime 改变

cc_timeval
->
timeval


CCTime::gettimeofdayCocos2d
->
gettimeofday


CCTime::timesubCocos2d
->
getTimeDiffenceMS


事例:

static inline float getTimeDifferenceMS(timeval& start, timeval& end){
    return ((((end.tv_sec - start.tv_sec)*1000.0f + end.tv_usec) - start.tv_usec) / 1000.0f);
}


OpenGL 变化

一般做游戏不太涉及得到

CCGLProgram
->
GLProgram


kCCUniformPMatrix_s
->
GLProgram::UNIFORM_NAME_P_MATRIX


kCCUniformMVMatrix_s
->
GLProgram::UNIFORM_NAME_MV_MATRIX


kCCUniformMVPMatrix_s
->
GLProgram::UNIFORM_NAME_MVP_MATRIX


kCCUniformTime_s
->
GLProgram::UNIFORM_NAME_TIME


kCCUniformSinTime_s
->
GLProgram::UNIFORM_NAME_SIN_TIME


kCCUniformCosTime_s
->
GLProgram::UNIFORM_NAME_COS_TIME


kCCUniformRandom01_s
->
GLProgram::UNIFORM_NAME_RANDOM01


kCCUniformSampler_s
->
GLProgram::UNIFORM_NAME_SAMPLER0


kCCUniformAlphaTestValue
->
GLProgram::UNIFORM_NAME_ALPHA_TEST_VALUE


kCCAttributeNameColor
->
GLProgram::ATTRIBUTE_NAME_COLOR


kCCAttributeNamePosition
->
GLProgram::ATTRIBUTE_NAME_POSITION


kCCAttributeNameTexCoord
->
GLProgram::ATTRIBUTE_NAME_TEX_COORD


函数对照

点操作

ccp
->
Vec2


点负数
ccpNeg
->
Vect::negate or -


点相加
ccpAdd
->
Vect::add or +


点相减
ccpSub
->
Vect::subtract or -


点相乘
ccpMult
->
Vect::*


点获得中点
ccpMidpoint
->
Vect::getMidpoint


点积
ccpDot
->
Vect::dot


叉积
ccpCrosss
->
Vect::cross


逆时针旋转90度
ccpPerp
->
Vect::getPerp


顺时针旋转90度
ccpRPerp
->
Vect::getRPerp


投影
ccpProject
->
Vect::project


ccpRotate
->
Vect::rotate


ccpUnrotate
->
Vect::unrotate


长度未开方(点积)
ccpLengthSQ
->
Vect::getLengthSq


距离未开方
ccpDistanceSQ
->
distanceSquared


长度
ccpLength
->
getLength


距离
ccpDistance
->
getDistance


取模
ccpNormalize
->
normalize


从角度获得
ccpForAngle
->
forAngle


转换为角度
ccpToAngle
->
getAngle


ccpClamp
->
getClampPoint


ccpFromSize
->


对x,y值进行函数处理
ccpCompOp
->
compOp


两点构成直线上的点
ccpLerp
->
lerp


模糊相等, 两个点靠的足够近
ccpFuzzyEqual
->
fuzzyEqual


ccpCompMult
->


和x轴的夹角或者和向量组成的夹角
ccpAngleSigned
->
getAngle


同上
ccpAngle
->
getAngle


旋转角度
ccpRotateByAngle
->
rotateByAngle


线是否相交/四个点是否在一个平面
ccpLineInersect
->
isLineIntersect


线段是否相交/四个点是否在一个平面
ccpSegmentIntersect
->
isSegmentIntersect


获取线段交点
ccpIntersectPoint
->
getIntersectPoint


CCPointMake
->


色彩操作

ccc3()
->
Color3B()


ccc3BEqual()
->
Color3B::equals()


ccc4()
->
Color4B()


ccc4f()
->
Color4F()


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


ccc4FFromccc3B
->


ccc4FFromccc4B
->


ccc4BFromccc4F
->


用宏定义来查找api变化

全局搜索
CC_DEPRECATED_ATTRIBUTE


参考:

cocos2d-x v2 和 v3 对照手册

升级到Cocos2d-x v3.3-RC0总结Director的主线解析

cocos2dx2.x&3.x部分函数对照表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: