<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lahmiley的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lahmiley</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lahmiley]]></copyright><item><title><![CDATA[Unity+Slua实现游戏常用UI组件（零）——滚动复用组件基类]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/91682665</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/91682665</guid><author>lahmiley</author><pubDate>Thu, 13 Jun 2019 01:17:11 +0800</pubDate><description><![CDATA[设计目的

带遮罩（Mask）的滚动（ScrollRect）组件都有一个共同的优化点，就是创建的元素数量只需要满足遮罩的显示大小即可，比如遮罩内最多能显示6个元素的滚动组件，无论需要显示的数据量有多少，只需要创建6个元素即可（如下图）我们要处理的，就是在滚动的过程中不断地复用已有的元素。


基类定义

结合之前写过的滚动组件：滚动表格组件、翻页组件、树形组件
可以把复用的逻辑提取为——把滚动组件...]]></description><category></category></item><item><title><![CDATA[Lua碰到的问题（一）——明明报错却没有错误日志输出]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/89484380</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/89484380</guid><author>lahmiley</author><pubDate>Wed, 24 Apr 2019 00:42:39 +0800</pubDate><description><![CDATA[下面是问题的最小，完整，可验证例子（Minimal,Complete,and Verifiable example）
local a
function Test()
	print(1 .. a)	--Error.lua:4: attempt to concatenate upvalue 'a' (a nil value)
end


xpcall(Test, function(error)
	pr...]]></description><category></category></item><item><title><![CDATA[关于游戏协议的思考（四）——客户端在发送协议前，是否有必要进行有效性校验]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/83927603</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/83927603</guid><author>lahmiley</author><pubDate>Tue, 15 Jan 2019 02:17:46 +0800</pubDate><description><![CDATA[这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
欢迎使用Ma...]]></description><category></category></item><item><title><![CDATA[lua小技巧（二）——lua全局变量的检测]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/86388653</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/86388653</guid><author>lahmiley</author><pubDate>Sun, 13 Jan 2019 01:38:52 +0800</pubDate><description><![CDATA[相信用lua的人都遇到过由于拼写错误把局部变量变成全局变量的情况，如何避免这个问题呢？
直接上代码！
    local mt = {
        __index = function(_, key)
            local info = debug.getinfo(2, &quot;S&quot;)
            if info and info.what ~= &quot;main&quot; and in...]]></description><category></category></item><item><title><![CDATA[lua小技巧（一）——lua支持在遍历表的过程中删除表中字段]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/86385853</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/86385853</guid><author>lahmiley</author><pubDate>Sun, 13 Jan 2019 00:29:01 +0800</pubDate><description><![CDATA[lua支持在遍历表的过程中删除表中字段
Ask：How do I delete all elements inside a Lua table? I don’t want to do:
    t = {}
    table.insert(t, 1)
    t = {}  -- this assigns a new pointer to t

Answer：
 for k in pairs (...]]></description><category></category></item><item><title><![CDATA[lua排序函数(table.sort)报错浅析————invalid order function for sorting]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/85025101</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/85025101</guid><author>lahmiley</author><pubDate>Sun, 16 Dec 2018 04:10:29 +0800</pubDate><description><![CDATA[标题

table.sort函数的本质是快排算法，在此基础上做了三点优化
1、每次分割数组的锚点是从当前分割数组的初始点、中间点、结尾点中选择中位数作为锚点，减少极端情况下快排的次数
2、对于迭代函数中的分割数组长度小于等于3的，直接通过比较大小交换位置形成有序数组，这样做的目的是减少递归调用的深度
3、每次通过锚点把分割数组分成两半之后，对长度较小的一半进行递归调用，另一半则继续通过While继...]]></description><category></category></item><item><title><![CDATA[Unity+Slua实现游戏常用UI组件（六）——单（多）元素滚动布局组件]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/82939232</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/82939232</guid><author>lahmiley</author><pubDate>Fri, 05 Oct 2018 17:26:28 +0800</pubDate><description><![CDATA[Unity+Slua实现游戏常用UI组件（六）——单（多）元素滚动布局组件单元素滚动布局组件定义效果复用逻辑新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式有了滚动布局组件之后为何还需要这两个组件？
单元素滚动布局组件
定义
滚动布局组件下只有一种元素，自动布局并支持滚动过程中元素复用
效果

LSIScrollView效果展示

#特性
– 2.1、创建满足Mask展示的最小...]]></description><category></category></item><item><title><![CDATA[利用Unity+Slua实现游戏常用UI组件（五）LRadarChart——雷达图]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/82433179</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/82433179</guid><author>lahmiley</author><pubDate>Thu, 06 Sep 2018 02:14:23 +0800</pubDate><description><![CDATA[
定义 
LRadarChart是一个雷达图组件，在游戏中常用于显示人物各项属性的权重，让玩家容易比较和理解。
LRadarChart效果展示 
 
雷达图效果
实现原理 
unity的图形都是由一个个三角形拼起来的，unity已经提供了接口——只需你提供3个坐标和坐标绘制的顺序，就可以绘制一个三角形（需要按坐标绘制顺序的顺时针方向才能看到三角形）
扩展练习 
知道了上面的接口，各种图形的绘制都比...]]></description><category></category></item><item><title><![CDATA[Unity+Slua实现游戏常用UI组件（四）——树形组件]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/81948753</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/81948753</guid><author>lahmiley</author><pubDate>Wed, 22 Aug 2018 22:25:07 +0800</pubDate><description><![CDATA[定义 
LTree是一个从上往下分布的树形组件，类似于window的文件管理器，节点层次没有限制，并且支持自定义不同层次的节点元素与节点数据结构。与LScrollView一样，只创建满足Mask显示的最少元素，滚动过程中保持元素复用。游戏中一般会有二级甚至三级树形需求，这时就可以采用LTree组件
LTree效果展示 
图1：文件夹系统 
图2：二级列表 
图3：缓存 
图4：其他例子
特性 
...]]></description><category></category></item><item><title><![CDATA[Unity+Slua实现游戏常用UI组件（二）——表格组件]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/81430376</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/81430376</guid><author>lahmiley</author><pubDate>Sun, 05 Aug 2018 13:34:13 +0800</pubDate><description><![CDATA[
LList定义 
LList是一个列表式布局组件，可以单独使用，也可以结合ScrollRect使用变成滚动式列表组件
效果展示 

特性 
3.1、支持频繁设置显示数据（调用SetData）后元素的复用 
3.2、支持元素水平或者垂直自动布局，元素高度或者宽度可以不一致 
3.3、支持设置元素与元素之间的间隔(gap)，设置边界元素与所属父节点的偏移值(padding)  
3.4、支持翻页式布...]]></description><category></category></item><item><title><![CDATA[Unity+Slua实现游戏常用UI组件（一）——滚动表格组件]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/81160599</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/81160599</guid><author>lahmiley</author><pubDate>Tue, 31 Jul 2018 01:25:09 +0800</pubDate><description><![CDATA[Unity版本：5.6.6 
Slua版本： 
LScrollView 
1、展示效果 
2、特性 
2.1、支持滚动过程中组件的复用 
2.2、支持不同列宽度不等 
2.3、支持从上到下滚动，从左到右滚动 
2.4、支持设置组件的宽度，高度，与mask的偏移值 
3、切 
其它细节可参照Unity

1、代码是针对UGUI的ScrollRect进行扩展，监听OnValueChanged事件，时刻...]]></description><category></category></item><item><title><![CDATA[潮汕“木塞”(“木虱”)概率计算]]></title><link>https://blog.youkuaiyun.com/lahmiley/article/details/70183870</link><guid>https://blog.youkuaiyun.com/lahmiley/article/details/70183870</guid><author>lahmiley</author><pubDate>Sat, 15 Apr 2017 12:53:14 +0800</pubDate><description><![CDATA[潮汕“木塞”(“木虱”)概率计算

“木塞”(“木虱”)是潮汕地区流行的一种扑克游戏。”木塞”可操作性相对单一，玩家每局游戏中能做的只有选择不补牌或者补多一张牌，所以我通过电脑模拟真实玩家的操作，计算所有牌形补牌与不补牌的收益情况，希望能给各位玩家在选择补牌与否时提供参考标准 
 “木塞”规则： 
1、每家先发两张牌，待各家看自己点数决定是否要多发一张，每家最多只能有三张牌 
2、点数计算：点数是]]></description><category></category></item></channel></rss>