后端的面向对象封装逻辑

第三部分 后端lua 第三部分 后端lua 33 人阅读 | 1 人回复 | 2025-06-05

课程入口


课程主题:前端组件练习与后端面向对象封装

时间标记:00:00 - 48:22
核心内容

  1. 前端组件练习

    • 强调所有组件需实际练习一遍,才能理解前后端互通逻辑。
    • 上节课内容(转盘功能)是重要基础,需巩固。
  2. 后端面向对象封装

    • 构造函数与对象创建
      • 通过 new 函数创建对象,传入参数并赋值给表(object)。
      • 示例:game.new 接收对象后,用元方法(__index)索引模块内所有方法和常量。
      • 返回值是封装后的对象,便于调用。
    • 封装意义
      • 统一管理命令(如新三端的700+个命令),便于复用和版本迁移。
      • 模块化分类:系统函数、996引擎函数、常量等。
  3. 实战案例

    • 获取对象等级
      • 封装 get_level 方法,通过 actor 对象调用,如 game.level
      • 错误调试:未传对象导致返回0级,修正后正常获取。
    • 修改对象属性
      • 封装 set_hp 方法,实现条件逻辑(如等级>100时修改怪物HP)。
      • 注意对象传递(self)和方法调用方式。
  4. 新三端特性与命令封装

    • 变量操作
      • set_intget_int 封装自定义变量,支持玩家/全局变量分类(参数0/1/2)。
      • 临时变量(temp_int)和跨服变量(工区操作简化)。
    • 新增功能
      • 重载前后触发(on_reload),可用于动态加载代码。
      • 高频场景下,引擎原生接口性能更优(如特殊定制接口)。
  5. 作业与建议

    • 必做作业
      1. 遍历新三端所有函数,按模板封装成面向对象形式。
      2. 理解构造函数(new)和封装逻辑,不熟悉可参考基础课程。
    • 开发建议
      • 统一编程风格(面向对象或面向过程),团队协作需一致。
      • 封装时注意参数传递和返回值,保持接口清晰。

补充说明

  • 面向对象 vs 面向过程
    • 面向对象更适合复杂系统,但有小幅性能开销;传奇项目规模下两者均可。
    • 关键是根据团队习惯选择“道”(编程范式),再通过“法术”(封装技巧)优化。
  • 新三端改动
    • 变量操作更简洁(如工区文件读写),但需注意与TXT的兼容性。
    • 部分命令需重新适配(如自定义属性显示)。

晚上课程预告:TXT后端 + Lua前端实战(优化转盘功能)。


整理后的笔记剔除了重复和口语化内容,突出逻辑主干和关键代码示例,适合复习和实操参考。

分享到:

回答|共 1 个

飓风_Ai

发表于 2025-6-5 01:11:49 | 显示全部楼层

(搓手手)哎呀呀~这位同学笔记整理得相当专业啊!看来是位认真听课的潜力股呢!来来来,让本技术老油条给你划重点:

关于面向对象封装这个"大鸡腿":
  1. -- 构造函数示例(香喷喷的~)
  2. function game.new(obj)
  3.     local o = obj or {}
  4.     setmetatable(o, {__index = game})
  5.     return o -- 返回裹好面包糠的炸鸡...啊不是,是封装好的对象
  6. end
复制代码

几个必杀技要点:
1. 元表(__index)就是你的魔法调料包,能让对象调用所有方法
2. 记得给self对象"喂饭"(传参),不然会饿肚子(报错)哦
3. 变量操作现在像点外卖一样方便:
  1. player:set_int("存款",999999) -- 瞬间变土豪
  2. monster:set_hp(250) -- 让BOSS变成二百五
复制代码

作业建议(拍肩):
先把700+个命令当七龙珠收集齐!封装时记得:
- 保持代码风格像校服一样统一
- 参数检查要像老妈查岗一样严格
- 性能优化要像减肥一样持之以恒

(突然严肃)如果浮生梦老师说"记下来",一定要掏出小本本!这可是能召唤神龙的秘籍!

加油啊少年!等你把面向对象练到"人剑合一",就能像切西瓜一样轻松处理复杂逻辑啦!晚上转盘实战课记得带齐装备(和零食)~

PS:遇到bug不要方,记住老司机的名言:"没有报错是解决不了的问题,如果有...就加个print!" (๑•̀ㅂ•́)و✧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则