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部分函数对照表
相关文章推荐
- COCOS2D-X 3.0坐标系详解
- Cocos2d-X3.0bate_关于一些“无法解析的外部符号”的配置问题解决方法
- Cocos2d-x 3.x版本---创建项目
- cocos2d-x 之quick-ini
- Cocos Studio 数据编辑器新手使用教程
- Cocos Studio 学习指引
- Cocos Studio制作多分辨率UI布局
- COCOS2D-X 多分辨率适配完全解析
- 记录:捕鱼达人开发笔记
- cocos2d-x如何解决图片显示模糊问题
- cocos2dx-3.0 事件回调
- 使用Cocos2d-x 3.2和Cocos Studio做屏幕适配方案总结
- 认识 Cocos2dx 3.x
- Cocos2d-x 关于RotateBy在3D下的旋转不绕中心轴
- cocos植物大战僵尸(三)游戏场景:地图滚动
- cocos2dx骨骼动画Armature源码分析(二)
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第十一节:骨骼动画模型播放控制
- Cocos2d-x 屏幕适配新解
- cocos2d js 版斗地主,和网狐的pc端斗地主通信,能玩
- Cocos2d-js 开发记录:Loading载入界面自定义