【问题标题】:LOVE2d [ERROR] attempt to index global 'player' (a nil value)LOVE2d [错误] 尝试索引全局“玩家”(零值)
【发布时间】:2015-04-09 13:15:04
【问题描述】:

所以我正在玩 LOVE2d wiki 中的 Grid-Locked Player Tutorial,当我尝试运行它时遇到了这个错误。 "尝试索引全局 'player' (一个 nil 值)"

完整代码:My Code

这是导致问题的特定代码 sn-p。

if enemyFOV <= player.grid_x then
    shoot()
end

我已经查看了此站点上的其他类似问题,但似乎没有一个适用于我的问题。除了一个有使用解决方案的人

return

在 shoot() 函数之后。

所以 Stack Overflow,我的问题是,我应该怎么做才能解决这个问题?

【问题讨论】:

  • 该错误意味着全局变量 playernil 这意味着您的 love.load 函数(因为这是您创建它的位置)尚未运行(或 player 已设置为nil 别的地方。
  • 你能认出它吗?在哪里可以定义为零?那将是一个很大的帮助。 @EtanReisner
  • 除了love.load 函数之外,您链接到的代码中没有任何内容分配给它,所以不,我不能。这是所有有问题的代码吗?在运行代码时,您何时会收到错误消息?
  • 它说它发生在第 64 行-以及函数“require”和函数“xpcall”@EtanReisner 中的 Traceback 注释
  • 哦! if 块不在任何函数中。它位于顶层,并且在加载代码时正在运行。我假设它应该在 shoot 函数中?

标签: lua syntax-error love2d


【解决方案1】:

Etan Reisner 在这里得到了正确答案。给您错误的代码 sn-p 位于任何函数之外。如果你把有问题的代码移到 love.update() 里面,你的问题应该会得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 2018-11-11
    • 2014-01-26
    • 2013-06-07
    • 2020-03-08
    相关资源
    最近更新 更多