免费论文网 首页

实弹射击游戏

时间:2018-11-09 10:58 来源:免费论文网

篇一:模拟射击游戏

课 程 设 计 报 告

课程设计名称:

课程设计题目:

微机系统综合课程设计 模拟射击游戏

沈阳航空航天大学课程设计报告

目 录

第1章 总体设计方案 .................................................................................................. 1

1.1设计需求 ................................................................................................................. 1

1.2设计原理 ................................................................................................................. 1

1.2.1 提出方案 ......................................................................................................... 1

1.2.2 方案论证 ......................................................................................................... 2

1.3 设计环境 ................................................................................................................ 3

第2章 详细设计方案 .................................................................................................. 4

2.1硬件设计 ................................................................................................................. 4

2.2软件设计 ................................................................................................................. 5

2.2.1模拟射击游戏主程序 ...................................................................................... 5

2.2.2 LEVEL1程序 .................................................................................................... 7

2.2.3 LEVEL2、LEVEL3程序 .................................................................................... 8

2.2.4 DELAY按键检测判断程序 ............................................................................ 9

2.2.5中断响应程序 ................................................................................................ 10

2.2.6加分及提示显示程序 ..................................................................................... 11

2.2.7暂停游戏、结束游戏程序 ............................................................................ 12

第3章 结果测试及分析 ............................................................................................ 13

3.1 结果测试 ............................................................................................................ 13

3.2 结果分析 ............................................................................................................ 14

参考文献 ........................................................................................................................ 16

附录(程序清单) .................................................................................................. 17

第1章 总体设计方案

1.1设计需求

用键盘、八段码和LED 灯模拟射击游戏的运行过程。用点亮的LED灯表示猎物的位置,键盘数字键0~7对应8个LED灯用来表示射击猎物的位置,八段码显示游戏当前分数和游戏时间的倒计时。用四个按键分别用来选择开始游戏、暂停游戏、结束暂停和结束游戏。要求游戏能按以下方式运行:

(1)游戏至少分为简单、中等和复杂三个级别,预先设计三种级别中猎物每次出现的数量(最多四个)、方向、移动的速度、停留的时间等;

(2)可以自选游戏的级别,游戏开始时猎物出来,即单色灯有序地依次亮灭。此时,如果游戏者的按键和小灯的位置相同,即代表打中,记分牌加1分;

(3)键盘上设置暂停键、结束键、开始键、并在游戏进行过程中显示得分

1.2设计原理

利用键盘、数码显示接口芯片8279采用键盘扫描技术,实现矩阵键盘的扫描、延时去抖和对键盘输入数据的自动识别同时对八段数码管显示器的动态控制。

利用可编程的定时/计数芯片8253采用分频技术,实现对高频脉冲源的分频处理,输出秒脉冲(频率为1HZ)。

利用可编程中断控制器8259A采用中断技术,响应秒脉冲的中断请求。实现对时间的倒计时控制。

利用并行接口芯片8255A并行I/O端口,实现对8个LED灯亮灭的循环控制。 通过软件编程,实现对射击游戏的具体运行过程的控制。

1.2.1 提出方案

用点亮的LED灯表示猎物的位置,键盘数字键0~7对应8个LED灯用来表示射击猎物的位置,8表示游戏开始,9表示游戏暂停,A表示结束暂停,B表示游戏结束。

用寄存器AH保存当前猎物的位置值,按照设定的速度不断变化,在设定的

停留时间将其转换成LED灯的亮灭显示,。寄存器AL保存游戏者射击猎物的位置值,通过键盘读出键值。比较两位置值是否相等,如果相等这表示射击击中猎物同时加1分,否则不击中,继续等待新的键入判断。定时器按照设定的时间进行倒计时,只有在设定的时间内得分达到规定的分数,认为完成该等级的游戏并进入下一等级游戏,否则将重新开始该等级的游戏。

