做个文档整理,大佬们可以把自己的常用方法贴一下,萌新来学习下,送人玫瑰,手有余香,多谢!
1.随机范围正整数
const min =1 ;
const max =7 ;
randomRange(min, max) { // min最小值,max最大值
return Math.floor(Math.random() * (max - min)) + min;
}
2.查找其他节点
kidNode: Node;
this.kidNode = find(“Canvas/kid”);
3.定义常量和变量
const min =1 ;
4获取当前节点的坐标
this.kidNode.getPosition()
this.kidNode.getPosition().x
this.kidNode.getPosition().y
5.本地数据存储. ==关掉ccc就重新刷新数据 好像不太对
let graidNum = null;
graidNum = localStorage.getItem(graidNum)
- 获取鼠标点击事件及事件监听
this.node.on(Node.EventType.MOUSE_DOWN, (event) => {
console.log("click btn");
}, this);
https://docs.cocos.com/creator/manual/zh/engine/event/event-node.html?h=eventtarget%20
-
计时 – 官方文档YYSD
使用计时器 · Cocos Creator
let interval = 1;// 重复次数 let repeat = moveNum; // 开始延时 let delay = 1; this.schedule(function() { // 这里的 this 指向 component //this.doSomething(); this.boxNode = find("Canvas/box") this.boxNode.setPosition(this.boxNode.getPosition().x +100,this.boxNode.getPosition().y) }, interval, repeat, delay);
-
循环N次
for(var i =0;i <moveNum;i++){console.log("第"+i+"次移动")
}
- 写入及读取本地数据
写:
localStorage.setItem(“mapPos”,mapPos.toString())
读
let localMapPos = localStorage.getItem(“mapPos”)
console.log(“获取了本地数据mapPos:”+localMapPos)
- localStorage 写入及读取json数据
写入:
let str = JSON.stringify(obj);
localStorage.setItem(“str”, str);
读取:
let get = localStorage.getItem(“str”); // 取值
JSON.parse(get) // 再转回来
- 代码生成预制体在Canvas下(预制体需要在resources文件夹下的prefab目录下)
resources.load(“prefab/MissLi”, Prefab, (err, prefab) => {
const MissLiNode = instantiate(prefab);
this.canvasNode = find("Canvas")
this.canvasNode.addChild(MissLiNode);
定义输入事件
上文提到的输入事件,都可以通过接口 input.on(type, callback, target) 注册。可选的 type 类型包括:
| 输入事件 |
type 类型 |
|---|---|
| 鼠标事件 | Input.EventType.MOUSE_DOWN |
Input.EventType.MOUSE_MOVE
Input.EventType.MOUSE_UP
Input.EventType.MOUSE_WHEEL|
|触摸事件|Input.EventType.TOUCH_START
Input.EventType.TOUCH_MOVE
Input.EventType.TOUCH_END
Input.EventType.TOUCH_CANCEL|
|键盘事件|Input.EventType.KEY_DOWN (键盘按下)
Input.EventType.KEY_PRESSING (键盘持续按下)
Input.EventType.KEY_UP (键盘释放)|
|设备重力传感事件|Input.EventType.DEVICEMOTION|
- for循环遍历Enmey的子节点
Enmey是 所有子节点的父节点
for(let i = 0; i < this.Enmey.children.length;i++) {
console.log(“进入FOR 循环了”);
let enemyPos:Node= this.Enmey.children[i]
console.log(enemyPos);
}
14.在A脚本里面调用B脚本的C函数

-
游戏暂停与 继续游戏
director.pause() director.resume()
-
提供属性面板推拽的节点
@property(Prefab)
public bow: Prefab = null;@property(Node)
public skill: Node = null;
@property() 空格里能填几种类型 文档也没说 屮 屮, 后面补全
- 或且非
或 ||
且 &&
非 !=
- 字符串与数字互转
数字转字符串:toString()
localStorage.setItem(“gold”,gold2.toString())
字符串转整数: Number()
let gold= localStorage.getItem(“gold”)
let gold2 = Number(gold) + this.player.getComponent(“Player”).SCORE