学习笔记_Cocos Creator_继承组件单例
官方文档:https://docs.cocos.com/creator/manual/zh/scripting/reference/class.html
前言
单例,在游戏开发中是比较常用的功能,全局唯一,可以在任何地方直接获取,
省去了方法赋值 或者 属性面板拖动的麻烦。
普通单例_饿汉模式
不管有没调用,一开始就创建单例
// Singleton.js
var Singleton = cc.Class({ // 成员变量
name : "",
age : , ctor () {
this.name = "Leovany";
this.age = ;
},
statics: {
_instance: null
}, printInfo(){
cc.warn("name = " + this.name+",age = " + this.age);
}
}); Singleton._instance = new Singleton();
module.exports = Singleton;
// GameManager.js
// 引入单例类
var Singleton = require("Singleton"); var GameManager = cc.Class({
cc.warn(Singleton._instance.name);
Singleton._instance.printInfo();
});
普通单例_饱汉模式
调用时才创建单例对象
// Singleton.js
var Singleton = cc.Class({
// 成员变量
name : "",
age : , ctor () {
this.name = "Leovany";
this.age = ;
}, printInfo(){
cc.warn("name = " + this.name+",age = " + this.age);
}
}); Singleton._instance = null;
Singleton.getInstance = function () {
if(!Singleton._instance){
Singleton._instance = new Singleton();
}
return Singleton._instance;
} module.exports = Singleton;
// GameManager.js
// 引入单例类
var Singleton = require("Singleton"); var GameManager = cc.Class({
// 调用
cc.warn(Singleton.getInstance().name);
Singleton.getInstance().printInfo();
});
单例组件
1.新建一个 GameManager.js
// 开头必须 新建一个变量引用 var GameManager
var GameManager = cc.Class({
extends: cc.Component,
properties: {
age :
},
statics: {
_instance : null
},
//最先进入地方
onLoad(){
cc.warn(" ============== GameManager init" );
GameManager._instance = this;
//设置帧率
cc.game.setFrameRate();
//设置该对象为不销毁
cc.game.addPersistRootNode(this.node);
}
}
2.调用地方
新建一个 Test.js
// 开头必须require 引入单例 GameManager
var GameManager = require("GameManager");
cc.Class({
extends: cc.Component, start () {
// 直接调用
// 输出: GameManager name : GameManager<GameManager>,age = 20
cc.warn("GameManager name : "+ GameManager._instance.name
+",age = " + GameManager._instance.age );
}, });
特别强调
- 单例组件类,开头必须要有变量引用 ,如
var GameManager = cc.Class({...}) - 调用单例组件的类,开头必须
require引入
转载: https://blog.csdn.net/leovnay/article/details/79272977
学习笔记_Cocos Creator_继承组件单例的更多相关文章
- Cocos Creator_继承组件单例
前言 单例,在游戏开发中是比较常用的功能,全局唯一,可以在任何地方直接获取, 省去了方法赋值 或者 属性面板拖动的麻烦. 普通单例_饿汉模式 不管有没调用,一开始就创建单例 1 // Singleto ...
- C#学习笔记——面向对象、面向组件以及类型基础
C#学习笔记——面向对象.面向组件以及类型基础 目录 一 面向对象与面向组件 二 基元类型与 new 操作 三 值类型与引用类型 四 类型转换 五 相等性与同一性 六 对象哈希码 一 面向对象与面向组 ...
- Django学习笔记(五)—— 表单
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
- Unity 游戏框架搭建 (十三) 无需继承的单例的模板
之前的文章中介绍的Unity 游戏框架搭建 (二) 单例的模板和Unity 游戏框架搭建 (三) MonoBehaviour单例的模板有一些问题. 存在的问题: 只要继承了单例的模板就无法再继承其他的 ...
- amazeui学习笔记--css(常用组件12)--面板Panel
amazeui学习笔记--css(常用组件12)--面板Panel 一.总结 1.面板基本样式:默认的 .am-panel 提供基本的阴影和边距,默认边框添加 .am-panel-default,内容 ...
- Flutter学习笔记(9)--组件Widget
如需转载,请注明出处:Flutter学习笔记(9)--组件Widget 在Flutter中,所有的显示都是Widget,Widget是一切的基础,我们可以通过修改数据,再用setState设置数据(调 ...
- amazeui学习笔记--css(常用组件16)--文章页Article
amazeui学习笔记--css(常用组件16)--文章页Article 一.总结 1.基本使用:文章内容页的排版样式,包括标题.文章元信息.分隔线等样式. .am-article 文章内容容器 .a ...
- amazeui学习笔记--css(常用组件15)--CSS动画Animation
amazeui学习笔记--css(常用组件15)--CSS动画Animation 一.总结 1.css3动画封装:CSS3 动画封装,浏览器需支持 CSS3 动画. Class 描述 .am-anim ...
- amazeui学习笔记--css(常用组件14)--缩略图Thumbnail
amazeui学习笔记--css(常用组件14)--缩略图Thumbnail 一.总结 1.基本样式:在 <img> 添加 .am-thumbnail 类:也可以在 <img> ...
随机推荐
- Linux中无权限使用sudo
提示:$USER is not in the sudoers file. This incident will be reported. 解决方法: 切换到root用户,su 编辑sudo配置文件,v ...
- CF 1000
水爆了...... 当然不是题目水,而是我水. 第一题,看完题目我稍微惊了一下,有点难度(并不). 开个map,先加后减,统计正数即可. 第二题,看完我冷汗就流下来了,有点难啊,这是B难度? 趴床上推 ...
- (转)Java 中正确使用 hashCode 和 equals 方法
背景:最近在编写持久化对象时候遇到重写equals和hashCode方法的情况,对这两个方法的重写做一个总结. 链接:https://www.oschina.net/question/82993_75 ...
- CodeBlocks: 生成的exe文件自定义一个图标
CodeBlocks生成的exe文件的图标默认是系统图标,如何自定义一个漂亮的小图标呢? 我是C菜鸟,平时只用CodeBlocks练习c,也不开发什么软件,这个问题就难倒我了. 到网上搜索了一下,发现 ...
- Mac挂载虚拟机的共享文件夹
说明:sshfs可以帮助本地mac访问虚拟机上的共享文件夹,从而操作虚拟机上的文件夹非常方便 1.安装sshfs sudo port install sshfs 2.使用,指定远程目录,到本地某一目录 ...
- Problems you may meet
一.正确安装sklearn却提示No module named 'sklearn.lda' It seems that you have installed a newer version of sk ...
- php循环删除文件夹和目录
一定要注意文件夹中的两个目录----> .(当前目录) ..(上级目录) 需要对这两个目录进行过滤, 否则在删除或者遍历是会一直,对于..甚至会向你指定的文件夹的上级目录循环操作,删除重要 ...
- Servlet总结(一)
一.Servlet了解 1.Servlet全称Java Servlet,是用java编写的独立于平台和协议的服务器端应用程序,运行于服务器,采用请求-响应模式提供Web服务 2.Servlet实现过程 ...
- 让富文本编辑器支持复制doc中多张图片直接粘贴上传
Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总不能一张一张复制吧? 我希望打开文档doc直接复制粘贴到富文本编辑器,直接发布 感觉这个似乎很困难 ...
- npm webpack工具 (监听压缩等)
压缩.监听变动自动打包,:开发后,js编译压缩及样式去空格等 $ webpack --config XXX.js //url使用另一份配置文件(比如webpack.config2.js)来打包 $ w ...