Cocos Creator

Cocos Creator

Cocos Creator 是以内容创作为核心的游戏开发工具,在 Cocos2d-x 基础上实现了彻底脚本化、组件化和数据驱动等特点。

Cocos Creator

08月08日

1.2 版本

通过之前的 1.0 和 1.1 两个大版本我们补全了基本的工作流程和工具链,开发者已经具备了开发绝大部分游戏类型的可能。而在炎炎夏日中我们推出的 1.2 版本,则专注于 Web 引擎性能的提升,前几个月开始使用 Creator 开发游戏的朋友们现在在产品上线前可以获得一次免费的性能提升啦!
 

1. 版本亮点:
 

1.1HTML5
 

在Cocos Creator v1.2的版本中,我们投入了大量精力对HTML5性能进行优化。在无runtime的HTML5裸跑环境中,新版本Creator v1.2相比两个月前的v1.1:

  • WebGL性能提升5~10倍,主要得益于增加了WebGL上的自动批量渲染和自动剪裁功能
  • Canvas性能提升2倍,得益于该版本中增加的脏矩形功能
  • Web发布模式下,通过模块配置功能,使得引擎发布的体积缩小30%


2.Native
 

对于Native用户,我们在v1.2版本里终于完成了呼声最高的两个功能:

  • Lua支持,Lua支持,Luuuuuuuuuua支持!
  • AnySDK打包流程的支持。

 

3.通用
 

另外还有一些我认为比较突出的功能有:

  • 新增 cc.Graphics 图形绘制模块,跨HTML5和Native通用
  • 新增 WebView 控件
  • 增加了动画播放的回调事件,包括play, stop, pause, resume, lastframe,finished等
  • 对 Android 平台的渲染进行了优化,针对部分机型提升了性能


下面我给大家逐项介绍。


1.1 HTML5裸跑性能优化


WebGL


在 Cocos2d-x 3.11 和 3.12 两个版本里进行的 WebGL 批量渲染优化,目前在 Cocos Creator v1.2 版本里已经基本完成了整合,在包含了大量动态精灵图的 Bunnymark 项目中,Creator v1.2 相对 v1.1 版本的 WebGL 渲染性能提升了5倍。此外重构后的 Web 渲染模块还包括针对视窗进行自动剪裁,屏幕外面的精灵和文字现在不会再消耗渲染性能了,还能够支持任意尺寸的巨大 Tilemap 瓦片图等。


Canvas


除了WebGL,我们也在 Canvas 上增加了脏矩形算法的渲染优化,这能在静态场景带来2倍以上的性能提升,v1.2 新版本中对 Canvas 渲染模式默认开启脏矩形优化,如果您的场景包括很多动态内容,也可以通过 API 将脏矩形优化关闭。

对于脏矩形优化,我们用触控科技独家代理的顽石科技《二战风云H5》作为优化案例,可以看到在不同场景里,性能都得到了提升。
 


像下图这样堆砌了大量UI元素,又没有太多动画的世界场景,应用脏矩形后获得了最明显的帧率提升。

 



关于脏矩形优化的更多细节,请参考文档Creator脏矩形优化文档。要注意在Creator 1.2中,脏矩形默认处于开启状态。

 

1.2 Lua 支持预览版
 

对于社区里呼声最高的Lua支持,经过Quick-x作者廖宇雷和Creator开发团队两个月的努力,我们终于在这个版本里实现了!Lua 开发者现在可以使用 Cocos Creator 来搭建场景和 UI ,并在 Lua 游戏中调用、加载、正常显示和操作。



 

目前已完成的工作流程包括:
 

  • 在 Creator 中编辑静态场景(包括节点树和大部分内置控件)和项目资源
  • 构建发布成 Lua 输出格式
  • 通过官方转换工具将场景和资源输出成 lua 文件
  • 使用 cocos2d-x Lua 引擎的标准工作流程完成后续脚本编写和编译运行



当前版本支持的功能:
 

  • Sprite - 精灵:图像显示
  • Canvas - 画布:主要用于自动布局
  • Widget - 部件:可以配合 Canvas 设置自动布局和各种对齐方式
  • Button - 按钮:响应玩家操作
  • EditBox - 编辑框:用于玩家输入文字
  • ParticleSystem - 粒子系统:显示粒子效果
  • TileMap - 地图:显示使用 Tiled 编辑的地图
  • Animation - 动画:仅支持帧动画
  • Label (System Font) - 文字标签:仅支持系统字体
  • Component with Lifetime events - 组件及其生命周期管理


Cocos Creator的Lua插件下载地址:http://cocos2d-x.org/filedown/CocosCreator-Lua-v1.0



更多Lua支持的细节,请阅读Creator的Lua支持文档



1.3 Graphics 图形绘制模块,支持SVG格式


从 0.7 版到 1.1 版,深受大家喜爱的 DrawNode 图形绘制接口始终处于缺席状态,在 v1.2 版本中我们终于迎来了图形绘制 API 的威!力!加!强!版! cc.Graphics。这个新的图形绘制接口除了能够完爆 DrawNode 的原有功能之外,还能直接兼容通用的 SVG 数据格式,互联网上数以万计的 SVG 矢量图像现在都可以直接在 Creator 制作的游戏中绘制出来,程序绘图爱好者赶快来尝试吧!

 



 

更多细节,请参考cc.Graphics组件参考文档



1.4 可自定义扩展的属性检查器



打开 v1.2 后最醒目的变化就是属性检查器了,为了方便开发者在开发组件时能够更灵活的定制属性控件,我们重构了整个属性检查器,除了外观上的变化,现在的属性检查器性能更高,还解决了之前版本很多人反馈的属性不能全选、拖拽时会失灵等遗留问题。现在开发者可以轻松做出像 Widget 组件那样的自定义输入控件,让你的组件更方便易用。




 



1.5 引擎模块化可配置,打包体积缩小30%



v1.2 版本在「项目设置」面板中增加了新的分页「引擎模块」,在这个面板里您可以选择构建时哪些引擎组件会被打包,目前已经可以有效的减小打包版本中的 JavaScript 引擎 1/3 以上的体积,后续我们还会继续对核心模块进行细分和裁剪,将包体减肥进行到底。

 



1.6 AnySDK 内置支持



v1.2 版本构建出的原生工程将自带 AnySDK 的运行库,无需任何额外的环境配置就可以在项目中调用 AnySDK 接口并生成母包,然后在 AnySDK 软件中进行配置就可以轻松接入多渠道 SDK 了!

在下一个版本中我们将把AnySDK彻底内置到 Creator 内,以插件形式支持在 Creator 中通过图形界面直接完成 AnySDK 的配置并直接生成渠道包。

更多细节,请参考AnySDK内置支持文档

 

2. 完整改动列表
 

