Class 如何在Lua(Love2D)中定义库中的类?

Class 如何在Lua(Love2D)中定义库中的类?,class,module,lua,love2d,Class,Module,Lua,Love2d,我尝试在一个名为“basic.lua”的文件(名为“Point”)上定义我的类,并尝试在文件“main.lua”上实现它,但我一直遇到以下错误: Error Syntax error: basic.lua:3: '(' expected near 'Point' Traceback [C]: at 0x7ffc269728f0 [C]: in function 'require' main.lua:3: in function 'load' [C]: in function 'xpca

我尝试在一个名为“basic.lua”的文件(名为“Point”)上定义我的类,并尝试在文件“main.lua”上实现它,但我一直遇到以下错误:

Error

Syntax error: basic.lua:3: '(' expected near 'Point'



Traceback

[C]: at 0x7ffc269728f0
[C]: in function 'require'
main.lua:3: in function 'load'
[C]: in function 'xpcall'
[C]: in function 'xpcall'
这是我的“basic.lua”代码

这是我的“main.lua”代码


我一直在为Lua的类苦苦挣扎,希望能得到任何帮助。

您的模块返回一个表,但在该表构造函数中,您尝试定义一个全局函数
。不能创建这样的表字段。这是无效的语法

return { function a() end }
使用

相反

PlayerAcceleration.AsString()
这是行不通的。使用
PlayerAcceleration.AsString(PlayerAcceleration)
PlayerAcceleration:AsString()

否则,
AsString
的参数
self
将为零,从而在尝试将其索引到函数体时出错

“{x:+self.x+”,y:+self.y+”}”
不是在Lua中连接字符串的方式。使用Lua的连接运算符
而不是
+


此外,您正在调用
Basic.Point:new
,它不存在。请做一个Lua初学者教程,在你继续尝试实现类之前阅读Lua中的编程和Lua参考手册。

是的,我在起草这篇文章时注意到,我没有在“PlayerAcceleration”中添加“AsString”,所以我只是把它扔到了其他编程语言中(带“.”)由于我没有调试“AsString”方法、连接和构造函数,因为在定义类之前代码就失败了,所以我甚至没有意识到它们是个问题。不过还是要谢谢你,看来我学的东西比我原来想学的要多得多!
return { function a() end }
return { a = function() end }
PlayerAcceleration.AsString()