• 大小: 880KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: 其他
  • 标签: opengl  游戏  图形  

资源简介

这是一个基于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\Playercenter.tga

     文件      16428  2004-07-30 21:30  Game\Data\Playerleft.tga

     文件      16428  2004-07-30 21:30  Game\Data\Playerright.tga

     文件      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个文件信息

评论

共有 条评论