資源簡介
這是一個基于opengl開發的射擊游戲,從中你可以得到利用opengl開發圖形處理程序的一個基本概念和思想

代碼片段和文件信息
#include?“5DG_Window.h“
void?TerminateApplication(GL_Window*?window) //?結束程序
{
PostMessage(window->hWnd?WM_QUIT?0?0); //?發送WM_QUIT消息
g_isProgramLooping?=?FALSE; //?停止程序
}?
void?ResizeWindowGL(int?width?int?height) //?重新設置窗口大小
{
glViewport(0?0?(GLsizei)(width)?(GLsizei)(height)); //?重置當前視口大小
glMatrixMode(GL_PROJECTION); //?切換到投影矩陣模式
glLoadIdentity(); //?重置投影矩陣
glOrtho(-(float)width/2(float)width/2-(float)height/2(float)height/2-100100); //?設置透視投影
glMatrixMode(GL_MODELVIEW); //?切換到模型視圖矩陣
glLoadIdentity(); //?重置模型視圖矩陣
}
BOOL?ChangeScreenResolution(int?width?int?height?int?bitsPerPixel) //?修改屏幕分辨率
{
DEVMODE?dmScreenSettings; //?設備設置模式?
ZeroMemory(&dmScreenSettings?sizeof(DEVMODE)); //?清空
dmScreenSettings.dmSize =?sizeof(DEVMODE); //?Devmode結構的大小
dmScreenSettings.dmPelsWidth =?width; //?設置為屏幕寬度
dmScreenSettings.dmPelsHeight =?height; //?設置為屏幕高度
dmScreenSettings.dmBitsPerPel =?bitsPerPixel; //?設為指定位長
dmScreenSettings.dmFields =?DM_BITSPERPEL?|?DM_PELSWIDTH?|?DM_PELSHEIGHT;
//?嘗試設置顯示模式并返回結果。注:?CDS_FULLSCREEN?移去了狀態欄
if?(ChangeDisplaySettings(&dmScreenSettings?CDS_FULLSCREEN)?!=?DISP_CHANGE_SUCCESSFUL)
{
return?FALSE; //?分辨率修改失敗返回?FALSE
}
return?TRUE; //?分辨率修改成功返回?TRUE
}
BOOL?CreateWindowGL(GL_Window*?window) //?建立OpenGL窗口
{
DWORD?windowstyle?=?WS_OVERLAPPEDWINDOW; //?設置窗口樣式
DWORD?windowExtendedstyle?=?WS_EX_APPWINDOW; //?設置窗口擴展樣式
PIXELFORMATDEscriptOR?pfd?= //?像素格式描述符(pfd)的設置
{
sizeof(PIXELFORMATDEscriptOR) //?像素的尺寸
1 //?版本號
PFD_DRAW_TO_WINDOW?| //?pfd必須支持窗口繪制
PFD_SUPPORT_OPENGL?| //?pfd必須支持OpenGL
PFD_DOUBLEBUFFER //?pfd必須支持雙緩存
PFD_TYPE_RGBA //?像素格式為RGBA
window->init.bitsPerPixel //?設置顏色深度
0?0?0?0?0?0 //?忽略顏色位數
0 //?無Alpha緩存
0 //?忽略偏移位
0 //?無累積緩存
0?0?0?0 //?忽略累積緩存位?
16 //?深度緩存為16位?
0 //?無模板緩存
0 //?無輔助緩存
PFD_MAIN_PLANE //?主要繪制層
0 //?保留位
0?0?0 //?忽略層遮罩
};
RECT?windowRect?=?{0?0?window->init.width?window->init.height}; //?定義窗口大小
GLuint?PixelFormat; //?保存像素格式
if?(window->init.isFullScreen?==?TRUE) //?切換全屏
{
if?(ChangeScreenResolution(window->init.width?window->init.height?window->init.bitsPerPixel)?==?FALSE)
{
//?全屏切換失敗
MessageBox(HWND_DESKTOP?“無法切換到全屏模式在窗口模式下運行.\nMode?Switch?FailedRunning?In?Windowed?Mode.“?“Error“?MB_OK?|?MB_ICONEXCLAMATION);
window->init.isFullScreen?=?FALSE; //?設置?isFullscreen?為FALSE
}
else //?全屏切換成功
{
ShowCursor?(FALSE); //?隱藏鼠標
windowstyle?=?WS_POPUP; //?設置窗口樣式
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????16428??2004-07-30?21:30??Game\Data\Award1.tga
?????文件??????16428??2004-07-30?21:30??Game\Data\Award2.tga
?????文件??????16428??2004-07-30?21:30??Game\Data\Award3.tga
?????文件????????300??2004-07-30?21:30??Game\Data\Ball.tga
?????文件??????32812??2004-07-30?21:30??Game\Data\Ballexplode.tga
?????文件???????9901??2004-07-30?21:30??Game\Data\bg.mid
?????文件??????16428??2004-07-30?21:30??Game\Data\Computer1.tga
?????文件??????16428??2004-07-30?21:30??Game\Data\Computer2.tga
?????文件??????65580??2004-07-30?21:30??Game\Data\Computer3.tga
?????文件??????27440??2004-07-30?21:30??Game\Data\Eat.wav
?????文件???????2660??2004-07-30?21:30??Game\Data\Fire.wav
?????文件??????12332??2004-07-30?21:30??Game\Data\Groud1.tga
?????文件?????786476??2004-07-30?21:30??Game\Data\Groud2.tga
?????文件???????4140??2004-07-30?21:30??Game\Data\Heavyball.tga
?????文件???????8108??2004-07-30?21:30??Game\Data\Hitthetarget.wav
?????文件??????16428??2004-07-30?21:30??Game\Data\Missile.tga
?????文件?????131116??2004-07-30?21:30??Game\Data\PlaneExplode.tga
?????文件??????16428??2004-07-30?21:30??Game\Data\Pla
?????文件??????16428??2004-07-30?21:30??Game\Data\Pla
?????文件??????16428??2004-07-30?21:30??Game\Data\Pla
?????文件??????16428??2004-07-30?21:30??Game\EXE\Data\Award1.tga
?????文件??????16428??2004-07-30?21:30??Game\EXE\Data\Award2.tga
?????文件??????16428??2004-07-30?21:30??Game\EXE\Data\Award3.tga
?????文件????????300??2004-07-30?21:30??Game\EXE\Data\Ball.tga
?????文件??????32812??2004-07-30?21:30??Game\EXE\Data\Ballexplode.tga
?????文件???????9901??2004-07-30?21:30??Game\EXE\Data\bg.mid
?????文件??????16428??2004-07-30?21:30??Game\EXE\Data\Computer1.tga
?????文件??????16428??2004-07-30?21:30??Game\EXE\Data\Computer2.tga
?????文件??????65580??2004-07-30?21:30??Game\EXE\Data\Computer3.tga
?????文件??????27440??2004-07-30?21:30??Game\EXE\Data\Eat.wav
............此處省略37個文件信息
評論
共有 條評論