我在
Python中编写了大部分编程,并且在大多数项目中使用OOP实践.我最近开始看看love2D游戏库和引擎.我设法配置了一些东西,然后考虑制作一个GameObject类.但是,这是什么? Lua没有课程!它有表格,元表和其他类似的东西.即使在多次阅读文档后,我仍然遇到很多麻烦.
请考虑以下示例:
catClass = {} catClass.__index = catClass catClass.type = "Cat" function catClass.create(name) local obj = setMetatable({},catClass) obj.name = name return obj end cat1 = catClass.create("Fluffy") print(cat1.type) cat2 = catClass.create("Meowth") cat1.type = "Dog" print(cat1.type) print(cat2.type) print(catClass.type)
输出如下:
Cat Dog Cat Cat
我不明白为什么将cat1.type更改为“Dog”不会导致cat2和catClass发生相同的变化.设置元表是否会创建表的副本?谷歌没有提供有用的结果(很少有很好的Lua解释).
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。