嵌入式系统的软硬件设计_俄罗斯方块

嵌入式系统的软硬件设计_俄罗斯方块

ID:38673292

大小:568.52 KB

页数:12页

时间:2019-06-17

嵌入式系统的软硬件设计_俄罗斯方块_第1页
嵌入式系统的软硬件设计_俄罗斯方块_第2页
嵌入式系统的软硬件设计_俄罗斯方块_第3页
嵌入式系统的软硬件设计_俄罗斯方块_第4页
嵌入式系统的软硬件设计_俄罗斯方块_第5页
资源描述:

《嵌入式系统的软硬件设计_俄罗斯方块》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程论文嵌入式系统的软硬件设计----俄罗斯方块俄罗斯方块(Tetris)是家喻户晓的一款电视游戏机和掌上游戏机的益智游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏随机产生的各种方块,使之排列成完整的一行或多行并且消除得分。游戏区域会从顶部不断落下8种下坠物的一种,游戏区域左上角有一个区域可以显示下一个下坠物的形状,玩家可以控制下坠物移动、旋转和一键到底,通过玩家的操作,下坠物在游戏区域以“摆积木”的形式出现。下坠物在一行或多行堆满后就可以自动消除,消行后会得到相应的分数,如果当前下坠物堆积至窗口顶端,则

2、游戏结束。2课程设计目的本课程是通过对嵌入式的课程设计让学生了解嵌入式的基本概念,基本编程指令与操作以及通过交叉编译完成在不同开发环境下的系统移植。另外,本嵌入式实验的课程设计的更主要目的是通过实际的嵌入式应用系统开发实例掌握嵌入式系统设计和开发的技能和专门知识,积累实践和工程经验。3课程设计背景传统的俄罗斯方块只有7种基本形状,其是通过增加下降速度以减少玩家的反应时间来提升的游戏难度的。为了进一步提高游戏的难度,需要在其他方面提高游戏的难度。因此,我们小组以此为基础在原有的俄罗斯方块下进一步改进俄罗斯方块提高游戏难度。其次,传统的游戏是通过物理按键来控

3、制游戏的,为实现在触摸屏上无物理按键的条件下玩俄罗斯方块。我们采用触摸屏上的虚拟按键代替物理按键以操作游戏以满足现在手机用户无物理按键但仍能游戏的要求。4实验设计要求开发一个基于QT的俄罗斯方块游戏,并达到以下要求:1、开始游戏随机产生13种方块并自动下落。左上角2*2预示框显示即将出现的图形;2、按“pause”键可以暂停游戏,按“start”键开始游戏;3、点击屏幕变换方块角度,触屏“left”键、“right”实现左、右移动,向下点击加速下移;“up”键实现同一种方块的变形;“switch”键实现方块之间的切换;4、系统能够正确判断是否满行,并对已

4、满的行实现消行并加分5开发环境与硬件操作系统:ubuntu12.04LTS;开发工具:gnu编译工具链(gcc等)、QtCreator、Qt4.6。硬件系统:ARM2440、8寸液晶显示屏5.1Qt简介Qt是跨平台的应用程序和UI框架。它包括跨平台类库、集成开发工具和跨平台IDE。使用Qt,只需一次性开发应用程序,无须重新编写代码,便可跨平台不同桌面和嵌入式操作系统部署这些应用程序。5.2Qt开发基础5.2.1Qt对象与对象树QObject是所有Qt类的基类。QObject组织成为对象树。当创建QObject时,将另外的对象作为其父对象,这个对象就被加入

5、其父对象的children()列表,并且当父对象销毁时,这个对象也能够被销毁。事实证明,这种实现方法非常适合GUI对象。例如,一个QShortcut(键盘快捷键)对象是相关窗口的子对象,所以当用户关闭窗口时,这个对象也能够被删除。QWidget作为所有能够显示在屏幕上的组件的父类,扩展了这种父子关系。一个子对象通常也成为一个子组件,就是说,它被显示在父组件的坐标系统中,受到父组件的边界影响可能会有剪切等等。例如,当应用程序销毁掉已关闭的消息对话框时,对话框上面的按钮和标签一起被销毁,就像我们希望的那样,因为这些按钮和标签都是对话框的子对象。5.2.2信号

6、与槽在GUI编程中,当改变了一个组件,经常需要通知另外的一个组件。更一般地,我们希望任何类型的对象都能够与另外的对象通讯。例如,如果用户点击了关闭按钮,我们希望窗口的close()函数被调用。早期工具库对这种通讯使用回调实现。回调是一个指向一个函数的指针,所以如果希望某种事件发生的时候,处理函数获得通知,就需要将指向另外函数的指针(也就是这个回调)传递给处理函数。这样,处理函数就会在合适的时候调用回调函数。回调有两个明显的缺点:第一,它们不是类型安全的。不能保证处理函数传递给回调函数的参数都是正确的。第二,回调函数和处理函数紧密地耦合在一起,因为处理函数

7、必须知道哪一个函数被回调。在Qt中,有回调技术之外的选择:信号槽。当特定事件发出时,一个信号会被发出。Qt组件有很多预定义的信号,同时,也可以通过继承这些组件,添加自定义的信号。槽则能够响应特定信号的函数。Qt组件有很多预定义的槽,但是更常见的是,通过继承组件添加你自己的槽,以便你能够按照自己的方式处理信号。信号槽机制是类型安全的:信号的签名必须同接受该信号的槽的签名一致(实际上,槽的参数个数可以比信号少,因为槽能够忽略信号定义的多出来的参数)。既然签名都是兼容的,那么编译器就可以帮助我们找出不匹配的地方。信号和槽是松耦合的:发出信号的类不知道也不关心哪

8、些槽连接到它的信号。Qt的信号槽机制保证了,如果你把一个信号同一个槽连接,那么在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。