下面是Cocos Creator v1.2 的完整版改动列表,如果你关心自己提的新功能需求是否实现,或者BUG是否已经修复,可以在这份列表里找到答案。引擎团队一直很用心在处理社区用户的需求,有一些虽然不在版本亮点,但是仍然意义重大的功能,比如新增了WebView组件、新增了动画回调事件、新增了导出到Android Studio的选项等,都在开发中非常实用。



重大改动
 

  • [Build] 构建发布面板增加 Lua 引擎导出选项
  • [Engine] WebGL 渲染时加入自动批量渲染功能,通过妥善的组织合图和图片之间的渲染次序可以大幅提高性能
  • [Engine] 加入自动视窗裁剪(auto viewport culling)功能,基于 cc.visibleRect 对屏幕外的 Sprite 和 Label 节点进行剪裁
  • [Engine] 对 Web Canvas 渲染模式默认加入了脏矩形优化,大幅提升静态页面的渲染性能,并可以通过 API 关闭这个优化
  • [Engine] 原生引擎中加入 AnySDK 支持
  • [Editor] 在场景资源的属性检查器面板上添加了「延迟加载」选项,勾选后加载场景时只要完成了脚本和节点树的加载就会立刻运行,剩余的图片、plist 资源会在加载完成后自动显示
  • [Engine] 增加 cc.Graphics 图形绘制模块
  • [Preview] 在移动设备上运行预览时,可以点击浮动的齿轮按钮来呼出日志和调试界面
  • [Webview] 添加了 webview 组件,具体使用方法请参考范例


编辑器
 

  • [Editor] 在项目设置面板中加入了「模块设置」分页,可以通过复选来决定构建时引擎打包时包含的模块,减小不必要的包体
  • [Editor] 属性检查器已经使用新的架构重写,外观有了一定变化,另外修复之前在使用时的一些体验问题(比如点击时不能全选较长的数字)
  • [Assets] 修复资源管理器中名字带有 .. 的文件夹显示错误
  • [Assets] 修复了更新 Atlas 数据时,atlas 贴图下面的 spriteFrame 可能会显示更新之前的内容的问题
  • [Prefab] 修复了从 prefab 编辑状态退回到包含 Editbox 的场景时的报错问题
  • [Prefab] 修复了将控件库里的控件拖拽到 Prefab 节点下时会强制将 Prefab 转化为普通节点的问题
  • [Animation] 修复在编辑器中删除 AnimationClip 后,属性检查器里没有正确显示出 missing 状态,而且动画编辑器还可以继续编辑刚删除掉的 clip 的问题
  • [Animation] 修复了编辑带有 alignOnce 属性的 Widget 动画时预览无法正确生效的问题
  • [Animation] 添加了动画回调事件,包括 play, stop, pause, resume, lastframe,finished
  • [Animation] 修复了 disable Animation 组件后,如果勾选了 play on load,动画还是会被播放的问题
  • [Menu] Edit 里的全选操作现在可以正确选中层级管理器和资源管理器中的所有文件
  • [Scene] 修复了场景中反复开关 Particle 以后编辑器帧率卡顿的问题
  • [Scene] 修复了切换场景中节点的激活状态后 undo,导致节点树中显示的状态和属性检查器中显示状态不同步的问题
  • [Console] 重构了控制台消息架构,目前可以支持的消息数量没有上限
  • [Console] 修复了控制台在 windows 下不能正确显示中文日志的问题


引擎
 

  • [Engine] 对 Android 平台的渲染进行了优化,针对部分机型提升了性能
  • [Engine] 修复了改变节点父子关系时,子节点渲染时未能正确刷新继承自父节点的透明度问题
  • [Engine] 修复了同时加载多份Prefab资源的时候,如果有依赖的话,其中随机一个依赖项无法被加载
  • [Render] 改善了 WebGL 模式下动态字体的显示精度
  • [Render] 修复了在最新 Chrome 浏览器上渲染动画时可能会出现的不定期显示回溯的问题
  • [Render] iOS 平台图片解析现在使用 libPNG 库,解决半透明图片显示效果发黑的问题
  • [JSB] 修复了执行 bezierTo 动作时节点的坐标未更新的问题
  • [JSB] 修复了 scheduleOnce 会重复执行的问题
  • [JSB] 修复了 cc.game.EVENT_SHOW 和 cc.game.EVENT_HIDE 在 JSB 中无效的问题
  • [Action] 修复 Web 平台下 cc.hide、cc.show、cc.toggleVisibility 无法使用的问题


组件
 

  • [TiledMap] 优化了 WebGL 平台的 tilemap 的实现,取消了单个 tilemap 的渲染顶点数限制,目前原生平台下 tilemap 还是会有同屏顶点数的限制
  • [TiledMap] 修复了在编辑器中移动地图资源文件会导致地图不可用的问题
  • [TiledMap] 修复了 TiledLayer 的 setTileGID 接口在 web 平台不支持非整型坐标输入的问题
  • [TiledMap] 修复原生引擎对六边形的地图渲染效果错误的问题
  • [TiledMap] 修复 TiledLayer 无法动态设置透明度的问题
  • [Button] 修复在 onTouchEnd 事件里设置其 node.active=false 后,下次再显示时其显示图片没有恢复到 normal 状态的问题
  • [Label] 修复了原生平台动态设置 TTF 字体报错的问题
  • [ScrollView] Scrollview的 content size 小于 scrollview size 时,自动隐藏 scrollbar 并重置 content 位置
  • [ScrollView] 添加 stopAutoScroll 接口,用于手动中止惯性滚动
  • [ScrollView] 修复了 Touch startPoint 位置没有经过坐标系转换导致 ScrollView 中的点击事件失灵的问题
  • [Collider] 现在可以正确监听 node.group 运行时的动态改动
  • [EditBox] 修复 Android 平台上 EditBox 启动的时候会触发 TextChanged 事件的问题
  • [EditBox] 修复原生平台上 EditBox 中的 label 的行为和对齐方式与 web 平台不同的问题
  • [EditBox] 在 Web 平台上支持更多种类的键盘类型
  • [EditBox] 修复了 iOS 上第三方输入法会挡住输入框的问题
  • [EditBox] 添加 editingReturn 事件,用以区分是点击 enter key 还是点击了屏幕
  • [Component] 修复了复制黏贴 Component 时,如果有依赖的组件,则依赖的组件会在原组件之后添加的问题
  • [Component] 对属性检查器里 add component 菜单里列出的用户组件进行字母表排序


其他
 

  • [Build] 构建时为丢失资源增加了详细的引用文件和路径显示,而且现在不会导致构建失败了
  • [Build] 新增消息 editor:build-start,会在构建开始时发出
  • [Build] 移除构建到原生平台时合并 JSON 的功能,避免加载逻辑出错
  • [Build] 发布到安卓平台时加入了 Android Studio 复选框,仅对 default 模板有效,需要具有 Android SDK 22 才可以正确编译。
  • [Build] 修复了 Creator 程序名称中包含空格会导致编译模板类型为“binary”模式报错的问题


