- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE \* MERGEFORMAT 26
嵌入式系统开发设计 课程设计
设计题目 软件中的典型算法分析
学院名称 信息科学与技术学院
专业名称
学生姓名
学生学号
任课教师
设计成绩
教务处 制
2015年3月24日
软件中的典型算法分析
摘 要
此次课程设计为加农炮游戏,这是一款基于Linux平台,运用Qt Creater软件开发的一款小游戏。本文将从加农炮的设计及实现出发,分析在实现过程中的一些典型算法。其中包括坐标转换算法、碰撞检测算法、边界检测算法、定时器驱动等。
关键词:坐标转换算法;碰撞检测算法;边界检测算法;定时器驱动;Qt Creater
加农炮整体实现流程
1.1 加农炮设计与实现简述
这是一款基于Linux平台,运用Qt Creater软件开发的一款加农炮小游戏。游戏的界面为一个窗口,在窗口的右边从上到下以此是:quit按钮,该按钮的作用是用于关闭游戏与窗口中×的作用相同;Angel LED显示屏,屏上显示的数据就是炮台当前的角度,下边是一个滚动滑条用于控制炮台的角度,炮台角度的范围是0度~70度,当滑条向左边滑动,炮台的角度变小,当滑条向右边滑动,炮台的角度变大;Force LED显示屏,屏上显示的数据是炮台射出的炮弹的力度,下边的滑条用于控制炮台射出炮弹的速度,炮弹的速度范围是0~50,当滑条向右边滑动,炮弹的力度变大,当向左边滑动,炮弹的力度变小。窗口的上边一栏从左到右分别是:Shoot按钮,当用户按下这个按钮后炮台会发射一个炮弹,炮弹的轨迹遵循物理定理,将成一个抛物线运动;Hits LED显示屏,屏上的数据显示的是炮台发出的炮弹击中木块的次数,最多显示为15;Shoots Left LED显示屏,屏上的数据显示的是炮台还可以发出的炮弹数,默认的初始值为15,最小为0;New Game 按钮,当用户按下这个按钮时,其将进入一个新游戏,所有的值都变为初始值。窗口的右下方的大屏幕即为游戏显示界面,炮台位于游戏显示界面的左下角,在游戏显示界面的任意位置处有一个小木条。当用户打开游戏界面后按下Shoot按钮时,炮台自动发射一个炮弹,如果炮弹击打到小木块,炮弹和小木块会同时消失,同时会在游戏显示界面的另外一个任意位置显示出另外一个小木块,如果用户发射出的炮弹没有击打到小木块,用户可以通过调整炮台的角度,发射炮弹的力度来调整炮弹的运动轨迹以此来使炮弹能够击打到小木块,当用户发射够15枚炮弹是,游戏显示界面会显示Game Over 同时游戏显示界面的炮台和炮弹会消失,当没有发射完后,用户继续发射。如果用户没有发射完炮弹就想进行新游戏,这个操作也是被允许的。
自定义窗口部件:
lcdrange.h 包含 LCDRange 类定义。
? lcdrange.cpp 包含 LCDRange 类实现。
? cannon.h 包含 CannonField 类定义。
? cannonfield.cpp 包含 CannonField 类实现。
? main.cpp 包含 MyWidget 和 main。
1.2 流程图
1.3 加农炮模块分析及整体界面
1.3.1按钮
按钮是执行游戏界面的退出功能;
是执行炮弹的发射功能;
按钮式执行新游戏的功能。
1.3.2 LED显示
击中木块数显示屏;
可发送炮弹数显示屏;
炮台角度显示屏及滑动条;
力度显示屏及滑动条。其中,Angel和Force滚动条,两个作用分别用于控制炮台的角度与力度。
1.3.3 加农炮界面
2、 坐标转换算法
2.1 坐标转换原理
我们已经能够使用QPainter的相关函数画出一些东西了。接下来,我们要看的是QPainter的坐标系统。?
同很多坐标系统一样,QPainter的默认坐标的原点(0, 0)位于屏幕的左上角,X轴正方向是水平向右,Y轴正方向是竖直向下。在这个坐标系统中,每个像素占据1 x 1的空间。你可以把它想象成是一张坐标值,其中的每个小格都是1个像素。这么说来,一个像素的中心实际上是一个“半像素坐标系”,也就是说,像素(x, y)的中心位置其实是在(x + 0.5, y + 0.5)的位置上。因此,如果我们使用QPainter在(100, 100)处绘制一个像素,那么,这个像素的中心坐标是(100
文档评论(0)