Corona SDK 对于矮人要塞之类的游戏是否足够快?
Is Corona SDK fast enough for a Dwarf Fortress like game?
我想做一个矮人要塞之类的游戏。 Corona SDK 会足够快吗?我将如何存储每个单独块的数据。由于我无法在 Lua 中进行枚举,我将如何定义块的类型?
为什么不能在 Lua 中进行枚举?只需使用简单的 table.
brickType = { A = 1,
B = 2,
C = 3,
}
myFristBrick = { weight = 500,
volume = 50,
type = brickType.C
}
您可以使用 Lua table 为非常复杂的数据结构建模。因此,存储砖块数据是您最不应该关心的问题。
我将其与元表一起使用,以模拟枚举类型
local enumType_MT = {
__newindex = function (t, k, v)
if t [k] then
print ('redeclaring enum type ' .. k .. ' not permited')
else
rawset (t, k, {})
local c
for c = 1, #v do
rawset (t [k], v[c], c)
rawset (t[k], c, v[c])
end
end
end
}
local myEnumTypes = {}
setmetatable( myEnumTypes, enumType_MT )
myEnumTypes ['foo'] = {'brick_A', 'brick_B', 'brick_C'}
myEnumTypes ['doo'] = {'brick_E', 'brick_F', 'brick_G'}
myVar = myEnumTypes['foo'].brick_A
print (myVar) -- outputs 1
myVar = myEnumTypes['foo']['brick_C']
print (myVar) -- outputs 3
myVar = myEnumTypes['foo'][2]
print (myVar) -- outputs 'brick_B'
myVar = myEnumTypes['doo'].brick_A
print (myVar) -- outputs nil as brick_A not in doo
myVar = myEnumTypes['doo']['brick_C']
print (myVar) -- outputs nil as brick_C not in doo
myVar = myEnumTypes['doo'][2]
print (myVar) -- outputs 'brick_F'
我想做一个矮人要塞之类的游戏。 Corona SDK 会足够快吗?我将如何存储每个单独块的数据。由于我无法在 Lua 中进行枚举,我将如何定义块的类型?
为什么不能在 Lua 中进行枚举?只需使用简单的 table.
brickType = { A = 1,
B = 2,
C = 3,
}
myFristBrick = { weight = 500,
volume = 50,
type = brickType.C
}
您可以使用 Lua table 为非常复杂的数据结构建模。因此,存储砖块数据是您最不应该关心的问题。
我将其与元表一起使用,以模拟枚举类型
local enumType_MT = {
__newindex = function (t, k, v)
if t [k] then
print ('redeclaring enum type ' .. k .. ' not permited')
else
rawset (t, k, {})
local c
for c = 1, #v do
rawset (t [k], v[c], c)
rawset (t[k], c, v[c])
end
end
end
}
local myEnumTypes = {}
setmetatable( myEnumTypes, enumType_MT )
myEnumTypes ['foo'] = {'brick_A', 'brick_B', 'brick_C'}
myEnumTypes ['doo'] = {'brick_E', 'brick_F', 'brick_G'}
myVar = myEnumTypes['foo'].brick_A
print (myVar) -- outputs 1
myVar = myEnumTypes['foo']['brick_C']
print (myVar) -- outputs 3
myVar = myEnumTypes['foo'][2]
print (myVar) -- outputs 'brick_B'
myVar = myEnumTypes['doo'].brick_A
print (myVar) -- outputs nil as brick_A not in doo
myVar = myEnumTypes['doo']['brick_C']
print (myVar) -- outputs nil as brick_C not in doo
myVar = myEnumTypes['doo'][2]
print (myVar) -- outputs 'brick_F'