Liny_@NotePad

沉迷ACG中

hgeGUI组件扩展基本步骤

扩展步骤:

  • 继承hgeGUIObject
  • 默认构造方法,要带一个int属性用于存放该组件的ID
  • 在构造方法中,对以下属性赋初值: 
    • id:控件的ID
    • bEnable:控件是否可用
    • bStatic:能否接受键盘焦点(false貌似才是可以接受)
    • bVisible:控件是否可见
    • rect:控件作用域(全屏可以设成0, 0, hge->System_GetState(HGE_SCREENWIDTH), hge->System_GetState(HGE_SCREENHEIGHT))
  • 重写Render函数,用于渲染。
  • 如果有键盘操作,重写KeyClick函数,
    如果要默认就可以使用键盘的话,需要让父gui设置默认焦点给该控件:
    gui->SetFocus(id)(可以放在Render函数里)
  • 如果有鼠标操作,重写MouseLButton\MouseRButton等需要的函数
  • 如果有其他update操作,重写Update函数

重写的时候要注意函数参数列表,不要写成重载了 - -

创建步骤:

  • 创建一个hgeGUI*(如果已经有就不用创建了 - -)
  • 创建你的控件,使用pGUI->AddCtrl对其进行控制
  • 在逻辑函数中加入pGUI->Update(pHge->Timer_GetDelta)
  • 在渲染函数中加入pGUI->Render()

HGE 改进的对话框组件

自定义大小、位置,显示脸部图片,角色姓名,对话信息。
但是对话信息依然不支持自动换行,需要自行输入"\n"。

截图如下:
【显示对话、角色姓名与脸部图片】

【显示对话】

【显示对话与头像】

【显示对话与姓名】

HGE 简单对话框组件

采用直接贴图的方式,因此固定了图片和大小。
带姓名框的对话框…… = = 待完善
图片、字体路径需要自己修改。

创建方法是CDialog* pDialog = new CDialog(id, messages); 其中id是控件ID(不要重复),messages是queue< pair<string, string> >。第一项为姓名,第二项为文字。然后交给gui去处理。详细看demo、、、

DEMO样图