- 下载cocos create
- 下载游戏引擎
- 创建一个新项目
- 打开编辑器,点击运行按钮
- 树形结构
- 子节点定位基于父元素
- 基于锚点确认位置
- 默认锚点为(0.5,0.5),节点左下角为(0,0),右上角为(1,1)
- 节点默认的属性(2D)
-
position 位置 (x,y)
-
rotation 旋转(z)
-
scale 缩放
-
layer 层
-
-
场景(.scene)
-
图片
- 精灵图 SpriteFrame (由*.png/ *.jpg 等图片资源生成 )
- 九宫格图。省空间,自由拉伸。使用方式:1. SpriteFrame->edit->拖动线条,选择区域。2. Sprite组件->type->sliced
- 进度条。type选择filled,fillType按需求选择横向HORIZONTAL或纵向VERTICAL。fillStart: 0 -1 fillRange:0-1
- 图集 Atlas (plist文件+png文件)包含多个SpriteFrame
- 精灵图 SpriteFrame (由*.png/ *.jpg 等图片资源生成 )
-
动画
- 缓动系统
- Animation Clip .anim
- 骨骼/龙骨动画(动效师提供,ske.json+tex.json+tex.png)
-
脚本(.ts)
- 装饰器
- 类
- 属性
- 生命周期函数
- 常用api
- node 获取当前节点
- node.children 获取子节点
- node.active 获取/设置激活状态
- getComponent() 获取节点上的组件
- getPosition(),setPosition() 获取/设置位置
- find('Canvas/x/x') find('child',parentNode) 根据路径获取节点
- assetManager.loadRemote(url,callback) 获取远端资源
- 装饰器
-
预制体 (.prefab)
-
其他资源
-
音乐
-
字体
-
一般字体(*.ttf)
-
位图字体 (.fnt+.png 由专门的软件生成)
-
-
在 Cocos Creator 3.0 中,游戏场景(Scene)是游戏开发时组织游戏内容的中心,也是呈现给玩家所有游戏内容的载体。而场景文件本身也作为游戏资源存在,并保存了游戏的大部分信息,也是创作的基础。
1. 创建 在 资源管理器 中右键点击想要放置场景文件的文件夹,然后选择 创建 -> Scene 即可。
2. 场景切换 如果需要在游戏过程中切换场景,可通过 director.loadScene 等 API 来实现游戏中动态场景加载及切换。
-
UITransfrom 设置大小、锚点
-
UIOpacity 设置透明度
-
Sprite 显示图像
- 通过属性 spriteFrame 设置贴图
-
Label 显示文字
- 通过属性 string 设置显示的内容
-
动画组件
- Animation cocos动画组件
- dragonBones.ArmatureDisplay 龙骨动画组件
- spine
- 等等
-
Button
- 通过clickEvents 绑定点击事件,需要参数 节点,节点组件,方法名
-
Layout
- 自动布局,可以设置容器内部节点排序方向、容器或节点缩放的逻辑
-
ScrollView
-
Mask
-
Widget
-
场景
- 切换场景 cc.director.loadScene('game')
-
组件
- property 可以在属性检查器中修改 控件的修改要从层级管理器拖过去
- cc.Node Label Prefab
- string number
- onLoad()
- update()
- 每帧执行
- node.destory()
- component.onDestory()
- active
- position
- node
- getComponent
- cc.systemEvent.on
- property 可以在属性检查器中修改 控件的修改要从层级管理器拖过去
-
tween
-
prefab
-
预制,手动实例化
let w = cc.instantiate(this.weapon); this.node.parent.addChild(w); w.setPosition(this.node.getPosition());
-
计时器
component.schedule(function() {
// 这里的 this 指向 component
this.doSomething();
}, 5);
// 取消
this.count = 0;
this.callback = function () {
if (this.count === 5) {
// 在第六次执行回调时取消这个计时器
this.unschedule(this.callback);
}
this.doSomething();
this.count++;
}
component.schedule(this.callback, 1);
tween中途结束要调用stop
对象池
let pool = new cc.NodePool()
new cc.NodePool('comp name')
class comp { unuser(){} reuse(){}}
pool.put()
pool.get()
pool.size()
pool.clear()