自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 看刘强东38分钟牛津大学演讲视频有感

刘强东出生在一个贫穷的家庭,通过努力考上了北京人民大学,在大学受到室友因为专业追爱不成的刺激,自学计算机,然后自学计算机组装挣了很多钱,之后第一次创业盘了一家餐馆,可惜因为员工的贪污,自己的钱最终都亏掉了。刘强东说我喜欢的东西并不在意它的价格,这是我创业的起点,我不是靠这一家餐馆挣钱,我要做好后标准化连锁化,所以我不在乎它贵一点和少一点。干了三年,浪费了公司许多钱,也没干出个好项目来,伤了领导的心,也疲惫了自己,并且在公司低迷的时候我还要求涨工资,分股份。什么样的长远目标是对的,经得起考验的?

2023-06-24 00:48:35 435

原创 我为什么讨厌okr

在工作之外,我会有自己的技术社区,会有自己的梦想,有自己的规划。而不是对齐领导的okr,这会消耗自己仅剩的一点脑空间和业余精力。我认为okr只有自己创业,或者对公司价值观、公司的目标、老板的魅力极度认可的情况下才能真心的制定出来。总之,自己的思维高度可能不够,无法彻底说服自己接受okr和自身成长的关系。其实我就想好好的打份工,对准公司的kpi一顿输出,如果没达标就反思自己。如果老板是一个压榨者,以劳动者的体力为资源致富,我想有谁会真心想要和公司共同成长呢?从老板的眼睛里看到光,是我一直追寻的。

2023-06-15 01:02:48 137

原创 用cocos实现的《我的世界》已经上线微信小游戏,分享一下主要技术

用cocos3.x实现的《我的世界》,涉及到了许多基础技术,欢迎大家阅读,共同学习~

2023-04-21 14:52:41 2178 1

原创 关于chatgpt的思考

自己可以在多个领域不断探索,找到适合自己的,然后极限深耕。掌握了动力,就可以替代大量的人力,并且完成很多需要使用非常多时间非常多力气才能完成的任务。快速学习机械知识,拉资本,造设备,完成超越。因为之前的策划,美术,音效,程序都需要他人帮忙完成。之后只需要自己成为制作人就可以了,其他都可以ai来完成。信息革命时代如果还放弃主动学习,那么被淘汰的概率是很高的。我认为应该设想如果目前自己所在行业的顶尖咨询师,大佬都随时在自己身边服务自己的场景。自己目前哪些事情做的不是很好,想要在哪些方面进行突破,就可以问。

2023-04-01 21:38:51 13100

原创 用cocos creator实现《我的世界》

我的世界》是一款非常流行的游戏,不过网上大多都是用unity还原实现的。那么用cocos实现一版,会是怎样的开发体验呢?核心技能包括八叉树查询用于场景管理,射线检测用于碰撞和交互,柏林函数用于地形随机,动态网格用于地形显示。后续需进行场景性能优化,增加资源、NPC、存档、红石等等等等内容。对于长期学习,还是非常不错的项目。

2022-12-14 14:18:48 450

原创 typescript实现四叉树

使用了typescript实现了简单的四叉树。可以用于简单的静态场景管理。

2022-12-12 20:13:22 402

原创 2.5D游戏,角色移动限制方法。不用空气墙。

制作2.5D迷宫的时候,需要进行路线边缘判断。一种比空气墙碰撞有更高效率的判断方法。

2022-12-09 21:42:12 1278

原创 cocos creator创建简单的动态网格

针对初次尝试cocos动态网格,可以参考本文提供的基础三角面绘制来绘制第一个动态网格。

2022-12-04 00:08:42 1025 1

原创 八叉树的范围和射线检测

用typescript实现一下八叉树的范围和射线检测

2022-11-30 20:59:58 433

原创 typescript 八叉树的简单实现

第一次尝试八叉树构建,用ts写一个。

2022-11-27 20:13:08 732

原创 cocos creator实现浏览星球的功能,附源码

使用cocos creator实现了一个可以旋转查看星球的功能。还可以点击。

2022-11-26 23:41:33 555

原创 用cocos实现的立方体旋转查看页面

cocos进入3.x时代,我也努力跟进,实现了一个将页面映射到立方体上进行旋转查看的效果。

2022-11-20 21:51:30 787

原创 typescript为数字填充0

在计时或者计分的场景中,需要为数字填充0进行显示。写了一个ts方法。

2022-11-03 10:38:40 605

原创 基于ts泛型实现的提示友好型事件管理器

利用vscode的智能提示和ts的泛型语法,实现了一个类型提示友好的事件管理器。

2022-10-23 20:29:31 1997

原创 向量基础认知总结

