Galaxy2D游戏引擎教程2 - 使用Framework

37 views
Skip to first unread message

剑孤寒

unread,
Jan 3, 2010, 8:43:21 AM1/3/10
to 剑孤寒的游戏编程小站
上一节介绍了如何用Galaxy2D游戏引擎构建最基础的应用程序,这一节我们来学习如何用Galaxy2D提供的Framework来快速构建一个应
用程序。
首先复制Galaxy2D引擎下的"tools\Framework\ggefw"目录到当前项目下,在项目属性选项卡“附加包含目录”中加入
头文件目录"ggefw/",在“附加依赖项”中加入"ggefw/ggefw.lib"。

接下来在当前工程新建一个main.cpp文件,把下面内容添加进去:

#include "ggefw.h"
#include "ggebase.h"
using namespace gge;

class CGameMain:public ggeApplication
{
public:
void OnUpdate(float dt)
{
}

void OnRender()
{
//清屏
Graph_Clear();

//画一个方块
Graph_RenderQuad(300.0f, 220.0f, 340.0f, 260.0f);
}
};

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
CGameMain GameMain;
GameMain.Start();

return 0;
}


如果编译成功,运行该程序会像上一节一样在屏幕中间显示一个白色的方块。

可以看到使用Framework构建一个应用程序非常简单,只需要从ggeApplication继承一个类,然后实现OnUpdate(float
dt)和OnRender()函数即可。OnUpdate(float dt)用于刷新游戏逻辑,由于画个方块不需要啥逻辑,所以这里提供一个空函数。
OnRender()用于渲染当前状态下的图像,画方块的代码就加在这里,需要注意的是底层已经帮你调了Graph_BeginScene()/
Graph_EndScene(),所以这里只需要直接画方块就可以了。

在上一个教程里我们设置了帧率等系统状态,在Framework里提供了一个更简单的方法来设置常用属性,在”tools\Framework
\ggefw”目录下有一个” galaxy2d.ini”文件,打开它可以看到现在提供了如下属性设置:帧率、垂直同步(0/1)、是否开启音效
(0/1)、屏幕颜色(16/32)、是否全屏(0/1)、是否使用伪全屏(0/1)。修改fps = 30、vsync = 1来限制帧率并开启垂直
同步,然后将这个文件复制到galaxy2d.dll同级目录,程序启动时就会自动读取这个配置了。如果要设置其他系统状态就要手动添加一些代码了,比
如设置窗口标题栏文字,在CGameMain类里添加下面这个函数,可以看到标题栏文字已经变化了,设置其他系统状态的代码也可以加在这里。

void OnConfig()
{
System_SetState(GGE_TITLE, "Galaxy2D Game Engine - 使用Framework");
}

好了,这一节就先到这里,在Framework里还附带一些很有用的帮助类,比如导出C++类到Lua等,相关信息可以查看”tools
\Framework\ggefw”目录下的头文件。


相关代码:http://cid-0b791ea72e78c873.skydrive.live.com/self.aspx/.Public/
tutorial2.rar

Reply all
Reply to author
Forward
0 new messages