3. 关注Cocos社区


你可以在这些地方找到我们:
 

  • 论坛技术支持:http://forum.cocos.com
  • 每周教学直播:http://www.douyu.com/726225
  • 文档和视频教程:http://www.cocos.com/docs/creator/
  • 开源仓库和大量开源示例:https://github.com/cocos-creator
  • 微信公众号:搜索公众号名称「CocosEngine」

07月13日

v1.1.2 版本

编辑器

  • [Editor] 构建时合并场景依赖的 JSON 文件,目前被多个场景共享的资源 json 会增量合并(比如 A 和 B 都被 C 和 D 场景共享,那么 A 和 B 会合并成单独一个包)
  • [Editor] 脚本编译失败时禁用运行预览按钮,并在后续解决编译问题后清空控制台报错日志并恢复运行预览按钮
  • [Editor] 移除 Squirrel.Windows 安装框架,重新使用原有可指定安装路径的安装生成器,并加入自动更新检查功能
  • [Editor] 修复了 spriteFrame 图集替换工具在连续对多个场景进行操作时可能产生的 spriteFrame 引用错误问题
  • [Scene] 修复了多选节点,按方向键移动时子节点移动距离不对的问题
  • [Component] 对属性检查器里 add component 菜单里列出的用户组件增加了字母排序
  • [Importer] Studio 与 Builder 工程导入时,不会再为没有文字的按钮创建 Label 节点
  • [Importer] 修复了导入旧版本 Studio 项目可能出现动画数据丢失的问题
  • [Importer] 修复了导入 Studio / Builder 项目时,BMFont 节点的 lineHeight 属性未正确保存的问题
  • [Build] 防止 build 操作失败导致进程卡死的问题
  • [Build] 修复了使用 Chrome 预览游戏时可能出现 Failed to parse SourceMap 的报错问题
  • [Build] 修复了构建 web 后部分场景加载时可能会卡死的问题
  • [Build] 修复构建空白项目时会报错 Build Failed: Error: TypeError: next is not a function 的问题
  • [Prefab] 在主菜单增加 节点->还原成普通节点,用于断开 Prefab 实例的链接
  • [Prefab] 修复了编辑模式下点击保存后点关闭,有几率无法成功保存的问题
  • [Animation] 修复了 opacity 动画最后一帧回调时,对 opacity 的设置无效的问题
  • [Animation] 修复动画事件无法正确被删除的问题
  • [Assets] 修复了打开项目时,图集资源和 TTF 字体资源可能会被重新导入的问题
  • [Assets] 修复图片资源移动位置后,原来场景里引用该资源的 Sprite 无法渲染的问题
  • [Assets] 修复了当图片资源内容被修改后编辑器中图标不会自动更新的问题
  • [Assets] 修复了项目中资源数量很多(10000+)时,导入资源时可能造成编辑器卡死的问题
  • [Assets] 修复关闭编辑器后移动资源时,可能不会正确导入资源的问题
  • [Assets] 如果用户在编辑器外对资源和 meta 文件进行了非同步的移动和改名,打开编辑器时增加了警告对话框
  • [Assets] 从文件系统拖拽资源到编辑器里来更新资源时,会弹出替换确认对话框
  • [Doc] 更新了脚本工作流程中的 对象池 文档,改用新增的 cc.NodePool 进行讲解

引擎

  • [Render] 修复了当同时将父节点的 opacity 置为 0 并修改子节点的 active 属性时可能导致子节点重新激活后也无法渲染的问题。
  • [Engine] 解决 osx 10.11 上模拟器无法发送 http 非安全请求的问题
  • [Engine] 修复了 Mac 上使用 vs code 调试模拟器失败的问题
  • [Engine] 修复了 cc.follow 动作中没有转换父节点的坐标
  • [Engine] 增加了 cc.Label.string 赋值时输入布尔类型的报错信息
  • [Engine] 修复 cc.game.addPersistRootNode 在 native 下可能无法正确生效的问题
  • [Engine] 修复了切换场景时可能会闪屏的问题
  • [Engine] 修复了二次进入场景时场景逻辑无法执行的问题
  • [Engine] 修复了加载场景中的prefab资源时,可能出现无限重复请求资源导致编辑器窗口崩溃的情况
  • [Engine] 在手机使用虚拟按钮时,游戏运行时自动调用接口隐藏虚拟按钮
  • [Engine] 修复了 cc.repeat 动作在预订执行次数大于 6 时实际执行次数错误的问题
  • [JSB] 修复了 cc.follow 在原生环境下报错问题
  • [JSB] 修复了 scheduler.isScheduled() 接口在原生环境未实现的问题
  • [JSB] 解决了控制台经常会无故输出 _errorHandler wasn't found 的问题
  • [JSB] LabelOutline 修复 setMargin 方法不存在的问题
  • [Audio] 修复了 iOS 浏览器上音乐音效资源加载速度很慢的问题
  • [Audio] 修复了 AudioSource 的 rewind 接口不能正常工作的问题

组件

  • [Label] 修复了 overflow 设为 shrink 时,文字量增加时字体变小,但文字量减少后字体大小不会恢复的问题
  • [Label] BMFont 在单词宽度小于 Label 宽度的时候,现在会自动启用按字符换行模式
  • [Label] 修复了使用系统字体时 Clamp,Shrink 等 overflow 排版错误的问题
  • [Label] 修复了系统字体使用 Shrink 排版模式时字体大小计算错误的问题
  • [Label] 修复了字符串内容为空或设置字体尺寸过大时选择 Shrink 排版模式导致卡死的问题
  • [ScrollView] 修复了点击滚动视图中的按钮移动释放,按钮会处于选中状态的问题
  • [ScrollView] 修复了 ScrollView 节点上注册 touchend, touchcancel 事件时,停止拖动后不会触发事件的问题
  • [ScrollView] 关闭 ScrollView 所在节点时 scrollView 现在会停止滚动
  • [EditBox] 添加全小写格式,修复安卓系统使用自定义 ttf 问题,
  • [EditBox] 修复调用 setVisible 接口会自动弹出键盘的问题,改善弹出软键盘操作的健壮性
  • [EditBox] 修复了浏览器上输入框需要点击两次才能弹出输入法的问题
  • [EditBox] 修复了在 ScrollView 中 EditBox 无法点击的问题
  • [Layout] 修复了 None 模式下面修改子节点的 active 属性,Layout 约束框不会正确计算的问题
  • [Layout] 修复了添加节点到 Layout 后再移除,节点的对应的事件侦听函数没有被正确移除的问题
  • [Button] 修复了 Button 组件在切换 interactive 的时候不能正确地切换 normal 和 disable 图片的问题
  • [Collider] 修复了碰撞体被禁用时 debug draw 可能不会正确清除的问题
  • [MotionStreak] 修复了安卓手机浏览器上 MotionStreak 的兼容性问题
  • [Tilemap] 修复了 TiledMap 在 WebGL 模式下可能显示接缝的问题
  • [Tilemap] 修复 SGTiledLayer 部分接口名称 web 层与 native 层不一致的问题
  • [Tilemap] 修复了当 tmx 文件与使用的图片文件不在同级目录时,可能会遇到地图无法正常显示的问题
  • [Spine] 修复 getCurrent() 方法在 JSB 环境导致死循环的问题,现在可以直接调用 spine.getCurrent() 获取当前 track
  • [Mask] 修复了被遮罩屏蔽的节点仍然会接受点击事件的问题
  • [Mask] 修复了 Mask 组件在 disabled 状态下也会阻止子节点的触摸判定的问题

