资源简介
仿雷电游戏的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 Data\Award1.tga
文件 16428 2004-07-30 21:30 Data\Award2.tga
文件 16428 2004-07-30 21:30 Data\Award3.tga
文件 300 2004-07-30 21:30 Data\Ball.tga
文件 32812 2004-07-30 21:30 Data\Ballexplode.tga
文件 9901 2004-07-30 21:30 Data\bg.mid
文件 16428 2004-07-30 21:30 Data\Computer1.tga
文件 16428 2004-07-30 21:30 Data\Computer2.tga
文件 65580 2004-07-30 21:30 Data\Computer3.tga
文件 27440 2004-07-30 21:30 Data\Eat.wav
文件 2660 2004-07-30 21:30 Data\Fire.wav
文件 12332 2004-07-30 21:30 Data\Groud1.tga
文件 786476 2004-07-30 21:30 Data\Groud2.tga
文件 4140 2004-07-30 21:30 Data\Heavyball.tga
文件 8108 2004-07-30 21:30 Data\Hitthetarget.wav
文件 16428 2004-07-30 21:30 Data\Missile.tga
文件 131116 2004-07-30 21:30 Data\PlaneExplode.tga
文件 16428 2004-07-30 21:30 Data\Pla
文件 16428 2004-07-30 21:30 Data\Pla
文件 16428 2004-07-30 21:30 Data\Pla
文件 16428 2004-07-30 21:30 EXE\Data\Award1.tga
文件 16428 2004-07-30 21:30 EXE\Data\Award2.tga
文件 16428 2004-07-30 21:30 EXE\Data\Award3.tga
文件 300 2004-07-30 21:30 EXE\Data\Ball.tga
文件 32812 2004-07-30 21:30 EXE\Data\Ballexplode.tga
文件 9901 2004-07-30 21:30 EXE\Data\bg.mid
文件 16428 2004-07-30 21:30 EXE\Data\Computer1.tga
文件 16428 2004-07-30 21:30 EXE\Data\Computer2.tga
文件 65580 2004-07-30 21:30 EXE\Data\Computer3.tga
文件 27440 2004-07-30 21:30 EXE\Data\Eat.wav
............此处省略34个文件信息
- 上一篇:arcgis engine C++开发
- 下一篇:QM算法C++实现
相关资源
- VC++制作程序安装向导完整源码实现
- 简易的VC++点对点文件传输
- 扫雷游戏c++源码实现
- DDA画线算法
- 防火墙C++源码,测试可以运行
- 用c++自编的GPS单点定位程序源码
- 模拟卫星旋转和地球自转
- 车牌识别源码
- OpenCV手势识别-手掌特征提取源码
- c++primerplus第六版源码
- OpenGL纹理贴图源程序.rar
- 汉诺塔VC6.0可视化实现源码
-
Windows Media Pla
yer 控件做的简易音视 - 合并一个文件夹中的所有文件.cpp
- 计算机图形学实验二 opengl
- C利用循环左移函数流水灯
- C++统计票数的实现源码
- SHA-3keccak之C/C++官方源码
- vc++读取shp文件源码
- DES算法加密解密C++源码及程序完整的
- c语言奔跑的火柴人游戏源码
- OpenGL载入3ds模型并在MFC视图窗口显示
- 算术编码源程序c++程序
- 测试通过TMP75源码
- C++控制Windows桌面切换
- C语言windowlinux平台的SNTP实现
- MD4加密算法源码
- 3DES c源码实现
- AES5种加密模式源码C语言
- 5个遗传算法C语言源码
评论
共有 条评论