cocos2dx 2.x到cocos2dx 3.x的一些改变
src:http://www.52php.cn/article/p-gvqsfzll-r.html cocos2dx 3.x之后用的都是c++ 11的新语法,另外在引擎源码里面有很多地方作出了改变。 1.去CC 之前2.0的CC**,把CC都去掉,基本的元素都是保留的 2.0 2.cc***结构体改变 2.0 2.0 Point(x,y) p1+p2; p1-p2 p1*p2 p.getLength() p1.dot(p2) Color3B() Color4B() Color3B::WHITE Point::ZERO Size:ZERO 3.shared单例对象改变 2.0 4.POD类别 使用const为Point,Size,Rect进行常量修饰 2.0 5.点触事件, 此部分全面更新采用Event Listener autodispatcher=Director::getInstance()->getEventDispatcher(); 新的触摸机制是重大变化,可以查看其详细解释 下面是另一个写法 [cpp]view plaincopy
可以发现里面采用了lamda表达式 6.CC_CALLBACK_* CC_CALLBACK_0 CC_CALLBACK_1 CC_CALLBACK_2 CC_CALLBACK_3 回调函数,分别携带不同的参数,方便 2.0 #defineCC_CALLBACK_1(__selector__,std::placeholders::_1,255);">#defineCC_CALLBACK_2(__selector__,std::placeholders::_2,255);">#defineCC_CALLBACK_3(__selector__,std::placeholders::_3##__VA_ARGS__) 7.使用"Function"对象 CallFunc::create([&](){ 这不就是lamda表达式么 8.使用clone代替copy 2.0 9.Physics Integration 物理引擎 暂无使用,box2d 在 3.0中可以延续使用 在3.0的Physics中需要定义 PhysicsWorld,PhysicsBody,PhysicsShape,PhysicsJoint 等,于box2d相仿,使用前需要定义CC_USE_PHYSICS ……继续等待补充 一些变量名以及常量名的改变: |v2.1structnames|v3.0structnames| |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| //inv2.1ccColor3Bcolor3B=ccc3(0,0);ccc3BEqual(color3B,ccc3(1,1,1));ccColor4Bcolor4B=ccc4(0,0);ccColor4Fcolor4F=ccc4f(0,0);color4F=ccc4FFromccc3B(color3B);color4F=ccc4FFromccc4B(color4B);ccc4FEqual(color4F,ccc4F(1,1));color4B=ccc4BFromccc4F(color4F);color3B=ccWHITE;//inv3.0Color3Bcolor3B=Color3B(0,0);color3B.equals(Color3B(1,1));Color4Bcolor4B=Color4B(0,0);Color4Fcolor4F=Color4F(0,0);color4F=Color4F(color3B);color4F=Color4F(color4B);color4F.equals(Color4F(1,1));color4B=Color4B(color4F);color3B=Color3B::WHITE; |v2.1names|v3.0names| |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| 未完待续~(虽然我很懒) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |