
Lua
文章平均质量分 81
木之子楠
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
随机取n个不相同的元素(Lua实现)
一些逻辑逻辑需求要在一个长度为m数组中取出n个不同的元素(m > n),一般第一想法是随机出一个下标,然后删除对应的元素,以此来取出不同的元素。本篇文章介绍一个不需要删除操作的方法。代码如下:-- 假设长度m为10,随机取出个数为n=3local table = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}local count = 3local length = #tablefor i = 1, count do local ri = math.random(i,原创 2020-05-29 11:50:23 · 3020 阅读 · 0 评论 -
游戏AI,行为树,Lua框架
行为树(缩写BT),故名思议是一个树状结构,它是用树的方式来描述一个角色的行为。书本上的一些概念就不进行说明了。(本文仅代表个人理解的一个简易版的行为树框架,适用于轻量级的AI逻辑,处理不当的地方还请指出)下面直接介绍下行为树框架的大体组成:框架组成主要由下面几部分:BTNode - 节点基类功能:为各种节点提供基础函数基础函数:AddChild、RemoveChild、Clear、 Tick、Check、Evaluate等BTAction - 行为节点功能:具体行为执行的逻辑基础函原创 2020-05-11 11:47:49 · 1669 阅读 · 3 评论 -
Lua实现C#的Get/Set属性访问器
虽然Lua没有C#一样的属性,但是它的强大的元表和元方法能够实现很多功能,本篇博客就介绍如何用lua的元表和原方法实现C#中的get、set属性访问其功能。class.luaclass.lua是实现lua的类,我的之前博客有些过简易版的,属性访问的的实现相当于在最简易版的基础上进行扩展,博客链接:Lua 实现C#中的类local mt = {}function class(clsName...原创 2020-04-28 11:46:54 · 2638 阅读 · 1 评论 -
Lua 实现C#中的类
直接上代码:class.lualocal mt = {}function class(clsName, base) local cls = {} base = base or mt setmetatable(cls, {__index = base}) cls.clsName = clsName or "default" cls.base = base cls.new = fu...原创 2020-04-23 16:54:54 · 849 阅读 · 0 评论 -
消息模式/事件监听 lua
消息模式有三个主要对象,分别是:消息监听者:监听消息消息中心:存储、删除消息消息发送者:发送广播看下面的图,大概对每个部分的职能能够清楚的了解:下面是主要代码:Msg.lua相当于消息中心,对所有消息进行处理其中Remove的三个参数支持多种方式的移除消息方式,具体的可以参考代码逻辑进行理解和修改Msg = {}Msg.init = function() --[[ ...原创 2020-04-22 17:28:18 · 872 阅读 · 0 评论