采用可编程键盘/显示器接口芯片8279,完成键盘输入和显示控制功能。采用可编程中断控制器芯片8259A响应外部向CPU提出的中断请求。采用可编程定时器/计数器芯片8253,将两个计数器级联产生秒脉冲,周期性触发中断,在中断程序中实现计时功能。利用可编程并行接口芯片8255A控制LED灯的亮灭。

1.2.2 方案论证

分别从预设计程序和预使用芯片两方面进行论证。

1.对预设计的程序进行论证

程序开始时,首先对游戏进行初始化,设初始游戏的分数为0,设定规定时间为20,猎物默认位置为不出现即LED灯全灭。键盘等待键入,可输入1、2和3三个级别。键盘等待键入,键入8可开始游戏。游戏开始,猎物从一个方向出现并向另一方向移动,在此过程中键盘随时可以有键按下同时判断按键是否与LED灯表示的猎物位置相对应,即是否击中猎物,击中加1分,没有击中不加分。继续等待或判断下一个按键。在倒计时为0前,分数达到9分,通过该级游戏,数码管显示GOOD可进入下一级游戏,键入8开始下一级游戏。如果没有达到9分则数码管显示FAIL,重新开始该等级游戏。

数码管要同步显示当前的游戏分数和游戏剩余时间。

游戏过程中可以键入9来暂停游戏,暂停游戏时可以键入A结束暂停继续游戏。

游戏过程中也可以键入B来结束游戏,同时数码管显示FINISH。

2.对预设使用的芯片进行论证

8279是可编程键盘/显示接口芯片。它的功能主要包括键盘输入和显示控制 部分,其中键盘部分提供扫描功能。当有键按下时将键值读出交给CPU处理。显示部分则是提供扫描方式的显示接口,可与八段数码管连接,将要显示的信息转

换为数码管的识别的值,送入数据端口即可按固定的方式显示。

8253可编程定时/计数器可以使用方式2对高频脉冲源分频。由于脉冲源频率为307200HZ,一个计数器最大可以65536分频,一次分频不能得到秒脉冲,所以将计数器00与计数器01串联,计数器00初值为FFFFH,计数器01初值为5,经过两次分频后近似等到秒脉冲。

8259A是可编程中断控制芯片,它用来管理外设向CPU提出的中断请求。由8253每秒产生一个中断请求,8259A响应这一中断请求,调用中断处理程序,中断程序中实现对时间的记录与控制。

8255A是可编程并行输入输出接口芯片,具有三个8位并行端口,将8位并行端口A分别连接8个LED灯,通过A端口8位输出高低电平实现对LED灯亮灭的控制。

经过论证,证明所提出的方案是切实可行的。

1.3 设计环境

硬件环境:AEDK实验箱、PC机。

软件环境:LCT88EA应用软件、WINDOWS 2000操作系统。

篇二:最好玩的射击游戏

最好玩的射击游戏

在游戏越来越多元化的今天,射击游戏很早之前就有了flash版本,相信在往后flash版射击游戏中会层现出更多吸引玩家眼球,更加耐玩的游戏,虽说不会像页游、网游那样具有很大的影响力和市场,个人觉得射击游戏也会有自己的一席之地。

随着现在的游戏潮流大军不断地涌入市场,声势浩大。一款好玩的射击游戏是否值得玩家去全身心地投入,那就要看游戏的各方面质量了,总而言之,射击游戏发展的趋势正在逐渐加强,如果有一个资源充足、让大家可以在里面找到自己喜欢的游戏的网站,那无非就是一个成功的网站,下面我向大家推荐一个个人认为拥有最好玩的flash射击游戏的网站,地址:。以下的几款好玩的射击游戏仅代表个人的观点。

一、突击反恐任务:/flash/99255.htm

这是一款以Unity 3D技术为引擎的小游戏,有着高质量的3D视觉效果!游戏中以第一人称的视角进行游戏,让人身临其境的体验游戏带来的视觉冲击,大大增加了游戏的真实感。玩家可扮演警察或匪徒,主要以歼灭敌人为目的。其中游戏的地图几乎采用反恐精英里的地图,相信很多玩家不会陌生,反恐精英深受广大玩家的喜爱,相信这款游戏亦是如此!

