Irrlicht学习之创建GUI界面

本文介绍了如何在Irrlicht游戏引擎中创建GUI界面,包括显示二维覆盖元素如玩家名称、头像、HP和MP条,以及创建交互式的背包按钮。通过示例代码展示了在Windows和Linux环境下设置开发环境,并提供了程序截图。尽管Irrlicht未内置进度条控件,但可以通过自定义绘制实现类似功能。
摘要由CSDN通过智能技术生成

Irrlicht学习之创建GUI界面

 

         Irrlicht游戏引擎自带了GUI模块,可以在三维的场景中创建二维的覆盖(Overlay),使得游戏中图标和文字的显示更为方便,配合游戏高效的三维渲染能力,相得益彰。

         这一次我将尝试用代码对GUI进行显示,我们的目标是在窗口中既要显示三维的背景也要显示二维的界面菜单,想做得和DirectX的例子CustomUI那样,但也不要制作得那么复杂,符合游戏的实际情况即可。

         演示程序和源代码下载地址:这里

         下面就是例子程序的截图:



         例子中使用Irrlicht的IGUIEnvironment*类型作为渲染GUI控件的基础,在此基础上显示玩家名称、玩家头像、HP和MP条以及背包按钮。由背包按钮可以触发Equipment对话框,下面有三个选项。背景中使用的是Quake3的地图;创建了一个可以绕着Y轴旋转的旋转摄像机。

         下面就是程序代码。程序也比较简单,没有考虑多次点击Backpack按钮出现的多个窗口的情况,但程序可以说明我们能用Irrlicht创建一个简单的GUI界面。顺便说一下,Irrlicht中没有进度条控件!要是创建血槽什么的还得自己绘制了,这多多少少给我们添加了麻烦。

         开发环境:

Windows:Windows8 + msvc2008+ Visual Studio2008 + Irrlicht1.7.3

Linux:Ubuntu13.10 + gcc4.8+ Qt Creator2.8 + Irrlicht1.7.3

#include <irrlicht.h>

// 针对Windows系统的配置
#ifdef _IRR_WINDOWS_
#pragma comment( lib, "Irrlicht.lib" )
#pragma comment( linker, "/subsystem:windows /ENTRY:mainCRTStartup" )
#endif

// 定义空指针
#ifndef nullptr
#define nullptr 0
#endif

using namespace irr;
using namespace core;
using namespace video;
using namespace scene;
using namespace gui;
using namespace io;

enum
{
    ID_BACKPACK_BUTTON = 101
};

class RotateYCamera// 沿着Y轴旋转的FPS摄像机
{
public:
    RotateYCamera(
        ISceneManager* pSceneManager,
        const vector3df& pos,
 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值