23f0.pngCocosCreator1.5

1f6e0.png引擎自带的Examples


何游戏引擎的都会有一套例子库。用于展示引擎的功能和API的用法。


最近看CocosCreator引擎附带的例子库。目前来说这套Cocos系列引擎的最新版,很有诚意,对比老引擎。加入了很多新的内容。比如资源下载器装载器,各种布局管理工具。预制资源。网络库。碰撞系统。也预留了扩展接口。当然整个引擎也支持插件式扩展。


可惜的是,这份例子是1.5版的,但是没有演示1.5新加的功能,比如物理引擎,摄像机等。另外,个别例子需要对应平台才能跑,在有些平台跑不了。有些例子功能重复,或无法正确演示。但这些都是小问题。


对不熟悉Cocos引擎的策划和美术,我习惯于一般把例子程序打个包发过去让他们熟悉。而CocosCreator是现代游戏开发工具,基本上是全民皆兵,所有人都会上手,就直接上编辑器看好了。例子列表用的是英文列表,说明文字也不全,简单整理了一份中文注释目录,对策划和美术来说,应该有一定参考价值。


里面有些设计是参考Web开发,我并非Web开发者,用词可能不准确:)


E:.
├─01_graphics 图形
│  ├─01_sprite 精灵组件相关例子
│  │      AnchorPoint.fire  锚点
│  │      AtlasSprite.fire 图集使用
│  │      FilledSprite.fire 填充渲染模式
│  │      SimpleSprite.fire 普通渲染模式
│  │      SlicedSprite.fire 九宫格渲染模式
│  │      TiledSprite.fire 平铺渲染模式
│  │      TrimmedSprite.fire  图像资源的自动剪裁   
│  │ 
│  ├─02_particle 粒子系统
│  │      AutoRemoveParticle.fire “完成时自动移除”功能
│  │      ToggleParticle.fire 切换粒子显示
│  │          
│  └─03_texture_format 特殊图片格式
│          webp-test.fire webp格式(PC上Chrome可用,内含平台检测代码可供参考)
│          
├─02_ui UI系统
│  ├─01_widget 对齐挂件(widget本意是小部件)
│  │      AdvancedWidget.fire 高级挂件的定位演示(边缘停靠)
│  │      AlignOnceWidget.fire AlignOnce属性(仅对齐一次)
│  │      AnimatedWidget.fire 挂件动画
│  │      AutoResize.fire 挂件自动调整大小(该例子可能有问题,和Tips描述不一致)
│  │      WidgetAlign.fire 挂件对齐,此例子似乎与 AdvancedWidget内容重复
│  │      
│  ├─02_label 文本标签
│  │      AlignFontLabel.fire 文本对齐(使用系统字体)
│  │      BitmapFontLabel.fire 位图字体标签
│  │      LabelAtlas.fire 图集标签(一般用于纯数字显示,比如伤害数字,一般是等宽字体)
│  │      SystemFontLabel.fire 系统字体标签(界面类似BitmapFontLabel,字体跟AlignFontLabel一样)
│  │          
│  ├─03_button 按钮
│  │      ButtonInScroll.fire ScrollView上面的按钮
│  │      ButtonInteractable.fire 按钮的交互性演示(脚本+回调函数实现类似radiobutton的效果)
│  │      SimpleButton.fire 普通按钮(演示按钮的基本属性,形状,变色,事件交互等功能)
│  │      
│  ├─04_progressbar 进度条
│  │      progressbar.fire 进度条
│  │          
│  ├─05_scrollView 滚动视图
│  │      ListView.fire 列表视图
│  │      ScrollView.fire 滚动视图
│  │          
│  ├─06_layout 布局容器
│  │  ├─Layout_None 普通布局
│  │  │      Layout_None_Basic.fire 基本布局
│  │  │      Layout_None_Grid.fire 网格布局
│  │  │      Layout_None_Horizontal_Vertical.fire 水平布局和垂直布局
│  │  │      
│  │  ├─Layout_ResizeChildren 缩放子节点
│  │  │      Layout_ResizeChildren_Grid.fire 网格布局
│  │  │      Layout_ResizeChildren_Normal.fire 水平布局和垂直布局
│  │  │      
│  │  ├─Layout_ResizeContainer 缩放容器
│  │  │      Layout_ResizeContainer_Basic.fire 基本布局
│  │  │      Layout_ResizeContainer_Grid.fire 网格布局
│  │  │      Layout_ResizeContainer_Normal.fire 水平布局和垂直布局
│  │  │      
│  │  └─Layout_ScrollView 滚动视图
│  │          Layout_ScrollViewGrid.fire 网格布局
│  │          Layout_ScrollViewNormal.fire 基本布局
│  │          
│  ├─07_change_canvas_anchor 改变canvas锚点
│  │      BottomLeftAnchor.fire 通过添加空节点来改变canvas锚点,适合很多对锚点有特别要求的游戏
│  │      
│  ├─08_editBox 文本框
│  │      EditBox.fire 文本框类型演示(单行,密码,多行)
│  │      EditBoxTabIndex.fire Tab键切换文本框焦点(仅web下有效)
│  │          
│  ├─09_videoplayer 视频播放器(不支持Mac和Windows,支持移动端和Web)
│  │      fullscreenVideo.fire 全屏播放演示
│  │      videoPlayer.fire 各种控制功能演示(播放,暂停,全屏等)
│  │          
│  ├─10_webview web视图(不支持Mac和Windows,支持移动端和Web)
│  │      webview.fire
│  │      
│  ├─11_richtext 富文本
│  │      RichText.fire 普通演示
│  │      RichTextEvent.fire 点击事件
│  │      RichTextImage.fire 图文混排
│  │      
│  ├─12_slider 滑块
│  │      Slider.fire 水平滑块,垂直滑块
│  │          
│  ├─13_toggle 切换开关
│  │      Toggle.fire CheckBox复选框,RadioBox单选框
│  │      
│  ├─14_pageView 翻页视图
│  │      PageView_Free_Horizontal.fire 自由型,水平
│  │      PageView_Free_Vertical.fire 自由型,垂直
│  │      PageView_Unified_Horizontal.fire 统一型,水平
│  │      PageView_Unified_Vertical.fire 统一型,垂直
│  │          
│  └─15_mask 遮罩(把被遮罩物拖到上层,容易看清原来的样子)
│          Mask_ELLIPSE.fire 椭圆形
│          Mask_IMAGE_STENCIL.fire 图片模板
│          Mask_NESTED.fire 嵌套使用遮罩
│          Mask_RECT.fire 矩形
│              
├─03_gameplay 游戏性
│  ├─01_player_control 角色控制
│  │      DeviceMotion.fire 重力传感(只支持移动平台)
│  │      KeyboardInput.fire 按键输入(监听按键的标准写法)
│  │      OnMultiTouchInput.fire 多点触摸(只支持移动平台)
│  │      OnTouchInput.fire 触摸
│  │          
│  ├─02_actions 动作指令(动作指令例子较少,不过动作指令的内容基本没变化,可参考以前的资料)
│  │      MoveAction.fire 移动
│  │      RepeatAction.fire 重复执行
│  │      RotationAction.fire 旋转
│  │      SimpleAction.fire 简单的动作(注意动作指令的调用方法有变)
│  │          
│  └─03_animation 动画
│          AnimateCustomProperty.fire 自定义动画属性(通过动画操作数值变化,通过脚本读取数值来设置显示)
│          AnimationCallback.fire 动画回调(回调触发类型挺多的)
│          AnimationEvent.fire 动画事件
│          CreateClip.fire 动态创建动画剪辑
│          MoveAnimation.fire 移动动画
│          SpriteAnimation.fire 精灵帧动画
│              
├─04_audio 音频
│      SimpleAudio.fire 简单的音频(AudioSource演示播放背景音乐,AudioEngine演示播放音效和audioClip的使用)
│      
├─05_scripting 脚本
│  ├─01_properties 属性检查器
│  │      NodeArray.fire 节点数组
│  │      NonSerialized.fire 序列化与非序列化(通过编辑器设置变量和通过脚本设置变量的区别)
│  │      ReferenceType.fire 引用类型(不用运行时演示)
│  │      ValueType.fire 值类型(不用运行时演示)
│  │      
│  ├─02_prefab 预置资源
│  │      InstantiatePrefab.fire 实例化预置资源(使用脚本代码演示,复用编辑好的节点)
│  │      
│  ├─03_events 事件
│  │      EventInMask.fire 遮罩下的事件
│  │      SimpleEvent.fire 普通事件(点击,鼠标,自定义)
│  │      TouchPropagation.fire 触摸事件冒泡(来自Web的相关概念)
│  │      
│  ├─04_scheduler Cocos2d-x中的计时器(不是js中的计时器)
│  │      scheduler.fire(和cocos环境结合的更好,更容易获得上下文)
│  │      
│  ├─05_cross_reference 交叉引用
│  │      Cro***eference.fire (通过编辑器绑定参数和ES6箭头函数,演示两个节点交叉引用)
│  │      
│  ├─06_life_cycle 生命周期
│  │      life_cycle.fire (只是演示了一个带回调的action,和标题不太相符)
│  │      
│  ├─07_asset_loading 资产加载
│  │      AssetLoading.fire 资产加载(演示了很多类型的资产如何加载如何创建对象并显示,标准写法,比较有参考价值)
│  │      LoadRes.fire 普通资产和预置资产的加载区别
│  │      LoadResDir.fire 按文件夹装载资产
│  │          
│  ├─08_module 模块
│  │      load_module.fire 加载模块(加载图片和JSON数据,刷新怪物)
│  │      
│  ├─09_singleton 单例
│  │      Singleton.fire 一种单例写法(不用运行时演示)
│  │      
│  ├─10_loadingBar loading条
│  │      loadingBar.fire (配合cc.loader实现资产加载并显示在loading条)
│  │      
│  ├─11_network 网络(附带SocketIO插件)
│  │      downloader.fire 下载器演示(下载txt和图片,不支持Web)
│  │      network.fire (XMLHttpRequest,WebSocket,SocketIO演示)
│  │      
│  └─12_pool 对象池(一种封装好的快速开发对象,和Prefab配合,节约内存提高效率,不用自己手动实现)
│          nodePool.fire (点击小怪物停止移动,再点继续移动,使用了unuse和reuse回调)
│          
├─anysdk anysdk触控的第三方sdk接入解决方案(略)
│      01_user.fire
│      02_iap.fire
│      03_share.fire
│      04_ads.fire
│      05_analytics.fire
│      06_social.fire
│      07_push.fire
│      08_adtracking.fire
│      09_crash.fire
│      10_rec.fire
│      
│          
├─collider 碰撞系统
│      Category.fire 碰撞组演示
│      Hittest.fire 点击测试
│      platform.fire 跳台游戏演示
│      Shape.fire 不同形状碰撞组件(圆形,矩形,多边形)
│      Shooter.fire 射击游戏演示(演示×××使用)
│      Tag.fire 碰撞组件的Tag属性
│          
├─dragonbones 龙骨动画编辑器支持
│      DragonBones.fire 普通演示
│      DragonMesh.fire 网格动画
│      
├─graphics 几何绘图
│  ├─demo
│  │      doodle.fire 涂鸦
│  │      sine-waves.fire 正弦波
│  │      
│  └─example
│          arc.fire 弧形
│          ellipse.fire 椭圆
│          linejoin.fire 参数很多,画线效果更好(这部分可参考HTML5Canvas画线)
│          lineTo.fire 简单画线
│          rect.fire 矩形
│          
├─motionStreak 拖尾
│      MotionStreak.fire (只支持WebGL模式,但是似乎在哪个平台都无法显示)
│          
├─native_call 本地调用(只支持Android)
│      Native_Call.fire
│          
├─spine Spine动画编辑器支持
│      SpineBoy.fire 普通演示
│      SpineMesh.fire 网格动画
│      
└─tiledmap 瓦片地图
        Puzzle.fire 迷宫游戏演示(渲染,碰撞,滚屏等)


最新消息是,官方沟通对于例子问题也很重视,有些小错误都会马上修复,关于例子,是有专门的Github仓库的,在主页上可以找到,不用等CCC发布新版本再拿