我为我的项目做了计时器实现(对于Lua5.1,完整的源代码,动态链接库和测试可以在上获得,所以我将跳过有问题的完整源代码)。Timer创建对象并实现CreateTimerQueueTimer。我用不同的行为做了3个测试:测试脚本的共享部分
require('timer')
-- params same as CreateTimerQueueTimer: DueTime, Period, Flags
-- flag WT_EXECUTEONLYONCE = 8, timer will stops, enabled set to false
local mt = timer(10
我正在开发一个应用程序,我正在用Vungle赚钱,当我调用ads.init时,我会发现以下错误:
---------------------------
Corona Runtime Error
---------------------------
?:0: attempt to concatenate a table value
stack traceback:
?: in function 'providerNameToModuleName'
?: in function 'requireProvider'
?: in functi
我试图从Lua控制台读取用户输入,但似乎无法从stdio读取。
print("Enter your name:")
if file.open("stdio") then
line = file.read("*a")
file.close()
print("Hello "..line)
end
我的固件有模块file,gpio,net,node,ow,tmr,uart,wifi,tls
如果我尝试io.read("*a"),就会得到错误Lua error: stdin:1: attempt to ind
我对Lua很陌生,这是一个基本的问题。
我是一个Lua脚本,我正在通过Freeswitch查询Postgress的两条记录。我可以将第一个值设置为局部变量。我被困在如何将第二个值设置为一个变量。
local dbh = Database.new('system');
local settings = Settings.new(dbh, A, B);
local sql = "SELECT A, B FROM TABLE WHERE A = '" .. A.."'";
local A = dbh:first_value(sql);
假设我有一个回调函数,它在指定的玩家死掉时执行。
function OnPlayerDeath(playerid)
end
我希望这个函数在Lua C模块中被调用,而不是放在lua脚本中:
static int l_OnPlayerConnect (lua_State * L) {
enum { lc_nformalargs = 1 };
lua_settop(L,1);
// so here I can use playerid argument - 1 arg
return 0;
}
在C中接收这个回调参数是可能的吗?
#define LUA extern "
我已经使用lua rocks安装了lua,它工作得很好。现在,我想使用love库在我的lua脚本中创建一些图形。但是我找不到任何关于如何将love代码链接到lua代码的文档...事实上,我仍然对其中的区别感到困惑。
我的印象是,爱是一套lua的库,但爱似乎有自己的二进制running...meaning它是自己的语言?
无论如何,这是我用love编写lua脚本的可悲的小尝试:
myluatest.lua:
if "test" == "test" then print("yes") else print("no") end
l
我遇到了这个函数的麻烦,我不知道这是什么意思:
menuItem1->setCallback([&](cocos2d::Ref *sender)
输入函数,参数为ccMenuCallback&:
/** set the callback to the menu item
* @code
* In js,can contain two params,the second param is jsptr
* @endcode
* @lua NA
*/
void setCallback(const ccMenuCallbac
我在nodemcu esp8266上有一个工作的esp8266:
-- load credentials, 'SSID' and 'PASSWORD' declared and initialize in there
dofile("credentials.lua")
function startup()
if file.open("init.lua") == nil then
print("init.lua deleted or renamed")
else
pr
我正在尝试在Lua中注册一个c++函数。
但是得到这个错误:
CScript.cpp|39|error: argument of type 'int (CScript::)(lua_State*)' does not match 'int (*)(lua_State*)'|
编辑:
int CApp::SetDisplayMode(int Width, int Height, int Depth)
{
this->Screen_Width = Width;
this->Screen_Height = Height;
this-
我希望我的C++应用程序的用户能够提供匿名函数来执行小块工作。
像这样的小片段将是理想的。
function(arg) return arg*5 end
现在,我希望能够为我的C代码编写像这样简单的东西,
// Push the function onto the lua stack
lua_xxx(L, "function(arg) return arg*5 end" )
// Store it away for later
int reg_index = luaL_ref(L, LUA_REGISTRY_INDEX);
然而,我认为lua_loadstring不会做“正确的
我想花点时间在nodeMCU上使用EPS8266来设置我的实时时钟胜过I2C。
这是我的短文:
-- file print.lua
local file = assert(loadfile("httpget.lua"))
file() --get Date and Time from google
print("Print follows:") --this should be executed after "file()"
print(date)
这是文件httpget.lua
在Lua C处理程序中,我在抛出错误之前在注册表中设置了一个标志。如果使用pcall从Lua调用处理程序,我希望确保设置(或清除)此标志。以下是更多详细信息:
我有一个使用lua_pcall从C中调用的基本Lua函数handle
function handle()
c_handle()
end
C中的句柄具有下面的基本结构,我们希望在抛出错误之前设置一个标志,以区分错误和其他错误。
int c_handle(lua_State *L)
{
if (condition) {
set a flag in registry
throw error with lua_error
我下面有两个函数,只有当第一个函数完成下一次运行时,我才需要按顺序执行它们。但是,这并不是只输出第二个函数。
在原始的Lua中,我们可以使用CALLBACK_MANAGER:FireCallbacks和CALLBACK_MANAGER:RegisterCallback来处理这个问题。我该如何继续使用esp8266?
-- test.lua
function increase()
a = 0
tmr.alarm(1,1000,1,function()
if (a == 10) then
tmr.stop(1)
else
a = a + 1
我有密码
fun = function()
coroutine.resume(co); -- here it segfaults
return true;
end ;
-- evtimer is my binding to libev
-- timer = evtimer.new(1,1, fun); -- this works ok and prints "co N" every second
co = coroutine.create(function ()
timer = evtimer.new(1,1, fun); --this
我有一个第三方API,它有一个事件侦听器添加函数,它将事件发生时触发的回调函数作为参数。我想将参数传递给该回调函数。我正在寻找相当于JavaScript的bind的Lua。 Lua代码: EventListenerAddingFunction(myCallbackFunction); // I want to add a param to the callback here 我如何在JS中做到这一点: EventListenerAddingFunction(myCallbackFunction.bind({}, myParameter)); 这可以在Lua中完成吗?
我有一个创建场景的主lua文件,它在scene函数中创建了一个Deck对象和一个名为wonGame()的函数,用于检查游戏何时获胜。
local composer = require("composer")
function scene:create(e)
require "Deck"
myDeck = Deck:new()
function wonGame()
print("You have won the game")
end
end
我的问题是-如何从Deck类文件中调用wonG
我正在尝试创建一个简单的类,其中包含一个成员函数,该函数可以打印出一些成员值,但是当我试图引用‘self’时会出现错误:
attempt to index global 'self' (a nil value)
下面是我想要运行的脚本:
Test = {}
function Test:new()
T = {}
setmetatable(T, self)
self.__index = self
self.Name = "Test Object"
return T
end
function Test:printName()
我有一个c++主机,在其中我使用tolua++向Lua公开了一些类。其中一个类具有一个函数,该函数应该注册来自lua的回调。因此,当C++代码需要调用Lua注册函数时,它可以调用。然而,该函数是一个表/类函数。我以前用字符串函数名(不是lua“类”的一部分)成功地做到了这一点,但我很好奇是否能够以某种方式存储Lua函数而不是函数名。
我定义我的lua类如下:
MyClass = {}
function MyClass:Create()
local obj = {}
-- copy all functions from MyClass table to this local
在我们的菜单系统中,我们使用lua块在xml中定义菜单,这些块用于菜单组件事件的回调。目前,每次调用脚本回调时,我们都会调用相当慢的lua_loadstring。我正在试着让它只发生一次,当菜单加载时。
我最初的想法是为每个菜单组件维护一个lua表,并执行以下操作以向表中添加一个新的回调函数:
//create lua code that will assign a function to our table
std::string callback = "temp." + callbackName + " = function (" + params +
我正在读programming in Lua一本书。上面说
闭包在许多情况下提供了一个有价值的工具。正如我们所看到的,它们作为诸如排序之类的高阶函数的参数是有用的。闭包对于构建其他函数的函数也是很有价值的,比如我们的newCounter示例;这种机制允许Lua程序结合来自功能世界的复杂编程技术。闭包对于回调函数也很有用。这里的一个典型示例是在常规GUI工具箱中创建按钮时发生的。当用户按下按钮时,每个按钮都有一个回调函数;您希望不同的按钮在按下时做稍微不同的事情。例如,一个数字计算器需要十个类似的按钮,每个数字一个。您可以使用这样的函数创建它们中的每一个:
function digitButto