51Testing软件测试论坛
标题:
游戏测试--lua修改为面向对象
[打印本页]
作者:
jiazurongyu
时间:
2019-12-27 13:32
标题:
游戏测试--lua修改为面向对象
lua负责游戏客户端功能的逻辑拼接,目前部分服务器用C系的也用lua做为很好的关联性语言。
但是lua本身的函数式编程,让开发一些工具和读actor模式等程序代码时会比较吃力。
这里推荐使用:引用的方式。
--获取当前的格式时间 utils/dateUtils.lua
function getDateNow()
local nowTime = os.date("%Y-%m-%d %H:%M:%S", os.time())
return nowTime
end
复制代码
比如上面这个,如果其他文件要调用的话
可以这么写
require("utils.dateUtils")
local string = string; --变局部变量
print(string.format(getDateNow()))
复制代码
但是这个时典型的函数式编程。
要面向对象的模式 先实例在使用就需要对
getDateNow()函数进行改造
local DateU = {}
function DateU:New()
local obj ={}
self.__index = self --绑定obj后面对象到self
setmetatable(obj,self) --设置元对象
return obj
end
function DateU:getDateNow()
local nowTime = os.date("%Y-%m-%d %H:%M:%S", os.time())
-- print(nowTime)
return nowTime
end
return DateU --需要返回才能实例化
复制代码
然后在引用后调用的文件内部修改
local DateTime = require("utils.dateUtils")
local date = DateTime:New()
print(string.format(date:getDateNow()))--需要注意一定是通过:引用,因为前面是:声明的
复制代码
结果就出来一样的了。通过了解这种的结构,提升对于游戏测试读代码的能力。
作者:
lysslcy
时间:
2020-9-27 11:37
这一两年断断续续看一些lua基础知识
大部分还是一头雾水,感觉好难啊
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2