展开应该属于自我的部分
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.*
命名空间,其中包含引擎提供的函数来操纵游戏对象。
我应该在游戏对象中放置什么作为 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.*
命名空间,其中包含引擎提供的函数来操纵游戏对象。