cocos2d-x 3.0相对于2.0的变化

更新步骤

  1. 下载开发包(github也可以)。
  2. 运行build目录下,cocos2d_tests.xcodeproj工程。
  3. 将编译Target选择成cpp-tests iOS。
  4. 运行。
  5. 用命令行命令生成一个模板工程:
    cocos new MyGame -p com.MyCompany.MyGame -l cpp -d ~/MyCompany
    将2.0代码加入模板工程中。如果是3.0升级就用模板工程中的cocos2d代替老版本的文件夹。

CClog 变成CCLOG

CCArray 变成__Array, CCSet等也变成__set

CCLayer中setTouchEnabled无效

添加触摸事件器后,自动生效。

ccTouchBegan等改成onTouchesBegan

触摸事件代码

    auto listener = EventListenerTouchAllAtOnce::create();
    listener->onTouchesBegan = CC_CALLBACK_2(ForceTouchTest::onTouchesBegan, this);
    listener->onTouchesMoved = CC_CALLBACK_2(ForceTouchTest::onTouchesMoved, this);
    listener->onTouchesEnded = CC_CALLBACK_2(ForceTouchTest::onTouchesEnded, this);
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

CCObject改成Ref

CCPoint改成Vec2

CCJumpTO等动作改成JumpTo

CCPointZero改成Vec2::Zero

除了0向量外,还有很多的静态值。

动作回调CallFuncN有改动

ac_go =  Sequence::create(ac_p, ac_s, ac_s1,
CallFuncN::create(this, callfuncN_selector(BlockBoard::call_onBeginAction)),
nullptr);
//改成:
ac_go = Sequence::create(ac_p,ac_s,ac_s1,CallFuncN::create(CC_CALLBACK_1(BlockBoard::call_onBeginAction,this)),
nullptr);

CC_CALLBACK_1 CC_CALLBACK_2 CC_CALLBACK_3
后面的数字表示带参数的多少。

ssize_t格式化参数%zd

ssize_t:有符号整数,与平台无关。适配不同平台的通用整数关键字,在32位平台为32,64位平台为long。
size_t:无符号整数,与平台无关。
ssize_t格式化参数是%zd, size_t是%tu。

GameCenter ReportScore有更新

代码如下:

- (void) reportScore: (int64_t) score forCategory: (NSString*) category
{
    GKScore *scoreReporter = [[[GKScore alloc] initWithLeaderboardIdentifier:category] autorelease];
    scoreReporter.value = score;
    scoreReporter.context = 0;
    
    NSArray *scores = @[scoreReporter];
    [GKScore reportScores:scores withCompletionHandler:^(NSError *error) {
        //Do something interesting here.
        if (error != nil){
            // handle the reporting error
            NSLog(@"上传分数出错.");

        }else {
            NSLog(@"上传分数成功");
        }
    }];
}

Size会有重名错误,用cocos2d::Size

MenuItemImage 有变化

代码

MenuItemImage* item_close = MenuItemImage::create("close.png", "close_p.png",  CC_CALLBACK_1(InfoShowLayer::onClose, this));

向量操作

Vec2可以直接数学符号操作

Label Font

TTF, 系统字体,BMFont,都由Label类负责创建

    Label* label = Label::createWithSystemFont(str->getCString(), "Mark Felt", fontSize);
    Label::createWithTTF
    Label::createWithBMFont
    Label::createWithCharMap

设置资源路径已经适配模式

searchPath.push_back("iphone");
glview>setDesignResolutionSize(750,1334,ResolutionPolicy::FIXED_HEIGHT);

启动图片和应用图标都有更新

启动图片决定了初始分辨率的大小。不提供相应的启动图片,不能获得正确的初始分辨率。

参考

常用格式化参数
CC_CALLBACK_0, CC_CALLBACK_1, CC_CALLBACK_2, CC_CALLBACK_3

你可能感兴趣的:(cocos2d-x 3.0相对于2.0的变化)