游戏学习的一些经历——框架篇(一)

对于游戏的一些活动,应该尽量减少重复性的劳动。(lua语言)
有一下几个思路:

  1. 可以把一个活动分为几个文件,不要全部放到一个文件里,这会使得代码很臃肿,每个文件都有自己的功能,只需要把这个几个文件放到一个文件夹中就可以了。
  2. 我们可以定义一个文件,里面用来定义每个活动的id,方便添加修改和查询。
  3. 很多的活动其实都大相径庭,我们可以用一个基类作为模板,其他的活动只要基于这个模板进行修改就可以了。
  4. 这个基类中我们可以定义一些函数,通常点的就比如虚函数,或者说抽象函数,定义一个空的函数,留给后面的子类去重载。其实,我们可以定义一切基础函数,适合所有的规则,能够通用。还可以定义一个注册函数(比如注册一些函数方便客户端调用),通过活动的id获取活动的类,再将需要注册的函数以键值对的形式保存在活动类中专门的对象中。
--通用函数
function eventBase:Init()
			self.c2sFun ={}
end
--注册函数
function eventBase:RegC2sFun(szName,fun)
			local event = EventBase:tbEventBases(self.eventId);
			event.c2sFun[szName] = fun;
end
  1. 还可以注册一些活动通用的函数,比如活动开始函数,活动结束函数等等。
  2. 可以将活动的基类保存在tbEventBases[0]位,后续的基于衍生。
  3. 那么如何快速注册活动呢,其实定义一个通用的函数,我们创建一个活动和获取这个活动都只需要传递 活动的名称和活动的id ,然后这个函数会去判断tbEventBases里面有没有对于id的活动,如果有,则直接返回,如果没有,则根据基类创建一个新类,对其进行相应的初始化,再保存到tbEventBases当中,这样,获取活动和创建活动都变得很方便了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值