自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 cocos脚本实例化时机

组件脚本在编译的时候会立刻实例化一次,但这个组件脚本是没有挂节点的具体可以在组件脚本的construct里打印看出来

2022-01-20 19:11:57 243

原创 箭头函数 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修改角色朝向

node.scalex = -node.scalex

2021-12-13 16:00:48 2863

原创 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手写栈和队列数据结构

队列只需要将push改成shift就行了下面是优先级队列实现数组保存对象的形式存储优先级

2021-05-31 14:26:22 199

原创 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

原创 JS同步异步执行机制

如图所示

2021-04-23 23:22:09 70

原创 教辨别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关注的人

提示
确定要删除当前文章?
取消 删除