如何实现游戏的GUI(用VC+DirectX)

来源:百度知道 编辑:UC知道 时间:2024/06/21 04:53:36
游戏的GUI一般都是怎么实现的?我知道有一些现成的GUI的SDK,但学习如何使用它们很麻烦,资料大都是英文的。所以我想自己实现一个GUI系统,但不知道一般游戏中的GUI是如何实现的,是类似于WINDOWS那样的消息循环机制吗?
是不是每次游戏循环先检测事件,如单击,双击等,然后判断这些事件发生在哪个控件的范围内,然后执行相应的代码?

当然不是!

在游戏里,设置图形用户界面,一般需要程序员和美工自己动手。

大体跟你说一下:首先,游戏策划要规划一下游戏的界面,比如,主菜单下有哪些选项(新游戏、读取存档、离开游戏等),游戏进行时,菜单有哪些项目(如RPG,有成员状态、物品、魔法、装备、存档等)。

之后,根据策划的设计,游戏美工负责将界面图形化。例如,设计每个或每一类按钮的外观,包括未按下和按下分别是什么样子。还有菜单选中与未选中是什么外观……背景界面的风格等等……

接下来是程序员的工作,一般,对于大型商业游戏,他们会聘请专门负责界面的程序员设计,和制作游戏的人员多数情况下是不同的。各司其职嘛!若是普通公司,就大家一起来了,分工不那么明晰(说起来前不久我还做了个存档界面,得到了领导滴赞赏……低调,低调……)。

对于程序员来说,基本上,就是利用美工提供的素材,一般是一些图片,制作界面、菜单和按钮等逻辑。比如,判断鼠标所在处,若是在某个按钮的矩形区域之内,则该按钮的图片由未选中的图片转换为选中图片,对于菜单也是同样道理。

你要是感兴趣,我可以给你一个存档的界面看看,但只能给你可执行文件、图片资源,源代码可不能开放啊,会被炒滴……

喜欢的话留个邮箱!

第一步:在GUI系统中增加两个方法

bool SetEventScript(const char* FileName);

const char* GetEventScript();

bool GetEventScriptAlter();

并且增加一个私有数据成员:

m_EventScript; //GUI事件脚本
m_EventScriptAlter; //GUI事件脚本是否被重新载入

当调用SetEventScript时,根据文件名打开脚本文件将脚本内容读入m_EventScript,并且将m_EventScriptAlter设置为true;当需要取得脚本内容时,使用GetEventScript取得,

取得后将会把m_Eve