我遵循你的roguelike教程,并遇到了一个问题,我不知道如何解决。这是我第一次用Lua编码
If r.nospawn then return 0
--Attempt to index local "R" (a nil value)我问皮科-8不和服务器,他们试图帮助我,但我仍然不完全理解,我不想纠缠他们更多的问题。我在PICO-8上的文件名叫Rogue -如果这与问题有关的话。
下面是错误的图片,我收到的不和谐的评论,以及GitHub上完整代码列表的链接。
PICO-8中的错误

不和谐的评论

发布于 2022-04-04 17:00:29
我想你错过了一个简单的失败案例。也就是说,当rpot中的所有条目都被移除时会发生什么。那么local r=getrnd(rpot)应该返回null。这可能是它本身的一个错误,也就是说,总应该有一些东西可以从那里分配。
无论如何,getrnd都会失败。
function getrnd(arr)
return arr[1+flr(rnd(#arr))]
end在arr为空的情况下,您将尝试返回元素1,这将超出界限。我不知道lua,但是它可能会为您返回null,这将导致下一个问题。但这有一个简单的解决办法:
repeat
local r=getrnd(rpot)
if r
placed+=infestroom(r)
del(rpot,r)
end
until #rpot==0 or placed>maxmons[floor]https://stackoverflow.com/questions/71694114
复制相似问题