06月16日

v1.1.1 版本

1.1.1 改动列表

编辑器

  • [Atlas] 在 开发者 菜单中加入「用指定图集替换 spriteFrame」的功能,用于解决碎图转合图的流程问题
  • [Assets] 优化了图集资源导入时的编辑器处理速度
  • [Scene] 场景编辑器下放状态栏里显示的当前选中节点路径可以选中并复制黏贴了
  • [NodeLibrary] 从控件库创建节点后,现在会解除节点的预制状态
  • [NodeLibrary] 右下角加入一个 slider 来控制图标大小
  • [Import] 修复了导入 Studio 项目时需要使用 widget 组件时报错的问题
  • [Import] 导入 Cocos Builder 项目可能遇到节点 visible 动画效果错误的问题
  • [Prefab] 修复退出 Prefab 编辑模式的同时重新加载场景有可能导致场景丢失问题
  • [Animation] 现在动画中支持添加 collider.size 属性的关键帧
  • [Animation] 支持动画添加 node 的 skew 属性
  • [Animation] 添加 cc.AnimationClip.createWithSpriteFrames 接口来动态生成 animation clip
  • [Build] 修复构建 web-desktop 后视图无法显示的问题
  • [Build] 修复使用 default 模板构建安卓时出错的问题
  • [Editor] 修复编辑器里部分按钮字体变大导致一些文字被省略的现象
  • [Dashboard] 为新建项目路径加入合法性判断,避免路径中的非法字符对导入工程资源时造成的影响

组件

  • [Sprite] 修复了 Tiled 模式下使用过小的贴图会导致场景编辑性能下降和原生环境崩溃问题,现在当平铺数量超过限度时会报错并停止继续平铺
  • [Mask] 修复了运行时通过脚本 removeChild 移除带有 Mask 组件的子节点时的报错
  • [Component] 修复了更改组件属性类型声明失败的问题
  • [ScrollView] 增加了 scrollToOffset 使用像素位置定位内容节点的接口
  • [ScrollView] 引入事件捕获阶段,修复了滚动视图中注册节点触摸事件时可能失灵的问题
  • [Layout] 修复了模式为 none 时 anchor 和位置可能产生错误的问题
  • [Label] 修复了运行时为 label 所在节点指定颜色无效的问题
  • [Label] 修复了位图字体在 Resize Height 模式下节点高度没有正确更新的问题
  • [Spine] 修复打开旧项目时 Skeleton 所在节点无法缩放的问题
  • [Tilemap] 修复了 Windows 系统下首次打开一个带有 TiledMap 的场景图像显示的异常
  • [Tilemap] 在 native 环境现在可以支持 CSV 格式的 layer 数据

引擎

  • [Engine] loadResAll 现在允许路径以 '/' 作为结尾
  • [Engine] 修复了处理跨域图片时 downloadImage 的接口参数错误
  • [Engine] 修复了安卓平台热更新失败的问题
  • [Engine] 修复了 C++ 引擎中缺失 JavascriptJavaBridge 依赖,导致安卓平台 JS 和 Java 通讯产生的问题
  • [Engine] 修复 FadeOut,FadeTo 等对 opacity 进行修改的 Action 在 JSB 中无效的问题
  • [Engine] 修复 EventTouch getID 方法会导致无限递归的问题
  • [Mac Desktop] 修复了重新拖拽模拟器或打包出来的应用程序窗口时,会出现缩放计算错误的问题

06月01日

1.1.0 版本

注:Windows:如果出现安装失败,请清空 %USER\AppData\Local\SquirrelTemp 文件夹并重试
Mac:如果初次运行时出现下载的应用已损坏的提示,请前往并设置 系统偏好设置->安全性与隐私->允许任何来源的应用,首次打开后您可以马上恢复您的安全与隐私设置。
 
1.0 正式版发布以来,Cocos Creator 发布过 3 次更新用于及时修复用户反馈的各种问题,与此同时各种新功能也在同步开发,今天这些新功能就会随着 1.1 版本和大家见面了!

1.1 版本更新的重点内容包括:

  • 导入 Cocos Studio / Cocos Builder 的工程资源
  • 加入碰撞体组件系统
  • 开放定制 JavaScript 和 C++ 引擎的工作流程
  • 完善资源动态加载的接口

下面就让我们介绍这些新功能和他们将会为您的游戏开发流程带来的改进。

Cocos Studio / Cocos Builder 工程导入

作为 Cocos 引擎家族的最新成员,保持数据兼容性是非常重要的,我们在这个版本中添加了 Cocos Studio 和 Cocos Builder 这两个使用率最高的场景编辑工具的数据支持,用户可以通过 「导入项目」 的菜单功能直接将 Cocos Studio 的 ccs 工程文件和 Cocos Builder 的 ccb 工程文件导入到您的项目里。

导入后的资源包括场景(Scene)、图层(Layer)、节点(Node)、图片资源、场景动画、粒子、音效等等。注意由于脚本系统有着本质的区别(面向对象 vs 组件系统),项目源码是不会导入的喔。

 

碰撞体组件系统

物理和碰撞是动作游戏必不可少的元素,而正式版发布以来,要求 Creator 支持物理引擎的呼声络绎不绝,在 1.1 版本中,我们添加了 Collider 碰撞体组件和对应的回调系统,现在使用 Creator 可以轻松开发动作游戏了!

 

首先碰撞体组件可以添加到任意节点上,并进行大小、位置的调节,特定类型的碰撞体组件还可以随意编辑顶点来定制成为任意形状。

接下来我们为节点添加了分组功能,不同分组的节点可以定制碰撞规则,仅允许特定分组之间的碰撞,以此来实现精确的碰撞控制。

最后当碰撞发生时,碰撞组件所在节点上的其他组件可以注册回调函数来接收碰撞事件,并根据传参的敌我碰撞体信息来编写逻辑,实现需要的行为。

注意由于物理引擎普遍较大而且一般游戏中很少能够使用引擎中的大部分功能,所以我们在本次新增的碰撞系统中没有包含物理引擎,需要用户自己在回调中处理碰撞后的行为。

