//***********************************************************************************************
//名称::main.cpp
//描述:游戏主程序
//***********************************************************************************************
//-----------------------------------【头文件包含部分】------------------------------------
// 描述:包含程序所依赖的头文件
//-----------------------------------------------------------------------------------------
#include <d3d9.h>
#include <d3dx9.h>
#include <tchar.h>
#include <time.h>
#include "DirectxInputTreat.h"
#include "XFileload.h"
#include "Camera.h"
#include "TerrainClass.h"
#include "SnowParticleClass.h"
//-----------------------------------【库文件包含部分】------------------------------------
// 描述:包含程序所依赖的库文件
//-----------------------------------------------------------------------------------------
#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")
#pragma comment(lib, "dinput8.lib") // 使用DirectInput必须包含的头文件,注意这里有8
#pragma comment(lib,"dxguid.lib")
#pragma comment(lib, "winmm.lib")
//-----------------------------------------------------------------------------------------
// 【纹理绘制四步曲之一】:顶点的定义
//-----------------------------------------------------------------------------------------
struct CUSTOMVERTEX //定点结构体包含定点、纹理信息
{
FLOAT _x, _y, _z; // 顶点的位置
FLOAT _u, _v; // 纹理坐标
CUSTOMVERTEX(FLOAT x, FLOAT y, FLOAT z, FLOAT u, FLOAT v)
: _x(x), _y(y), _z(z), _u(u), _v(v) {}
};
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_TEX1) //定义结构体类型,D3DFVF_XYZ:包含为转换的X、Y、Z
//------------------------------------【全局宏定义】---------------------------------------
// 描述:全局宏定义在此声明,用于辅助,以便于修改
//-----------------------------------------------------------------------------------------
#define WINDOW_TITLE L"我的游戏世界【BY:落雪】" //窗口标题宏
#define WINDOW_CLASSNAME L"gameword" //窗口类名称
#define WINDOW_WIDTH 800 //窗口宽度宏
#define WINDOW_HEIGHT 600 //窗口高度宏
#define HERO_X 50.0f
#define HERO_Y 0.0f
#define HERO_Z 0.0f
//-----------------------------------【全局变量声明部分】----------------------------------
// 描述:全局变量的声明
//-----------------------------------------------------------------------------------------
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; //Direct3D设备对象
LPD3DXFONT g_pTextFPS = NULL; //字体COM接口
LPD3DXFONT g_pTextAdaperName = NULL; // 显卡信息的2D文本
LPD3DXFONT g_pTextInfor = NULL; // 绘制信息的2D文本
float g_FPS = 0.0f; //一个浮点型的变量,代表帧速率
wchar_t g_strFPS[50] = { 0 }; //包含帧速率的字符数组
wchar_t g_strAdapterName[60] = { 0 }; //包含显卡名称的字符数组
D3DXMATRIX g_matWorld; //世界矩阵
LPDIRECT3DVERTEXBUFFER9 g_pVertexBuffer = NULL; //顶点缓存对象
LPDIRECT3DINDEXBUFFER9 g_pIndexBuffer = NULL; // 索引缓存对象
LPDIRECT3DTEXTURE9 g_pMipTexture1 = NULL; // 纹理接口对象,用于渐进纹理的存放
DirectxInputTreat* g_pDInput = NULL; //一个DInputClass类的指针
CCamera* g_pCamera = NULL; //摄像机类的指针实例
D3DLIGHT9 g_Light; //全局光照
TerrainClass* g_pTerrain = NULL; //地形类的指针实例
SnowParticleClass* g_pSnowParticles = NULL; //雪花粒子系统的指针实例
XFileLoad* g_pXFileLoad1 = NULL; //模型类的第一个对象
XFileLoad* g_pXFileLoad2 = NULL; //模型类的第二个对象
XFileLoad* g_pXFileLoad3 = NULL; //模型类的第三个对象
XFileLoad* g_pXFileLoad4 = NULL; //模型类的第四个对象
XFileLoad* g_pXFileLoad5 = NULL; //模型类的第三个对象
XFileLoad* g_pXFileLoad6 = NULL; //模型类的第四个对象
LPD3DXANIMATIONCONTROLLER g_pAnimController = NULL;
LPD3DXFRAME g_pFrameRoot = NULL;
ID3DXAllocateHierarchy* g_pAllocateHier = NULL;
//-----------------------------------【全局函数声明】--------------------------------------
// 描述:全局函数在此声明,以便于调用
//-----------------------------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
HRESULT Direct3D_Init(HWND hwnd, HINSTANCE hInstance);
HRESULT Objects_Init();
void Direct3D_Render(HWND hwnd, FLOAT fTimeDelta);
void Direct3D_Update(HWND hwnd, FLOAT fTimeDelta);
void Direct3D_CleanUp();
float Get_FPS();
//-----------------------------------【wWinMain( )函数】-----------------------------------
// 描述:Windows应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){
//-------------------------------------------------------------------------------------
// ------------------------------------窗口类参数设定----------------------------------
//-------------------------------------------------------------------------------------
WNDCLASSEX mf = { 0 }; //用WNDCLASSEX定义一个窗口类
mf.cbSize = sizeof(WNDCLASSEX); //设置结构体的字节数大小
mf.style = CS_HREDRAW | CS_VREDRAW; //设置窗口的样式
mf.lpfnWndProc = WndProc; //设置指向窗口过程函数的指针 典型消息回调
mf.cbClsExtra = 0; //窗口类的附加内存,取0就可以了
mf.cbWndExtra = 0; //窗口的附加内存,依然取0就行了
mf.hInstance = hInstance; //指定包含窗口过程的程序的实例句柄。
mf.hIcon = NULL; //本地加载自定义ico图标
mf.hCursor = LoadCursor(NULL, IDC_ARROW); //指定窗口类的光标句柄。
mf.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH); //为hbrBackground成员指定一个白色画刷句柄
mf.lpszMenuName = NULL; //用一个以空终止的字符串,指定菜单资源的名字。
mf.lpszClassName = WINDOW_CLASSNAME; //指定窗口类的名字。
//-------------------------------------------------------------------------------------
// --------------------------------------注册窗口类------------------------------------
//-------------------------------------------------------------------------------------
if (!RegisterClassEx(&mf)) //设计完窗口后,需要对窗口类进行注册,这样才能创建该类型的窗口
return -1;
//----------------------------【CreateWindow( )】--------------------------------------
//描述:正式窗口的创建
//-------------------------------------------------------------------------------------
HWND hwnd = CreateWindow( //CreateWindow:窗口创建函数
WINDOW_CLASSNAME,
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
new word.rar (90个子文件)
new word
new word.sln 970B
Debug
new word.pdb 3.77MB
new word.ilk 3.89MB
new word.exe 153KB
new word.v12.suo 40KB
new word
KunN_002_col1_D.bmp 768KB
20110502081018963200.bmp 1.83MB
AllocateHierarchy.h 0B
TerrainClass.h 2KB
hero.X 2.84MB
Sky.X 111KB
Debug
vc120.pdb 1.25MB
DirectxInputTreat.obj 39KB
new word.log 76B
new word.tlog
cl.command.1.tlog 4KB
new word.lastbuildstate 152B
CL.read.1.tlog 145KB
link.read.1.tlog 5KB
link.write.1.tlog 766B
CL.write.1.tlog 5KB
link.command.1.tlog 2KB
main.obj 215KB
SnowParticleClass.obj 53KB
LoadMenu.obj 76KB
Camera.obj 60KB
vc120.idb 1.15MB
XFileload.obj 43KB
TerrainClass.obj 360KB
qiang.bmp 768KB
Resources
DirectxInputTreat.cpp 5KB
qizi.bmp 768KB
shu.X 13.68MB
dibanwujiao.bmp 768KB
SnowParticleClass.cpp 6KB
new word.vcxproj.filters 2KB
chuang.bmp 768KB
20110919033017062377.bmp 16.12MB
TerrainClass.cpp 8KB
zhuozidengzi.bmp 768KB
XFileload.cpp 4KB
2011091903301706248.bmp 825KB
men+zhu.bmp 768KB
new word.vcxproj 5KB
heighmap.raw 117KB
snow5.jpg 45KB
Cloth_KunN_11002_Body3_col1_d.bmp 1.5MB
KunN_019_col1_D.bmp 768KB
main.cpp 32KB
face_d2.bmp 768KB
Release
vc120.pdb 564KB
DirectxInputTreat.obj 79KB
new word.log 353B
new word.tlog
cl.command.1.tlog 3KB
new word.lastbuildstate 154B
CL.read.1.tlog 142KB
link.read.1.tlog 5KB
link.write.1.tlog 728B
CL.write.1.tlog 3KB
link.command.1.tlog 2KB
main.obj 962KB
SnowParticleClass.obj 243KB
Camera.obj 245KB
XFileload.obj 250KB
TerrainClass.obj 1MB
DirectxInputTreat.h 2KB
fang.X 226KB
snow4.jpg 37KB
D3DUtil.h 821B
new word.vcxproj.user 165B
MX+DL+JG.bmp 768KB
wuyan.bmp 768KB
kezhan.X 1.56MB
terrainstone.jpg 96KB
Camera.h 2KB
SnowParticleClass.h 2KB
00001_KunF_d.bmp 768KB
snow3.jpg 51KB
XFileload.h 902B
snow1.jpg 36KB
ri.X 108KB
KunN_016_col1_D.bmp 768KB
snow2.jpg 45KB
20110919033017062372.bmp 192KB
snow6.jpg 36KB
36_768173_0300c6ffe5148fa.bmp 3MB
Camera.cpp 9KB
AllocateHierarchy.cpp 0B
new word.sdf 43MB
Release
new word.pdb 827KB
new word.exe 39KB
共 90 条
- 1
资源评论
三层牛肉堡
- 粉丝: 17
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现对表面肌电信号进行归一化处理,并对归一化后的图形显示 .rar
- 基于matlab实现单级倒立摆的 T-S 模型 包括 LMI 程序源码
- 图书管理系统(struts+hibernate+spring+ext).rar
- 基于matlab实现此压缩包包含语音信号处理中的语音变声代码加音频.rar
- STM32使用PWM驱动舵机并通过OLED显示
- 基于matlab实现车辆路径规划;遗传算法;matlab代码.rar
- 图书管理系统(struts+hibernate+spring)130225.rar
- 基于matlab实现采用标量衍射理论,实现菲涅尔衍射和夫琅禾费衍射,对光波的波前传播和数字全息的应用有帮助.rar
- JavaScript版去除链表重复元素
- 微信小程序项目-功德木鱼(带设置面板-自定义文字、可选字体颜色、可选木鱼样式)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功