- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
delphi实例10--深入OpenGL游戏开发
实例十 用OpenGL实现星空闪电图
【程序说明】
实例九实现的OpenGL星体没有什么使用功能,而本例的星空闪电图则有一定的实用价值,因为不仅实现了背景贴图和声音资源的播放,还实现在背景上加载了一个OpenGL几何实体。随着闪电的不断旋转,背景和闪电的颜色都不断忽明忽暗地变化着,很有星空闪电的效果。本例程序运行结果如图10-1所示。
图10-1 用OpenGL实现星空闪电图
【编程思路】
本例同实例九不一样的地方就是它是完全在Delphi环境下实现的。因此,我们可以从这个实例中一步一步地学会如何在Delphi环境下创建一个声影具备的OpenGL动画游戏。下面是这个实例的一些关键技术。
1、在控制台环境下创建自定义的窗口。
2、Delpi环境下OpenGL初始环境设置。
3、用OpenGL技术绘制场景和闪电。
4、背景贴图技术。
5、声音媒体的播放。
这些技术的具体实现请参考后面的代码部分。
【编程步骤】.
1.按照前面介绍的方法,新建一个控制台应用程序。
2.编写代码
(1)在控制台环境下创建自定义的窗口,并根据具体情况初始化OpenGL设备环境。
function glCreateWnd(Width, Height : Integer; Fullscreen : Boolean; PixelDepth : Integer) : Boolean;
var
wndClass : TWndClass; // 窗口类型
dwStyle : DWORD; // 窗口风格
dwExStyle : DWORD; // 窗口扩张风格
dmScreenSettings : DEVMODE; // 屏幕设置
PixelFormat : GLuint; // OpenGL渲染设置
h_Instance : HINST; // 当前实例
pfd : TPIXELFORMATDESCRIPTOR; //OpenGL窗口相关设置
ResHandle : THandle; //声音资源句柄
begin
…………(创建一个窗口,详细代码见光盘)
//设置OpenGL窗口
with pfd do
begin
nSize:= SizeOf(TPIXELFORMATDESCRIPTOR);
nVersion := 1;
dwFlags:= PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
iPixelType := PFD_TYPE_RGBA; // RGBA颜色格式
cColorBits := PixelDepth; // OpenGL颜色深度
cDepthBits := 16; // 指定深度缓冲区的深度
iLayerType := PFD_MAIN_PLANE;
end;
PixelFormat := ChoosePixelFormat(h_DC, @pfd); //设置刚才设置的象素格式
if (PixelFormat = 0) then
begin
glKillWnd(Fullscreen);
MessageBox(0, 不能找到一个合适的象素格式!, 错误, MB_OK or MB_ICONERROR);
Result := False;
Exit;
end;
//设置象素格式
if (not SetPixelFormat(h_DC, PixelFormat, @pfd)) then
begin
glKillWnd(Fullscreen);
MessageBox(0, 不能设置象素格式, 错误, MB_OK or MB_ICONERROR);
Result := False;
Exit;
end;
//创建一个OpenGL 渲染环境
h_RC := wglCreateContext(h_DC);
if (h_RC = 0) then
begin
glKillWnd(Fullscreen);
MessageBox(0, 不能创建一个OpenGL 渲染环境, 错误, MB_OK or MB_ICONERROR);
您可能关注的文档
- 2015年八年级牛津译林Unit3 教案.doc
- 新概念第一册61课-72课语法知识点总结.docx
- 大班3a Unit4 Jack ,Be Nimble.doc
- 廖歆TOEFL写作.doc
- 常用英语短语及例句-A.doc
- 英语AB级词组.docx
- 新牛津英语8A-Unit1-4重点词组、句型.doc
- 九年级英语中考模拟考试试卷.doc
- ruby开发答疑.docx
- AUTOLISP 程序命令.doc
- 2025年河北省公安厅强制医疗所公开招聘警务辅助人员拟聘用人员(第一批)公示的备考题库附答案.docx
- 2025年盛京银行股份有限公司秋季校园招聘备考题库最新.docx
- 2025年春季贵州磷化(集团)有限责任公司社会招聘139人笔试参考题库附答案.docx
- 2025年浙江杭州市淳安县国有企业招聘64人考前自测高频考点模拟试题附答案.docx
- 2025年英大证券有限责任公司招聘2人备考题库最新.docx
- 2025年榆林华源电力有限责任公司招聘备考题库(5人)附答案.docx
- 2025年平顶山郏县医疗健康集团县人民医院招聘专业技术人员(人事代理)60名备考题库附答案.docx
- 2025年浙江台州市路桥区教育系统校园招聘教师23人备考题库附答案.docx
- 2025年天津华勘集团有限公司所属企业单位招聘工作人员57人公考前自测高频考点模拟试题最新.docx
- 2025广东阳江阳西县委机构编制委员会办公室选调公务员2人备考题库附答案.docx
最近下载
- 01、02、生化分析仪作业指导书.docx VIP
- 2025中国银发人居发展报告.pdf
- 上海环球金融中心钢结构设计与施工.pdf VIP
- 成都巿国有企业监事会业务工作规范.doc VIP
- 汽车学会-2023汽车智能座舱分级与综合评价白皮书.pdf VIP
- 政治站位不高政治意识不强的自查自纠报告三篇.docx VIP
- 办理出入境证件函(国家工作人员办护照用)(标准模板).pdf VIP
- 2025年新版人教版四年级上册英语 四上Unit 5 The weather and us 单元整体教学设计.pdf VIP
- 第十一章 第四节智力的发展(课件)《普通心理学》(人教版 第二版)同步教学.ppt VIP
- GB_50203-2011_砌体结构工程施工质量验收规范.pdf VIP
原创力文档


文档评论(0)