【发布时间】:2018-11-14 09:52:15
【问题描述】:
出于某种原因,我多年来一直被困在这个问题上。我无法弄清楚如何在不重置所有值的情况下定义 grid[i] 。我想让程序检查二维数组中的点是否已经被占用,然后它不会放置块。
radius = 10
grid = {}
while true do
for i = -radius,radius do
grid[i] = {}
for j = -radius,radius do
if math.sqrt(math.pow(i,2)+math.pow(j,2))<radius and (not grid[i][j] or grid[i][j] == 0) then
print("Placing..")
else
part:Destroy()
grid[i][j] = 0
end
end
end
end
【问题讨论】:
-
print("Placing..")后应该有grid[i][j] = 1
-
我还是没能解决这个问题。
-
grid[i] = grid[i] or {} -
math.pow(i,2)+math.pow(j,2)<math.pow(radius, 2)幂比平方根更容易计算,因此计算速度更快 :) -
还可以考虑在开头添加
local pow = math.pow,然后只使用pow。与您经常使用的其他功能相同。这减少了表查找并使代码更快。
标签: arrays loops lua nested 2d