毕业设计(论文)台球游戏计算机毕业设计

毕业设计(论文)台球游戏计算机毕业设计
一引言
从2001年开始游戏作为一种产业已经渐渐的为中国大众接受它所带来的经济效益和社会效益更是人们之前没有估计到的目前电子竞技已经成为一个本科专业游戏开发也是863计划中一个重要攻关方向从事游戏行业对软件开发的人员来说有着很广阔的前景
柔毛水杨梅游戏开发相对其他软件开发来说特别复杂它需要解决图形显示网络传输声音处理IO控制等问题这些一般都必须借助游戏开发包游戏引擎来实现图形技术的解决方案有OpenGL和DirectXOpenGL是三维图形的API标准但DirectX除了能解决三维图形问题而且支持2D图形音效管理网络互连外设控制等它作为一套完整的游戏开发包而成为事实上的行业标准本文分别以一个二维游戏和一个三维游戏的开发过程来论述DirectX在游戏开发中的应用向人们展示了各种商业游戏开发的基本方法和一般过程
二游戏开发所需技术及DirectX简介
1.DirectX概述
在Windows环境中程序一般不能直接访问硬件对硬件功能的利用一般都只能通过能用GDI和MCI等设备接口来实现游戏对实时性要求特别高这使得稍大规模的游戏都无法在Windows GDI环境下运行为了解决
这个问题微软公司开发出了DirectX SDK这是一些基于COM技术的组件在调用DirectX函数或是Method的时候其实是调用一些DirectX DLL然后这些DLL再调用显卡厂商所写的驱动程序
也就是说真正驱动硬件的是厂商所写的驱动程序[1]这就使得程序执行效率非常高并且能极大可能的把硬件的全部功能都发挥起来同时DirectX也具有各种硬件仿真功能如果调用的功能硬件加速器不支持DirectX就利用自己的仿真加速器来实现同样的效果这样用DirectX编出的游戏不再担心硬件功能不支持的问题了
DirectX的功能非常强大它包括以下几个组件
⑴ DirectDraw直接操纵显卡支持图像的移动拉伸等各种功能
⑵ DirectSound提供低延时的声音混合系统支持硬件加速虚拟电子围栏
⑶ DirectPlay简化游戏使用通讯设备的入口提供通讯功能的集成和多种通讯协议统一接口功能
⑷ Direct3D提供三维图形显示的支持
⑸ DirectInput兼容所有的输入外设简化游戏控制方法
⑹ DirectSetup简化游戏安装过程提供多用户登陆的方法以运行程序
⑺ DirectMusic支持MIDI音频支持运行时动态作曲
DirectX到90版时新的组件DirectGraphics已经代替了DirectDraw与Direct3D其他组件的功能也进行了进一步的扩展
DirectX在开发游戏方面的强大功能将会在本文的论述中看到目前它的应用范围已经远远的超过了游戏开发领域Windows平台下音频与视频的处理大部分也是利用DirectX来实现的相信今后DirectX的领域会更加广泛本段文字引用com站特此说明
2.开发平面游戏所需要的技术
DirectDraw技术主要是为了解决二维平面游戏的问题而引入的在
DirectDraw的诞生之前每个游戏厂商都不得不写自己的游戏引擎而这种游戏引擎过多的依赖机器硬件所提供的图形功能而且往往会局限在某一种硬件平台所以当时的游戏开发具有相当大的困难但纵观各种2D游戏引擎的功能基本上都有如下几点[5]
⑴直接移动内存中的数据一般来说是移动图片即可以把一张已经有的图片从一个内存块移动到另外一个地方在游戏中看到的效果就是图片由一个位置移动到了另外的一个位置
⑵指定一张图片中的某一部分显示出来很多时候游戏中都会出现一些图形相同的地方例如两位游戏角的衣服如果能指定图片的某一部分显示在指定的位置不仅可以提高开发的灵活性还可以使游戏所使用的图片大大减少这对提高游戏的执行效率是非常关键的
⑶支持ColorKey效果多张图片构成一个比较大的场景时可以指定透明图片中不想要的颜不显示出来给人的感觉就是不同的角之间的无缝接触
⑷控制显存中的主显示区域也叫可见区域在游戏中需要高频率的切换场景时如果通过不断的调入内存显示调出内存这样一个反复的过程来切换图片效率将会变得很低如果能够控制显卡中显示出来的数据区域切换时只更换主显存基址即实现了动画有了这种功能后游戏中即使再高频的切换角也不会对画面的流畅性造成任何影响
⑸支持多缓冲技术充分发挥计算机的并行处理能力在显示器输出图像的同时把下一帧将要显示的图形拷贝到在另个显存区域处理好显示的时候只要改变显卡的显示区域基址即可
⑹支持字体显示调板技术和绘图功能
滑石粉母粒
激光夜视如果要更好的实现游戏的效果游戏开发包最好能够支持下列图形功能
⑺支持半透明效果
⑻支持页面覆盖即控制某一图形始终显示在最前方
⑼支持多种图形格式
开发3D游戏所需要的技术
要开发一个三维游戏首先要解决的问题就是构造一个虚拟的三维世界给玩家的感觉如置身在现实世界一样当然用户能看到的就只有一个显示平面三维效果就是能够观察到三维世界中的不同的侧面在三维场景显示出来之前需将三维世界中某一个观察点看到的内容投影到显存当中
能够开发一个三维游戏的游戏开发包都具有以下功能[9]
⑴构造虚拟的三维世界这是3D的前提实际上就是在计算机中建立一个三维坐标系三维世界中有每一个角都有方向与位置的概念这些都可以通过一个坐标系就可以确定
⑵支持平移旋转缩放功能这些功能都是基于坐标变换[14]的
⑶支持光照与投影用算法来模拟现实生活中明暗效果支持点光源平行光和聚光灯支持光线跟踪与阴影
⑷支持材质和贴图现实中一个物体有其自身的表现状态包括颜反光强度和表面的图案在计算机的三维世界中颜与反光强度的需要有材质的支持而物理表面的图案则需要贴图功能来支持
⑸支持观察点与观察角度ViewPort决定程序显示出三维场景的哪一部分即看到计算机中的哪些场景
directdraw
⑹支持渲染功能把观察点视线范围内的场景投影到计算机屏幕
⑺支持外部模型每一个三维游戏都需要很多物体这里所述的物体不一定是玩家它还包括场景中的房屋树木等三维物体当物体太多的时候每个角不可能都靠软件设计师计算得到如果那样的话工作量太大了目前有很多的三维图形软件像3DSMaya等都可以直接建立三维模型只有游戏开发包支持把外部的模型直接导入到程序中在适当的时候把角调出来显示这样才可能开发大型的游戏三平面游戏LeapMan的实现
1.DirectDraw在二维图形处理方面的功能分析[4]
DirectDraw的图形处理功能非常强大它可以评估视频硬件的能力只要可能它就会对其某一特性加以利用例如如果你的显卡支持硬件 Blit DirectDraw 就会将位图映射这一操作分派给显卡来完成极大的提升运行速度硬件不支持时DirectDraw 便利用硬件仿真层 HEL 完成这项操作图1和图2是将要使用的两张图片图1是背景图图2为前景图利用图片局部显示功能在程序中分别取出203746等数据块如图3
当然这里所谓的取并不是把图片给分割出来而是指程序在图片中定位显示的时候只显示其中的一部分程序最终显示出的程序拼图效果如图4需要强调的是游戏中所用到的素材图片只有图1和图2所有的游戏都是利用这种原理把基本的图片在一起组合而构成大规模的场景
电光源设备
在一个游戏程序中一般来讲将会有很多要显示的图片只有合理的使用有限的内存资源才能使游戏的画面更加流畅所以一张图片在调入内存后尽可能的不要再次调入倘若现在程序要求原来显示的地方显示为如果能把已经显示了后者的内存区域的拷贝到前者现有的内存块内就可以达到了这种变化的效果这个功能就是显示内数据块移动功能

本文发布于:2024-09-22 13:29:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/336473.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:游戏   支持   功能   显示   图片   硬件   开发   图形
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议