Lua 我试图对表中的值进行算术运算,结果总是出错。这是我的密码
我正在尝试对表值执行算术运算,但不断出现错误。这是我的全部代码。我基本上是试图产生单纯形噪声。我已经创建了一个多维数组(表),并试图对值执行操作,但我不断收到一个错误,表示我无法对表值执行算术。我不知道我是否必须把它转换成什么。请帮忙Lua 我试图对表中的值进行算术运算,结果总是出错。这是我的密码,lua,Lua,我正在尝试对表值执行算术运算,但不断出现错误。这是我的全部代码。我基本上是试图产生单纯形噪声。我已经创建了一个多维数组(表),并试图对值执行操作,但我不断收到一个错误,表示我无法对表值执行算术。我不知道我是否必须把它转换成什么。请帮忙 totalNoiseMap = {} function simplex_noise(width, height) simplexnoise = {} for i = 1,512 do simplexnoise[i] = {}
totalNoiseMap = {}
function simplex_noise(width, height)
simplexnoise = {}
for i = 1,512 do
simplexnoise[i] = {}
for j = 1, 512 do
simplexnoise[i][j] = 0
end
end
frequency = 5.0 / width
for x = 1, width do
for y = 1, height do
simplexnoise[x][y] = noise(x * frequency,y * frequency)
simplexnoise[x][y] = (simplexnoise[x][y] + 1) / 2
end
end
return simplexnoise
end
function noise(x, y, frequency)
return simplex_noise(x / frequency, y / frequency)
end
function generateOctavedSimplexNoise(width,height,octaves,roughness,scale)
totalnoise = {}
for i = 1,512 do
totalnoise[i] = {}
for j = 1, 512 do
totalnoise[i][j] = 0
end
end
layerFrequency = scale
layerWeight = 1
weightSum = 0
for octave = 1, octaves do
for x = 1, width do
for y = 1, height do
totalnoise[x][y] = (totalnoise[x][y] + noise(x * layerFrequency,y * layerFrequency, 2) * layerWeight)
end
end
--Increase variables with each incrementing octave
layerFrequency = layerFrequency * 2
weightSum = weightSum + layerWeight
layerWeight = layerWeight * roughness
end
return totalnoise
end
totalNoiseMap = generateOctavedSimplexNoise(512, 512, 3, 0.4, 0.005)
在这里,您可以得到表噪波(x*layerFrequency,y*layerFrequency,2)
,按标量layerWeight
将其乘以标量总噪波[x][y]
我可以想到如何将表乘以标量——应该是这样的
for i = 1,512 do
for j = 1,512 do
a[i][j] = t[i][j] * scalar
end
end
但我无法通过添加来获得您想要做的事情。假设它应该是两个表的相加
for i = 1,512 do
for j = 1,512 do
a[i][j] = b[i][j] + c[i][j]
end
end
但它只适用于相同大小的表我是否需要以某种方式转换它。我只是被卡住了。继续得到什么错误?错误是试图对表值执行算术。不要将代码放在注释中,编辑您的问题。
noise()
返回一个表,您希望得到什么noise(x*layerFrequency,y*layerFrequency,2)*layerWeight
do?
for i = 1,512 do
for j = 1,512 do
a[i][j] = b[i][j] + c[i][j]
end
end