二、魂斗罗完整版:/flash/24844.htm

魂斗罗flash完整版本,让大家回味原汁原味的魂斗罗,回味经典,回味传奇。如今很多射击游戏都成为了魂斗罗类游戏,魂斗罗对动作射击游戏的影响是不可估量的,以至于后来众所周知的动作射击名作《合金弹头》在设计上都受到了来自当年《魂斗罗》的深刻影响,《魂斗罗》为射击游戏领导了一场全新的游戏革命。所以作为首推游戏也不为过吧!

三、二战前线2:/flash/9253.htm

二战前线2是《合金弹头》系列之一,是SNK公司的招牌游戏,自从出了第一部以后,便受到了玩家高度赞扬和喜爱,可以说是所向披靡,在横版系列的射击游戏中更是高出一筹,该系列游戏独特的卡通风格、逼真而又滑稽搞笑人物动作和激烈的枪战场面让玩家能不断地从中找到乐趣,其画面也延续了《合金弹头》系列的一贯风格,色彩鲜艳,场景丰富,至于音乐方面节奏快感强烈,能给人带来震撼,深受广大玩家的喜爱。

四、战火英雄:/flash/90433.htm

战火英雄是最近很热门的一款射击游戏,以其流畅的操作感,优美的画面,激昂奋进的音乐吸引着很多的玩家,游戏中设置有3中模式,15个场景,65中武器,其剧情的发展也是相当的不错,相信给玩家们的绝对是不一般的体验。不过个人觉得这款游戏最出色的地方是在武器方面,在游戏中你需要不断的升级英雄,不断的装备,不断地迎接一场场激烈的枪战,来获得最终的胜利。

五、超合金战纪2:/flash/95286.htm

4399超合金战记2是一款集合了RPG、射击元素的横版过关游戏,在前作的基础上加入了武器升级武器强化、人物训练、芯片获取等更多RPG元素,玩家可以在游戏中不断增强自己的实力,从而挑战更加强大的敌人,其具有丰富场景的剧情也延续了上一部,画面风格靓丽、操作流畅也是游戏的一大亮点,可以说合金战记已经是作为最新射击游戏的领衔者之一了。

六、热血女战警:/flash/90375.htm

一款十分火爆的射击游戏,画面风格优美,加上超级炫丽的3D效果,让玩家玩起来犹如身临其境,可以说是射击类游戏的精品作之一。而且游戏上手容易,难度也不大,个人觉得唯一的缺憾就是少了武器的装备,不过这也足以让玩家可以通关了。其最大的玩点还是3D效果、操作的流畅,其次战斗的场面宏大也可以说是一个蛮不错的元素吧!

以上的几款射击游戏是个人在玩4399游戏过程中总结出来的,当然,每一个人有每一个人的喜欢和爱好,加之对游戏的不同看法,所以发现好玩的射击类游戏各不相同。不过能找到每一个人心目中认为最好玩的射击游戏那是最好的!在此,祝玩家们游戏愉快~

篇三:大实验射击游戏

嵌入式Linux应用程序开发

期末结课实验

基于QT的射击游戏

学号:1411640407

姓名:林向东

班级:计算机1404班

学院:计算机科学与软件学院

【实验目的】

1、掌握Qt下绘图函数的使用方法;

2、掌握标签(Label)、段码液晶(LCDNumber)、滑动条(Slider)等部件的应用;

3、掌握Qt下不同坐标系的转换。

4、掌握通过源代码重构工程并编译的方法

【实验设备】

1、装有Ubuntu系统或装有Ubuntu虚拟机的PC机一台;

2、凌阳A8嵌入式实验箱一台;

3、本实验用到实验箱的模块有:S5PV210 CPU板模块,LCD液晶屏。

【实验要求】

完成一个射击小游戏,这是4.7.0之前的版本的Qt源码中自带的一个范例程序,具体位置在qtopia-core-opensource-src-4.3.5\examples\tutorial\t14。虽然在4.7.0之后的版本中删掉了这个范例,但是通过这个实例,可以使读者深入理解QT信号与槽,变换坐标系等较深层内容。运行后游戏界面如图。

