![科技论文-基于ARM俄罗斯方块联机游戏设计_第1页](http://file4.renrendoc.com/view/2dc91517f4172f7a782ca8d9500cc062/2dc91517f4172f7a782ca8d9500cc0621.gif)
![科技论文-基于ARM俄罗斯方块联机游戏设计_第2页](http://file4.renrendoc.com/view/2dc91517f4172f7a782ca8d9500cc062/2dc91517f4172f7a782ca8d9500cc0622.gif)
![科技论文-基于ARM俄罗斯方块联机游戏设计_第3页](http://file4.renrendoc.com/view/2dc91517f4172f7a782ca8d9500cc062/2dc91517f4172f7a782ca8d9500cc0623.gif)
![科技论文-基于ARM俄罗斯方块联机游戏设计_第4页](http://file4.renrendoc.com/view/2dc91517f4172f7a782ca8d9500cc062/2dc91517f4172f7a782ca8d9500cc0624.gif)
![科技论文-基于ARM俄罗斯方块联机游戏设计_第5页](http://file4.renrendoc.com/view/2dc91517f4172f7a782ca8d9500cc062/2dc91517f4172f7a782ca8d9500cc0625.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ARM俄罗斯方块联机游戏设计摘要:俄罗斯方块俄罗斯方块【9】(Tetris,俄文:Тетрис)是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。也许大家觉得俄罗斯方块有什么好联机的,是这样说没错,但世界上所有的很多事情觉得很无趣的事情确能够成为一个有趣的事情,这样的现象也是常见的,还有我们玩QQ里面的游戏,比如消除游戏,这个不也是联机游戏吗,虽然好像没什么联机性,但却为什么很多人玩。竞争,现在很多人在游戏中为的就是个名次,高分,所以一个联机游戏具有竞争性才是最重要的。对于本次开发的俄罗斯方块游戏除了具有竞争性外,还加入高度的可玩性,玩家之间可以彼此释放技能,比如让对方加速,让对方游戏区域旋转等效果,确实可以瞬间让人觉得一个很乏味很普通的游戏瞬间变为一个很有趣很高端的一个游戏。本文基于ARM下的俄罗斯方块联机的设计与实现进行了研究。首先阐述了俄罗斯方块游戏的发展背景,发展现状,以及发展趋势。分析了开发俄罗斯方块联机软件的必要性和可行性,对开发俄罗斯方块软件进行了需求分析,系统设计,探讨了俄罗斯方块联机软件的开发方法和实现技术。对于本俄罗斯方块算法,下面也将进行详细描述,另外还有用到的QT跨平台的编程语言,以及交叉编译工具链的使用。关键词:QT;ARM;俄罗斯方块;Socket通信。指导老师签名:南昌航空大学东软班综合报告PAGEPAGE4TetrisonlinegamedesignbasedonARMAbstract:Tetris(Tetris,Ru:Тетрис)isapopularglobalTVgameandPSPgames,itconsistsoftheRussianAlexeipalmerjester’sinvention,thereforethename.Tetrisisthebasicrulesofmovement,rotation,andputthegameautomaticallyoutputvariousdiamondsmakeitintoacompleteoneormorelinesandeliminatescores.Becauseitissimple,foryoungandold,tohouseholdnames,popularintheworld.MaybeyouthinkofanygoodonlineTetris,saidyes,butallthethingsintheworldfeelveryboringthingsitcanbecomeaninterestingthings,suchaphenomenonalsoiscommon,andweplaytheinsideoftheQQgame,suchastheeliminationofthegame,thisisnotaonlinegame,too,althoughnotonline,butwhyalotofpeopleplay.Competition,nowalotofpeopletoaplaceinthegame,goodgrades,soanonlinecompetitivegameisthemostimportantthing.ForthedevelopmentofTetrisgameinadditiontocompetitive,alsotojointhehighplayability,playerscanreleaseeachotherbetweenskills,suchastoaccelerateeachother,lettheothersideeffects,suchasrotatinggame,canletapersonfeelamomentveryboringveryordinarygameintoonehighendaveryinterestinggame.ThisarticleisbasedontheARMofthedesignandimplementationsofTetrisonlinewerestudied.FirstlyexpoundsthedevelopmentbackgroundofTetrisgame,developmentpresentsituation,anddevelopmenttrend.AnalyzedthenecessityandfeasibilityofdevelopingtheTetrisonlinesoftware,Tetrissoftwaredevelopedforthedemandanalysis,systemdesign,discussestheTetrisonlinesoftwaredevelopmentmethodandrealizationtechnology.ForthisTetrisalgorithmisdescribedindetailbelow,anduseofQTcross-platformprogramminglanguageandtheuseofcrosscompilertoolchain.Keyword:QT;ARM;Tetris;Sockettransfer.SignatureofSupervisor:
学士学位论文原创性声明本人声明,所呈交的论文是本人在导师的指导下独立完成的研究成果。除了文中特别加以标注引用的内容外,本论文不包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权南昌航空大学可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。作者签名:日期:导师签名:日期:1.最终纸版材料,需要正式装订,每人1份,需要注意中英文摘要里去掉"学生姓名"\"班级"\"指导教师";2.最终电子材料,上传服务器,并刻录光盘两份;3.额外提交学校的纸质版中英文论文摘要各1份(若学生论文成绩达到90分以上,即优秀论文,则需要提交2份),电子版中英文论文摘要各1份,需要注意中英文摘要保留"学生姓名"\"班级"\"指导教师";
基于ARM俄罗斯方块联机游戏设计摘要俄罗斯方块俄罗斯方块【9】(Tetris,俄文:Тетрис)是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。也许大家觉得俄罗斯方块有什么好联机的,是这样说没错,但世界上所有的很多事情觉得很无趣的事情确能够成为一个有趣的事情,这样的现象也是常见的,还有我们玩QQ里面的游戏,比如消除游戏,这个不也是联机游戏吗,虽然好像没什么联机性,但却为什么很多人玩。竞争,现在很多人在游戏中为的就是个名次,高分,所以一个联机游戏具有竞争性才是最重要的。对于本次开发的俄罗斯方块游戏除了具有竞争性外,还加入高度的可玩性,玩家之间可以彼此释放技能,比如让对方加速,让对方游戏区域旋转等效果,确实可以瞬间让人觉得一个很乏味很普通的游戏瞬间变为一个很有趣很高端的一个游戏。本文基于ARM下的俄罗斯方块联机的设计与实现进行了研究。首先阐述了俄罗斯方块游戏的发展背景,发展现状,以及发展趋势。分析了开发俄罗斯方块联机软件的必要性和可行性,对开发俄罗斯方块软件进行了需求分析,系统设计,探讨了俄罗斯方块联机软件的开发方法和实现技术。对于本俄罗斯方块算法,下面也将进行详细描述,另外还有用到的QT跨平台的编程语言,以及交叉编译工具链的使用。关键字:QT;ARM;俄罗斯方块;Socket通信。
AbstractTetris(Tetris,Ru:Тетрис)isapopularglobalTVgameandPSPgames,itconsistsoftheRussianAlexeipalmerjester’sinvention,thereforethename.Tetrisisthebasicrulesofmovement,rotation,andputthegameautomaticallyoutputvariousdiamondsmakeitintoacompleteoneormorelinesandeliminatescores.Becauseitissimple,foryoungandold,tohouseholdnames,popularintheworld.MaybeyouthinkofanygoodonlineTetris,saidyes,butallthethingsintheworldfeelveryboringthingsitcanbecomeaninterestingthings,suchaphenomenonalsoiscommon,andweplaytheinsideoftheQQgame,suchastheeliminationofthegame,thisisnotaonlinegame,too,althoughnotonline,butwhyalotofpeopleplay.Competition,nowalotofpeopletoaplaceinthegame,goodgrades,soanonlinecompetitivegameisthemostimportantthing.ForthedevelopmentofTetrisgameinadditiontocompetitive,alsotojointhehighplayability,playerscanreleaseeachotherbetweenskills,suchastoaccelerateeachother,lettheothersideeffects,suchasrotatinggame,canletapersonfeelamomentveryboringveryordinarygameintoonehighendaveryinterestinggame.ThisarticleisbasedontheARMofthedesignandimplementationsofTetrisonlinewerestudied.FirstlyexpoundsthedevelopmentbackgroundofTetrisgame,developmentpresentsituation,anddevelopmenttrend.AnalyzedthenecessityandfeasibilityofdevelopingtheTetrisonlinesoftware,Tetrissoftwaredevelopedforthedemandanalysis,systemdesign,discussestheTetrisonlinesoftwaredevelopmentmethodandrealizationtechnology.ForthisTetrisalgorithmisdescribedindetailbelow,anduseofQTcross-platformprogramminglanguageandtheuseofcrosscompilertoolchain.Keywords:QT;ARM;Tetris;Sockettransfer.论文研究背景 俄罗斯方块游戏原本是前苏联科学家阿列克谢·帕基特诺夫所开发的教育用软件,之后开始提供授权给各个游戏公司,造成各平台上软件大量发行的现象。GameBoy版的俄罗斯方块在日本卖出424万套,是GameBoy史上卖最好的游戏。海湾战争时,也是前线美军最常拿消磨时间的游戏之一。由于俄罗斯方块具有的数学性、动态性与知名度,也经常拿来作为游戏程序设计的练习题材。俄罗斯方块曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。俄罗斯方块上手极其简单,但是要熟练地掌握其中的操作与摆放技巧,难度却不低。作为家喻户晓老少皆宜的大众游戏,其普及程度可以说是史上任何一款游戏都无法相比的。论文研究意义 该游戏是一款基于ARM平台的游戏,不仅在ARM平台下运行,Linux和window下都能够运行。所用到的技术都是和嵌入式系统相关。嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(SetTopBox)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。基于ARM俄罗斯方块联机的系统设计硬件方案设计CPU处理器
-SamsungS3C2440A,主频400MHz,最高533Mhz
SDRAM内存
-在板64MSDRAM
-32bit数据总线
-SDRAM时钟频率高达100MHz
FLASH存储
在板256MNandFlash,掉电非易失(用户可定制256M/1G,批量采购升级为1GFlash加60元!)
在板2MNorFlash,掉电非易失,已经安装BIOS
LCD显示
-板上集成4线电阻式触摸屏接口,可以直接连接四线电阻触摸屏
-支持黑白、4级灰度、16级灰度、256色、4096色STN液晶屏,尺寸从3.5寸到12.1寸,屏幕分辨率可
以达到1024x768象素;
-支持黑白、4级灰度、16级灰度、256色、64K色、真彩色TFT液晶屏,尺寸从3.5寸到12.1寸,屏幕
分辨率可以达到1024x768象素;
-标准配置为256K色240x320/3.5英寸TFT真彩液晶屏,带触摸屏;
接口和资源
-1个100M以太网RJ-45接口(采用DM9000网络芯片)
-3个串行口
-1个USBHost
-1个USBSlaveB型接口
-1个SD卡存储接口
-1路立体声音频输出接口,一路麦克风接口;
-1个2.0mm间距10针JTAG接口
-4USERLeds
-6USERbuttons(带引出座)
-1个PWM控制蜂鸣器
-1个可调电阻,用于AD模数转换测试
-1个I2C总线AT24C08芯片,用于I2C总线测试
-1个2.0mm间距20pin摄像头接口
-板载实时时钟电池
-电源接口(5V),带电源开关和指示灯
系统时钟源
-12M无源晶振
实时时钟
-内部实时时钟(带后备锂电池)
扩展接口
1个34pin2.0mmGPIO接口
1个40pin2.0mm系统总线接口
规格尺寸
-100x100(mm)
操作系统支持
-Linux+QtE4.6.3+
Qtopia-2.2.0
-WindowsCE.NET6.0(R3)图1.开发板示意图软件方案设计【1】客户端模块 客户端用户通过和GUI界面进行交互,向客户端通信层发送各种请求,客户端通信层收到请求后发向服务端,最后收到服务端的回应达到消息响应的效果。 本项目客户端请求有:登录、注册、举手、暂停、各个技能释放、游戏结果提交、游戏退出等请求。服务端通过这些请求对应的各种协议进行回应各个请求结果,然后客户端接收到后处理各个回应实现通信。 以下是客户端模块结构图:图2.客户端模块结构图服务端模块服务端,开启端口进行监听,本项目端口为9527,开通监听后,开始监听客户端登录、注册、举手、暂停、各个技能释放、游戏结果提交、游戏退出等请求,然后通过和数据库进行交互并将回应结果发送给客户端。以下是服务端模块结构图:图3.服务端模块结构图数据库设计由于涉及信息存储不是很多,所以数据库设计这方面只建立了一个表。表结构如下:表1.序号字段名字段类型说明备注1accountvarchar账号主键2usernamevarchar用户名3passwordvarchar密码4winvarchar总赢数5losevarchar总输数6gradevarchar历史最高分7statusvarchar在线状态1在线,0不在线8roomvarchar所在房间不在房间时为9999整体模块动作时序图4.时序图基于ARM俄罗斯方块联机的实现技术QT图形界面编程的信号与槽【5】信号与槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性。信号和槽能携带任意数量和任意类型的参数。我们可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接。使用信号与槽,发送者和接收者可以不用知道object的任何信息。 在此次毕业设计中,主要应用信号与槽,进行不同窗体之间的通信,实现了重画机制以及在不同窗口中处理从通信模块发过来的请求数据。Socket通信【6】(1)、Socket通常也称作“套接字”,应用程序通常通过“套接字”以下是TCP通信的三次握手示意图:向网络发出请求或者应答网络请求。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务监听,客户端请求,连接确认。图5.TCP三次握手示意图 (2)、QT中提供的Socket完全使用了类的封装机制,使用户不需要接触底层的各种结构体操作。而且它采用QT本身的信号与槽机制,使编写的程序更容易理解。(3)、Socket和QTcpServer类实现了本次围棋联机软件的客户端和服务器。TCP是一个流式协议,对于应用程序来说,数据是一个很长的流。QTcpSocket继承自QIODevice,可以从QDataStream或QTextStream中读取或写入数据,在此次毕业设计,用的是从QDataStream读取和写入数据。多线程编程【3】【4】【6】 多线程处理可以同时、运行多个线程。由于多线程应用程序将程序划分成多个独立的任务,因此可以在以下方面显著提高性能:多线程技术使程序的响应速率更快,因为用户界面可以在进行其它工作的同时一直处于活动状态;当前没有进行处理的任务时可以将处理器事件让给其它任务;占用大量处理时间的任务可以定期将处理器时间让给其它任务;可以随时停止任务;可以分别设置各个任务的优先级以优化性能QT通过三种形式提供了对线程的支持,使得开发轻巧的多线程QT程序更为容易,并能充分利用多处理器及其的优势。它们分别:平台无关的线程类线程安全的事件投递跨线程的信号—槽连接Sqlite数据库编程【2】 SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp创建的公有领域项目。不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。俄罗斯方块算法实现技术【7】游戏map区域: 图形背景采用蓝色背景,20行*10列,用一个指针数组存储游戏下一个图形提示区域: 4行*4列,也用一个指针数组存储方块种类: 一共七种:分别以S、Z、L、J、I、O、T这7个字母的形状来命名 I:一次最多消除四层 J(左右):最多消除三层,或消除二层 L:最多消除三层,或消除二层 O:消除一至二层 S(左右):最多二层,容易造成孔洞 Z(左右):最多二层,容易造成孔洞 T:最多二层方块颜色设置: 每个种类方块的数组里面的数分别代表某种颜色,如下方块的定义unsignedcharSquareShape[4*4]={ 0,0,0,0, 0,1,1,0, 0,1,1,0, 0,0,0,0};该定义为田字形方块,1是颜色值的代表,其他方块值分别定义为11,21,31,41,51,61,然后通过switch选择哪种颜色。方块旋转算法:旋转是在上图矩阵中进行旋转的,因为旋转角度是90度,所以可以通过对称变换进行旋转。算法代码如下:for(inti=0;i<4;i++){ for(intj=0;j<4;j++) { *(pszTmp+(3-j)*4+i)=*(pszShape+i*4+j);//rotate90angle }}图6.方块旋转流程图方块碰撞算法:碰撞检测通过当前方块矩阵与map区域的指针数组进行按位与操作,如果为0则没有碰撞,否则产生碰撞。图7.碰撞检测游戏结束判断:如果方块一出来就发生碰撞就说明游戏结束了。移植技术【8】所有功能及算法都实现后,在PC端都能够正确编译并执行,但本项目最主要的是能够在mini2440开发板上运行,所以要进行交叉编译。交叉编译过程大致如下:1.安装标准的C开发环境,由于Linux安装默认是不安装的,所以需要先安装一下(如果已经安装好的话,就可以免去这一步了):#sudoapt-getinstallgccg++libgcc1libg++makegdb2.下载arm-linux-gcc-3.4.1.tar.bz2arm-linux-gcc-3.4.1.tar.bz2的下载地址如下:/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz23.解压arm-linux-gcc-3.4.1.tar.bz2#tar–jxvfarm-linux-gcc-3.4.1.tar.bz2解压过程需要一段时间,解压后的文件形成了usr/local/文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下#cdusr/local/#cp-rvarm/usr/local/现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了4. 修改环境变量,把交叉编译器的路径加入到PATH。(有三种方法,强烈推荐使用方法一) 方法一:修改/etc/bash.bashrc文件#vim/etc/bash.bashrc在最后加上:exportPATH=$PATH:/usr/local/arm/3.4.1/binexportPATH方法二:修改/etc/profile文件: #vim/etc/profile增加路径设置,在末尾添加如下,保存/etc/profile文件:exportPATH=$PATH:/usr/local/arm/3.4.1/bin方法三:#exportPATH=$PATH:/usr/local/arm/3.4.1/bin注:(这只能在当前的终端下才是有效的!)5.立即使新的环境变量生效,不用重启电脑:对应方法一:#source/root/.bashrc对应方法二:#source/etc/profile6.检查是否将路径加入到PATH:#echo$PATH 显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。7.测试是否安装成功#arm-linux-gcc-v结论 该项目通过基于Socket通信,多线程编程,以及QT图形界面化编程,SQLITE数据库编程,实现了多人间的互相通信功能。 本论文在也是通过在韩海峰老师以及苗利老师的指导帮助下进行完成,在该项目开发阶段也遇到过不少问题,问题肯定是会有的,最重要的是碰到一个问题,该怎么去解决这个问题,我平时大多数通过谷歌搜索答案,虽然是答案,但不能一味的照搬,要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年手机支付安全解决方案行业跨境出海战略研究报告
- 2025-2030年塑料口风琴行业跨境出海战略研究报告
- 2025-2030年控糖饮食企业制定与实施新质生产力战略研究报告
- 2025-2030年地质钻探设备升级行业深度调研及发展战略咨询报告
- 2025-2030年商用空气净化器行业深度调研及发展战略咨询报告
- 农用农业气象站批发考核试卷
- 太阳能光伏组件的防静电考核试卷
- 中药材种植的农业生产效率提升考核试卷
- 内河航运物流服务创新与模式探索考核试卷
- 珠宝首饰居间合同协议书版
- 2024年平面设计师技能及理论知识考试题库(附含答案)
- 相互批评意见500条【5篇】
- 2024-2030年中国汽车驾驶培训市场发展动态与前景趋势预测报告
- 中铁十四局合同范本
- 医院课件:《食源性疾病知识培训》
- 浙教版七年级数学下册单元测试题及参考答案
- 华为人才发展与运营管理
- 2024年广州金融控股集团有限公司招聘笔试冲刺题(带答案解析)
- 中国食物成分表2018年(标准版)第6版
- 九三学社申请入社人员简历表
- 卓有成效的管理者读后感3000字
评论
0/150
提交评论