#include<stdio.h>
#include"stdafx.h"
#include"main.h"
//#pragma comment(lib,"winmm.lib")
#include"Game.h"
#define MAXLOADSTRING 100
//全局变量start
HINSTANCE g_hInstance;
TCHAR g_szTitle[MAXLOADSTRING];
TCHAR g_szWindowClass[MAXLOADSTRING];
int g_Width = 800;
int g_Hight = 600;
HWND g_hWnd;
Game* g_pGame = NULL;
//全局变量end
//函数声明start
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow);
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
void Paint( float fElapsed );
void Update( float fElapsed );
//函数声明end
//主函数start
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR lpCmdLine, int nCmdShow)
{
//从资源初始化全局字符串
LoadString(hInstance, IDS_APP_TITLE, g_szTitle, MAXLOADSTRING);
LoadString(hInstance, IDS_D3DX, g_szWindowClass, MAXLOADSTRING);
//应用程序初始化
//注册类
if(!MyRegisterClass(hInstance))
{
//MessageBox(NULL, "注册类失败", "失败", MB_OK);
return FALSE;
}
//创建窗口
if(!InitInstance(hInstance, nCmdShow))
{
//MessageBox(NULL, "创建窗口失败", "失败", MB_OK);
return FALSE;
}
//--------------------------------------------------------
//Game类初始化start
g_pGame = new Game( g_hWnd, hInstance );
//if( g_pGame )
//{
g_pGame->Init();
//}
//Game类初始化end
//--------------------------------------------------------
//消息循环
MSG msg;
ZeroMemory(&msg, sizeof(msg));
while(msg.message!=WM_QUIT)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
static float fPresentTime = static_cast<float>( timeGetTime() );
float fCurrentTime = static_cast<float>( timeGetTime() );
float fElapsedTime = ( fCurrentTime - fPresentTime ) * 0.001;
g_pGame->Draw();
g_pGame->Update();
fPresentTime = fCurrentTime;
static float AllTime = 0.0;
static int Tick = 0;
AllTime += fElapsedTime;
Tick++;
if( AllTime >= 1.0f )
{
char Temp[50];
memset( Temp, 0, sizeof(Temp) );
sprintf( Temp, "FPS = %d", Tick);
SetWindowText( g_hWnd, Temp);
AllTime = 0.0;
Tick = 0;
}
}
}
//结束循环 注销窗口 主函数返回
UnregisterClass(g_szWindowClass, hInstance);
return (int)msg.wParam;
}
//主函数end
//函数定义start
//注册类
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wce;
wce.cbClsExtra = 0;
wce.cbSize = sizeof(WNDCLASSEX);
wce.cbWndExtra = 0;
wce.hbrBackground = (HBRUSH)(COLOR_WINDOW+3);
wce.hCursor = LoadCursor(NULL, IDC_ARROW);
wce.hIcon = LoadIcon(NULL, IDI_HAND);
wce.hIconSm = NULL;
wce.hInstance = hInstance;
wce.lpfnWndProc = (WNDPROC)WndProc;
wce.lpszClassName = g_szWindowClass;
wce.lpszMenuName = NULL;
wce.style = CS_HREDRAW | CS_VREDRAW;
return RegisterClassEx(&wce);
}
//创建窗口
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
DWORD dwFramWidth = GetSystemMetrics(SM_CXSIZEFRAME);
DWORD dwFramHight = GetSystemMetrics(SM_CYSIZEFRAME);
DWORD dwCaptionHight = GetSystemMetrics(SM_CYCAPTION);
DWORD dwWindowWidth = g_Width + dwFramWidth * 2;
DWORD dwWindowHight = g_Hight + dwFramHight * 2 + dwCaptionHight;
RECT rcDesktop;
GetWindowRect( GetDesktopWindow(), &rcDesktop );
DWORD dwWinX = ( rcDesktop.right - rcDesktop.left ) / 2 - dwWindowWidth / 2;
DWORD dwWinY = ( rcDesktop.bottom - rcDesktop.top ) / 2 - dwWindowHight / 2;
g_hInstance = hInstance;
g_hWnd = CreateWindow( g_szWindowClass, g_szTitle, WS_OVERLAPPEDWINDOW,
dwWinX, dwWinY, dwWindowWidth, dwWindowHight, NULL, NULL, hInstance, NULL );
if(!g_hWnd)
{
//MessageBox(NULL, "创建窗口失败", "失败", MB_OK);
return FALSE;
}
//AnimateWindow( g_hWnd, 500, AW_CENTER );
ShowWindow( g_hWnd, nCmdShow );
UpdateWindow( g_hWnd );
return TRUE;
}
//消息处理
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
PAINTSTRUCT ps;
HDC hDC;
switch( message )
{
case WM_DESTROY:
PostQuitMessage( 0 );
break;
case WM_PAINT:
hDC = BeginPaint( hWnd, &ps );
EndPaint( hWnd, &ps );
break;
case WM_KEYDOWN:
{
switch( wParam )
{
case VK_ESCAPE:
PostQuitMessage( 0 );
break;
}
}
default:
return DefWindowProc( hWnd, message, wParam, lParam );
}
return 0;
}
//画图
void Paint( float fElapsed )
{
//if( g_pGame )
//{
g_pGame->Draw();
//}
}
//逻辑更新
void Update( float fElapsed )
{
//if( g_pGame )
//{
g_pGame->Update();
//}
}
//函数定义end
没有合适的资源?快使用搜索试试~ 我知道了~
DX中对矩阵和定点的运用太阳地球月亮和球.rar
共31个文件
h:6个
cpp:4个
obj:4个
4星 · 超过85%的资源 需积分: 10 15 下载量 136 浏览量
2009-05-29
00:45:38
上传
评论 1
收藏 2.03MB RAR 举报
温馨提示
自己写的C++代码 运用DX将矩阵的功能演示出来 并在该程序中添加了 一个球的演示
资源推荐
资源详情
资源评论
收起资源包目录
.rar (31个子文件)
太阳地球月亮和球
windows基本框架
windows基本框架.suo 23KB
bin
windows基本框架.ilk 436KB
windows基本框架.exe 56KB
windows基本框架.pdb 747KB
windows基本框架
LBox.cpp 3KB
main.cpp 5KB
windows基本框架.vcproj 4KB
main.h 34B
resource.h 503B
stdafx.h 413B
windows基本框架.rc 2KB
Box.h 481B
windows基本框架.vcproj.WWW-A7244916DAA.Administrator.user 1KB
Game.cpp 4KB
Game.h 544B
LBox.h 524B
Box.cpp 2KB
obj
vc80.pdb 372KB
Box.obj 41KB
BuildLog.htm 6KB
windows基本框架.res 112B
windows基本框架.exe.embed.manifest 403B
mt.dep 67B
windows基本框架.exe.embed.manifest.res 468B
main.obj 48KB
vc80.idb 587KB
windows基本框架.exe.intermediate.manifest 385B
LBox.obj 44KB
Game.obj 44KB
windows基本框架.ncb 6.06MB
windows基本框架.sln 922B
共 31 条
- 1
资源评论
- 亽仒2013-06-16入门里很不错的例子
zuihou55
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功