在遇到一些问题后,我现在正在使用 LUA 中间类库,但我似乎无法弄清楚情况。
说我有我的课:编辑:有一个错字:这是实际的功能
require "middleclass"
weaponCanon2 = class("weaponCanon2")
function weaponCanon2:onWeaponCollision(event)
if (event.phase == "began") then
if (event.other.name ~= "ground") then
self.canonBall.inAir = false
end
end
end
function weaponCanon2:initialize(atX, atY, inGroup)
self.name = "some value"
self.someObject:addEventListener("touch", **weaponCanon2.onWeaponCollision**)
...
end
Run Code Online (Sandbox Code Playgroud)
当我这样做时,上面示例中的每个变量(例如 self.name)现在都为零。我相信这是因为我的功能是:
function weaponCanon2:onWeaponCollision(event)
...
end
Run Code Online (Sandbox Code Playgroud)
然后设置像 self.collisionEvent = WeaponCanon2.onWeaponCollision 这样的碰撞事件变量不是一回事。我不是 100% 确定 : 和 . 运营商是在 LUA 方面,但这些给了我不同的问题。
现在另一个例子是我有一个重置功能。计时器关闭,然后调用重置功能。如果我这样做:
timer.performWithDelay(100, weaponCanon2.resetShot, 1)
Run Code Online (Sandbox Code Playgroud)
然后在 100 毫秒内它会调用 WeaponCAnon2.resetShot 1 次。当它这样做时,我所有的 self.name 等变量都为零。现在,如果我创建我的班级:
require("weaponCanon2")
local canon = weaponCanon2:new("someName")
canon:saveInstance(canon)
Run Code Online (Sandbox Code Playgroud)
然后回到我的类文件中:
function saveInstance(value)
self.instance …Run Code Online (Sandbox Code Playgroud) 试图找到一种在Lua中进行base32编码的方法,特别是针对Corona SDK。
我找到了这个库:
https://github.com/b4ldr/nselib/blob/master/base32.lua
但它似乎需要一个不随 Corona SDK 一起提供的“bin”库,而且我无法在网络上的任何地方找到。
那么,有人知道如何修复“bin”依赖项或另一个与 Corona SDK 一起使用的 base32 库吗?
这是我的代码
ModuleName.FunctionName.VariableName
Run Code Online (Sandbox Code Playgroud)
我想知道这是否适用,我们都知道要在另一个模块中加载函数,您必须使用以下代码:
ModuleName.FunctionName
Run Code Online (Sandbox Code Playgroud)
我想知道我给定的代码是否适用。
我正在用 Corona/Lua 开发一个游戏,并实现一个名为“Item”的类,它代表游戏中的武器、盔甲、护身符等。我是面向对象的 Lua 的新手。
创建类的新实例后,我发现设置对象的某些属性似乎是在类元表中设置它们,而不是在对象本身中。
这是类和构造函数:
local Item = {
name = nil,
itemType = nil,
scarcity = "basic",
baseDamage = 0, -- Bow only
bonuses = {
damageBonus = 0,
speedBonus = 0,
critBonus = 0,
dropBonus = 0,
rechargeBonus = 0,
xpBonus = 0
}
}
-- Creates a simple blank instance of the Item class.
function Item:new(o)
local item = o or {}
setmetatable(item, self)
self.__index = self
return item
end
Run Code Online (Sandbox Code Playgroud)
现在假设我基于这个原型创建了两个对象:
local bow = Item:new() …Run Code Online (Sandbox Code Playgroud) 我有一个关于用Corona/Lua分层图像/按钮的问题.如果我在另一个按钮上创建一个按钮然后单击它,则会触发两个按钮的事件.我该如何防止这种情况?
谢谢,Elliot Bonneville
编辑:这是我创建按钮的方式:
button1 = display.newImage("button1.png")
button1:addEventListener("tap", Button1Call)
button2 = display.newImage("button2.png")
button2:addEventListener("tap", Button2Call)
Run Code Online (Sandbox Code Playgroud) 像其他人一样,我正在冒险进入移动应用程序开发,我正在寻找不同的框架/语言.对我来说最吸引人的是Phonegap,Corona SDK和Monotouch.目标C似乎有点太低了.我很长时间没有做过记忆管理,我也不想重温那段经历.但如果我需要去满足客户的需求,我会去那里.
在这种情况下,客户端需要iOS应用中的位置感知通知.
用户故事是这样的:用户在城外散步.她把她的iPhone放在口袋里,正在通过iTunes听音乐.当她走进她当地的商场时,我的应用程序(在后台运行)检测到她在她银行的一个分支附近.我的应用程序也知道用户在银行有一些差事.因此,我的应用程序会中断当前正在播放的iTunes曲目,播放通知声音并在屏幕上显示通知文本,告诉用户附近有一个银行办公室,并且她现在可能想要执行该银行差事.
这可以通过Phonegap,Corona SDK或Monotouch完成吗?
geolocation xamarin.ios uilocalnotification coronasdk cordova
好的,所以我对以下Lua代码有一个奇怪的问题:
function quantizeNumber(i, step)
local d = i / step
d = round(d, 0)
return d*step
end
bar = {1, 2, 3, 4, 5}
local objects = {}
local foo = #bar * 3
for i=1, #foo do
objects[i] = bar[quantizeNumber(i, 3)]
end
print(#fontObjects)
Run Code Online (Sandbox Code Playgroud)
运行此代码后,对象的长度应为15,对吧?但不,这是4.这是如何工作的,我错过了什么?
谢谢,Elliot Bonneville.
我不确定问题出在哪里.谁知道为什么?
function check(board, color, row, col)
--if same color, change tile to "o"
if board[row][col] == color then -- attempt to index nil?
board[row][col] = "o"
count = count + 1
return "o"
end
return
Run Code Online (Sandbox Code Playgroud)
结束
我正在从SVG文件中读取矩形的位置和旋转,该文件具有以下格式的矩阵:
<rect transform="matrix(1.02414 -0.133308 0.122628 0.942091 190.767 780.999)" width="122" height="20"/>
Run Code Online (Sandbox Code Playgroud)
现在我正试图将这些值解析成Lua以用这样的Corona和物理画出,但它们部分地出现了错误,并且在我目前的半猜测方法中也常常是NAN.我需要做什么才能将上面的矩阵转换为正确的Lua旋转度?
到目前为止我所拥有的是(值数组是SVG顺序的矩阵值).谢谢!
local x = values[5]; local y = values[6]
local rotation = math.acos(values[1])
if values[2] < 0 then rotation = -rotation end
rotation = math.floor( math.deg(rotation) )
rotation = rotation % 360
app.spritesHandler:createBar( math.floor(x), math.floor(y), rotation )
Run Code Online (Sandbox Code Playgroud)
