更新步骤
- 下载开发包(github也可以)。
- 运行build目录下,cocos2d_tests.xcodeproj工程。
- 将编译Target选择成cpp-tests iOS。
- 运行。
- 用命令行命令生成一个模板工程:
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