游戏开发
文章平均质量分 88
酱油棍
这个作者很懒,什么都没留下…
展开
-
再谈解释器模式——基于UI动画框架
接上文,继续讨论UI动画的框架部分,并对不属于“解释器模式”的编译过程进行分析。1. 词法分析原创 2019-10-15 19:57:33 · 174 阅读 · 0 评论 -
闲谈解释器模式——基于UI动画框架
本文及后续的几篇博文将围绕UI动画框架的“框架”来讨论。就让我们从配置开始说起吧。原创 2019-10-20 08:27:53 · 232 阅读 · 0 评论 -
闲谈设计模式——基于UI动画框架
CEGUI是一个C++实现的面向对象的开源GUI库,使用CEGUI开发界面的大型RPG游戏已有不少。几年来,我参与过3个MMORPG项目,都是用CEGUI开发游戏界面。在产品的不断迭代过程中,“方便快捷地实现UI动画”一直都是一种强烈的功能性需求,比如:当玩家经验累积足够之后,需要一个跳动的箭头指向技能按钮,以提示玩家可以升级技能当农场的菜成熟之后,需要一个特效在菜品上面闪烁,以提示玩...原创 2019-10-15 19:24:03 · 263 阅读 · 0 评论 -
Lua按编号拼接字符串
本文接《C++按编号拼接字符串》,给出Lua版本,具体就不详述了。直接上代码。1. 简单拼接function sprintf_x(fmt, ...) local args = {} local i = 1 local xfmt = string.gsub(fmt, "%%%s*(%d+)", function(n) ...原创 2019-10-12 22:16:33 · 992 阅读 · 0 评论 -
C++按编号拼接字符串
1. 前言 C/C++中用sprintf格式化拼接字符串是惯用手法,比如:char buf[1024];sprintf_s(buf, _countof(buf), "学%s,从%s到%s,只需%d天", "C++", "入门", "放弃", 21);大家都用烂了。相信也有人手误,写过这样的代码:char buf[1024];sprintf_s(buf, _countof(buf),...原创 2019-10-12 21:42:35 · 719 阅读 · 0 评论 -
MMORPG服务器的业务钩子
很多MMORPG类游戏的开发都使用了动态语言,比如lua、python等,集成动态语言最明显的好处是可以热更新,在日常维护中,经常需要修正一个业务逻辑错误,或者修改一个配置数据项,又不想重启服务,那么动态刷新代码就成了刚需了;而动态语言解释执行代码的机制就成了刚需的不二选择。但是大部分服务器的框架甚至主要业务可能还是由静态语言编写的,比如C、C++等原创 2019-10-15 16:00:23 · 173 阅读 · 0 评论 -
闲谈开闭原则——基于UI动画框架
本文继续聊另外一个设计原则:开闭原则。在UI动画框架中,开闭原则在“动画策略”和“移动算法”这两个类体系中均有所体现。照旧,先看一下开闭原则的定义。原创 2019-10-15 20:41:18 · 208 阅读 · 0 评论 -
闲谈装饰模式——基于UI动画框架
本文讨论UI动画框架中应用过的一个设计模式:“装饰模式”。为什么是“应用过的”,而不是“正在用的”?原因是装饰模式在UI动画框架中的应用是一个失败的尝试,有那么点牵强,或者说“为了模式而模式”。装饰模式在框架中并没有存在多久,就被优化掉,用组合模式替代了。原创 2019-10-15 20:12:38 · 158 阅读 · 0 评论 -
闲谈依赖倒置原则——基于UI动画框架
前面几篇文章讨论了UI动画框架中使用的几个关键的设计模式,框架中还有一些简单的创建模式,我没有说“工厂模式”,意味着并没有严格按照“工厂模式”的定义来实现,而是简单地封装创建过程,这对于框架中的业务已经足够了。 关于设计模式的讨论就告一段落了,本文聊一聊设计模式的原则之一:“依赖倒置”原则。原创 2019-10-15 20:30:57 · 186 阅读 · 0 评论 -
闲谈原型模式——基于UI动画框架
前几篇文章介绍了CEGUI动画框架中主要的几个设计模式。本文接着讨论“原型模式”在动画框架中的应用。 1. 原型模式原创 2019-10-15 20:19:57 · 151 阅读 · 0 评论 -
闲谈策略模式——基于UI动画框架
UI动画框架中,对动画的行为进行了良好的抽象,使得动画逻辑(就是各种动画效果)和动画主体(就是承载动画的窗口,CEGUI中的Window对象)最大限度的解耦。最终,自然而然的演变出来“策略模式”。那就先看看“策略模式”的相关概念。原创 2019-10-15 20:16:44 · 154 阅读 · 0 评论 -
闲谈组合模式——基于UI动画框架
前几篇文章讨论了UI动画框架中应用的最大的设计模式:“解释器模式”,本文接着讨论框架中应用了两次的设计模式:“组合模式”。原创 2019-10-15 20:05:14 · 220 阅读 · 0 评论 -
手撸软件测试框架——lua版(四)
本文简单介绍一下开发测试用例用到的几个关键接口。原创 2018-07-31 12:17:31 · 72 阅读 · 1 评论 -
手撸软件测试框架——lua版(三)
注意:这里的Sleep不是说将框架挂起,因为本框架假设是被集成进具体的软件产品中的(比如MMORPG的客户端程序中),如果框架在独立的线程中执行,可能还可以挂起而并不影响客户端的正常运行,但仅仅是想进行自动化测试而要求被测试软件改变线程模型,对正常业务数据或逻辑增加大量无谓的锁,就有点削足适履的味道了。在最后退出之前,根据环境中的延时字段,设置定时等待下一次的迭代。用例树上,叶节点是用例节点(其它节点都是套件节点),只有用例才是可执行的,因此每一次从根节点进入时,都要(递归)找到目标用例节点以执行用例。原创 2018-07-31 19:54:38 · 78 阅读 · 1 评论 -
游戏UI右键菜单的实现优化
RPG类端游里面右键菜单的应用场景是随处可见,比如好友,聊天栏玩家名字连接,队友,帮会成员等,不同的应用场景,右键菜单的功能项可能不同,比如:原创 2018-07-20 11:15:02 · 706 阅读 · 0 评论