展开应该属于自我的部分

Defold what should be part of self

我应该在游戏对象中放置什么作为 self 的字段和方法? 我应该把位置和速度作为场吗?我应该把什么方法放在自己身上? ob 的字段应该是什么? 我应该把速度和位置设置为

self.velocity = vmath.vector3()

或类似

go.velocity = vmath.vector3()

self 对象是 Lua 脚本实例值的用户数据存储。你放在那里完全取决于你。在 self 中存储值的好处是 self 对象被传递给脚本的所有生命周期函数(init、final、update、on_input、on_message , on_reload).这意味着您可以快速访问所有函数中的变量。

在 self 中存储速度是一个很好的例子,说明您可能希望在脚本的不同位置访问和修改某些内容。例如,在按下按钮时将速度设置为 on_input 中的某个值,然后在更新中使用相同的速度值来移动对象。

go.velocity = vmath.vector3()

这样不好。你在那里做的是将变量 velocity 分配给全局可访问的 go.* 命名空间,其中包含引擎提供的函数来操纵游戏对象。