引擎定制工作流程

Cocos 引擎家族向来以开源可定制作为重要的卖点之一,Cocos Creator 在本次更新中整理了 JavaScript 和 C++ 两部分引擎的定制工作流程,而且 C++ 引擎在 cocos2d-x 3.10 版本的基础上进行了精简和优化。两部分引擎现在都已经在 github 上开源,欢迎有功能定制和优化需要的朋友来 fork 和提交 Pull Request:

JavaScript 引擎:https://github.com/cocos-creator/engine

C++ 引擎:https://github.com/cocos-creator/cocos2d-x-lite

资源动态加载接口完善

在资源加载方面,我们进一步简化和优化了接口,现在可以通过 cc.loader.loadRes 用统一的路径加载所有资源了,而且现在资源路径只需要包括文件名,不需要指定扩展名。如果存在同名资源,可以通过传入第二个参数来指定资源类型。

此外还包括 cc.loader.loadResAll 用来传入一个路径,加载路径中的所有资源或某种指定类型的资源。

在场景加载方面,本次更新也推出了 cc.director.preloadScene 接口用于场景的预加载。有了完善的资源加载方案,您的产品在流畅性和等待时间上会表现的更完美。

图形化的控件库


之前 Creator 中要创建节点和 UI 控件,都需要通过菜单来选择,对于初次上手的用户来说不够直接,因此我们添加了控件库面板,用户可以从这里用拖拽的方式创建出节点和控件。此外用户自定义的预制资源(Prefab)也可以拖拽到「自定义控件」分页中,方便多人合作项目的常用资源创建。

完整改动列表

下面是长度又创新高的 1.1.0 完整版改动列表,如果嫌麻烦的话请务必阅读最前面的「重大改动」部分!

重大改动

  • [Atlas] cc.SpriteAltas.getSpriteFrame 接口的参数格式有重大调整,现在传入的 spriteFrame 名称是原始图片的文件名,不包括扩展名,如:atlas.getSpriteFrame(‘sheep_run_0’)
  • [Engine] cc.loader.loadRes 接口参数调整,传入路径现在不包括资源扩展名,第二个参数可以传入资源类型
  • [Editor] 编辑器面板的布局数据格式更新,使用 v1.1 版本打开后的项目如果用 v1.0 版本打开,布局会发生错误,需要选择主菜单的 「布局->恢复默认布局」来解决。
  • [Engine] cc.Font 资源类型由 RawAsset 改为普通 Asset,在组件属性中声明资源类型时要用 type: cc.Font 或指定为 cc.BitmapFont (位图字体)和 cc.TTFFont(TTF 字体)

编辑器

  • [Animation] 修复了当场景中的动画组件的 clips 列表存在为空条目时,保存当前编辑中的动画会报错的问题
  • [Animation] 修复在动画编辑模式下修改当前编辑中的 clip 名称时,报错而且无法退出编辑模式
  • [Animation] 修复无法拖拽 spriteFrame 到帧动画轨道添加关键帧的问题
  • [Animation] 动画中可以添加子节点的 active 属性控制
  • [Prefab] 资源删除后,场景中的实例现在能够转为普通节点
  • [Prefab] 修复了双击 prefab 进入编辑模式后,即使为修改关闭也会提示保存的问题
  • [Prefab] Prefab 编辑状态下编译脚本,现在会重新加载 prefab 场景,而不是原来的场景
  • [Editor] 修复了 tab 键无法用来在属性之间移动的问题
  • [Editor] 添加超时判断来解决在受限制网络下启动登录速度过慢的问题
  • [Editor] 修复 Cocos Builder 工程中的粒子效果节点没有配置有效的 texture 时,会出现模拟器运行崩溃的情况
  • [Editor] 在导出场景和资源时,移除和默认值相同的冗余数据,减小包体
  • [Editor] 修复了编辑器日志无法访问和保存的问题
  • [Editor] 在偏好设置增加了保存场景和编译脚本时是否自动刷新运行中的预览的选项
  • [Editor] 修复了重命名 Atlas 文件时可能导致资源引用永久丢失的问题
  • [Editor] 修复构建发布到 web 平台后 bitmap font 资源无法找到的问题
  • [Editor] 修复 Tmx 资源导入时,windows 平台对原始资源的引用路径错误
  • [Editor] 添加控件库面板,可以用拖拽方式创建节点和各种 UI 控件,也可以将自定义的预制资源添加到控件库中
  • [Editor] 用户组件现在可以使用 svg.js 自定义 Gizmo 的绘制
  • [Editor] 在属性检查器的组件属性栏点击资源类型标签时,层级管理器和资源管理器里会显示该类型资源的列表,此时右键点击列表中的资源可以通过「点击为属性赋值」选项来关联资源或节点到属性栏中,免去了拖拽的麻烦。
  • [Assets] 修复了从系统文件管理器中添加图集资源时,可能出现自动关联贴图失败的问题
  • [Node Tree] 修复了右键菜单 显示路径和UUID 命令无法正确显示的问题
  • [Build] 修复了自定义引擎路径时安卓编译失败的问题
  • [Scene] 修复了 Ctrl/Cmd+Z 撤销时节点 size 的修改无法复原的问题
  • [Scene] 现在可以通过点击组件自定义的约束框来选中节点
  • [Node Library] 修复了用户自定义控件无法保存的问题
  • [Button] 为按钮的点击回调函数添加 event 参数
  • [Dashboard] 修复了修改偏好设置后要退出 Dashboard 才能生效的问题
  • [Dashboard] Dashboard 进程现在会驻留在内存中,添加 SysTray 图标,可以点击图标直接呼出 Dashboard,并允许同时打开多个项目

