<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HzjCsdn的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HzjCsdn</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HzjCsdn]]></copyright><item><title><![CDATA[日常工作笔记]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/135109008</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/135109008</guid><author>HzjCsdn</author><pubDate>Wed, 05 Jun 2024 17:33:41 +0800</pubDate><description><![CDATA[常用的gradle版本6.3常用的gradle plugin版本 4.0.2。]]></description><category></category></item><item><title><![CDATA[局域网共享文件夹的创建]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/116607634</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/116607634</guid><author>HzjCsdn</author><pubDate>Mon, 10 May 2021 19:50:04 +0800</pubDate><description><![CDATA[右键计算机管理：
双击此处：

如果不可以共享，双击以后会有提示  xxx服务没有开启
开启下面的服务


修改共享配置

关机重启：


]]></description><category></category></item><item><title><![CDATA[android studio常见错误]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/116590051</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/116590051</guid><author>HzjCsdn</author><pubDate>Mon, 10 May 2021 10:53:30 +0800</pubDate><description><![CDATA[1：无法连接adb

可能原因：
1：检查自己的环境变量是否修改了adb的端口

]]></description><category></category></item><item><title><![CDATA[shell学习]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/116425716</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/116425716</guid><author>HzjCsdn</author><pubDate>Wed, 05 May 2021 15:23:55 +0800</pubDate><description><![CDATA[第一步：
创建钉钉机器人，首先你得建一个群，然后

获取token:

第二步：在git目录下创建一个shell脚本test.sh

test.sh
下面的脚本需要替换xxxxxxx为你自己的token
#!/bin/sh

filename=./log/commit.log
author=$(git show -s --pretty=%an)
todayTime=$(date "+%Y%m%d")

#当天的日志
#searchStartTime='$todayTime 00:00:00'
#search]]></description><category></category></item><item><title><![CDATA[地图居中小记]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/115581147</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/115581147</guid><author>HzjCsdn</author><pubDate>Sat, 10 Apr 2021 17:43:32 +0800</pubDate><description><![CDATA[在游戏中经常用到地图居中的操作，比如一张大地图，需要做一个小地图来实时显示出玩家在大地图中的位置，这个做法比较常规的做法是对每一张大地图都等比例的来做一张小地图
获取到玩家在大地图中的位置，在根据缩放比例就可以算出来在小地图的位置了
下面这个算法是将玩家的位置始终处于屏幕的中心
初始化：小地图的原点与世界坐标重合，
如果想让小地图中某个点在屏幕居中，只需要用屏幕的中心点坐标去减当前点坐标，当然这个结果不可以超出范围，这个范围就是小地图的尺寸减去屏幕的尺寸

local mapWidth = GetMapWi]]></description><category></category></item><item><title><![CDATA[给exe设置工作路径]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/115565581</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/115565581</guid><author>HzjCsdn</author><pubDate>Sat, 10 Apr 2021 10:21:35 +0800</pubDate><description><![CDATA[案例1：
做lua开发游戏时，需要将lua脚本寄生在exe的环境中，启动exe，就可以加载lua代码了，这里有一个路径设置，如果分离的话，需要写一个批处理脚本，即先设置工作路径再启动exe，还有一个更简单的方法，就是用exe生成一个快捷键：如下


...]]></description><category></category></item><item><title><![CDATA[android 模拟器的使用]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/115455728</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/115455728</guid><author>HzjCsdn</author><pubDate>Tue, 06 Apr 2021 10:42:23 +0800</pubDate><description><![CDATA[目前比较火的的模拟器：夜神android模拟器和逍遥游模拟器
安装完模拟器以后，需要在模拟器上再安装es文件浏览器，这个是可以直接root,然后进行访问文件夹的
root步骤：
在主界面的左上角点击：

然后打开，如下图所示

就这么简单就可获取root权限了啊
共享文件夹：简单设置一下，就是我们的电脑和模拟器共享文件夹下，如果我们想传文件到模拟器，只需要将文件放在共享文件夹就可以了啊

比如我们想把下面这个zip传到模拟器上，只需要将文件拷贝到这个目录下即可

在模拟器上打开


...]]></description><category></category></item><item><title><![CDATA[pureMVC使用笔记]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/115438460</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/115438460</guid><author>HzjCsdn</author><pubDate>Mon, 05 Apr 2021 11:30:07 +0800</pubDate><description><![CDATA[--注册启动command
facade:registerCommand( noticeTable.StartUp, StartUpCommand )
--触发command 调用
facade:sendNotification( noticeTable.StartUp )

观察者 Observer
这个类的主要功能：就是注册一个类的实例和类的方法，啥时候需要调用这个方法的时候，由观察者组织传参并且调用，在当前这个框架模式中，观察者是用的比较重要的一种设计模式，理解观察者模式，对于理解这个框架还是比较重要]]></description><category></category></item><item><title><![CDATA[在vscode中搭建webgl shader开发环境]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/114321941</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/114321941</guid><author>HzjCsdn</author><pubDate>Wed, 03 Mar 2021 16:51:09 +0800</pubDate><description><![CDATA[环境
插件1：
Shader languages support for VS Code



插件2：
glsl-canvas


语法错误提示
插件1：
glsl linter


下载：glslang

解压后放在任意文件夹下：

在vscode中配置：vscode &gt; preferences &gt; settings &gt; Extensions

效果如下：

特别注意：
着色器代码必须以**.frag或.vert**文件后缀名，否则语法检查哪里会报错，如：
GLSL Linter: G]]></description><category></category></item><item><title><![CDATA[渲染之静态批处理]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/114110771</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/114110771</guid><author>HzjCsdn</author><pubDate>Fri, 26 Feb 2021 09:25:40 +0800</pubDate><description><![CDATA[操作方法：
在unity场景的右侧属性面板中直接勾选static属性，那么就可以在游戏引擎中完成静态批处理
原理：
满足条件：使用相同的材质球，模型是禁止的
标明为 Static 的静态物件，如果在使用相同材质球的条件下，在Build（项目打包）的时候Unity会自动地提取这些共享材质的静态
模型的Vertex buffer和Index buffer。根据其摆放在场景中的位置等最终状态信息，将这些模型的顶点数据变换到世界空间下，存
储在新构建的大Vertex buffer和Index buffer中。并且记]]></description><category></category></item><item><title><![CDATA[creator中对于shader的应用]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/113068665</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/113068665</guid><author>HzjCsdn</author><pubDate>Wed, 24 Feb 2021 15:30:56 +0800</pubDate><description><![CDATA[组织架构
shader就是一段着色器代码，跑在GPU上，一个显示节点需要一段shader代码才可以被绘制出来，那么显示节点和shader之间有怎么样的管理关系呢
一个显示节点会配一一个材质球(material)，一个材质球会管理若干个techniques,每一个technique都有若干个pass，每一个pass里有两个着色器代码，分别是vs和ts,每一个pass才是真正要使用的着色器代码，所以至于要渲染那个pass，我们可以自行决定
中间过程
看一张图片，如下：

上面这张图片介绍了一个普通精灵sprit]]></description><category></category></item><item><title><![CDATA[基础shader之2d描边]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/114013898</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/114013898</guid><author>HzjCsdn</author><pubDate>Wed, 24 Feb 2021 11:08:13 +0800</pubDate><description><![CDATA[float radius = 0.01;//描边的宽度
        //在shader中颜色的范围是0.0-1.0,下面这样设置颜色也没有问题
        //只是有一点需要注意，就是临近边缘像素他们的透明度可能会有不同，这个时候如果我们还是传1.0过去，
        //可能会导致颜色不是那么绿
        vec3 u_outlineColor = vec3(0.0,1.0,1.0);//描边的颜色
        float u_threshold = 1.0;//描边的模糊度
 ..]]></description><category></category></item><item><title><![CDATA[android app 内嵌h5小游戏]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/113872532</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/113872532</guid><author>HzjCsdn</author><pubDate>Fri, 19 Feb 2021 21:56:35 +0800</pubDate><description><![CDATA[原理：
其实就是在app内部放置一个浏览器内核，这个内核可以是浏览器的系统内核，也可以是腾讯的x5内核，一般使用腾讯浏览器的x5内核，如果环境不允许，则使用默认的系统的内核
使用x5系统内核：
在腾讯tbs官网上下载：x5内核，放在libs目录下

x5内核初始化

启动游戏

游戏资源的放置目录：


...]]></description><category></category></item><item><title><![CDATA[js之网络消息收发]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/113868785</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/113868785</guid><author>HzjCsdn</author><pubDate>Fri, 19 Feb 2021 17:49:51 +0800</pubDate><description><![CDATA[包头：
public setSession(userId: number, sessionId: number) {
        this.userId = userId;
        this.uidH32 = Math.floor(this.userId / (Math.pow(2, 32)));
        this.uidL32 = this.userId % (Math.pow(2, 32));
        this.sessionId = sessionId;
}
    
cl]]></description><category></category></item><item><title><![CDATA[回合制游戏代码结构分析]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/107219235</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/107219235</guid><author>HzjCsdn</author><pubDate>Fri, 19 Feb 2021 15:05:01 +0800</pubDate><description><![CDATA[显示：
控制：
数据：

]]></description><category></category></item><item><title><![CDATA[creator中关于旋转所使用的欧拉角和四元数]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/113601963</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/113601963</guid><author>HzjCsdn</author><pubDate>Wed, 03 Feb 2021 14:35:14 +0800</pubDate><description><![CDATA[概念
四元数，欧拉角，变换矩阵，这三者是可以相互转化的，但并不是说变换矩阵等于欧拉角或者变换矩阵等于四元数，欧拉角或者说四元数他们只是旋转数据，而一个矩阵是一个空间坐标系，旋转的数据只是构造的它的一部分，他还有缩放和平移。
直观上理解，我们将使用欧拉角，因为欧拉角只针对坐标轴以及这些坐标轴旋转的角度，所以欧拉角就是一个存放三条坐标轴旋转的角度的一个数组vec3,所以我们就使用欧拉角来记录我们对节点进行的旋转角度变化的数据
正文
看下面这段代码：
当节点接收到外界旋转变化时，将变化的数据赋值给了欧拉角_eul]]></description><category></category></item><item><title><![CDATA[creator中关于位运算符的使用]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/113518640</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/113518640</guid><author>HzjCsdn</author><pubDate>Mon, 01 Feb 2021 15:33:16 +0800</pubDate><description><![CDATA[正常情况：
有若干个状态，我们使用一个数组来保存正在使用的状态，
前期判断逻辑  ：
当需要某个状态状态时，就往数组中添加
中期处理逻辑：
拿到使用中的状态，去做一些骚操作，做完以后，从数组中删除掉该状态
看一段c语言的代码
而下面的实现是，状态使用左移位数来区分，数组采用一个整数来表示，这样代码执行效率高，具体原理请看下面的代码
/*
  左移运算：就是乘以2
  右移运算：就是除以2取整
  */
  for (int i = 0; i &lt;1; i++)
  {
	  //下面是六种状态
	  /]]></description><category></category></item><item><title><![CDATA[lua5.1字节码解析]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/113379468</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/113379468</guid><author>HzjCsdn</author><pubDate>Sun, 31 Jan 2021 14:32:43 +0800</pubDate><description><![CDATA[字节码文件头
lua5.1字节码文件头的长度为12字节，在我的环境里(Win7 64位，VS下编译为Win32应用)如下：
1b4c 7561 5100 0104 0404 0800
其中第1-4字节为："\033Lua"；
第5字节标识lua的版本号，lua5.1为 0x51；
第6字节为官方中保留，lua5.1中为 0x0；
第7字节标识字节序，little-endian为0x01，big-endian为0x00；
第8字节为sizeof(int)；
第9字节为sizeof(size_t)；
第10字节]]></description><category></category></item><item><title><![CDATA[抗锯齿之几何抗锯齿]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/112798625</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/112798625</guid><author>HzjCsdn</author><pubDate>Tue, 19 Jan 2021 09:18:27 +0800</pubDate><description><![CDATA[何为抗锯齿？且看下图：

我们小时候都用过锯子锯柴火，锯子是一块铁皮，铁皮的两边都是一块块像毛刺一样的铁片，就用这些铁片来锯柴火。上图是不是有点像锯子呢，所以我们形象的称为锯齿，那上图的情况又是怎么出现的呢？
首先上图就是四个顶点，只是连接四个顶点的时候，发现这个矩形是斜着的，矩形要在显示器上展示，就需要有颜色，矩形根据四个顶点可以确定大小，根据四个顶点的颜色，可以进行插值，算出这个矩阵的颜色！何为矩形的颜色？矩形的颜色就是以屏幕小格子为单位来计算的，矩形的显示也都是用像素小格子来表示的，光栅化的时候会根据]]></description><category></category></item><item><title><![CDATA[js源码字节码机器码的执行过程]]></title><link>https://blog.youkuaiyun.com/HzjCsdn/article/details/112761521</link><guid>https://blog.youkuaiyun.com/HzjCsdn/article/details/112761521</guid><author>HzjCsdn</author><pubDate>Mon, 18 Jan 2021 12:06:34 +0800</pubDate><description><![CDATA[认真看完下面这张图片
源码：高级语言
字节码：中间代码
机器码：最终执行的代码

谷歌浏览器内置v8引擎，v8引擎内置js虚拟机，js虚拟机负责对js语言进行解析和执行，如果是苹果浏览器的话，那么它内置的jsc引擎。
下图有两种方式执行源码，左图是编译器主要针对的是c语言和c++语言，他们是静态语言，一次编译直接生成机器码，后边直接执行即可，所以代码执行效率特别高，但跨平台比较差：右图是解释器主要针对的脚本语言，如js,python等，他们是边解释边执行，效率上比较低，但跨平台性比较强，只要内置js引擎，都]]></description><category></category></item></channel></rss>