资源简介
这是一个基于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个文件信息
相关资源
- 计算机图形学 边填充算法实现代码
- OpenGL参考手册
- 嵌入式图形界面MiniGUI的示例程序9例
- linux应用层的华容道游戏源代码
- 计算机图形学课设 画板
- 加密cad图形的lisp文件
- 小鸡快跑游戏.
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- 一个比较完整的开源cad 图形程序
- [易语言]游戏多开例程
- 贪吃蛇游戏设计(汇编语言)
- MFC读三维模型obj文件
- VC 游戏编程—附源代码
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- c 图形面积计算 利用继承与多态
- C 纸牌游戏——21点
- 分享 mud 文字游戏 源码
- c 制作的RPG小游戏
- 五子棋游戏实现悔棋功能
- vc利用MFC底层开发的二维GIS管理软件,
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 简单的交互式图形系统的实现
- 简易绘图程序(计算机图形学课程设
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- 找不同FLASH游戏源码
评论
共有 条评论