-- 创建唯一索引
local index = {}
-- 创建元表
local mt = {
__index = function (t, k)
print("access to element " .. tostring(k))
return t[index][k]
end,
__newindex = function
转载
2024-10-09 17:19:41
13阅读
【Lua进阶系列】实例lua调用capi 大家好,我是Lampard~~ 欢迎来到Lua进阶系列的博客 首先祝
转载
2024-05-01 20:34:56
94阅读
一.前言为了利用虚幻引擎强大的实时渲染功能制造出3D影片,提高出产效率,并且结合后期动作捕捉,面部捕捉等功能,准备使用UE4当中的内容录制器插件。由于UE4.26之后引擎不再支持sequence recorder这个插件功能,所以UE4从4.23开始提供了take recorder插件对项目内播放的内容进行实时渲染的录制,如图1、图2所示图1 sequence recorder图2 take re
1.Lua 错误处理错误类型有:语法错误运行错误语法错误语法错误通常是由于对程序的组件(如运算符、表达式)使用不当引起的。运行错误运行错误是程序可以正常执行,但是会输出报错信息。错误处理我们可以使用两个函数:assert和 error 来处理错误。实例如下:local function add(a,b)
assert(type(a) == "number", "a 不是一个数字")
a
异步 / 同步##在维基百科中的释义是:在计算机编程中,异步,指的是独立于主程序流发生的事件,以及处理该事件的方式。这些可能是“外部”事件,例如信号的到达,或由程序发起的操作,该操作与程序同时/并发的执行,而程序不需要阻塞的等待结果。异步的输入(input)/输出(output)是导致异步的一个例子,让程序向存储或网络设备发出命令,而处理器继续执行程序。这样做提供了一定程度的并行性。在一个编程接口
本文为 博客园 simonw 原
转载
2023-01-05 16:48:46
124阅读
要求:实现事件的监听、移除、派发 local EventSystem = {} local this = EventSystem this.mEventTable = {} this.mObjTable = {} --注册事件 function EventSystem:AddListener(eve ...
转载
2021-08-16 20:50:00
601阅读
2评论
写在最前 由于工作需要,有幸正真地开始接触lua。 lua一直是动态执行脚本中的宠儿,而究其原因不外乎简介方便,效率高。我甚至看到过有帖子说lua就是为了动态化c而生的,c是静态的,是编译型的,这使得他的灵活性大大下降,但是lua则弥补了他的短板。天不生你lua哥,万古c界如长夜。相关背景&
转载
2024-04-16 17:10:05
53阅读
文章目录一. 发布与订阅(一) 概述(二) 频道的订阅和退订(三) 模式的订阅和退订(四) 发送消息(五) 查看订阅消息1. PUBSUB CHANNELS [pattern]2. PUBSUB NUMSUB3. PUBSUB NUMPAT二. 事务(一) 概述(二) 事务的实现1. 事务开始2. 命令入队3. 事务队列4. 执行事务(三) WATCH命令1. 概述2. 实现3. 监视机制的触发
转载
2024-07-04 09:47:01
87阅读
Cocos2d-x 3.1.1 Lua实例-AccelerometerTest(重力加速计) 本篇博客介绍Cocos2d-x的第一个实例——重力加速计測试。效果图(注:这里无法模拟重力感应): --[[
AccelerometerTest.lua
重力加速器样例
]]
--返回一个层
local function AccelerometerMainLa
Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试) 本篇博客介绍Cocos2d-x 3.2Lua演示样例中点击移动的样例,在这个样例你能够得到怎样创建单点触摸的事件和注冊事件监听回调方法。 演示样例代码:
--[[
ClickAndMoveTest.lua
点击与移动
]]--
--
参考手册 - 5 - 标准库[5-表操作,6-数学运算函数,7-输入输出设备] 5.5 - 表操作table内提供其所有函数。 表中的多数函数假定给定的表表示数组或列表。对于这些函数,当我们谈到表的“长度”时,我们意指取长操作符的结果。 table.concat (table [, sep [, i [, j]]]) 给定一个数组,其所有元素是字符串或数字,返回 table[i]..s
通过对 Redis 源码中的 scripting.c 文件进行分析,解释 Lua 脚本功能的实现机制。 预备知识 因为脚本功能的实现源码和命令关系密切,最好在阅读这篇文章之前先了解 Redis 的脚本功能是如何使用的,否则你可能无法看明白这里的一些实现决策是如何做出的。 EVAL 命令的文档是学习使用脚本功能的一个很好起点。 脚本功能的实现 Redis 脚本功能的实现代码放在源码的
转载
2024-03-21 08:54:42
106阅读
昨天我们学习到lua语言中的数据类型了,在数据类型中其实还有两个部分,接下来我们将剩余的两个部分完成掉,然后再进行第三部分--lua变量。2.6function(函数)在lua中的函数还是与c#中的函数有点不一样的,其实主要集中在语法上,算法是一样的。function的格式是如图总所示,因为lua中是没有{}的,所以用end来表示一个函数的结束。在lua中函数也是可以通过匿名函数的方式传递参数传递
转载
2024-03-09 23:25:59
496阅读
本文涉及:Redis中普通事务的实现方式、lua脚本的基础使用以及与Java的结合使用 ◆ 普通事务 ◆ Redis本身提供了multi关键字用来开启事务,exec用来关闭事务。Redis这两个关键字之间的操作是原子性的。 127.0.0.1:6379> multi
OK
127.0.0.1:6379> set key 1
QUEUED
127.
转载
2024-04-08 22:41:06
71阅读
对字符串来说,#取字符串的长度,但对于table需要注意。lua的table可以用数字或字符串等作为key, #号得到的是用整数作为索引的最开始连续部分的大小, 如果t[1] == nil, 即使t[5], t[6], t[7]是存在的,#t仍然为零。对于这类tb[1],tb[2]....才能获取到正确的长度。local tab = {}tab[1] = 1tab[2] = 2tab[3] = nilprint(#tab)--结果为2如果table的第一个元素key为非数字,那么#t
原创
2022-11-29 20:07:59
148阅读
在使用Unity开发手游项目中,用Lua作为热更脚本时,也许有的RPG项目会有连战斗也要求热更,对于角色挂机自动战斗,Unity有行为树插件Behavior Designer可以实现,但不能实现战斗逻辑热更,所以我用Lua对着Behavior Designer重新实现了部分基础功能,这样,使用Lua版的行为树实现挂机自动战斗,就可以热更啦!前提说明: 1,本文假设读者对树插件Behavior De
转载
2024-04-18 13:15:08
109阅读
Lua中的 对字符串来说, 取字符串的长度,但对于table需要注意。 lua的table可以用数字或字符串等作为key, 号得到的是用整数作为索引的最开始连续部分的大小, 如果t[1] == nil, 即使t[5], t[6], t[7]是存在的, t仍然为零。对于这类tb[1],tb[2]...
原创
2021-07-20 16:56:49
489阅读
在很多语言中都有闭包的概念,而在这里,我将主要对Lua语言的闭包概念进行分析与总结。希望对大家学习Lua有帮助。什么是闭包?闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体。我们再来看一段代码:function newCounter()
local i = 0
return function () -- 匿名函数
i = i
转载
2024-06-07 14:58:03
36阅读
之前一直没理清lua_gettable和lua_settable的使用,今天理清了,顺便就做下笔记了。
1.lua_gettable
void lua_gettable (lua_State *L, int index);把t[k] 值压入堆栈,这里的 t 是指有效索引 index 指向的值,而 k 则是栈顶放的值。这个函数会
转载
2024-06-13 20:41:56
248阅读