zoukankan      html  css  js  c++  java
  • Cocos2dx 3.0 交流篇

    创建项目: For(MAC)

    Runtime Requirements

    • Android 2.3 or newer
    • iOS 5.0 or newer
    • OS X 10.7 or newer
    • Windows 7 or newer
    • Linux Ubuntu 12.04 (or newer)
    • cocos2d-x v3.0rc(or newer)

    Software Requirements

    • Xcode 4.6 (for iOS or Mac)
    • gcc 4.7 for Linux or Android. For Android ndk-r9 or newer is required.
    • Visual Studio 2012 (for Windows)
    • Python 2.7.5

    Create A New Project

    $ cd cocos2d-x
    $ ./setup.py
    $ source ~/.bash_profile # may be ~/.bash_login or ~/.profile, depends on your environemnt
    $ cocos new MyGame -p com.MyCompany.MyGame -l cpp -d ~/MyCompany
    
    • MyGame: name of your project
    • -p com.MyCompany.MyGame: package name for android
    • -l cpp: programming language used for the project, valid value is cppand lua
    • -d ~/MyCompany: directory to hold your project

    new game

    Folder structure of the generated project is as following:

    folder structure

    (Note: The directory may be different when the project type is lua.)

    Build And Run New Project

    $ cocos run -s ~/MyCompany/MyGame -p ios
    
    • -s: directory of the new project. This could be an absolute path or a relative path.
    • -p: which platform to run on. Options are ios,android,win32,mac and linux.

    (Note: You are a tmux user, you should add reattach-to-user-namespace before the command cocos. For more information, please refer to this link for more information.)

    You can run cocos run --help for more detail information.

    run scree


    体验变化:
    1、以CC开头的类从此去掉CC。如:

    ?
    1
    2
    3
    4
    5
    <code>| v2.1       | v3.0     |
    | CCSprite   | Sprite   |
    | CCNode     | Node     |
    | CCDirector | Director |
    | etc...                |</code>

    举个样例,创建一个精灵的方式:
    ?

    1
    2
    3
    4
    5
    6
    v2.0
    CCSprite* sp = CCSprite::create();
     
     
    v3.0
    auto sp = Sprite::create();


    2、clone() 替代 copy(), 这个我用的不多。所以也就不多交代了;


    3、Director的单例换成getInstance() 和 destroyInstance();
    ?

    1
    2
    3
    4
    <code>| v2.1                          | v3.0                        |
    | CCDirector->sharedDirector()  | Director->getInstance()     |
    | CCDirector->endDirector()     | Director->destroyInstance() |
    | etc...                                                      |</code>
    |
    4、新的触摸机制,先贴一段代码给大家看看,可能是下一篇或者下下篇我会具体讲下新的触摸机制的。(嘻嘻。搞得我好像非常牛逼哄哄的样子)
    ?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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 里的一些变动贴出来,让我们愉快的结束这篇博文。
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <code>| 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 |
    </code>

    一些全局的定义:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    // 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;

    继续...

    ?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <code>| 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 |</code>


  • 相关阅读:
    Oracle数据库的一些常用命令
    计算机网络:计算路由表下一跳
    怎样快速对二进制和十进制进行互转化——IP地址规划与设计总结
    计算机网络-以太网,局域网,城域网,广域网,互联网,因特网,万维网的区分
    Apache与Tomcat有什么关系和区别
    Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
    使用Oracle的PROFILE对用户资源限制和密码限制
    通过修改profile 来修改账号的过期时间
    解决oracle用户过期问题
    【项目】项目36
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5054599.html
Copyright © 2011-2022 走看看