– 作为刚学习的小白,与大家分享大亨/ 模拟类游戏常用的 OOP(面向对象程序)写法,
初次分享,也欢迎任何人提供建议。
例子:
- 大亨中,每个玩家会有各自的基地(base),其中包含了(按钮,墙壁,武器,赚取金钱的机器),
以大亨的角度来写入OOP的话,我们可以想象成一个大亨的table,包含了许多元素。
现在我们想象底下是一个模块脚本(Module Script)
Tycoon = {
主人 = {},
按钮 = {},
墙壁 = {},
武器 = {},
赚金币的机器 = {} ,
}
return Tycoon
因此Tycoon的模块脚本返回了许多其他的资料。
同样的,此文章以汽车模块为例。
Car.__index = Car – 想象Car是一个空的table, 在里面他指向了自己Car
function Car.new(model) --创建一个空的车辆数据,启用轮胎与引擎的生成 /-- 参数model为指定车辆模型
return setmetatable({
Model = model,
Engine = Engine.new(10), – 生成速度10的车
Wheels = {
Left = Wheel.new(),
Right = Wheel.new()
}
},Car)
end
return Car
- 其中我们看到了 return setmetatable({},Car) 里, table中包含了很多资料,
你可以想象我们创建了一个汽车与零件 , 然后零件的父系为 Car。 更多细节请查看资源。
– 脚本资源
汽车模块(OOP).rbxl (45.5 KB)
请先读取 readme脚本,了解更多细节
– 阅读完汽车CarModule 的模块脚本后,相信你们学了不少,
资源/参考
https://www.youtube.com/channel/UCxH4DBOEzsrpvEL1yE30lcw
全资源取自youtuber (B Ricey)
–汽车脚本原链接