[技术分享] cocos2d-x v3.0.0发布说明
来源:互联网 发布:C#数组排序 编辑:程序博客网 时间:2024/05/29 08:26
其它信息
- 下载: http://cdn.cocos2d-x.org/cocos2d-x-3.0alpha1.zip
- 完整的更新日志: https://github.com/cocos2d/cocos2d-x/blob/cocos2d-x-3.0alph1/CHANGELOG
- API 参考:http://www.cocos2d-x.org/reference/native-cpp/V3.0alpha1/index.html
要求
运行环境要求:
- Android2.3或以上
- ios 5.0 或以上
- OS X 10.7 或以上
- Windows 7 或以上
- Linux Ubuntu 12.04 (或以上)
- Marmalade 部分不适用
- lackBerry 部分不适用
编译器要求:
- mac和ios 上用 xcode4.6
- Linux 或者 Android 上用 gcc4.7。Android要求 Androidndk-r8e或以上。
- Window 上用 Visual Studio 2012
V3.0.0的特色
- 用c++(c++11)的最佳实践代替Objective-C的多余部分。
- 改良 Labels
- 改良 renderer
- 新的事件调度
- 集成物理
- 新的GUI
- javascript 远程调试
- 控制台模式
- 重构图像——及时释放内存和统一所支持文件格式的API
- 自动生成lua绑定,LuaJavaBridge,和LuaObjcBridge.
- 模板库
细节特性
c++11特性
在v3.0.0初期测试版上加上了这个特性
c++11 的一部分特性开始在cocos2d-x上使用。
- std::function.加入lambda对象作为回调
- 强类型枚举,在cocos2d-x中的枚举和常量中大量的使用。
- std::thread 用于线程
- override 关键字,检测重载方法。
Std::function
- CallFunc 可以用 std::function<void()>来创建
- CallFuncN 可以用 std::function<void(Node*)>来创建
- CallFuncND 和 CallFuncO都被移除了,这可以用CallFuncN和CallFunc来模拟,在ActionsTest.cpp中有更多的例子可以查看。
- MenuItem 支持 std::function<void(Node*)>回调
CallFunC 例子。
// in v2.1CCCallFunc *action1 = CCCallFunc::create( this, callfunc_selector( MyClass::callback_0 ) );
// in v3.0
(short version)auto action1 = CallFunc::create( CC_CALLBACK_0(MyClass::callback_0,this));
auto action2 = CallFunc::create( CC_CALLBACK_0(MyClass::callback_1,this, additional_parameters));
// in v3.0
(long version)auto action1 = CallFunc::create( std::bind( &MyClass::callback_0, this));
auto action2 = CallFunc::create( std::bind( &MyClass::callback_1, this, additional_parameters));
// in v3.0
you can also use lambdas or any other "Function"
objectauto action1 = CallFunc::create(
[&](){
auto s = Director::sharedDirector()->getWinSize();
auto label = LabelTTF::create("called:lambda callback", "Marker Felt", 16);
label->setPosition(ccp( s.width/4*1,s.height/2-40));
this->addChild(label);
} );
MenuItem 例子
// in v2.1
CCMenuItemLabel *item = CCMenuItemLabel::create(label, this, menu_selector(MyClass::callback));
// in v3.0
(short version)auto item = MenuItemLabel::create(label, CC_CALLBACK_1(MyClass::callback, this));
// in v3.0
(long version)auto item = MenuItemLabel::create(label, std::bind(&MyClass::callback, this, std::placeholders::_1));
// in v3.0 you can use lambdas or any other "Function"
objectauto item = MenuItemLabel::create(label,
[&](Object *sender) {
// do something. Item "sender" clicked
});
强类型枚举
在V3.0初期测试版中加入
常量和枚举都以k开头,它们经常被定义为int和普通的enum的地方都被置换为强类型枚举类型(enum class) 以避免冲突和类型错误。
新的格式为:
v2.1
v3.0
kTypeValue
Type::VALUE
例子:
v2.1
v3.0
kCCTexture2DPixelFormat_RGBA8888
Texture2D::PixelFormat::RGBA8888
kCCDirectorProjectionCustom
Director::Projection::CUSTOM
ccGREEN
Color3B::GREEN
CCPointZero
Point::ZERO
CCSizeZero
Size::ZERO
旧的类型仍然可以使用,但是不赞成使用。
override
这个可以在重载方法时捕捉到可能发生的错误,在子类的重载方法中加上了override关键字
例如:
class Sprite : public Node {
bool isFlipY(void) const;
void setFlipY(bool bFlipY);
// Overrides
virtual void setTexture(Texture2D *texture) override;
virtual Texture2D* getTexture() const override;
inline void setBlendFunc(const BlendFunc &blendFunc) override;
inline const BlendFunc& getBlendFunc() const override;
}
转载地址:http://bbs.ityran.com/thread-9146-1-2.html
- [技术分享] cocos2d-x v3.0.0发布说明
- cocos2d-x v3.0 发布说明
- 记录之——cocos2d-x v3.0 发布说明
- cocos2d-x v3.0发布说明和API修改
- cocs2d-x v3.0.0发布说明
- Cocos2d-x v3.9发布
- Cocos2d-x v3.0正式版本发布
- 【最终版】Cocos2d-x&JS v3.7 发布!
- cocos2d-x V3.14.1 版本更新说明
- cocos2d-x V3.15 版本更新说明
- [Cocos2d-x v3.x官方文档]cocos2d::Map 分享0
- Cocos2d-x--使用Cocos2d-x v3.0.0
- Cocos2d-x v3.x官方文档]菜单(Menu) 分享0
- [Cocos2d-x v3.x官方文档]Cocos2d-x 3.0坐标系详解 分享0
- Cocos2d-x v3.x官方文档]文本标签(Label) 分享0
- [Cocos2d-x v3.x]cocos2d::Value
- [Cocos2d-x v3.x]cocos2d::Vector
- cocos2d-x v3.3 ActionInterval
- jquery easyui tree实现延迟
- Sending 'ViewController *const __strong' to parameter of incompatible type 'id<***Delegate>'
- linux中Find命令的使用
- c语言练习题
- linux分区简介
- [技术分享] cocos2d-x v3.0.0发布说明
- Linux 系统性能评估
- A - Lake Counting解题报告
- 关于python中深拷贝与浅拷贝问题
- mysql 5.6 修改root 密码
- 写得蛮好的linux学习笔记
- android 关于Make sure the plugin is properly configured问题的解决办法
- telnet不是内部或外部命令的问题解决
- 华为G520联通版 第三方CWM Recovery刷机系统 可充电可U盘模式