我为你们提出了一个新的问题,我想知道你们是否能够在Lua内做出enumartions,我不确定这是否是正确的名称,我能解释的最佳方式就是如果我展示你是一个使用PAWN的例子(如果你知道一种C类型的语言就有意义了。)
#define MAX_SPIDERS 1000
new spawnedSpiders;
enum _spiderData {
spiderX,
spiderY,
bool:spiderDead
}
new SpiderData[MAX_SPIDERS][_spiderData];
stock SpawnSpider(x, y)
{
spawnedSpiders++;
new thisId = spawnedSpiders;
SpiderData[thisId][spiderX] = x;
SpiderData[thisId][spiderY] = y;
SpiderData[thisId][spiderDead] = false;
return thisId;
}
这就是它在PAWN中的样子,但是我不知道怎么在Lua中这样做......这就是我到目前为止所做的。
local spawnedSpiders = {x, y, dead}
local spawnCount = 0
function spider.spawn(tilex, tiley)
spawnCount = spawnCount + 1
local thisId = spawnCount
spawnedSpiders[thisId].x = tilex
spawnedSpiders[thisId].y = tiley
spawnedSpiders[thisId].dead = false
return thisId
end
但显然它会出错,你们中有谁知道这样做的正确方法吗?谢谢!
答案 0 :(得分:4)
我不知道PAWN,但我认为这就是你的意思:
local spawnedSpiders = {}
function spawn(tilex, tiley)
local spiderData = {x = tilex, y = tiley, dead = false}
spawnedSpiders[#spawnedSpiders + 1] = spiderData
return #spawnedSpiders
end
给它一个测试:
spawn("first", "hello")
spawn("second", "world")
print(spawnedSpiders[1].x, spawnedSpiders[1].y)
输出:first hello
答案 1 :(得分:4)
这样的东西?
local spawnedSpiders = {}
local spawnCount = 0
function spawn_spider(tilex, tiley)
spawnCount = spawnCount + 1
spawnedSpiders[spawnCount] = {
x = tilex,
y = tiley,
dead = false,
}
return spawnCount
end
编辑:俞昊比我快:)