Corona SDK对于像矮人要塞这样的游戏来说足够快吗?

我想制作一个类似矮人要塞的游戏。 Corona SDK速度足够快吗?如何存储每个单独块的数据。由于我无法在Lua中创建枚举,因此如何定义块的类型?

点赞
用户2858170
用户2858170

为什么你不能在 Lua 中创建一个 enum? 只需使用一个简单的表格。

brickType = { A = 1,
              B = 2,
              C = 3,
}

myFristBrick = { weight = 500,
                 volume = 50,
                 type = brickType.C
}

你可以使用 Lua 表格建模非常复杂的数据结构。因此,存储砖块数据是你应该最不用担心的事情。

2019-03-21 12:20:14
用户1734878
用户1734878

我用这个元表来模拟枚举类型。

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) -- 输出 1
myVar = myEnumTypes['foo']['brick_C']
print (myVar) -- 输出 3
myVar = myEnumTypes['foo'][2]
print (myVar) -- 输出 'brick_B'

myVar = myEnumTypes['doo'].brick_A
print (myVar) -- 输出 nil,brick_A 不在 doo 中
myVar = myEnumTypes['doo']['brick_C']
print (myVar) -- 输出 nil,brick_C 不在 doo 中
myVar = myEnumTypes['doo'][2]
print (myVar) -- 输出 'brick_F'
2019-03-23 07:00:31