资源简介
仿雷电游戏的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++实现
相关资源
- C++头文件转delphi工具 + 源码
- 基于MFC的TCP调试助手源码95706
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- 安科瑞智能电能表MODBUS通讯程序 VC6
- 九齐单片机源码
- 安卓c语言开发SDL2+opengles
- Qt画图工具源码(qgraphics draw)
- qt 串口助手源码
- modbus 主机源码
- 《LINUX C编程从初学到精通》光盘源码
- OLED驱动源码
- tm1650+stm32f103源码(board_tm1650.c)
- cheat engine 7.2源码
- CrySearch内存搜索器源码
- FTP客户端源码(c++)
- MFC视频播放器源码(支持avi/wma/mp3等格
- CreatBitmap图片合成源码
- 交互式计算机图形学 第六版 OpenGL源代
- VC++基于OpenGL模拟的一个3维空间模型
- vs2008 can总线通讯源码
- 宠物管理系统课程设计(源码+数据库
- Windows扩展命令程序(源码)
- c语言实现火车订票系统(控制台)源
- 鼠标连点器(附源码)
- c++ 简易贪吃蛇源码
- 杀毒软件源码
- 经典外汇智能交易程序Amazing3.1源码(
- 微型文件系统源码(FatFs)
- 海康私有流分析接口源码(附使用说
评论
共有 条评论