Skip to content

游戏引擎GUI子系统

游戏引擎GUI子系统 published on 游戏引擎GUI子系统有90条评论

 

       最近一直在GUI上打转,看了很多的开源GUI项目,比较好的看来要算CEGUI了,不过这个东东实在太臃肿了看了后都有点后怕,要是一个休闲游戏用它来做休闲或棋牌类小Game,那我估计GUI部分要占整个Game的80%以上。其实瑞典人写guichan不错,可惜图形化支持不好,如果要用在游戏里,还要花大把的时间来二次开发,而且没有好用的编辑工具,如果用它来做一个GUI部分比较多的Game,是比较考耐力的,难怪叫“GUI禅”了!

在参考了众多的GUI库以后,自己动手达建了一个框架,思路和方向明确了做起来其实很容易,三天,框架就达建完成了,目前正在进行控件部分的开发,很顺利。不过因为是商业项目所以设计和代码也就不张贴了,大概可以总结下这个GUI组件涉及的一些思想。

  • 实现级封装。在不暴露实现的基础上暴露接口给最终用户,最终用户只需要使用开发者提供的接口就能方便的在游戏或其他应用中使用。
  • 渲染器无关。目前市场上存在多种Render Engine,为了让GUI组件能支持众多的Engine,组件必须定义一个标准接口,该接口应该包含一系列特定的函数,用户只需要继承该接口并遵循该接口定制的标准便可以绘制GUI。
  • 编辑器支持。GUI组件应该提供相应的GUI编辑器,让非程序人员也可以很容易的定制GUI界面,目的在于让开发人员把主要精力专注于处理业务逻辑,而不是浪费大量的时间来调整界面布局。
  • 图形化风格支持。GUI组件不应只有一种界面风格,最终用户可以更具自己的喜好设计界面风格,为了实现该部分,GUI组件应该有一套和美术相关的标准,这个标准定义了美术人员如何绘图,一个GUI控件应该有几部分图形,如按钮:帖图需要4个部分——弹起、按下、悬停以及屏蔽,同时需要有工具能辅助定位各部分在帖图上的实际位置。
  • 标准管理器。GUI组件应拥有自己的鼠标、键盘等事件数据结构、处理器和管理器,让所有的用户通过一个简单的调用便可传递用户自己的事件到GUI组件中,同时GUI组件应该拥有GUI管理器,这将方便最终用户在自己的系统中管理GUI,管理器应该包含GUI的创建、销毁、移动、编辑和渲染功能,最终用户只需使用接口便可以方便的处理它们。
  • GUI对象扩展。通过提供子控件功能,而产生控件聚合功能,即用户通过聚合子控件生成新控件,要支持该功能,GUI必须为其父控件传递自身发生的事件,为GUI组件设计一套合理的事件机制也是该系统需要完成的工作。

        大概就这些,当然如果以后想有新的思路或想法,我会第一时间补充进来。

原创文章,转载请注明: 转载自游戏无界·达秀的黑暗空间

本文链接地址: 游戏引擎GUI子系统

本站作品除特殊申明外均为原创,采用知识共享署名-非商业性使用-禁止演绎 3.0 Unported许可协议进行许可。如果需转载请保持文章完整性和标明原文出处,禁止商业用途。

您可感兴趣的文章:

商业游戏制作之风险认知
商业游戏制作之风险认知

  1. Pingback: claude

  2. Pingback: cory

  3. Pingback: ross

  4. Pingback: Gabriel

  5. Pingback: Evan

  6. Pingback: Bernard

  7. Pingback: jerry

  8. Pingback: ryan

  9. Pingback: Joseph

  10. Pingback: Raymond