试图调用一个空值。

出现了错误,错误信息显示 'attempt to call global youLoose (a nil value),我做错了哪里?

点赞
用户869951
用户869951

注意,collideswith 不同于 collidesWith;如果你贴出的错误信息是正确的,那么你贴出的代码与你实际使用的代码不同。可能方法真的是被称为 collidesWith(如果它是来自 sprite1 的方法,它看起来是这样的),但是你使用了 collideswith。或者,如果贴出的代码是你使用的代码,那么错误可能是 attempt to call collideswith(a nil value),因此 cute.anim[1] 不是一个 sprite1 对象,但它也不是 nil,否则错误就会不同。

当你修复了这个问题之后,你会注意到 youLoose 是在那个 for 循环后定义的,当你调用 youLoose() 的时候它还没有被定义。你需要将 local function youLoose() 函数移动到循环之前。因为循环本身不在一个函数中,而是在模块级别,它在任何后续代码之前执行,所以在循环中使用的任何函数(本地或全局)必须在循环之前定义。

请注意,“loose” 不意味着与 “lose” 相同。请查看 Grammar-monster 以了解区别。可能你在单词 “loose” 中的每个地方都应该改为 “lose”。

2014-05-18 02:33:18