Cocos2dx 3.0 过渡篇(一) 初体验
2014-04-09 16:58
176 查看
尊重原创,转载请注明来自:star特530的CSDN博客 :http://blog.csdn.net/start530/article/details/18052953
有段时间没更新博客了,自认为水平实在够菜,不忍心出来坑人~~~~
昨天cocos2dx 3.0 beta 版也出来了,我之前也用过一两个星期的alpha1版,所以决定写一些关于3.0的博文,这里不仅只有我个人的一些理解和看法,同时我也会把开发过程中遇到的问题贴上来,希望大神们给予回答~~
1、以CC开头的类从此去掉CC,如:
举个例子,创建一个精灵的方式:
[cpp] view
plaincopy
v2.0
CCSprite* sp = CCSprite::create();
v3.0
auto sp = Sprite::create();
2、clone() 替代 copy(), 这个我用的不多,所以也就不多交代了;
3、Director的单例换成getInstance() 和 destroyInstance();
|
4、新的触摸机制,先贴一段代码给大家看看,可能是下一篇或者下下篇我会详细讲下新的触摸机制的。
[cpp] view
plaincopy
auto sprite = Sprite::create("file.png");
...
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouch(true);
listener->onTouchBegan = [](Touch* touch, Event* event) { do_some_thing(); return true; };
listener->onTouchMoved = [](Touch* touch, Event* event) { do_some_thing(); };
listener->onTouchEnded = [](Touch* touch, Event* event) { do_some_thing(); };
listener->onTouchCancelled = [](Touch* touch, Event* event) { do_some_thing(); };
// The priority of the touch listener is based on the draw order of sprite
EventDispatcher::getInstance()->addEventListenerWithSceneGraphPriority(listener, sprite);
// Or the priority of the touch listener is a fixed value
EventDispatcher::getInstance()->addEventListenerWithFixedPriority(listener, 100); // 100 is a fixed value
5、还有一些杂七杂八的东西,本人理解的不透,也就不发出来献丑了,最后将CCType.h 里的一些变动贴出来,让我们愉快的结束这篇博文。
一些全局的定义:
有段时间没更新博客了,自认为水平实在够菜,不忍心出来坑人~~~~
昨天cocos2dx 3.0 beta 版也出来了,我之前也用过一两个星期的alpha1版,所以决定写一些关于3.0的博文,这里不仅只有我个人的一些理解和看法,同时我也会把开发过程中遇到的问题贴上来,希望大神们给予回答~~
1、以CC开头的类从此去掉CC,如:
| v2.1 | v3.0 | | CCSprite | Sprite | | CCNode | Node | | CCDirector | Director | | etc... |
举个例子,创建一个精灵的方式:
[cpp] view
plaincopy
v2.0
CCSprite* sp = CCSprite::create();
v3.0
auto sp = Sprite::create();
2、clone() 替代 copy(), 这个我用的不多,所以也就不多交代了;
3、Director的单例换成getInstance() 和 destroyInstance();
| v2.1 | v3.0 | | CCDirector->sharedDirector() | Director->getInstance() | | CCDirector->endDirector() | Director->destroyInstance() | | etc... |
|
4、新的触摸机制,先贴一段代码给大家看看,可能是下一篇或者下下篇我会详细讲下新的触摸机制的。
[cpp] view
plaincopy
auto sprite = Sprite::create("file.png");
...
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouch(true);
listener->onTouchBegan = [](Touch* touch, Event* event) { do_some_thing(); return true; };
listener->onTouchMoved = [](Touch* touch, Event* event) { do_some_thing(); };
listener->onTouchEnded = [](Touch* touch, Event* event) { do_some_thing(); };
listener->onTouchCancelled = [](Touch* touch, Event* event) { do_some_thing(); };
// The priority of the touch listener is based on the draw order of sprite
EventDispatcher::getInstance()->addEventListenerWithSceneGraphPriority(listener, sprite);
// Or the priority of the touch listener is a fixed value
EventDispatcher::getInstance()->addEventListenerWithFixedPriority(listener, 100); // 100 is a fixed value
5、还有一些杂七杂八的东西,本人理解的不透,也就不发出来献丑了,最后将CCType.h 里的一些变动贴出来,让我们愉快的结束这篇博文。
| v2.1 struct names | v3.0 struct names | | 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 |
一些全局的定义:
// in v2.1 ccColor3B color3B = ccc3(0, 0, 0); ccc3BEqual(color3B, ccc3(1, 1, 1)); ccColor4B color4B = ccc4(0, 0, 0, 0); ccColor4F color4F = ccc4f(0, 0, 0, 0); color4F = ccc4FFromccc3B(color3B); color4F = ccc4FFromccc4B(color4B); ccc4FEqual(color4F, ccc4F(1, 1, 1, 1)); color4B = ccc4BFromccc4F(color4F); color3B = ccWHITE; // in v3.0 Color3B color3B = Color3B(0, 0, 0); color3B.equals(Color3B(1, 1, 1)); Color4B color4B = Color4B(0, 0, 0, 0); Color4F color4F = Color4F(0, 0, 0, 0); color4F = Color4F(color3B); color4F = Color4F(color4B); color4F.equals(Color4F(1, 1, 1, 1)); color4B = Color4B(color4F); color3B = Color3B::WHITE;
继续...
| v2.1 names | v3.0 names | | 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 |
相关文章推荐
- Cocos2dx 3.0 过渡篇(一) 初体验
- Cocos2dx 3.0 过渡篇(一) 初体验
- Cocos2dx 3.0 过渡篇(一) 初体验
- Cocos2dx 3.0 过渡篇(八)浅谈容器Vector
- Cocos2dx 3.0 过渡篇(十七) std::bind与CC_CALLBACK不得不说的故事
- Cocos2dx 3.0 过渡篇 (二十) 闲扯强制类型转换
- Cocos2dx 3.0 过渡篇(七)EditBox和ControlSlider不得不说的故事
- Cocos2dx 3.0 过渡篇(十七) std::bind与CC_CALLBACK不得不说的故事
- Cocos2dx 3.0 过渡篇 (二十一)自从Label有了freeType做靠山以后...
- Cocos2dx 3.0 过渡篇(十七) std::bind与CC_CALLBACK不得不说的故事
- Cocos2dx 3.0 过渡篇(十八) Cocos2d-x 3.0rc,又一种创建项目方式 .
- Cocos2dx 3.0 过渡篇(十九)新鲜出炉的Value该怎么玩
- Cocos2dx 3.0 过渡篇(十七) std::bind与CC_CALLBACK不得不说的故事
- Cocos2dx 3.0 过渡篇 (二十一)自从Label有了freeType做靠山以后...enableShadow
- Cocos2dx 3.0 过渡篇(十八) Cocos2d-x 3.0rc,又一种创建项目方式
- Cocos2dx 3.0 过渡篇(八)浅谈容器Vector
- Cocos2dx 3.0 过渡篇 globalZOrder()与localZOrder()
- Cocos2dx 3.0 提高篇(一) 初体验
- Cocos2dx 3.0 过渡篇(十八) Cocos2d-x 3.0rc,又一种创建项目方式
- Cocos2dx 3.0 过渡篇 (二十一)自从Label有了freeType做靠山以后...