组件

  • [Collider] 添加碰撞体组件和回调方法
  • [Tiledmap] 修复了 Tiledmap 子节点无法在层级管理器里拖拽排序的问题
  • [Tiledmap] 修复了一个可能导致 Tiledmap 导入时无法正确关联资源依赖文件的问题
  • [Spine] 修复了为场景中已有的 Skeleton 组件赋值 skeletonData 属性后无法显示角色的问题
  • [ScrollView] 添加了 scrollEvents 相关滚动回调事件,详见 ScrollView 组件参考文档
  • [ScrollView] 修复 content 有 ResizeMode 为 Container 的 Layout 时,scrollToXXX 系列 API 在当前帧无效。
  • [ScrollView] 修复了清空 Vertical/Horizontal ScrollBar 属性时报错,而且会导致运行时点击 scrollview 报错的问题
  • [ScrollView] 修复在 JSB 环境下可能无法正常滚动 Label 内容的问题
  • [Label] wrapText 选项在不支持的 overflow 状态下面会隐藏
  • [Label] 位图字体现在会在属性中显示字体原始尺寸
  • [Label] 修复系统字体在 web 下面设置 string 后获取字体大小不正确
  • [Label] 修复 Label 中使用的 TTF 可能被浏览器重复加载的问题
  • [Label] 修复 content size 改变时没有触发事件的问题
  • [Component] 在同一个节点上添加多个会影响节点尺寸的组件时,会有更清楚的报错信息
  • [Component] CCClass 默认值错误时给予正确的报错
  • [Canvas] 修复了子节点包含 EditBox 时,在运行时设置 Canvas 节点的 opacity 无效的问题
  • [Layout] 修复了子节点被禁用时不会重新计算容器尺寸的问题
  • [Layout] 重构 layout 计算方法,大幅提高场景渲染性能
  • [Widget] 重构排版逻辑,大幅提高场景渲染性能
  • [Widget] 修复了节点 scale 设为负值时,对齐出错的问题
  • [Widget] 支持节点缩放后的对齐
  • [ParticleSystem] 点击 custom 属性时,会用已有粒子资源文件的属性进行初始化
  • [MotionStreak] 现在拖尾会在锚点位置生成,修复 Android 平台 setDirtyFlag 报错问题,增加拖尾颜色属性
  • [Audio] AudioSource 在切换场景后不会停止播放
  • [Audio] 修复了 AudioSource 的 isPlaying 不會在音乐结束的時候变成 false 的问题

引擎

  • [Engine] 新增了 cc.NodePool 取代之前的 cc.pool,解决了原对象池中取出物体后注册事件可能失效,或无法重新注册事件的问题
  • [Engine] 新增了 VideoPlayer 组件,目前只支持 Web,iOS 和 Android 平台
  • [Engine] 修改了 cc.loader.loadRes 的接口,url 中不再包括文件扩展名;加入类型参数,可以根据类型加载资源;添加 cc.loader.loadResAll 接口,用于加载一个文件夹下的所有或某一特定类型的全部资源。
  • [Engine] 新增 cc.director.preloadScene 接口,用于场景的预加载,原 cc.director.runScene 接口已弃用
  • [Engine] 修复了 update 可能在 start 之前执行的问题
  • [Engine] 修复了在组件连续 disable 和 enable 之后 update 不会再被调用的问题
  • [Engine] 修复了 update 传参 dt 没有反应真实帧间时间的问题
  • [Engine] 修复了 cc.Animation.removeClip 如果第一个参数不是 defaultClip, 第二个参数为 false, 正在播放的动画也会被停止
  • [Engine] 支持在屏幕朝向不正确的情况下按照构建发布中的朝向设置自动转屏
  • [Engine] 修复 setSiblingIndex 更改渲染顺序会导致触摸顺序出错问题
  • [Engine] 引擎中重要的全局变量现在无法被重载
  • [Engine] 修复 cc.tintTo 在 web 引擎和 JSB 下的参数差异
  • [Engine] 修复两次 unschedule 同一个 callback 会终止所有 schedule 的问题
  • [Engine] 修复了 onLoad 方法中调用内置组件时可能遇到的内置组件还未完成初始化的问题,现在所有引擎内置组件会先于用户组件完成初始化
  • [Engine] 修复了在 onLoad 中调用 addComponent 时,该组件无法立即执行 onLoad 函数的问题
  • [Engine] 修复 onLoad 的时候切换场景会报错的问题
  • [Engine] 确保组件的 onLoad 方法中可以关闭当前节点
  • [Engine] 添加 cc.Image.setPNGPremultipliedAlphaEnabled() 接口来开启关闭图像预乘模式
  • [Render] 修复了 SpriteDistortion 在安卓工程上运行报错的问题
  • [Render] 修复了图集文件中有一张旋转而且宽度比atlas图片宽度大的spriteFrame时,在canvas渲染模式下报错问题
  • [JSB] 修复热更新时使用 AssetsManager 报错的问题
  • [JSB] 修复了 JSB 中 cc.pSub 返回值不是 Vec2 的问题
  • [JSB] 修复了 cc.callFunc 的回调函数参数不统一的问题
  • [JSB] 修复了 event.stopPropagation 会在 JSB 环境下报错的问题
  • [JSB] 修复热更新需要的 jsb.EventListenerAssetsManager 的自动绑定问题
  • [JSB] 修复 eventListener 里的 onTouchBegan 如果不返回 true 会导致模拟器崩溃
  • [JSB] 修复了热更新需要的 AssetsManager 接口

其他

  • [Simulator] 模拟器现在放在编辑器内置的 cocos2d-x 引擎路径下,运行时不会再复制一份到用户档案目录了
  • [Preference] 重做偏好设置面板,增加了大量可定制的选项,包括模拟器分辨率、模拟器屏幕朝向、默认预览浏览器、默认脚本文件编辑器等等
  • [Preference] 在偏好设置面板中增加可以定制 JavaScript 和 C++ 引擎路径的选项,方便用户定制引擎



 

05月11日

1.0.3 版本

Windows:如果出现安装失败,请清空 %USER\AppData\Local\SquirrelTemp 文件夹并重试
Mac:如果初次运行时出现下载的应用已损坏的提示,请前往并设置 系统偏好设置->安全性与隐私->允许任何来源的应用,首次打开后您可以马上恢复您的安全与隐私设置。
 
 
  • [Windows] 修复了修改用户脚本后可能无法完成编译的严重问题
  • [Windows] 修复了创建项目时大写盘符造成的无法创建场景和资源的问题
  • [Layout] 修复了容器尺寸设为负数时不断报错的问题,现在尺寸输入负值时会报警并将尺寸重置为0
  • [Layout] 修复了为已设置过尺寸的节点添加 Layout 组件时,会重置节点尺寸的问题。
  • [EditBox] 修复了 JSB 运行时 begin 和 end 事件没有回调的问题
  • [Component] 增加了 cc.MotionStreak 拖尾组件,通过 其他组件/MotionStreak 添加
  • [ScrollView] 修复了 canvas 渲染模式下关闭 ScrollView 所在节点然后重新激活时 content 位置错误的问题
  • [ScrollView] 修复了修改节点 scale 后影响 ScrollView 拖动后显示效果的问题
  • [Button] 替换按钮目标 Sprite 中的 spriteFrame 时,自动更新按钮 sprite transition 中设置的 normal spriteFrame
 

05月03日

