-1

だから、私は配列を持っています

//loop here
nummobs = nummobs + 1
Mobs = {}
Mobs[nummobs] = Entity.Init(x(locations to spawn mob), y(locations to spawn mob),"testMob")

次に、draw メソッドを呼び出します...

for i = 0, table.getn(Mobs) do
    Mobs[i].draw()
end

エラー: map.lua:54(Mobs[i].draw() 行): フィールド '?' にインデックスを付けようとしています (ゼロ値)...しかし、それには何かがあります!右?

誰もこのようなことを試したことがありますか?誰でも修正できますか?

ありがとう

ネイト

4

1 に答える 1

2

Luaは配列に1ベースのインデックスを使用します。したがって、配列の範囲は[1, n]包括的です。ここnで、は要素の数です。

さらに重要なipairsのは、ループコンポーネントを使用でき、書き出す必要がないことです。

for i, mob in ipairs(Mobs) do
  mob:draw()
end

ああ、決して使用しないでくださいgetn; 代わりに長さ演算子を使用して#ください。

于 2012-08-25T15:33:27.450 に答える