cocos creator核心概念
对比学习
cocos2dx的核心概念
导演、场景、层、精灵、节点
比喻:个人思想,人,组织,细胞,元素
导演:管理游戏和场景对象,采用单例模式
场景:构成游戏界面,每次只能显示一个场景,一个场景由多个层组成,一个层由多个节点(sprite、label、button)组成。
层:构成游戏场景,是写游戏的重点
精灵:带图片显示的节点,继承节点和图片原型
节点:cocos2dx的最小组成元素,最小渲染单元
cocosCreator的核心概念
节点和组件(所有需要渲染的东西都继承自节点)
节点是本体,组件就是修饰体。组件可以添加和移出多个,但有的组件不能同时存在,方便操作。
总结:由导演控制,由多个场景组成,同时只能显示一个场景,多个节点组成场景。不区分层和精灵。一个节点由组件(0或0个以上)修饰。
场景的设计分辨率在层级管理器中,点击Canvas查看属性,其中Design Resolution就是显示分辨率。Fit Height是高填充,Fit Width是宽填充。
三种适配方式:宽度适配、高度适配、智能适配(选择最好的方式(宽或高)进行适配,会出现黑边)、填充整个代码(需要自己写代码)//前三种方式可以通过修改Fit Height和Fit Width两个属性来实现
节点
可以修改Color修改节点图片的颜色。
Group属性管理分组
position、rotation、scale、anchor、size、poacity、color、skew、group属性
常用方法:
//获取子节点
this.node.children[0];
this.node.getChildByName("");
cc.find("节点路径")
//获取父节点
this.node.getParent();
//设置父节点
this.node.setParent(节点名);
//移除所有的子节点
this.node.removeAllChildren();
//移除某个自己诶单
this.node.removeChild(节点名);
//从父节点中移除
this.node.removeFromParent();
//节点开关
this.node.active = false;
//(本脚本)组件开关
this.enabled = false;
//获取组件
this.getComponent(组件类型)
//获取所有组件
this.getComponents(组件类型)
//获取子节点的组件
this.getComponentInChildren(组件类型)
精灵
组件中的内容
atlas//图集属性,就是多个小图片合成一个大图片,节省资源。
xx.plist文件就是存放切割大图的信息
type//渲染模式,5种方式
size mode//节点尺寸信息
sprite frame//图片信息
预制体
提前生成一个节点的模板,方便之后的使用。生成方法:将模板直接拖到资源管理其中,就会自动生成一个图标为小盒子的文件。在层级管理器中字体会变成蓝色。
代码中生成预制体:
@property(cc.Prefab)
pre:cc.Prefab = null;//记得将预制体读出来
//实例化预制体
let n = cc.instantiate(pre);
//设置预制体的父节点,只有设置了父节点才会进行显示
n.setParent(this.node);
场景的操作
//切换至场景,并且在切换成功后调用回调函数,其中回调函数为可选参数
cc.director.loadScene("场景名",function(){
//....
});
//预加载场景,只是加载并不进行切换
cc.director.preloadScene("场景名",function(){
//....
});
//添加常驻根节点,切换场景仍然存在,其中该节点必须在层级管理器中为根节点,否则无效
cc.game.addPersistRootNode(节点名);
//删除常驻根节点
cc.game.removePersistRootNode(节点名);