1.0.2 版本

  • [Windows] 使用了基于 Squirrel.Windows 的新安装包生成器,目前会将程序安装到%User/AppData/Local/CocosCreator 目录下,通过 app-x.x.x 的子目录保存最多两个版本的软件。
  • [JSB] 修复了通过 url 新建 cc.SpriteFrame 并赋值时无法显示图片的问题
  • [Engine] 现在安装后的 cocos2d-x 引擎里自带预编译库,不需要通过菜单编译了
  • [Render] 添加 SpriteDistortion 组件,用于实现球面渲染模拟效果
  • [Render] 为 Mask 组件添加了椭圆模式,通过设置节点的 width 和 height 规定遮罩范围
  • [Render] 修复了旋转带有 Mask 组件时旋转中心不正确的问题
  • [Animation] 修复了同一个节点上多段动画编辑过程中跳转时可能产生的无法跳帧的问题
  • [Animation] 修复了 wrapMode为 Reverse 的时候,播放动画和调到某一帧的动画方向是相反的问题
  • [Animation] 修复了修改 sample 后,当发送动画剪辑修改事件给场景的时候,节点有几率会跳动位置到场景中点或是其他地方的问题。
  • [Component] 修复了内置组件帮助按钮的链接
  • [Component] 补充了 Layout, EditBox 组件的 tooltip
  • [Prefab] 修复了 Prefab 挂载的脚本上引用了不在 Prefab 里包含节点范围内的其他节点时,初始化 Prefab 可能导致重复加载场景中节点的问题
  • [Tiledmap] 修复了 tmx 文件中包含带有旋转的瓦片时,在 web 引擎上无法正常显示的问题
  • [Build] 构建结束后发射 editor:build-finished 消息,方便编辑器插件在构建结束后对原生工程或打包结果进行操作
  • [Build] 修复了 iOS 工程模板可能导致发布 AppStore 失败的错误
  • [Dashboard] Dashboard 现在会常驻进程,打开第一个项目时 Dashboard 窗口会隐藏,关闭项目时 Dashboard 窗口会重新出现。增加 Systray 图标显示,点击图标会重新显示 Dashboard 窗口。这个改动也意味着可以通过同一个 Dashboard 打开多个项目。
  • [Editor] 增强了引用第三方模块出现问题时的报错信息
  • [Auto Update] 修复了改动列表文字较多时无法显示下载按钮的问题(需要下次更新才能实现)
  • [Console] 优化了控制台重复 log 的输出方式,现在在模拟器中运行的 log 也可以正常合并(collapse)
  • [Doc] 补充了 EditBox 组件,脚本执行顺序,对象池文档
 

04月14日

v1.0.1 版本

v1.0.1版本改动说明:
  • [Animation] 允许分别添加 position.x 和 position.y 轨道
  • [Animation] 修复了选中动画节点的子节点时点击 add clip 按钮会报错
  • [Doc] 补充了动作回调文档,添加了 i18n 多语言方案指南
  • [Editor] 主窗口标题现在会显示项目名称
  • [Editor] 首次运行时会弹出对话框提示选择语言
  • [Component] 修复了 AudioSource 上设置音量无效的问题
  • [Build] 修复了发布 Web 平台后报类型重复定义的错误
  • [Render] 修复了渲染节点的 parent 改变时,场景渲染不会刷新的问题
  • [Render] 修复了 Spine 图像在 web 上可能出现黑边的问题
  • [Render] 修复了通过微信扫码预览游戏时黑屏的问题

03月30日

1.0 版本

大家久等啦,Cocos Creator 1.0 正式版终于发布了,快来一起看看新版本中的新增功能和重要功能变化!
 

1.0版在我们设定的开发计划中,主要的目标包括:

  • 更友好的代码开发环境
  • 可靠的原生开发和发布工作流程
  • 新 UI 控件:文本框和网格式布局
  • 骨骼动画和瓦片地图支持


正式版对用户来说最重要的意义,就是完全通畅的开发工作流程,以及支持足够的 UI 控件和外部数据以适应绝大多数游戏的功能需求。现在我们就来看看 Cocos Creator 增加了哪些激动人心的新功能!
 

新 UI 控件:网格式布局(Grid Layout)和文本输入框(EditBox)

 

几乎任何游戏都离不开背包界面和用户登录界面,因此在本次更新补充了网格式布局(Grid Layout)和文本输入框(EditBox)控件之后,就可以满足大部分游戏 UI 的需求了。后续我们会继续推出像 PageView、ToggleButton 之类方便用户使用的 UI 控件,不过这些只需要实现 JavaScript 逻辑功能,通过 Cocos Creator 的组件系统开发者可以轻易做出自己的实现。

新 UI 功能范例下载:https://github.com/cocos-creator/demo-ui/archive/master.zip

骨骼动画和瓦片地图

