cocos2d-x v2 升级到 v3

47 篇文章 0 订阅
34 篇文章 0 订阅

常用类名改变

删除了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

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部分函数对照表

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值