资源简介
这是一个基于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个文件信息
相关资源
- lighthouse3d GLSL的英文教程,很适合入门
- 拼图游戏自动复原支持3乘3以上易语言
- Unity3d视频教程
- 小霸王其乐无穷打字游戏
- vs2015编译的yolo3图形界面程序源码
- 基于labView 象棋游戏
- 网络游戏测试用例测试点
- myeclipse插件图形化安装工具-包Create
- 一款可以直接编译使用的《弹一弹》
- cocos-js小游戏《别踩白块》游戏源码以
- 飞机大战游戏 模块设计报告
- 实现读取高度图,设置点光源设置材
- 连连看游戏的设计思路文档
- DOTween Pro 1.0.165 游戏可视化编辑器扩展
- 基于spartan3an的贪吃蛇游戏设计
- Unity UGUI ui上显示3D模型游戏物体
- 一个用OpenGL完成的下雨模拟程序
- 纵横四海文字游戏源代码
- 关于EDA课程设计中 的乒乓球游戏机的
- unity官方Stealth 游戏开发素材和游戏源
- erlang版游戏场景aoi(基于四叉树)
- 利用OpenGL绘制一个简单场景:比如球
- Pinball - 非常经典windows自带的三维弹球
- Pygame游戏源代码:网络版双人对战贪
- 基于FPGA乒乓球游戏机Verilog设计
- 乒乓球游戏机的设计
- 基于DirectX+11的图形程序设计测试题及
- 论文研究 - 表面磁异常三角反演
- 基于OpenGL的三维旋转算法及其在计算
- surfer12v12.2.705汉化特别版(附注册机汉
评论
共有 条评论