jiazurongyu 发表于 2019-12-27 13:32:09

游戏测试--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:57

这一两年断断续续看一些lua基础知识
大部分还是一头雾水,感觉好难啊
页: [1]
查看完整版本: 游戏测试--lua修改为面向对象