Cocos Creator 现在支持 Spine(http://zh.esotericsoftware.com/)工具制作并导出的骨骼动画资源,包括完整的运行时动画接口。




另外一个重要的数据格式,就是 Tiled Map Editor(www.mapeditor.org)生产的 tmx 格式的瓦片地图数据。Cocos Creator 中新建一个 TiledMap 组件,然后把 tmx 文件拖拽上去就可以立刻生成在编辑器中可预览的地图文件了。而且导入 tmx 文件后,在场景中可以看到每一个瓦片图层分别对应的节点,我们可以在不同图层之间插入由用户脚本组件控制的角色,具有更高的可控性。

(通过 Cocos Creator 自带的「范例集合」项目模板,可以快速查看 Spine 骨骼动画和 TiledMap 瓦片图导入的效果并学习如何调用相关接口)

全新的脚本编辑和原生调试环境



Cocos Creator 从正式版开始启用基于 Visual Studio Code 的新脚本开发环境。VS Code 具有优秀的性能,对 JavaScript 的编辑也非常友好,而且和 Cocos Creator 使用相同的应用程序架构。因此我们在 IDE(集成式开发环境)的研发上选择不重复造轮子,而是以 VS Code 为基础进行定制,使之具备 Cocos Creator 引擎的智能提示和代码补全功能。

 

1.0 版中,通过开发者菜单中集成相关命令来自动帮助开发者配置 VS Code 的相关插件。不过 VS Code 的软件仍然需要开发者单独下载和安装。在后续的版本中我们将会继续探索将 VS Code 完全集成到 Cocos Creator 中的可行性。此外 VS Code 内置了强大的 JavaScript 调试环境,我们已经完成了原生运行环境的调试流程适配和相关插件开发,和浏览器调试相配合,就能够覆盖开发过程中所有可能出现的问题。

基础插件工作流
 

随着 1.0 正式版,我们推出了 Cocos Creator 编辑器插件的基本工作流程:

•插件(package)的注册和文件结构

•菜单命令的注册

•页面层和主进程的基本通讯接口

•使用普通 HTML 页面制作插件界面 
 

基于这个工作流程,开发者可以实现大部分 VS Code、Sublime 和 Atom 等文本编辑器中插件的功能,进行文本处理、读写文件、导入自定义的第三方库等等。再加上对基于 Node.js 的庞大的开源代码库 npm 的支持,使得开发者可以很快的导入 npm 中完成特定任务的第三方库到自己的插件中,大大节省开发时间。

其他高亮功能
 

动画编辑器启用全新工作流程,进入动画编辑状态后会屏蔽对场景中其他节点的选择和修改,加入了大量新的快捷键方便动画预览和编辑,大大提高动画编辑器的性能
 

•新增 Prefab 编辑模式,双击 prefab 资源会立刻打开一个独立的编辑环境

•预览运行游戏按钮旁边增加了下拉菜单,可以选择使用浏览器或原生模拟器预览游戏

•为常用接口的 API 文档添加了代码范例和中文说明!

•Sprite 组件添加 Filled 和 Tiled 支持,Filled 就是按照给定的初始位置和方向裁剪 Sprite 的渲染模式,可以用来实现扇形裁剪的进度条。

•Sprite 组件添加了 Size Mode 和 trim 选项,可以设置非自动剪裁的渲染模式和约束框大小,以兼容直接通过透明像素设置位移的序列帧动画

•Sprite 和 ParticleSystem 组件里增加了混合模式设置

•属性检查器里增加了组件菜单,可以重置组件属性、移除组件、复制黏贴、移动组件顺序

•场景编辑器里添加了对齐节点的控制按钮

•构建发布界面增加了大量全新的设置和功能,包括屏幕朝向、引擎模板选择、Android Keystore、是否生成 SourceMap、取消正在进行的构建和编译操作等等。

•新增 cc.loader.loadRes 接口和动态加载资源的工作流程 

除了这些功能增加,还有海量的用户体验改善和 bug 修复,详情请阅读完整的 v1.0.0 改动列表(等待补充链接)

更多游戏范例和演示项目


 

在公测版的基础上,我们添加了更多更有趣和酷炫的游戏范例和功能演示项目,可以从下面的列表中下载到包括《暗黑斩》演示在内的更多更完整的游戏范例:

•《暗黑斩》基本游戏流程演示,特别感谢 Veewo Games 工作室授权我们使用《暗黑斩》的实际项目资源作为教程素材!https://github.com/cocos-creator/tutorial-dark-slash/archive/master.zip
 

•UI 演示项目,包括多分辨率自适应菜单、由模板和数据生成的背包列表、某热门游戏同款导航菜单和各种酷炫的 UI 动画效果。https://github.com/cocos-creator/demo-ui/archive/master.zip
 

•和腾讯游戏合作开发,并经过大幅度优化的21点游戏示例 https://github.com/cocos-creator/tutorial-blackjack/archive/master.zip
 

•模仿 Flappy Bird 制作的绵羊跳水管游戏 https://github.com/cocos-creator/tutorial-duang-sheep/archive/master.zip
 

•作为新手教程的小怪物摘星星游戏 https://github.com/cocos-creator/tutorial-first-game/archive/master.zip

新功能介绍:http://v.qq.com/page/w/m/9/w0191ndt7m9.html

 

动画教程1:http://v.qq.com/page/v/3/p/v01914glw3p.html


动画教程2:http://v.qq.com/page/l/v/t/l0191usp7vt.html

后续我们还会开发更多不同类型的游戏范例,已有的游戏也会不断添加功能,敬请期待!

 




             						
			

01月27日

0.7.1 版本

根据用户的要求,添加启动多个编辑器窗口的功能
根据用户的要求,添加连接登录服务器失败后跳过登录流程的功能
新建项目会自动打开默认场景
修复了 windows 窗口标题栏没有本地化的问题
修复了 windows 版代码编辑器智能提示失败的问题
修复了新建项目通过浏览按钮选择路径后,默认项目名中间会有空格的问题

01月19日

0.7 版本


Cocos Creator发布了!




产品定位
 
Cocos Creator 是以内容创作为核心的游戏开发工具,在 cocos2d-x 基础上实现了彻底脚本化、组件化和数据驱动等特点。
 
Cocos Creator 为这样的开发者和团队打造:
 
- 希望实现一次开发后,一键将游戏发布到iOS, Android, HTML5, Cocos Play等平台。也就是兼容Native手机原生、HTML5、Runtime三种技术形态。
- 已经使用 JavaScript 脚本化开发,或希望转向脚本化开发以提高效率和降低成本
- 工作流中重视内容创作和美术资源生产,希望进一步发挥策划和美术创造力,高效生产优质内容
- 希望策划和美术能够通过工具独立生产和调试,让程序员减轻资源管理更新上的负担,专注于功能开发
- 希望通过统一的编辑环境整合各种自定义工作流和扩展工具
 
架构特色
 
 Cocos Creator 包含游戏引擎、资源管理、场景编辑、游戏预览和发布等游戏开发所需的全套功能,并且将所有的功能和工具链都整合在了一个统一的应用程序里。
 

它以数据驱动和组件化作为核心的游戏开发方式,并且在此基础上无缝融合了 Cocos 引擎成熟的 JavaScript API 体系,能够一方面适应 Cocos 系列引擎开发者用户习惯,另一方面为美术和策划人员提供前所未有的内容创作生产和即时预览测试环境。
 
编辑器在提供强大完整工具链的同时,提供了开放式的插件架构,开发者能够用 HTML + JavaScript 等前端通用技术轻松扩展编辑器功能,定制个性化的工作流程。
 
 
高效工作流


引擎和编辑器的结合,带来的是数据驱动和组件化的功能开发方式,以及设计和程序两类人员的完美分工合作:
 
- 设计师在场景编辑器中搭建场景的图像表现
- 程序员开发可以挂载到场景任意物体上的功能组件
- 设计师负责为需要展现特定行为的物体挂载组件,并通过调试改善各项参数
- 程序员开发游戏所需要的数据结构和资源
- 设计师通过图形化的界面配置好各项数据和资源
-(就这样从简单到复杂,各种你能想像到的工作流程都可以实现)
 
以工作流为核心的开发理念,让不同职能的开发者能够快速找到最大化自己作用的工作切入点,并能够默契流畅的和团队其他成员配合。
 
功能特性


 
Cocos Creator 功能上的突出特色包括:
 
数据驱动
- 脚本中可以轻松声明可以在编辑器中随时调整的数据属性,对参数的调整可以由设计人员独立完成。
 
自动排版 UI 系统
- 支持智能画布适配和免编程元素对齐的 UI 系统可以完美适配任意分辨率的设备屏幕。
 
适用性最广泛的2D动画系统
- 专为 2D 游戏打造的动画系统,支持动画轨迹预览和复杂曲线编辑功能。
 
完全脚本化开发
- 动态语言支持的脚本化开发,使得动态调试和移动设备远程调试变得异常轻松。
 
一次开发,多平台发布
- 借助 Cocos2d-x 引擎,在享受脚本化开发的便捷同时,还能够一键发布到各类桌面和移动端平台,并保持原生级别的超高性能

 
通过扩展编辑器定制工作流
- 脚本组件化和开放式的插件系统为开发者在不同深度上提供了定制工作流的方法,编辑器可以大尺度调教来适应不同团队和项目的需要。