- 博客(72)
- 收藏
- 关注
原创 for await of用法
function Gen(time) { return new Promise(function(resolve, reject) { setTimeout(function() { resolve(time) }, time) })}async function test() { let arr = [Gen(2000), Gen(100), Gen(3000)] for await (let item of a
2022-02-25 11:48:15 928
原创 点击事件总结
以下情况均没有阻止冒泡1.A为父节点 B、C为A子节点 并且B、C互为兄弟节点 他们都注册了touchstar事件B、C谁触发取决于点击的位置在哪里,如果是B、C的公共区域取决于谁在最上层只要B触发、C的事件一定不触发,反过来一样B、C节点只要触发,A节点也一定触发2.如果A、B都注册注册了ouchstar和touchend事件点击A的区域(不包括B的区域)触发Atouchstar事件,然后把手指移动到B的区域,接着松开屏幕后,会触发A的touchend事件(并不会触发B的touchend事件)
2022-01-21 15:21:03 215
原创 箭头函数 bind方法this指向误区
let obj = {};obj.test1 = ()=>{return this};//obj={test1:()=>{return this}} 两种写法一模一样obj.test2 = function(){ return this;}obj.test3 = function(){return}.bind(this)obj.test1();//windowobj.test2();//objobj.test3();//window看一些教程说"."方法 this指向的就是
2022-01-18 17:38:57 500
原创 try和catch要写在promise回调里
return new Promise<void>((resolve,reject) => { try { throw new Error('error') resolve(); } catch (e) { console.log(e); } })
2022-01-17 15:13:23 636
原创 cocos摄像机误区
设摄像机zoomRatio=1,如果求得某节点的世界坐标系相对于在摄像机节点下的坐标,设此时的坐标是(5,5),当把摄像机zoomRatio=2,此时节点的相对坐标当然还是(5,5),但是摄像机里的视野会变“窄”,要求得节点在摄像机视野里的坐标就要乘以摄像机的zoomRatio,变成(10,10)...
2022-01-10 20:57:33 227
原创 cocos creator拿到的节点点击事件的位置是错的
个常见的问题是,当摄像机被移动、旋转或者缩放后,这时候用点击事件获取到的坐标去测试节点的坐标,这样往往是获取不到正确结果的。比如摄像机缩放两倍,点击事件获得的位置并不会缩放两倍,它是以屏幕左下角为基准因为这时候获取到的点击坐标是屏幕坐标系下的坐标了,我们需要将这个坐标转换到世界坐标系下,才能继续与节点的世界坐标进行运算。下面是一些坐标系转换的函数// 将一个屏幕坐标系下的点转换到世界坐标系下camera.getScreenToWorldPoint(point, out);// 将一个世界坐标系下
2022-01-06 20:05:59 3066
原创 cocos哪些图片要打图集哪些不用打
综合来说打图集的图片都是一些复用性比较高的图片,因为项目中常常将图集加载完以后挂在内存上不释放,这样拿到里面的散图就很快,并且drawcall也低不打图集的图片是一些不经常复用的图片,这样的好处就是不用增加图集的大小,这样加载完图集以后占用的内存空间也小...
2021-12-30 15:27:07 2280
原创 Cocos Creator脚本的执行顺序
cocos的官方文档中的脚本执行顺序指的是如上图所示的红线内脚本的执行顺序,但是如果是在红线外呢?后来发现在红线外的脚本执行顺序是按不同文件来随机的,除非用require导入,就会优先执行require导入的模块里的脚本,并且如果这个导入的模块没有使用就不会优先执行require导入模块里的脚本。...
2021-11-25 17:19:28 689
原创 JS/TS 在foreach里使用async函数的区别以及别用短路写法来await
如图,在foreach里使用await并不会阻塞下次的函数执行,因为这n次循环的async都有自己的的作用域,
2021-11-18 10:56:16 1522
原创 做leedcode算法题递归栈溢出
输入一个长度为 n 的链表,设链表中的元素的值为 ai ,输出一个链表,该输出链表包含原链表中从倒数第 k 个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为 0 的链表。我写的代码递归的深度太深了,导致栈溢出,数据少时是对的一多就溢出,后来用循环来代替递归问题就解决了。...
2021-10-18 12:55:27 149
原创 cocos creator生命周期
onLoad节点首次激活时调用 不是首次激活就不调用了触发方式:加入到场景中比如parentNode.addChild(node) node.parent = parentNodenode.active = true误区:执行顺序node.active = true;(node脚本里的onLoad里执行log3);log(2);执行顺序是 先 3 后 2,而不是等到当前脚本执行完毕才去执行node生命回调onEnable每次节点的active或者组件的enable变化都会触发 true➡
2021-10-15 17:18:02 1119
原创 CocosCreator生命周期
比如node.active = 1;log(2) ,在node里的脚本声命周期里log(3) 实际上打印的是3,2生命周期在设为1的时候就调用了,具体可以理解为set node.active (){生命回调函数}
2021-10-14 20:43:18 1394
原创 Object prototype may only be an Object or null: undefined
https://www.cnblogs.com/asdfq/p/12454210.html原因就是a文件用到了b文件的东西,但是b文件在a之后才引入所以导致出错
2021-10-08 15:37:48 2541
原创 开发小记,cocoscreator
今天在存缓存的时候新加了一个字段,但是老用户在使用的时候他们的缓存是没有这个字段的,所以打开游戏直接崩溃,正确的做法应该是先检查老缓存有无这个字段,没有重新再加进去
2021-09-16 08:50:18 106
原创 for(let i in arr) for(let i of arr )与普通for循环的区别
let arr = [1,2,3,4]for(let i in arr ){ console.log(i) //i是字符串类型的数字索引 所以打印arr[i+1]会得一个undefined}for(let i of arr){ console.log(i) //i是值}for(let i =0;i<arr.length;i++){ console.log(i) //i是数字索引}...
2021-09-09 19:18:00 7181
原创 CocosCreator ScrollView组件不能滚动的问题
今天发现ScrollView包含的节点不能滚动了原因如下scrollView节点的宽度或者高度要小于content绑定的节点才能滚动
2021-09-08 15:55:38 2287
原创 控制CocosCreator的scrollview显示的位置
比如里面放了三个道具,要让第三个道具显示在中间那么可以写node.getComponent(cc.ScrolllView).setContentPosition(cc.v2(-prop3.x,0))实际上控制显示原理是将ScrollView包容的东西左右或者上下移动,所以坐标要跟显示的道具坐标相反,道具三x坐标在100,那么scrollview就要写向左移动100也就是-100...
2021-09-08 14:13:20 1452
原创 第二次看广告无法获取奖励
因为我把加载广告的写成了一个单例,所以第一次以后加载的广告都是同一个广告所以都不会获取奖励,正确做法应该每次都重新加载广告
2021-09-07 20:01:18 155
原创 谷歌浏览器解决跨域的问题
这里写自定义目录标题今天在hago平台测试游戏的时候,报了一个跨域的错,于是到谷歌浏览器插件商店安装了一个叫Allow CORS的插件,然后点击启用就可以了
2021-09-07 18:47:24 256
原创 this指向几种情况详解
1.对象的this(指向.前面)基本的var a = 0var obj = { a:1, fn() { console.log(this.a,this,a); }}obj.fn()//1,obj ,02.直接调用的this(指向window,容易混淆:闭包)有几种情况:2.1 函数作为参数传给函数var a = 1function fn() { console.log(a);}function fn1(data) { var a =
2021-07-09 12:10:07 546
原创 async/await执行顺序
async/await1.await 会把后面的值封装成一个 Promise.resolve(值)然后把值return出来2.await后面如果是promise对象,就返回这个promise对象成功状态传入的值,失败状态则报错(可以用try-catch解决),无状态会阻塞 await下面程序的执行3.await 后面的不是异步任务,除非手动写一个异步任务,await下面一行开始就是同一个微任务async function fn() { console.log(1);//1 var
2021-07-09 11:29:08 789
原创 怎么删除csdn自己写的博客
class Parent { sex='man' constructor(name, age) { this.name = name; this.age = age; } getName() { return this.name; }}//相当于下面ES5写法function Parent(name, age) { this.name = name this.age = age this.
2021-07-07 21:47:26 835 2
原创 Typescript笔记
TypeScript类型注解TypeScript里的类型注解是一种轻量级的为函数或变量添加约束的方式。 在这个例子里,我们希望 greeter函数接收一个字符串参数。 然后尝试把 greeter的调用改成传入一个数组:function greeter(person: string) { return "Hello, " + person;}let user = [0, 1, 2];document.body.innerHTML = greeter(user);重新编译,你会看到产
2021-07-06 14:32:10 206
原创 JS简单的用递归使多维数组变为一维数组
var arr= [[1,2,3,[4,5]],6] var arr1 = [] function OneD(arr) { for(var i = 0;i<arr.length;i++){ if(arr[i] instanceof Array){ OneD(arr[i]) }else{ arr1.push(arr[i]) } } } On
2021-06-15 11:14:00 530
原创 js封装常见快速、选择、冒泡、插入、希尔排序算法
function ArrayList(params) { this.arr = []; //添加元素 ArrayList.prototype.insert = function (item) { this.arr.push(item); }; //toString ArrayList.prototype.toString = function () { retu...
2021-06-13 14:53:22 130
原创 js手写字典和队列并用字典和队列手写图结构
function Queue() { this.items = []; Queue.prototype.enqueue = function (el) { this.items.push(el); return true; }; Queue.prototype.isEmpty = function () { return this.items.length == 0 ? t...
2021-06-11 17:54:38 88
原创 js手写二叉搜索树
function BinarySearchTree() { this.root = null; function Node(key) { this.key = key; this.left = null; this.right = null; } //插入节点 BinarySearchTree.prototype.insert = function (key) {
2021-06-04 06:28:29 329
原创 js手写哈希表
function HashTable() { //设计哈希函数,用来处理字符串转换成数字hashCode //接着哈希化 输出索引 HashTable.prototype.hashFc = function (str, size) { var hasCode = 0; for (var i = 0; i < str.length; i++) { hasCode = hasCode * ...
2021-06-03 14:37:59 186
原创 js判断是否为质数
fuction isPrime(num){ var n = parseInt(Math.sqrt(num)) for(var i =2;i<=n:i++){ if(num%i != 0){ return false } } return true}
2021-06-03 13:55:56 67
原创 js手写集合数据结构
function Set() { this.items = {}; //是否已经存在 Set.prototype.isRepeat = function (value) { return this.items.hasOwnProperty(value); }; //增 Set.prototype.add = function (value) { if (thi...
2021-06-01 08:53:19 78
原创 js手写双向链表数据结构
function Double() { //定义节点类 function Node(data) { this.data = data; this.next = null; this.pre = null; } this.length = 0; this.head = null; this.tail = null; //末尾添加节点appe
2021-05-31 23:42:34 220 1
原创 js手写单向链表数据结构
function NodeList() { this.head = null; this.length = 0; function Node(data) { this.data = data; this.next = null; } //保存当前节点 var curren = null; //1.末尾增加节点操作 NodeList.proto
2021-05-31 14:22:58 154
原创 Vue的ref与$refs
,ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例https://www.cnblogs.com/xumqfaith/p/7743387.html很详细...
2021-05-24 19:19:04 79
原创 vue-cli脚手架自动开启了严格模式
字符串全用单引号!末尾不加分号!不要有多余空格!空白换行最多一个!键值之间有空格!符号与值之间有空格!不要有多余逗号!
2021-05-23 21:36:02 511
原创 教辨别this指向问题 包括箭头函数
在function函数中function a(){ console.log(this)}a() //window 谁调用就指向谁对象中var obj = { aaa() { setTimeout(function () { console.log(this);//window 因为setTimeout是属于window的相当于window.里面的方法 }); console.log(this);//obj },};obj.aaa();构
2020-11-26 02:56:05 186
原创 js函数传递的参数都是按值传递的,可以看成局部变量
记住一句话,传进函数的参数变量都是局部变量!基本类型的var a=1function abc (b) { a++ console.log(b) console.log(a)}abc(a)//1 2 console.log(a)//2var a=1function abc (a) { a++ console.log(a)}abc(a)//2 //传入了一个值为1的与a名字相同的局部变量console.log(a)//1 此时函数里的a已经变为局部变量无法改变外部全
2020-11-13 03:43:04 439
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人