向量是具有方向和长度的矢量。一般使用的是二维和三维矢量。不同的维度用不同数量的数字表示。对应相应的坐标系。比如二维就对应两个轴的坐标系。三维向量对应三个轴的坐标系。向量相加表达的是向量首尾相连构成的新向量。向量乘以标量表示的向量的缩放。向量点积表示的两个向量的相似程度。夹角越小相似程度越高。也可以用于求向量在单位向量上的投影。向量点积有两个公式,可以互相配合求未知量。第一个是用各维数字相乘相加,第二个是两个向量的模相乘后再乘以夹角的余弦。向量叉乘用于获取两个向量所构成平面的法向。也可

2022-10-05 17:01:14 1067

原创 typescript设计模式SOLID原则一览

用几个反例和纠正来介绍一下设计模式solid原则在typescript语言里的简单使用。

2022-07-16 00:45:07 260

原创 i want try to write an english article about my career

just a english article about my career.

2022-07-14 00:54:11 146

原创 尝试搭建webgl游戏引擎-简单的点击事件

做游戏,少不了交互。本篇就介绍一下简单的球形射线检测。

2022-07-13 00:14:03 751

原创 写一篇废文-一些自己的学习

学习是终生的事情,怎么才能成长,需要学习。

2022-07-12 00:08:42 143

原创 尝试搭建webgl游戏引擎-渲染管线

写引擎,还是要了解一下webgl渲染管线。

2022-07-10 18:25:58 1226

原创 尝试搭建webgl游戏引擎-场景管理

游戏引擎的场景,就像戏剧的舞台,上面形形色色的人、物体、灯光交织在一起,按照剧本进行表演。让观众感动。

2022-07-09 22:43:21 647

原创 尝试搭建webgl游戏引擎-创建正方体

在webgl里如何创建一个正方体。

2022-07-09 00:17:50 539

原创 尝试搭建webgl游戏引擎-文字的创建

尝试搭建WEBGL引擎-文字创建

2022-07-05 22:19:10 551

原创 尝试搭建webgl游戏引擎-起头

一个简单的,初阶的,外行的webgl游戏引擎开发日志。

2022-06-28 22:10:48 826

原创 cocos creator effect圆形头像

作用:使用材质裁剪矩形图片为圆形。效果:左侧为原图,右侧为裁剪后的效果(上方为设置透明度,下方为discard)实现思路:因为要适应不同尺寸的图片,所以使用了椭圆的方程。保证短方向撑满,长方向长度等于短方向。因为glsl的v_vu0是0到1,所以将长方向缩短一定比例即可。椭圆公式:实现:1:定义effect uniform变量(0.25的默认值是因为a,b分母是平方)2:带入v_uv0的坐标到椭圆坐标里,如果大于1,则放弃绘制。...

2021-08-08 15:13:59 707

原创 记录cocos creator index.html里设置gamecanvas 的display为none导致的无法点击场景的bug

问题产生:需要在原生js里切换cocos场景和原生场景。所以刚开始就把gameCanvas的display设置成为了none。过一会儿条件达到再显示。但是导致的问题是场景里的按钮无法点击。简单还原:这样一秒后游戏场景显示,但是按钮无法点击。开始破案:破案的时候,用调试模式打包。这样就可以利用调用堆栈进行调试。我们先不隐藏和显示,然后点击按钮查看调用堆栈。嗯,正常走到了doSome的函数。然后我们先隐藏后显示。因为我们知道肯定不能走到doSome。所以就往后一步步.

2021-08-06 16:08:17 613

原创 nodejs fs从json中按二级对象读取

