为什么这个Lua函数不能使用自己的":"标记为"local"而不会得到:
'('预计在'附近':'
也就是说,在下面的代码中工作.但是为什么我不能将"scene:createScene"函数设置为本地(因为我在尝试时得到了上述错误).
我注意到监听器功能需要在本地进行,我在故事板中有时会遇到跨场景问题.这些可以标记为本地和工作正常.
SceneBase = {}
function SceneBase:new()
local scene = Storyboard.newScene()
local function returnButtonTouch_Listener (event)
-- code here
end
function scene:createScene( event ) -- WHY CAN'T THIS BE LOCAL???
-- code here
end
return scene
end
return SceneBase
Run Code Online (Sandbox Code Playgroud)
这就是为什么函数行不能读取:
local function scene:createScene( event )
Run Code Online (Sandbox Code Playgroud) 我正在尝试从Java服务器向基于Corona的移动客户端发送推送通知.我想在通话中有自定义字段.
我正在使用以下(javapns库)
String rawJSON = "{\"aps\": {\"badge\": 10,\"alert\": \"test\",\"sound\": \"cat.caf\"},\"custom\":{\"id\":8}}";
PushNotificationPayload payload = PushNotificationPayload.fromJSON(rawJSON);
Run Code Online (Sandbox Code Playgroud)
这是我在上面发送的json:
{
"aps":{
"badge":10,
"alert":"test",
"sound":"cat.caf"
},
"custom":{
"id":8
}
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它不会到达自定义字段.
任何人都可以帮助我找一个需要发送的json的例子吗?
提前致谢 !
我不确定如何,但我们设法创建一个两个键完全相同的表.当执行表的for循环pairs并打印键和值时,我们得到:
1 true
1 true
Run Code Online (Sandbox Code Playgroud)
我们认为这可能是不同类型或类似问题,因此我们决定将其转换为json(我们使用Corona SDK和内部json模块).
结果非常惊人:
"ourTable" : { "1" : true, "1" : true }
Run Code Online (Sandbox Code Playgroud)
我们将其存储在一个文件中,以便检查的值,两个十六进制值"1"分别为31.
所以另一个测试:将json转换为lua表并且...与之前的结果相同:两个具有相同键的条目.
我以前从未见过这样的事情,说实话,我不知道如何发现和预防这种情况.我们已经使用lua&corona几年了,这是我们第一次检测到这样的东西,但它有可能发生在之前,我们没有发现.这可能导致一些令人难以置信的搞砸的结果.
Corona SDK使用的是Lua 5.1.
我们将这个表json编码存储在一个文件中.重新启动应用程序后,文件再次加载,它只包含单个条目!现在......这个表只包含"id"和boolean,这两个值完全相同,但我想知道如果值不同会发生什么,哪一个会保留?现在我想到了很多场景.
我无法重现这个问题,但我们做了什么:
tab[key] = value编辑:嗯,现在重现这个问题:
local d = {true}
d["1"]=true
for k,v in pairs(d) do
print(k,v)
end
1 true
1 true
Run Code Online (Sandbox Code Playgroud) 一个简单的问题:如何为尚未实现的函数设置原型?
我只是想这样做,因为我指的是一个不存在的功能(还).在C中,我们会做这样的事情:
int foo(int bar);
int myint = foo(1);
int foo(int bar)
{
return bar;
}
Run Code Online (Sandbox Code Playgroud)
我怎么在Lua(带电晕)这样做?
是否有一个简短的"if/then"语法可用于Lua(我专门使用Corona SDK),就像在其他一些语言中一样...特别是沿着这样的方向:
res = (a == b) ? "It worked" : "It did NOT work"
Run Code Online (Sandbox Code Playgroud) Corona中表和元表之间有什么区别?metatables有哪些类型?我如何以及在何处使用它们?使用表和元表的主要目的是什么?
我最近被指派使用Corona SDK创建一个siple游戏.游戏的主要支柱是一个简单的事件:用户应该把球放在篮子里,我应该能够处理这个事件.
这是一张更好理解的图片:

我成功地设法为篮子创造了碰撞形状,但是我对这个篮子里面的碰撞有困难.我的第一个想法如下:
使用混合绘图时,它看起来像这样:

但是有一个问题:如果我将这个形状添加到物理学中,它就不会让球落入篮子中,它也会将这个形状作为一个固体物体来处理.
所以我的问题是:我怎么能让这个自定义对象碰撞,而不会阻挡球落入它?我已经阅读了很多类似问题的论坛帖子,但没有一个得到正确答案.必须有一种方法以优雅的方式做到这一点.
还有一点需要注意:请不要建议手动检查碰撞,使用矩形交叉点,因为在这种简单的情况下它会起作用,但后来我可能需要改变篮子的形状,然后它就没用了!
我只是Corona SDK的一个新用户,我正在做一些书的练习.我尝试创建一个矩形并为其着色,但是如果我将setFillColor(255,0,0)或255放入绿色或蓝色就可以了.问题是,当我尝试混合像setFillColor(100,129,93)这样的颜色时,它只是绘制一个白色矩形.
这是我的主要内容:
rect_upperBackground = display.newRect(150, 150, 100, 50)
rect_upperBackground:setFillColor(49, 49, 49)
Run Code Online (Sandbox Code Playgroud) 我找不到问题的答案:Can you have an array as value in a lua table?
local colors = {"blue" = {0,0,1,1}, "green" = {0,1,0,1}, "red" = {1,0,0,1} , "orange" = {0.5, 0, 0.5, 1}, "black" = {0,0,0,1}, "gold" = {1, 215/255, 0, 1}}
Run Code Online (Sandbox Code Playgroud)
我使用 corona sdk 在这一行收到错误:
'}' 预计位于 '=' 附近