求一份 hge引擎下载 编辑框控件代码

2383人阅读
阅读此文章前请先确认你已经阅读以下文章:
制作要点:遵循 hgeGUI 和 hgeGUIObject 类原则,即所有控件需从 hgeGUIObject&派生。
1. 重载 hgeGUIObject 的相关函数,具体文件尾代码。
&2. 在每一帧结束时通过 hge-&Input_GetIMEEvent(&imeEvent) 进行中文和英文输入获取。
&3. 取得中文和英文后添加到字符串列表中。
4. 绘制字符串列表。
&5. 重复2-5步骤。以此循环。
&1. 头文件 &hgeedit.h&
#pragma once
#include &helpers/hgegui.h&
#include &helpers/hgevector.h&
#include &helpers/hgerect.h&
#include &helpers/hgefontcn.h&
#include &atlstr.h&
//-------------------------------------------------------------
//-------------------------------------------------------------
class tEditBox : public hgeGUIObject
tEditBox(HTEXTURE tex, int id,
float tx, float ty, float tw, float th,
hgeFontCN* font, int len = 0x10, float dstX = 0, float dstY = 0);
virtual void
Update(float dt);
virtual void
virtual void
virtual void
MouseOver(bool bOver);
virtual void
Focus(bool bFocused){
tudb_focus = bFocused, tudb_cursor = bF}
virtual bool
KeyClick(int key, int chr);
virtual bool
MouseMove(float x, float y) { }
GetString(){ return tudb_ }
SetString(CString str){ tudb_str = tudb_pos = tudb_str.GetLength(); reflength(); }
Clear(){ SetString(&&); }
SetExpt(float x, float y){ tudb_ex = x, tudb_ey = }
AddChar(char chr[3], bool isIME);
DelChar(bool front);
reflength();
protected:
tudb_focus, tudb_
tudb_pos, tudb_
tudb_ex, tudb_ey, tudb_
hgeFontCN*
hgeSprite*
2. 源文件 &hgeedit.cpp&
#include &hgeedit.h&
#include &assert.h&
//-------------------------------------------------------------
//-------------------------------------------------------------
tEditBox::tEditBox(HTEXTURE tex, int id, float tx, float ty, float tw, float th, hgeFontCN* font, int len, float dstX, float dstY)
:hgeGUIObject(id)
tudb_color = 0xFFFFFFFF;
tudb_focus =
tudb_cursor =
tudb_ex = tudb_ey = 2;
tudb_pos = 0;
tudb_spr = 0;
tudb_maxlen =
tudb_plen = tudb_ex + 1;
tudb_font =
= new hgeSprite(tex, tx, ty, tw, th);
tguo_rect.Set(dstX, dstY, tw + dstX, th + dstY);
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::Update(float dt)
if (!tudb_focus)
static float lstdt = 0;
if (lstdt & 0.4f)
tudb_cursor = !tudb_
lstdt = 0;
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::Render()
tudb_spr-&Render(tguo_rect.x1, tguo_rect.y1);
tudb_font-&SetColor(tudb_color);
tudb_font-&Render(tguo_rect.x1 + tudb_ex, tguo_rect.y1 + tudb_ey, tudb_str);
if (!tudb_focus)
if (tudb_cursor)
hge-&Gfx_RenderLine(tguo_rect.x1 + tudb_plen,
tguo_rect.y1 + 2,
tguo_rect.x1 + tudb_plen,
tguo_rect.y2 - 2,
tudb_color);
hgeIMEEvent
while (hge-&Input_GetIMEEvent(&imeEvent))
AddChar(imeEvent.value, imeEvent.isIME);
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::Leave()
SAFE_DELETE(tudb_spr);
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::MouseOver(bool bOver)
//hge-&OnMouseOver(bOver, tguo_id);
//-------------------------------------------------------------
//-------------------------------------------------------------
bool tEditBox::KeyClick(int key, int chr)
if (!tudb_focus)
switch (key)
case HGEK_LEFT:
tudb_cursor =
if (tudb_pos & 1)
tudb_pos -= (tudb_str[tudb_pos - 1] & 0) ? 2 : 1;
tudb_pos = 0;
reflength();
case HGEK_RIGHT:
tudb_cursor =
if (tudb_pos & tudb_str.GetLength())
tudb_pos += (tudb_str[tudb_pos] & 0) ? 2 : 1;
tudb_pos = tudb_str.GetLength();
reflength();
case HGEK_BACKSPACE:
DelChar(true);
case HGEK_DELETE:
DelChar(false);
case HGEK_HOME:
tudb_pos = 0;
reflength();
case HGEK_END:
tudb_pos = tudb_str.GetLength();
reflength();
//hge-&OnKey(key, chr, tguo_id);
//-------------------------------------------------------------
//-------------------------------------------------------------
bool tEditBox::AddChar(char chr[3], bool isIME)
if (tudb_str.GetLength() &= tudb_maxlen)
_str = tudb_
if (tudb_pos == 0)
tudb_str = chr + _
else if (tudb_pos == _str.GetLength())
tudb_str +=
tudb_str = _str.Mid(0, tudb_pos);
tudb_str += chr + _str.Mid(tudb_pos, _str.GetLength() - tudb_pos);
tudb_pos += isIME ? 2 : 1;
reflength();
//-------------------------------------------------------------
//-------------------------------------------------------------
bool tEditBox::DelChar(bool front)
if (tudb_str.GetLength() &= 0)
_str = tudb_
_len = tudb_str.GetLength();
if (front)
if (tudb_pos &= 0)
int exp = _str[tudb_pos - 1] & 0 ? 2 : 1;
if (tudb_pos == exp)
tudb_str.Delete(0, exp);
else if (tudb_pos == _len)
tudb_str.Delete(_len - exp);
tudb_str = _str.Mid(0, tudb_pos - exp);
tudb_str += _str.Mid(tudb_pos, _len - tudb_pos);
tudb_pos -=
if (tudb_pos & 0)
tudb_pos = 0;
reflength();
if (tudb_pos &= _len)
int exp = _str[tudb_pos] & 0 ? 2 : 1;
if (tudb_pos == 0)
tudb_str.Delete(0, exp);
else if (tudb_pos == _len - exp)
tudb_str.Delete(_len - exp);
tudb_str = _str.Mid(0, tudb_pos);
tudb_str += _str.Mid(tudb_pos + exp, _len - tudb_pos - exp);
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::reflength()
tudb_plen = tudb_ex + 1;
if (!tudb_str.IsEmpty())
_str = tudb_str.Mid(0, tudb_pos);
tudb_plen += tudb_font-&GetStringWidth(_str);
此时可能你也会编不过。那是因为我已经将 hgeGUI 的文件中 hgeGUIObject 成员变量的名字改变过。
这里我也将 hgeGUI 的变量名发上来:
class hgeGUIObject
hgeGUIObject(int id)
:tguo_id(id)
hge=hgeCreate(HGE_VERSION);
tguo_static =
tguo_enable =
tguo_visible =
virtual~tGUIObject() { hge-&Release(); }
virtual void
Render() = 0;
virtual void
Update(float dt) {}
virtual void
Enter() {}
virtual void
Leave() {}
virtual void
Reset() {}
virtual bool
IsDone() { }
virtual void
Focus(bool bFocused) {}
virtual void
MouseOver(bool bOver) {}
virtual bool
MouseMove(float x, float y) { }
virtual bool
MouseLButton(bool bDown) { }
virtual bool
MouseRButton(bool bDown) { }
virtual bool
MouseWheel(int nNotches) { }
virtual bool
KeyClick(int key, int chr) { }
hgeGUIObject*
hgeGUIObject*
protected:
如果还有什么问题可以来问我,我QQ:。
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:177421次
积分:2606
积分:2606
排名:第7648名
原创:66篇
评论:79条
(1)(1)(1)(1)(1)(1)(1)(2)(2)(3)(1)(1)(1)(7)(3)(1)(3)(1)(2)(2)(3)(2)(12)(2)(14)(4)(3)(1)2463人阅读
HGE中的游戏GUI代码阅读
第一部分:HGE helper类中的GUI:引擎版本:1.60release。文件:hgegui.h , hgegui.cpp, hgeguictrls.h , hgeguictrls.cpp 大致类图:其中,hgeGUIObject是抽象基类,具体的控件类如按钮,文本标签,都是从它派生而来。HgeGUI属于整个GUI系统的manager,它会保存所有的控件。关于hgeGUIObject的8个成员变量,文档里已经有所描述: //控件IDbool bS //是否可以接受键盘焦点bool bV //是否可见bool bE //是否有效hgeR //控件大小hgeGUI * //其属于的 manager ,相当于父对象hgeGUIObject * //用于双向链表,把所有控件连接在一起hgeGUIObject *static HGE * //方便使用HGE接口关于其部分接口的描述:Render: 用于渲染控件到屏幕上Update: 用于更新其动画Enter: 控件刚显示时的动画Leave: 控件要消失时的动画IsDone: 控件刚显示和消失时的状态查询函数该类也就是提供了一个抽象而已,利用C++语言的多态机制来方便hgeGUI管理所有的控件。其他具体的控件继承了hgeGUIObject后,必须实现构造函数和Render函数。关于hgeGUI:这个类应该属于manager。它负责管理所有的控件。其数据成员:hgeGUIObject * //保存所有控件hgeGUIObject *ctrlL //可能是用来保存当前被鼠标操作的控件hgeGUIObject *ctrlF //保存焦点控件hgeGUIObject *ctrlO //用来保存鼠标指针所指的控件int nEnterLhgeSprite *sprC //渲染鼠标指针用的float mx, //鼠标坐标int nW //滚轮偏移量bool bLPressed, bLLastP//本帧左键状态,上一帧的左键状态bool bRPressed, bRLastP其Update方法会负责控件的进入和离开动画,还会负责整体的状态设置---哪些控件拥有焦点,哪些控件被鼠标正在操作,哪些控件正被鼠标指针指着,这些控件它都会保存起来。(也就是说,我们还是可以通过检查控件的状态来设置当鼠标指针在其上时的新动画。)总体而言,该引擎的GUI还是很简单的。一个manager,负责管理所有的控件,然后一个抽象基类,用来协助manager管理---其他具体的控件都必须从那个抽象基类派生。下面具体看一个Button控件:Button类的定义如下:class hgeGUIButton : public hgeGUIObject{public:hgeGUIButton(int id, float x, float y, float w, float h, HTEXTURE tex, float tx, float ty);virtual ~hgeGUIButton();void SetMode(bool _bTrigger) { bTrigger=_bT }void SetState(bool _bPressed) { bPressed=_bP }bool GetState() const { return bP }virtual void Render();virtual bool MouseLButton(bool bDown);private:bool bTbool bPbool bOldShgeSprite *sprUp, *sprD};其中bTrigger表示该按钮的行为是否象一个RadioButton,bPressed表示当前按钮是否被按下,bOldState表示上一次按钮状态,特别用来实现bTrigger的,sprUp,sprDown分别用来绘制弹起和按下时的按钮外观。这两个精灵的创建都是从构造函数的tex上创建而来的,它要求两个状态必须保存在一幅纹理上,且顺序为从左至右。按钮的实现代码也很简单:void hgeGUIButton::Render(){if(bPressed) sprDown-&Render(rect.x1, rect.y1);else sprUp-&Render(rect.x1, rect.y1);}bool hgeGUIButton::MouseLButton(bool bDown){if(bDown){bOldState=bP bPressed=}else{if(bTrigger) bPressed=!bOldSelse bPressed= }}联系起来,当hgeGUI::Update里处理ProcessCtrl时,如果鼠标左键按下且其指针在按钮范围内,那么就调用hgeGUIButton::MouseLButton( true ),这个时候button的bPressed=true,那么在渲染的时候,自然就表现出被按下时的状态。事实上对于这种类型的按钮---如同windows下的窗体按钮,我们一般不检查其是否被按下,而是检查其是否发生了clicked 这个事件,而这个事件是在先按下在弹起的情况下发生的。因此,判断该事件发生的条件就为:上一帧状态被按下,这一帧没被按下。虽然HGE引擎的GUI很简单,但是其扩展性很好。因为hgeGUI::Update基本上派发了所有控件需要的消息---键盘操作,以及鼠标操作;而hgeGUIObject基类的很多成员函数都会处理这些消息,我们只需要派生hgeGUIObject,然后重载我们需要的消息处理即可。第二部分:HGE扩展GUI库,从HGE官方论坛下载(作者不明):工程结构:其中,guitest.cpp为测试文件。类结构:整个系统的工作原理:用户继承抽象基类GUIApp,实现具体的OnEvent函数,然后该类会管理所有的GUIAppWindow对象,GUIAppWindow窗口对象会管理其上的所有子控件。相应地,GUIApp派生类会直接得到鼠标和键盘消息,然后派发给所有窗口对象,然后窗口对象再把消息派发到具体的控件对象上。这种Parent-Child关系大致为:GUIAppWindow类保存有其所属的GUIApp对象指针,每个具体的控件又保存有其所属的GUIAppWindow 的对象指针。当一个控件处理了某个事件后,例如按钮处理了鼠标单击事件,它就需要告诉外界用户单击了这个按钮。这里采用的方法是:在基类GUIAppObject里定义了一个虚函数OnEvent( int id),然后在其派生类GUIAppWindow里把这个函数重载为纯虚函数,函数有一个参数,那就是控件ID。当一个控件处理了某个事件后,就通过其内部保存的父窗口指针来调用OnEvent函数,然后GUIAppWindow的派生类---如果该类能产生对象,那么其必然实现了OnEvent的具体代码(这就是为什么在GUIAppWindow里要把OnEvent又重载为纯虚函数的原因),然后在此代码里,窗口根据传进来的控件ID来得知哪个控件发生了事件!GUIAppWindow里有一个容器,它保存了所有该窗口上的控件。所有控件再创建时,都是以其父窗口为参考坐标系的,也就是相对坐标,但是其实际保存的坐标却是绝对坐标&既相对于整个屏幕的坐标(如果是窗口程序,就相对于整个窗口)。大致过程为:在GUIAppWindow派生类中创建子控件时,给子控件指定的坐标为相对坐标,然后当 AddCtrl 时就会重新把子控件的坐标改变为绝对坐标。GUIApp里直接有了BeginScene和EndScene的渲染代码。要使用该扩展库,大致步骤为:1. 继承GUIAppWindow类,在这个派生类里重载具体的处理OnEvent的函数,并创建所有该窗口上的子控件。2. 继承GUIApp类,在这个派生类中创建窗口对象,并把窗口对象AddCtrl,在这里可以进行其他的初始化工作3. 在FrameFunc里调用GUIApp::FrameFunc函数。总体而言,这个扩展GUI主要是扩展了GUI Manager以及GUI Object,并且加入了Parent-Child机制。比较经典的部分在于提供了一个 OnEvent 函数,这样就可以让客户程序员能够得知窗体上的控件发生的事件。 ----其实这种方法的目的就跟Windows中的消息机制,Qt中的signal/slot机制一样。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:42676次
排名:千里之外
原创:24篇
评论:10条
(1)(3)(27)下次自动登录
现在的位置:
& 综合 & 正文
让HGE支持中文(4) – 编辑框的实现
阅读此前请先确认你已经阅读以下文章:
制作要点:遵循 hgeGUI 和 hgeGUIObject 类原则,即所有控件需从 hgeGUIObject 派生。
1. 重载 hgeGUIObject 的相关函数,具体文件尾。
2. 在每一帧结束时通过 hge-&Input_GetIMEEvent(&imeEvent) 进行中文和英文输入获取。
3. 取得中文和英文后添加到字符串列表中。
4. 绘制字符串列表。
5. 重复2-5步骤。以此循环。
1. 头文件 &hgeedit.h&
#pragma once
#include "helpers/hgegui.h"
#include "helpers/hgevector.h"
#include "helpers/hgerect.h"
#include "helpers/hgefontcn.h"
#include &atlstr.h&
//-------------------------------------------------------------
//-------------------------------------------------------------
class tEditBox : public hgeGUIObject
tEditBox(HTEXTURE tex, int id,
float tx, float ty, float tw, float th,
hgeFontCN* font, int len = 0x10, float dstX = 0, float dstY = 0);
virtual void
Update(float dt);
virtual void
virtual void
virtual void
MouseOver(bool bOver);
virtual void
Focus(bool bFocused){
tudb_focus = bFocused, tudb_cursor = bF}
virtual bool
KeyClick(int key, int chr);
virtual bool
MouseMove(float x, float y) { }
GetString(){ return tudb_ }
SetString(CString str){ tudb_str = tudb_pos = tudb_str.GetLength(); reflength(); }
Clear(){ SetString(""); }
SetExpt(float x, float y){ tudb_ex = x, tudb_ey = }
AddChar(char chr[3], bool isIME);
DelChar(bool front);
reflength();
protected:
tudb_focus, tudb_
tudb_pos, tudb_
tudb_ex, tudb_ey, tudb_
hgeFontCN*
hgeSprite*
2. 源文件 &hgeedit.cpp&
#include "hgeedit.h"
#include &assert.h&
//-------------------------------------------------------------
//-------------------------------------------------------------
tEditBox::tEditBox(HTEXTURE tex, int id, float tx, float ty, float tw, float th, hgeFontCN* font, int len, float dstX, float dstY)
:hgeGUIObject(id)
tudb_color = 0xFFFFFFFF;
tudb_focus =
tudb_cursor =
tudb_ex = tudb_ey = 2;
tudb_pos = 0;
tudb_spr = 0;
tudb_maxlen =
tudb_plen = tudb_ex + 1;
tudb_font =
= new hgeSprite(tex, tx, ty, tw, th);
tguo_rect.Set(dstX, dstY, tw + dstX, th + dstY);
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::Update(float dt)
if (!tudb_focus)
static float lstdt = 0;
if (lstdt & 0.4f)
tudb_cursor = !tudb_
lstdt = 0;
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::Render()
tudb_spr-&Render(tguo_rect.x1, tguo_rect.y1);
tudb_font-&SetColor(tudb_color);
tudb_font-&Render(tguo_rect.x1 + tudb_ex, tguo_rect.y1 + tudb_ey, tudb_str);
if (!tudb_focus)
if (tudb_cursor)
hge-&Gfx_RenderLine(tguo_rect.x1 + tudb_plen,
tguo_rect.y1 + 2,
tguo_rect.x1 + tudb_plen,
tguo_rect.y2 - 2,
tudb_color);
hgeIMEEvent
while (hge-&Input_GetIMEEvent(&imeEvent))
AddChar(imeEvent.value, imeEvent.isIME);
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::Leave()
SAFE_DELETE(tudb_spr);
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::MouseOver(bool bOver)
//hge-&OnMouseOver(bOver, tguo_id);
//-------------------------------------------------------------
//-------------------------------------------------------------
bool tEditBox::KeyClick(int key, int chr)
if (!tudb_focus)
switch (key)
case HGEK_LEFT:
tudb_cursor =
if (tudb_pos & 1)
tudb_pos -= (tudb_str[tudb_pos - 1] & 0) ? 2 : 1;
tudb_pos = 0;
reflength();
case HGEK_RIGHT:
tudb_cursor =
if (tudb_pos & tudb_str.GetLength())
tudb_pos += (tudb_str[tudb_pos] & 0) ? 2 : 1;
tudb_pos = tudb_str.GetLength();
reflength();
case HGEK_BACKSPACE:
DelChar(true);
case HGEK_DELETE:
DelChar(false);
case HGEK_HOME:
tudb_pos = 0;
reflength();
case HGEK_END:
tudb_pos = tudb_str.GetLength();
reflength();
//hge-&OnKey(key, chr, tguo_id);
//-------------------------------------------------------------
//-------------------------------------------------------------
bool tEditBox::AddChar(char chr[3], bool isIME)
if (tudb_str.GetLength() &= tudb_maxlen)
_str = tudb_
if (tudb_pos == 0)
tudb_str = chr + _
else if (tudb_pos == _str.GetLength())
tudb_str +=
tudb_str = _str.Mid(0, tudb_pos);
tudb_str += chr + _str.Mid(tudb_pos, _str.GetLength() - tudb_pos);
tudb_pos += isIME ? 2 : 1;
reflength();
//-------------------------------------------------------------
//-------------------------------------------------------------
bool tEditBox::DelChar(bool front)
if (tudb_str.GetLength() &= 0)
_str = tudb_
_len = tudb_str.GetLength();
if (front)
if (tudb_pos &= 0)
int exp = _str[tudb_pos - 1] & 0 ? 2 : 1;
if (tudb_pos == exp)
tudb_str.Delete(0, exp);
else if (tudb_pos == _len)
tudb_str.Delete(_len - exp);
tudb_str = _str.Mid(0, tudb_pos - exp);
tudb_str += _str.Mid(tudb_pos, _len - tudb_pos);
tudb_pos -=
if (tudb_pos & 0)
tudb_pos = 0;
reflength();
if (tudb_pos &= _len)
int exp = _str[tudb_pos] & 0 ? 2 : 1;
if (tudb_pos == 0)
tudb_str.Delete(0, exp);
else if (tudb_pos == _len - exp)
tudb_str.Delete(_len - exp);
tudb_str = _str.Mid(0, tudb_pos);
tudb_str += _str.Mid(tudb_pos + exp, _len - tudb_pos - exp);
//-------------------------------------------------------------
//-------------------------------------------------------------
void tEditBox::reflength()
tudb_plen = tudb_ex + 1;
if (!tudb_str.IsEmpty())
_str = tudb_str.Mid(0, tudb_pos);
tudb_plen += tudb_font-&GetStringWidth(_str);
此时可能你也会编不过。那是因为我已经将 hgeGUI 的文件中 hgeGUIObject 成员变量的名字改变过。
这里我也将 hgeGUI 的变量名发上来:
class hgeGUIObject
hgeGUIObject(int id)
:tguo_id(id)
hge=hgeCreate(HGE_VERSION);
tguo_static =
tguo_enable =
tguo_visible =
virtual~tGUIObject() { hge-&Release(); }
virtual void
Render() = 0;
virtual void
Update(float dt) {}
virtual void
Enter() {}
virtual void
Leave() {}
virtual void
Reset() {}
virtual bool
IsDone() { }
virtual void
Focus(bool bFocused) {}
virtual void
MouseOver(bool bOver) {}
virtual bool
MouseMove(float x, float y) { }
virtual bool
MouseLButton(bool bDown) { }
virtual bool
MouseRButton(bool bDown) { }
virtual bool
MouseWheel(int nNotches) { }
virtual bool
KeyClick(int key, int chr) { }
hgeGUIObject*
hgeGUIObject*
protected:
如果还有什么问题可以来问我,我QQ:。
&&&&推荐文章:
【上篇】【下篇】hge-1.81 2D游戏引擎HGE ,整合了目前大部分相关的增 码集合,其中包括:
1、修改支持Di Game Engine
238万源代码下载-
&文件名称: hge-1.81
& & & & &&]
&&所属分类:
&&开发工具: Visual C++
&&文件大小: 5720 KB
&&上传时间:
&&下载次数: 282
&&提 供 者:
&详细说明:2D游戏引擎HGE1.81,整合了目前大部分相关的增强代码集合,其中包括:
1、修改支持DirectX9
2、添加中文说明文档和地图编辑器
3、添加中文输出与输出,添加Flash支持,添加与之相关Turorial代码样例
4、添加文本编辑框的选择、复制和焦点查询功能
5、添加对所有tutorials的调用工程,并修改所有Turorial工程设置以方便运行
6、添加中文的粒子系统编辑器 -2D game engine HGE1.81, integration of the current code for most of the increase related to collection, including: 1, modify the support DirectX9 2, add the Chinese language documentation and the map editor 3, add the Chinese output and output, add Flash support, add and with relevant Turorial code sample 4, add a text edit box selection, copy and focus check function 5, add a call to all tutorials project, and modify all settings Turorial works to facilitate the operation 6, add the Chinese particle system editor
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&hge-1.81\bass.dll&&........\doc\HGE-CN.chm&&........\...\html\1.gif&&........\...\....\architecture.gif&&........\...\....\bcbsetup1.gif&&........\...\....\bcbsetup2.gif&&........\...\....\bcbsetup3.gif&&........\...\....\bcbsetup4.gif&&........\...\....\bcbsetup5.gif&&........\...\....\cnt_fbuilder.html&&........\...\....\cnt_hgeanim.html&&........\...\....\cnt_hgecolorhsv.html&&........\...\....\cnt_hgecolorrgb.html&&........\...\....\cnt_hgeconst.html&&........\...\....\cnt_hgedata.html&&........\...\....\cnt_hgedistort.html&&........\...\....\cnt_hgefont.html&&........\...\....\cnt_hgefunc.html&&........\...\....\cnt_hgegui.html&&........\...\....\cnt_hgeguio.html&&........\...\....\cnt_hgeparticle.html&&........\...\....\cnt_hgepmanager.html&&........\...\....\cnt_hgerect.html&&........\...\....\cnt_hgeresource.html&&........\...\....\cnt_hgesprite.html&&........\...\....\cnt_hgestring.html&&........\...\....\cnt_hgevector.html&&........\...\....\cnt_main.html&&........\...\....\cnt_peditor.html&&........\...\....\cnt_setup.html&&........\...\....\cnt_tutorials.html&&........\...\....\devcppsetup1.gif&&........\...\....\devcppsetup2.gif&&........\...\....\devcppsetup3.gif&&........\...\....\devcppsetup4.gif&&........\...\....\devcppsetup5.gif&&........\...\....\fbuilder_fontcode.html&&........\...\....\fbuilder_fontconv.html&&........\...\....\fbuilder_ini.html&&........\...\....\fbuilder_interface.html&&........\...\....\fbuilder__main.html&&........\...\....\feat3.gif&&........\...\....\hge.css&&........\...\....\hge.js&&........\...\....\hgeanim_constructor.html&&........\...\....\hgeanim_getframe.html&&........\...\....\hgeanim_getframes.html&&........\...\....\hgeanim_getmode.html&&........\...\....\hgeanim_getspeed.html&&........\...\....\hgeanim_isplaying.html&&........\...\....\hgeanim_operators.html&&........\...\....\hgeanim_play.html&&........\...\....\hgeanim_resume.html&&........\...\....\hgeanim_setframe.html&&........\...\....\hgeanim_setframes.html&&........\...\....\hgeanim_setmode.html&&........\...\....\hgeanim_setspeed.html&&........\...\....\hgeanim_stop.html&&........\...\....\hgeanim_update.html&&........\...\....\hgeanim__main.html&&........\...\....\hgecolorhsv_clamp.html&&........\...\....\hgecolorhsv_constructors.html&&........\...\....\hgecolorhsv_datamembers.html&&........\...\....\hgecolorhsv_gethwcolor.html&&........\...\....\hgecolorhsv_operators.html&&........\...\....\hgecolorhsv_sethwcolor.html&&........\...\....\hgecolorhsv__main.html&&........\...\....\hgecolorrgb_clamp.html&&........\...\....\hgecolorrgb_constructors.html&&........\...\....\hgecolorrgb_datamembers.html&&........\...\....\hgecolorrgb_gethwcolor.html&&........\...\....\hgecolorrgb_operators.html&&........\...\....\hgecolorrgb_sethwcolor.html&&........\...\....\hgecolorrgb__main.html&&........\...\....\hgecolor__main.html&&........\...\....\hgeconst_blendmode.html&&........\...\....\hgeconst_common.html&&........\...\....\hgeconst_keycodes.html&&........\...\....\hgeconst_systemstate.html&&........\...\....\hgeconst__main.html&&........\...\....\hgedata_common.html&&........\...\....\hgedata_hwcolor.html&&........\...\....\hgedata_inputevent.html&&........\...\....\hgedata_quad.html&&........\...\....\hgedata_resource.html&&........\...\....\hgedata_state.html&&........\...\....\hgedata_triple.html&&........\...\....\hgedata_vertex.html&&........\...\....\hgedata__main.html&&........\...\....\hgedistort_clear.html&&........\...\....\hgedistort_constructor.html&&........\...\....\hgedistort_getblendmode.html&&........\...\....\hgedistort_getcolor.html&&........\...\....\hgedistort_getcols.html&&........\...\....\hgedistort_getdisplacement.html&&........\...\....\hgedistort_getrows.html&&........\...\....\hgedistort_gettexture.html&&........\...\....\hgedistort_gettexturerect.html&&........\...\....\hgedistort_getz.html&&........\...\....\hgedistort_operators.html
&[]:很好,推荐下载&[]:文件不全&[]:中文支持和flash是个亮点,挺不错的,其他的差强人意啊
&近期下载过的用户:
&相关搜索:
&&&&&&&&&&
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 一个基于DirectX的2D游戏引擎,良好的代码风格完整的代码注释,结构清晰,继续上次上传版本的更新,增加粒子系统,增加动画部分,添加了多个演示程序,更新了帮助文档,此代码为个人学习所写,若你下载了代码,发现问题或者你有一些建议,可用联系我,GUI部分我只完成了窗口和
&[] - 基于MDX 的3d 游戏引擎源码,目前最新版本,支持.x,mdl模型及物理引擎
&[] - 2d游戏引擎.采用3D驱动绘制2D游戏,相当不错的开源引擎,版本1.8,内有例程
&[] - 一个简单的2D游戏引擎模型,很不错,可以自己看看学习学习。
&[] - 无意中发现了hge中文社区,听朋友介绍,认识了HGE,然后开始对它进行研究,并使用HGE开始制作游戏。
因为我所得的资料基本上都是来源于各位高手的无私翻译,所以,我打算也做一些贡献出来,在这里写一篇HGE的基础教程,供刚接触HGE的朋友研究学习。
教程中可能会出现一些错误,请大家及时指正。由
&[] - 用hge引擎模仿《传奇》做的一个DEMO,用的是《传奇》里的资源,对于刚使用HGE开发2D游戏的朋友们很有参考价值。游戏里支持装备和物品的使用、拾起、丢弃等操作,按F1和F2可以分别切换碰撞检测和碰撞体显示。里面使用了超大地图拼接、多图层、A*算法、HGE汉字处理等技术。
&[] - 3D 游戏引擎编程的源代码,游戏开发者必看。吐血推荐!
&[] - hge中文增强的粒子系统源码。hge中文增强的粒子系统源码。
&[] - A demo about RPG on hge. HGE is small 2D engine.
&[] - 基于2d游戏引擎hge编写的rpg游戏demo,可以用来学习HGE游戏引擎}

我要回帖

更多关于 hge引擎下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信