Irrlicht游戏引擎(V0.1)源码学习系列之一
来源:互联网 发布:mac 抹掉磁盘 编辑:程序博客网 时间:2024/05/14 21:20
首先创建DLL工程,然后编辑文件:
#include "Irrlicht.h"#include <Windows.h>#ifdef _DEBUG#include <crtdbg.h>#endif#pragma comment(exestr, "Irrlicht Engine")BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){switch( ul_reason_for_call ){case DLL_PROCESS_ATTACH:#ifdef _DEBUG_CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF | _CRTDBG_ALLOC_MEM_DF);#endifbreak;case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return true;}
再编辑文件:
#ifndef _IRRLICHT_H_INCLUDE_#define _IRRLICHT_H_INCLUDE_#include "aabbox3d.h"#endif
再编辑文件:
#ifndef _IRR_AABBOX_3D_H_INCLUDE_#define _IRR_AABBOX_3D_H_INCLUDE_#include "irrTypes.h"#include "plane3dex.h"#endif
再编辑文件:
#ifndef _IRR_TYPES_H_INCLUDE_#define _IRR_TYPES_H_INCLUDE_namespace irr{typedef unsigned char u8;typedef signed char s8;typedef char c8;typedef unsigned short u16;typedef signed short s16;typedef unsigned int u32;typedef signed int s32;<pre name="code" class="cpp">#ifndef _IRR_PLANE_3D_H_INCLUDE#define _IRR_PLANE_3D_H_INCLUDE#include "irrmath.h"#include "vector3d.h"namespace irr{namespace core{enum EInterSectionRelation3D{ISREL3D_FRONT = 0,ISREL3D_BACK,ISREL3D_PLANAR,ISREL3D_SPANNING,ISREL3D_CLIPPED};template<typename T>class plane3d{public://plane3d():MPoint(0,0,0),Normal(0,1,0){};//vector3d<T> MPoint;//vector3d<T> Normal;};}}#endif
再编辑文件:
#ifndef _IRR_PLANE_3D_EX_H_INCLUDE_#define _IRR_PLANE_3D_EX_H_INCLUDE_#include "irrTypes.h"#include "plane3d.h"#endif
再编辑文件:
#ifndef _IRR_PLANE_3D_H_INCLUDE#define _IRR_PLANE_3D_H_INCLUDE#include "irrmath.h"#include "vector3d.h"namespace irr{namespace core{enum EInterSectionRelation3D{ISREL3D_FRONT = 0,ISREL3D_BACK,ISREL3D_PLANAR,ISREL3D_SPANNING,ISREL3D_CLIPPED};template<typename T>class plane3d{public://plane3d():MPoint(0,0,0),Normal(0,1,0){};//vector3d<T> MPoint;//vector3d<T> Normal;};}}#endif
再编辑文件:
/**************************** * 2015年5月24 星期日 零点 *(周六一天写了仿真的代码,晚上闲余来敲一敲IRRLICHT引擎的代码,不知不觉已经到了周日凌晨了。) *(要学习Irrlicht的编码方式和各种编程方法。以提高自己用C++编码以及思考的能力。) ***************************/#ifndef _IRR_POINT_3D_H_INCLUDE_#define _IRR_POINT_3D_H_INCLUDE_#include <math.h>#include "irrTypes.h"namespace irr{namespace core{template<typename T>class vector3d{public:vector3d():X(0), Y(0), Z(0){};vector3d( T nx, T ny, T nz) : X(nx), Y(ny), Z(nz){};vector3d(const vector3d<T>& other ) :X(other.X), Y(other.Y), Z(other.Z){};// 操作符vector3d<T>& operator=(const vector3d<T>& other){ X = other.X; Y = other.Y; Z = other.Z; return *this; }vector3d<T>& operator+(const vector3d<T>& other) const { return vector3d<T>(X + other.X, Y + other.Y, Z + other.Z); }// 成员变量T X, Y, Z;};}}#endif
未完待续:
0 0
- Irrlicht游戏引擎(V0.1)源码学习系列之一
- 基于Irrlicht引擎的3D游戏实例V0.1
- 基于Irrlicht引擎的3D游戏实例V0.2
- 基于Irrlicht引擎的3D游戏实例v0.7
- irrlicht引擎源码剖析1 - 引擎概览
- Irrlicht游戏引擎 初探
- 3D游戏引擎Irrlicht
- irrlicht引擎源码剖析 - IrrlichtDevice
- irrlicht引擎源码剖析 - IrrlichtDevice
- Irrlicht 游戏引擎开发 cooliris 界面(三)
- irrlicht引擎示例代码研究(1)
- Irrlicht 0.1引擎源码分析与研究(三)
- irrlicht引擎源码剖析 - 引擎概览
- irrlicht引擎源码剖析 - 引擎概览
- Irrlicht游戏引擎初步分析与研究
- 开源3D游戏引擎Irrlicht简介
- irrlicht引擎源码剖析2 - IrrlichtDevice
- irrlicht引擎源码剖析3 - 引用计数
- win api GetLastError()转换成系统信息代码
- 推拿培训师王春亮谈成功法则----死死盯住一个目标
- 第12周 程序阅读-多重继承4
- 11.1存储班长学生的信息类
- 提高第32课时,自测
- Irrlicht游戏引擎(V0.1)源码学习系列之一
- LeetCode 25 - Reverse Nodes in k-Group
- C++构造与析构(3) - 析构函数
- 关于文件和目录的几个函数
- 15第十二周实践项目——程序阅读
- 浏览器窗口放大缩小后页面内容居中解决方法
- HDU 1232--并查集
- Windows程序基础二:句柄、HINSTANCE句柄
- 修改Android手机的默认安装位置 为SDCard手机卡