你如何根据条件在Lua中将整个函数命名为false?例:
if homeruns == 1 or homeruns == 2
then function BabeRuth() = false
end
Run Code Online (Sandbox Code Playgroud) 当我尝试执行以下代码时,它给了我这个错误:
尝试索引字段'other'(零值)
但我不知道为什么.
代码:
function onCollision(event)
if event.phase == "began" then
if event.other.star == "star" then
score = score + 1
elseif event.other.mine1 == "mine1" then
if jet.collided == false then
timer.cancel(tmr)
jet.collided = true
jet.bodyType = "static"
explode()
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)
有没有人知道如何使用Lua套接字用于Corona sdk,我想使用设备将API传递到服务器并将数据从服务器接收回设备.我只找到http://appcodingeasy.com/Gideros-Mobile/Using-LuaSocket-in-Gideros,它适用于Gideros SDK.
任何帮助,将不胜感激.谢谢.
我试图比较两个字符串,其中第一个字符串是数组的单个元素,第二个数组只是一个常规字符串.出于某种原因,这种比较并非如此.希望有人可以指出我正确的方向!
empty = " "
pawn = " Pawn "
rook = " Rook "
knight = " Knight "
bishop = " Bishop "
queen = " Queen "
king = " King "
emptyspot = {}
for i = 1, 8 do
emptyspot[i] = {}
for j = 1, 8 do
emptyspot[i][j] = " / "
end
end
function chessBoard()
io.write("\n\nWelcome to LuaChess!\n\n")
io.write(" 1 2 3 4 5 6 7 8 \n")
io.write(" *************************************************************************\n")
io.write(" *".. empty …Run Code Online (Sandbox Code Playgroud) 我还在玩lua模块,我发现了以下"有趣"的问题,这取决于你在模块中创建方法/函数的方式.请注意名为test_suite.lua的文件中的以下代码:
local mtests = {} -- public interface
function mtests:create_widget(arg1)
print(arg1)
-- does something
assert(condition)
print("TEST PASSED")
end
return mtests
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,无论我在调用create_widget()时传入什么,arg1总是为nil.但是,如果我将函数的定义更改为如下所示:
function mtests.create_widget(arg1) -- notice the period instead of colon
print(arg1)
-- does something
assert(condition)
print("TEST PASSED")
end
Run Code Online (Sandbox Code Playgroud)
然后,系统正确显示arg1.
这就是我调用方法的方法:
execute_test.lua
local x = require "test_suite"
x.create_widget(widgetname)
Run Code Online (Sandbox Code Playgroud)
你能告诉我有什么区别吗?我一直在阅读:http://lua-users.org/wiki/ModuleDefinition
但我没有遇到过任何可以解释这个问题的事.谢谢.
与某些语言一样,您可以添加括号来指定代码.我能在Lua中做些什么来分割我的代码部分,类似于下面的例子吗?
{
//Code
}
Run Code Online (Sandbox Code Playgroud) 我需要在Lua中排序和未指定数量的数字.例如,如果我有数字15,21,31,50,32,11,11.我需要lua来排序它们,所以第一个是最大的像这样:50,32,31,21,15,11,11.
最简单的方法是什么?记住,它必须使用未指定的数字.谢谢!
所以我传递一个包含字段的参数.它将永远有一些领域,有些可能没有.
例如
field = {
Name ={ x=0.9833, y=2, h=0.2, w=3.12, f="Times Roman"},
Suite ={ x=0.6933, y=1.74, h=0.2, w=0.5867}
}
function do_it_with(parm)
local height=parm.h -- never fails
local font=parm.f -- errors out if f not specified.
-- more stuff --
end
do_it_with(field.Name) -- just fine
do_it_with(field.Suite) -- "attempt to index field 'f' (a nil value)"
Run Code Online (Sandbox Code Playgroud)
哪个我不明白.首先,为什么字体不能变成零?第二,我以为我可以做到
local font=parm.f or "Arial"
Run Code Online (Sandbox Code Playgroud)
但这似乎是失败的同样的错误.所以现在我正在做
if (type(field.f) ~= "string") then field.f = "Arial" end
Run Code Online (Sandbox Code Playgroud)
哪个有效,但它/丑陋/
我正在寻找一种方法来找出哪个值最接近表中的x并返回该值.
让我们假设,一秒钟,X是x = 15,我们有4个值{12,190,1,18}的表,我如何使它在这种情况下返回第一个键和值?