首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在pico-8中修复这个lua运行时错误?

如何在pico-8中修复这个lua运行时错误?
EN

Stack Overflow用户
提问于 2022-03-31 14:14:52
回答 1查看 167关注 0票数 1

我遵循你的roguelike教程,并遇到了一个问题,我不知道如何解决。这是我第一次用Lua编码

代码语言:javascript
复制
If r.nospawn then return 0

--Attempt to index local "R" (a nil value)

我问皮科-8不和服务器,他们试图帮助我,但我仍然不完全理解,我不想纠缠他们更多的问题。我在PICO-8上的文件名叫Rogue -如果这与问题有关的话。

下面是错误的图片,我收到的不和谐的评论,以及GitHub上完整代码列表的链接。

PICO-8中的错误

不和谐的评论

Github码

EN

回答 1

Stack Overflow用户

发布于 2022-04-04 17:00:29

我想你错过了一个简单的失败案例。也就是说,当rpot中的所有条目都被移除时会发生什么。那么local r=getrnd(rpot)应该返回null。这可能是它本身的一个错误,也就是说,总应该有一些东西可以从那里分配。

无论如何,getrnd都会失败。

代码语言:javascript
复制
function getrnd(arr)
 return arr[1+flr(rnd(#arr))]
end

在arr为空的情况下,您将尝试返回元素1,这将超出界限。我不知道lua,但是它可能会为您返回null,这将导致下一个问题。但这有一个简单的解决办法:

代码语言:javascript
复制
repeat
  local r=getrnd(rpot)
  if r
    placed+=infestroom(r)
    del(rpot,r)
  end
 until #rpot==0 or placed>maxmons[floor]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71694114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档