Irrlicht游戏引擎(V0.1)源码学习系列之一
2015-05-24 09:55
288 查看
首先创建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); #endif break; 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
未完待续:
相关文章推荐
- android游戏引擎andengine学习系列六:Physics物理碰撞效果理解
- android游戏引擎andengine学习系列三:绘制游戏虚拟摇杆
- Irrlicht 0.1引擎源码分析与研究(二)
- android游戏引擎andengine学习系列四:绘制特效的动画文字
- android游戏引擎andengine学习系列六:Physics物理碰撞效果理解
- android游戏引擎andengine学习系列一:运行examples
- 转:Irrlicht 0.1引擎源码分析与研究(一)
- MVC系列——MVC源码学习:打造自己的MVC框架(四:了解神奇的视图引擎)
- Irrlicht 0.1引擎源码分析与研究(三)
- android游戏引擎andengine学习系列七:纹理贴图的理解
- LayaAir引擎学习日志10----LayaAir的一些游戏演示和游戏项目源码开源
- android游戏引擎andengine学习系列七:纹理贴图的理解
- android游戏引擎andengine学习系列六:Physics物理碰撞效果理解
- android游戏引擎andengine学习系列五:粒子发射器形成的超炫效果
- android游戏引擎andengine学习系列五:粒子发射器形成的超炫效果
- Irrlicht 0.1引擎源码分析与研究(一)
- android游戏引擎andengine学习系列二:简单的例子
- 学习实战三:基于Cocos2d-x引擎模仿微信打飞机游戏
- Irrlicht 源码学习笔记 开篇
- 【iOS-Cocos2d游戏开发】系列(总结了多篇文章,可以好好学习