#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>(, ), , false, false, false, );
设置窗口文字标题
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>(, , , ), true);
#IrrlichtEngine# Example1 HelloWorld的更多相关文章
- go语言从例子开始之Example1.helloworld
Example: package main import "fmt" func main() { fmt.Println("hello world") } Re ...
- Java EE 学习总结
1.Java EE WEB 工程项目文件结构 组成:静态HTML页.Servlet.JSP和其他相关的class: 每个组件在WEB应用中都有固定的存放目录. WEB应用的配置信息存放在web.xml ...
- JSP/Servlet基础语法
相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...
- go语言学习之从例子开始
[目录] go语言从例子开始之Example1.helloworld go语言从例子开始之Example2.类型 go语言从例子开始之Example3.变量 go语言从例子开始之Example4.常量 ...
- 使用webstorm+webpack构建简单入门级“HelloWorld”的应用&&引用jquery来实现alert
使用webstorm+webpack构建简单入门级"HelloWorld"的应用&&构建使用jquery来实现 1.首先你自己把webstorm安装完成. 请参考这 ...
- Idea下用SBT搭建Spark Helloworld
没用过IDEA工具,听说跟Eclipse差不多,sbt在Idea其实就等于maven在Eclipse.Spark运行在JVM中,所以要在Idea下运行spark,就先要安装JDK 1.8+ 然后加入S ...
- 菜鸟学Struts2——HelloWorld
写在前面 自从工作后就过上了只有一个月记忆的生活,太健忘,很多学过的东西因为用得少便忘记了,第二次学习struts,为了以后便于查阅,开始自己的博客之旅.Struts的学习还是从Hello World ...
- 初识AngularJS 之 HelloWorld和数据绑定
1.Hello World 我用的开发工具是 atom ,大家有需要的话可以找我要安装包嘻嘻 第一步: 写入以下代码: <!DOCTYPE html> <html ng-ap ...
- java环境搭建和写出一个Helloworld
一.安装环境和配置环境变量(必要环节) 安装java并配置环境变量 :在"系统变量"中设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击 ...
随机推荐
- maven权威指南学习笔记(二)——安装、运行、获取帮助
这部分在网上很容易找到详细教程,这里就略写了. 基础:系统有配置好的jdk,通过 命令行 java -version,有类似下面的提示,表示java环境以配好 下载maven:官网 http://ma ...
- iOS多播放器封装
今年在做直播业务的时候遇到一些问题,就是在一个套播放器UI中需要多种不同的播放器(AVPlayer.IJKPlayer.AliPlayer)支持,根据ABTest开关来切换具体使用哪种播放器,并且还要 ...
- godaddy1美元虚拟主机
第一个域名是免费的 ftp连接:新建ftp账号,把配置文件导入相应的ftp客户端(user名可能有问题,使用非加密的模式) SSH连接: 1.开启SSH连接:http://godaddy.idcspy ...
- 微信开发笔记:获取用户openid,以及用户头像昵称等信息
微信开发的时候有一个很便利的途径来进行一个用户的一步注册登录,就是使用用户的微信信息来直接进行登陆,可以省去很多不必要的麻烦.那具体这些信息是如何来获取的呢? 首先呢,我们需要对微信进行一个授权,让微 ...
- Shell_2 语句
1 if else fi if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句: if ... else ... f ...
- 使用极光/友盟推送,APP进程杀死后为什么收不到推送(转)
为什么会存在这样的 问题,刚开始的时候我也搞不清楚,之前用极光的时候杀死程序后也会收到推送,但最近重新再去集成时就完全不好使了,这我就纳闷了,虽然Google在高版本上的android上面不建议线程守 ...
- 通用js函数集锦<来源于网络> 【二】
通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...
- java-并发-高级并发对象2
浏览以下内容前,请点击并阅读 声明 并发集合 java.util.concurrent包包含了许多对于java集合框架的补充,根据提供的接口可以将这些集合分为以下几类: BlockingQueue 定 ...
- scikit-learn包的学习资料
http://scikit-learn.org/stable/modules/clustering.html#k-means http://my.oschina.net/u/175377/blog/8 ...
- python基础02 基本数据类型
摘要:简单的数据类型以及赋值 变量不需要声明 python的变量不需要声明,你可以直接输入: >>>a = 10 那么你的内存里就有了一个变量a, 它的值是10,它的类型是integ ...