#IrrlichtEngine# Example1 HelloWorld

配置IDE环境来使用irrlicht引擎:
  (VS2012下)菜单栏项目 -> 项目属性窗口下
    C/C++ -> 常规 -> 附加包含目录中添加irrlicnt引擎文件目录下include文件夹
    连接器 -> 常规 -> 附加库目录中添加irrlicnt引擎文件目录下lib\Win32-visualstudio文件夹

程序清单如下:
---HelloWorld.cpp---
包含头文件irrlicht.h, Windows.h 必须先配置好IDE环境编译器才能正确查找到irrlicht.h的位置
#include <irrlicht.h>
#include <Windows.h>

使用名称空间irr和其下五个子名称空间
名称空间irr: irrlicht引擎的所有代码都在名称空间irr之下
名称空间irr下的五大模块:
  名称空间core: 引擎核心类 包括各种数据结构 自定义结构类型
  名称空间gui: 图形用户接口类,实现了各种常用控件
  名称空间io: 输入输出 zml,zip,ini文件读取写入等操作接口。
  名称空间sence: 场景管理 包括场景节点,摄像机,粒子系统,Mesh,公告板,灯光,动画器,天空盒,地形等绝大部分3D功能
  名称空间video: 视频驱动设置 实现2D,3D渲染 包括对纹理,灯光,图片,顶点等渲染属性的控制
using namespace irr;

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

包含Irrlicht.dll文件
#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
#endif

主函数
int main()
{

调用createDevice()函数创建设备 它将是引擎中一切事件的根对象
creatDevice()函数有七个参数:
  1:设备类型(参数类型:枚举类型E_Driver_Types) 可选值有:
    EDT_NULL: 启动引擎时不显示任何图像
      (空设备 能够加载纹理 但不渲染和显示任何图形)
    EDT_SOFTWARE: 启用irrlicnt引擎软件渲染器
      (能在所有平台任意硬件环境运行 最好应用于2d图形 但它也可以执行一些原始的3D功能 速度也相当快 但非常不准确 甚至不支持)
    EDT_BURNINGSVIDEO: 启用Burning软件渲染器 written by Thomas Alten
      (是对irrlicht软件渲染器的增强 实现光栅化3D几何体 3D剪裁 透视正确的纹理和颜色映射
      现实SubPixel rendering SubTexel rending 双线性纹理过滤 比EDT_SOFTWARE支持更多材质)
    EDT_DIRECT3D8: 启用Direct3D8
      (仅适用于Win32平台 执行2D和3D硬件加速渲染)
    EDT_DIRECT3D9: 启用Direct3D9
      (仅适用于Win32平台 执行2D和3D硬件加速渲染)
    EDT_OPENGL: 启用OpenGL
      (适用于大多数平台 执行2D和3D硬件加速渲染)
    EDT_COUNT: 不启用任何设备
      (仅计算组件)
  2:窗口宽高(参数类型:模板类dimension2d<Type>)
    模板类dimension2d<Type>有两个公有数据成员 Width,Height分别存储窗口的宽和高
  3:窗口色深(参数类型:unsigned int)
    设置窗口色深 比如:16位色 32位色或者其他
  4:是否全屏(参数类型:bool)
  5:是否启用阴影缓冲区(参数类型:bool)
  6:是否启用垂直同步(参数类型:bool)
  7:事件接受器的对象(参数类型:IEventReceiver*)
    对鼠标消息,键盘消息,用户信息,GUI消息等一系列消息的回调处理函数指针 不加处理设置为0
    IrrlichtDevice* device = createDevice(EDT_DIRECT3D9, dimension2d<u32>(1024, 768), 32, false, false, false, 0);
设置窗口文字标题
    device->setWindowCaption(L"Hello World!");
获取视频设备,场景管理,用户图形环境的指针并储存
    IVideoDriver* driver = device->getVideoDriver();
    ISceneManager* smgr = device->getSceneManager();
    IGUIEnvironment* guienv = device->getGUIEnvironment();
使用用户图形环境设备绘制一个Label
    guienv->addStaticText(L"Hello World!", rect<int>(10, 10, 260, 50), true);

 




 
 

 

 




posted @ 2013-07-12 15:43  庄懂  阅读(483)  评论(0编辑  收藏  举报