【实验原理】

1、Qpainter

QPainter类低水平的绘制,例如在窗口部件上。使用Qpainter类,需要包含头文件<QPainter>绘制工具为做到绝大部分绘制图形用户界面程序的需要提供了高度优化的函数。QPainter可以绘制从简单的直线到像饼图和弦这样的复杂形状。它也可以绘制排列的文本和像素映射。通常,它在一个“自然的”坐标系统中绘制,但是它也可以在坐标系转换中做到这些。

使用方法很简单并且这里有可以使用的许多设置:font()返回当前设置的字体、setFont()设置要使用的字体。如果你设置一个不可用的字体,Qt会找到一个相近的匹配。实际上,font()返回你使用

setFont()所设置的东西并且fontInfo()

返回你实际使用的字体(这

也许是相同的)。brush()是当前设置的画刷,用来填充例如圆的颜色或者调色板。pen()是当前设置的画笔,用来画线或者边缘的颜色或者点画。painter的当前状态能通过调用save()和稍后调用restore()存储在stack中.当我们需要临时改变一些painter settings并要恢复到以前的状态时,这个功能是很有用的. QPainter的核心功能是绘制,并且这里有最简单的绘制函数:drawPoint()、drawPoints()、drawLine()、drawRect()、drawWinFocusRect()、drawRoundRect()、drawEllipse()、drawArc()、drawPie()、drawChord()、

drawLineSegments()、drawPolyline()、drawPolygon()、

drawConvexPolygon()和drawCubicBezier()。所有这些函数使用整数坐标,它们没有浮点数的版本,因为我们想使绘制尽可能快地进行。

2、坐标系统

在Qt中的一个绘画设备是一个可画的二维平面。QWidget、QPixmap、QPicture和QPrinter都是绘画设备。QPainter是一个可以在上面画的对象。一个绘画设备的默认坐标系统的原点在左上角。X轴由左向右增加,Y轴由上向下增加。对于基于像素的设备单位是像素,对于打印机是点。Qt的坐标系除了默认的坐标系以外还可对坐标系进行转换,这样结合Qpainter的绘图函数就可以画出各种图形。Qt提供了像QPainter::rotate()、QPainter::scale()、QPainter::translate()等方法来改变坐标系。

3、射击小游戏

射击小游戏可以通过拖动右边“ANGLE”和“FORCE”滑动条,改变发射子弹的角度和力量,点击“Shoot”按钮就可以发射子弹,子弹以抛物线的角度运行,如果撞到红色的目标物体,则游戏成功,上面的LCD段码“HITS”数值加一,每一局规定可以发射子弹的数据,SHOTS LEFT显示还有多少发子弹可以发射。整体窗口布局可以分为以下几部分:上面的按钮及LCD段码,包括

“Quit”“Shoot”“NewGame”“HITS”“SHOTS LEFT”;窗口左边的‖ANGLE‖,‖FORCE‖是LCD段码和滑动条的组合,可以用来改变发射角度和发射力量两个变量;窗口右边大部分黄色的区域是游戏主窗口,里面包括了大炮,炮弹,目标,障碍墙等几个成员。

【实验代码】

lcdrangge.cpp和lcdrange.h创建了一个新的窗体,窗体中包含了一个标签,一个LCD段码,一个滑动条。滑动条和LCD段码建立信号与槽的联系,这样当滑动条移动时其数值的变化直接就可以通过LCD段码显示。其构造函数如下:

void LCDRange::init()

{

QLCDNumber *lcd = new QLCDNumber(2); // 定义LCD段码lcd->setSegmentStyle(QLCDNumber::Filled);

slider = new QSlider(Qt::Horizontal); // 定义水平滑动条 slider->setRange(0, 99);


实弹射击游戏
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/meiwen/16423.html
转载请保留,谢谢!
相关阅读
最近更新
推荐专题