json示例{ "a": { "b": 1, "c": "f" }, "m": { "b": 3, "c": "sdf" }}nodejs读取代码:readDocument(endOneCb_) { const _bufferArr = []; const _stack = []; let _canBufferPush = false;

2021-07-18 00:17:08 394

原创 js string转uint8array

手写转换:function toUint8Arr(str) { const buffer = []; for (let i of str) { const _code = i.charCodeAt(0); if (_code < 0x80) { buffer.push(_code); } else if (_cod

2021-07-15 00:15:04 6102

原创 html和node的eventloop执行区别

该文已经介绍的很详细了我这里只是写一个更短的例子来说明一下:html和node代码一样:console.log(1); setTimeout(() => { Promise.resolve(console.log(2)) .then(() => console.log(3)) }); setTimeout(() => { Promise.resolve(console.log(4))

2021-07-14 09:30:05 67

原创 简单记录上传blob和base64保存图片

学习了一下客户端和服务器利用ajax上传图片的技术。利用了ajax的post方法和nodejs的http、fs模块没有用formdata。直接上传blob和base64.上传和接收blob客户端代码:直接上传blob数据<body> <input type="file"> <input type="button" value="click" onclick="upload()"></body><script&g

2021-07-13 13:34:29 214

原创 canvas绘制下载的图片

上代码:<body> <canvas width="300" height="300" id="cvs"></canvas> <script> const cvs = document.getElementById('cvs'); const ctx = cvs.getContext('2d'); function getPic() { const xhr = new

2021-07-12 16:38:19 146

原创 资源中转服务器:解决跨域

用creator开发网页游戏。想要本地测试。静态资源放在了服务器。如果电脑测试,可以设置浏览器跨域。但是手机测试,就没找到设置浏览器跨域的方法。所以就使用资源中转服务器的方法。需要使用nodejs相关功能。http模块。用http开启中转服务器,然后浏览器将资源获取地址改为本地中转服务器地址。代码如下:const http = require('http');const urlBase = '${你的最终服务器地址}'http.createServer((req, res

2021-07-12 13:09:17 247

原创 V8隐藏类

V8引擎为了优化对象属性查找效率。引入了隐藏类。即每当创建对象的时候,就会为他创建一个影藏类,用来记录对象的属性在内存中的位置相对于对象在内存中的位置的偏移量。相同结构的字面量对象,会共享同一个隐藏类。比如:const a={x:1,y:2,c:3}和const b={x:4,y:5,c:6}虽然a和b里面属性的值不一样。但是共享了同一个隐藏类。不过:const a={x:1}a.y=2;和const b={x:1,y:2}没有有共享同一个隐藏类?

2021-06-29 11:07:10 332 1

原创 记录node自定义command

想一个命令名字:xxx npm init 创建package.json文件 创建一个command命令解析文件yyy(可与命令重名或者不重名) 在package.json里添加bin:{xxx:"yyy"} 在yyy的第一行添加:#!/usr/bin/envnode 在目录下运行npm link 最后就可以在cmd里运行xxx查看效果了#!/usr/bin/envnode的用处是告诉文件处理器应该使用什么解析器来执行文件,这里是用node执行。相当于在目录下cmd然后输入nod..

2021-06-25 16:23:14 364

原创 png了解

png图片信息有3个不可选关键数据块:IHDR,IDAT,IEND和一个头PNG其中:IHDR包含了宽、高、色深、颜色类型、压缩方法等几个信息。IDAT包含了实际的图片信息IEND为结束块每个块由4部分组成(顺序):数据长度(length):4字节,比如0x00 0x00 0x00 0x10 表示改块数据长度为16块类型码(chunk code):4字节,比如0x49 0x44 0x41 0x54 表示IDAT块数据(data):长度由length决定,

2021-06-24 16:57:20 232

原创 js generate 实现hello world

function* showHelloWorld() { let _s = ''; _s += yield p1; _s += ' '; _s += yield p2; console.log(_s); //hello world}function p1(cb_) { setTimeout(() => { cb_('hello'); }, 1000);}function p2(cb_) { setTimeou.

2021-06-24 10:36:15 309

原创 js generate结合promise实现hello world

function* showHelloWorld() { let _s = ''; _s += yield asyncFun(p1); _s += ' '; _s += yield asyncFun(p2); console.log(_s); //hello world}function asyncFun(cb_) { return new Promise(cb_)}function p1(cb_) { setTimeout(() =&g.

2021-06-24 10:21:23 132

原创 虚拟dom为什么提升性能

真实dom节点比较臃肿。对它的访问和修改都像要访问和修改一个大型object一样。object存储在堆。占用空间越大访问性能越低。dom和js不是一个模块。跨模块访问性能低。不高级的dom操作会引起频繁的回流。回流可能牵连甚广。性能低。虚拟dom并不是摒弃真实dom操作(曾经有只使用canvas的思想完全不用dom)。而是尽量减少操作。在没有虚拟dom思想之前。也会有很多规范来进行优化减少dom操作。比如统一处理一次回流、比如fragment。后来就有类似vue react框架用虚拟dom的思想来减.

2021-06-06 18:51:42 405

原创 webpack的初步理解

最近开始学习node,先简单记录一下自己理解的为什么要有webpack:为了在html里引入单个js我们在写html的时候,如果想要做一些js处理,一般的做法是写在<script>标签里。<html><head></head><body></body><script> console.log('hello world');</script></html>当代码量变多的时

2021-05-19 10:46:04 66

原创 会话层记录

osi第五层会话层粗浅理解。 session layera访问b。b要a输入验证信息。a输入验证信息。正确后开始访问。b同时在本地保留一份a的验证信息和来源信息。并设置一个该信息的过期时间。a再次访问b。b发现本地保留了一份未过期的符合a的来源信息和验证信息。b直接欢迎a。不需要再次输入验证信息了。挡时间超过了保留的过期时间。b删除那份备份信息。当a再次访问的时候就要再次输入验证信息了。所以会话层有开始保持结束的功能。...

2021-05-16 23:06:32 107

文本编辑notepad不用安装.zip

nodepad,不用去那些有捆绑的网站下载。 打开解压缩就可以用。十分的方便。 分享给大家用。不要钱。免费。

2020-02-23

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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