/ /ローカル 'g2'(関数値)のインデックスを作成しようとする - lua

ローカル 'g2'(関数値)を索引付けしようとする - lua

私が使っているプログラムは、 酸化剤、a フラクタルflam3 編集者。基本的には、これらの美しいデジタルアート作品をアニメーション化するために、私は .lua スクリプト。

私が使用している1つのスクリプトは、 algorhythm.lua 機能する他のスクリプトを呼び出します。 1つは制御スクリプトです cs_temp.lua もう一つは utils.lua。それは私がエラーを得る場所です。

エラーとして表示される特定の行は、 1399次のコードの2行目。

function alignx(g1,g2)
local x1,x2 = #g1.xforms,#g2.xforms
-- Align xforms for final-x, pad if necessary
local fx1,fx2 = 0,0

for x=1,x1 do
if g1.xforms[x].is_finalxform == "Y" then fx1 = x end
end
for x=1,x2 do
if g2.xforms[x].is_finalxform == "Y" then fx2 = x end
end
if fx1>0 or fx2>0 then

-- case 1: both have finalx - reorder g2

if fx1>0 and fx2>0 and fx1~=fx2 then
print("case 1")
if fx1>x2 then              -- pad g2 with sufficient xforms
for i=1,math.abs(fx1-x2) do
table.insert(g2.xforms,newx())
print("adding xform to genome 2")
end
x2 = #g2.xforms
end
x2ind = agen(x2,1,x2)
x2ind[fx2] = fx1
x2ind[fx1] = fx2
xforms2 = ordx(g2.xforms,x2ind)
g2.xforms = xforms2
end

-- case 2: g1 has finalx but not g2 - xpad and reorder g2
if fx1>0 and fx2==0 then
print("case 2")             -- pad g2 with final xform
local xtmp = newx(1)
xtmp.is_finalxform = "Y"
xtmp.symmetry = 1
table.insert(g2.xforms,clone_genome(xtmp))
print("adding final xform to genome 2")
x2 = #g2.xforms
fx2 = x2
if fx1>x2 then              -- pad g2 with sufficient xforms
for i=1,math.abs(fx1-x2) do
table.insert(g2.xforms,newx())
print("adding xform to genome 2")
end
x2 = #g2.xforms
end
x2ind = agen(x2,1,x2)
x2ind[fx2] = fx1
x2ind[fx1] = fx2
xforms2 = ordx(g2.xforms,x2ind)
g2.xforms = xforms2
end

-- case 3: g2 has finalx but not g1 - xpad g1 and reorder g2
if fx1==0 and fx2>0 then
print("case 3")
local xtmp = newx(1)
xtmp.is_finalxform = "Y"
xtmp.symmetry = 1
table.insert(g1.xforms,clone_genome(xtmp))
print("adding final xform to genome 1")
x1 = #g1.xforms
fx1 = x1
if fx1>x2 then              -- pad g2 with sufficient xforms
for i=1,math.abs(fx1-x2) do
table.insert(g2.xforms,newx())
print("adding xform to genome 2")
end
x2 = #g2.xforms
end
x2ind = agen(x2,1,x2)
x2ind[fx2] = fx1
x2ind[fx1] = fx2
xforms2 = ordx(g2.xforms,x2ind)
g2.xforms = xforms2
end
end
end

私はそれをすり抜けたいと思っていますが、できるだけ具体的にしたいと思っていました。

回答:

回答№1の場合は3

あなたの質問(依然として不明)に従って、次の行が問題の1つです:

local x1,x2 = #g1.xforms,#g2.xforms

エラー インデックス作成を試みるルア あなたの g2.xforms テーブルとして初期化する必要があります。 g2 テーブルになる。

コード全体をチェックし、どこに定義していればトレースしてください g2 あなたのプログラムがテーブルの代わりに関数の変数としてそれを解釈しているからです。