《专业方向综合实训》报告-刮刮乐游戏软件的设计与实现(18页).docx

上传人:1595****071 文档编号:37115432 上传时间:2022-08-30 格式:DOCX 页数:18 大小:162.93KB
返回 下载 相关 举报
《专业方向综合实训》报告-刮刮乐游戏软件的设计与实现(18页).docx_第1页
第1页 / 共18页
《专业方向综合实训》报告-刮刮乐游戏软件的设计与实现(18页).docx_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《《专业方向综合实训》报告-刮刮乐游戏软件的设计与实现(18页).docx》由会员分享,可在线阅读,更多相关《《专业方向综合实训》报告-刮刮乐游戏软件的设计与实现(18页).docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-专业方向综合实训报告-刮刮乐游戏软件的设计与实现-第 12 页长沙理工大学专业方向综合实训报告刮刮乐游戏逻辑与算法的设计学院 计算机与通信工程 专业 计算机科学与技术 班级 计算机科学与技术 学号 学生姓名 指导教师 课程成绩 完成日期 2017.7.1 计算机工程实训成绩评定学 院 计算机与通信工程 专 业 计算机科学与技术班 级 学 号 学生姓名 指导教师 课程成绩 完成日期 2017.7.1 指导教师对学生在实训的评价评分项目优良中及格不及格实训中的创造性成果学生掌握课程内容的程度实训完成情况实训动手能力文字表达学习态度规范要求实训论文质量指导教师对实训的评定意见综合成绩 指导教师签字

2、 年 月 日刮刮乐游戏软件的设计与实现摘要游戏的意义在于提供额外的娱乐。作为一个十分流行的消遣方式,游戏的模式十分多样化,各种游戏也不尽相同。有人说,游戏是劳作后的休息和消遣,本身不带有任何目的性的一种行为活动,也有人说,游戏就是在快乐中学会某种本领的活动。游戏,伴动物而生。在动物世界里,游戏是各种动物熟悉生存环境、彼此相互了解、习练竞争技能、进而获得“天择”的一种本领活动。游戏,随人类而造。在人类社会中,游戏不仅仅保留着动物本能活动的特质,更重要的是作为高等动物的人类,为了自身发展的需要创造出多种多样的游戏活动。游戏,并非为娱乐而生,而是一个严肃的人类自发活动,怀有生存技能培训和智力培养的目

3、标。本课题以Linux操作系统为基础,利用X64平台上的开源软件,移植若干软件到ARM平台上,包括:移植U-Boot,移植Linux内核,移植播放器madplayer,移植数据库SQLite,移植图形库Qt,利用这些开源软件开发出相应的驱动和图形界面,应用数据库管理音频信息,完成一个嵌入式刮刮乐游戏软件的应用,并体现出开源软件移植应用的过程与注意点。关键词:Linux;游戏;ARM;娱乐Design and implementation of the game software: GuagualeABSTRACTThe point of the game is to provide extra

4、 entertainment. As a popular pastime, the game patterns are very diverse and various games are not the same. Some people say that the game is a rest and recreation after work, and there is no purposeful activity in itself. Others say that games are activities that learn some skill in happiness. Game

5、s, accompanied by animals. In the animal world, the game is a kind of skill activity that all kinds of animals know the living environment, understand each other, practice competitive skills, and then acquire natural selection. Games are created with humans. In human society, the game is not only re

6、tains the characteristics of animal instinct activity, it is more important as the human of higher animals, for the sake of their own development needs to create a variety of games. The game is not for entertainment, but for a serious human initiative, with the goals of survival skills training and

7、intellectual cultivation. This topic is based on Linux operating system, using X64 platform of open source software, some software on the ARM platform, including: transplantation of U - the Boot, the Linux kernel, portable player madplayer, transplant database SQLite, transplant graphics library Qt,

8、 use the open source software to develop the corresponding drive and the graphical interface, application of database management of audio information, complete a embedded scratch game software applications, and reflects the process of open source software transplantation and pay attention to the poi

9、nt.Key words: Linux; Game; ARM; Entertainment目录1 绪论11.1 课题的目的与意义21.2 课题的需求分析41.3 课题的设计环境62 开发环境的搭建72.1 Ubuntu环境的搭建82.2 交叉工具链的搭建82.3 硬件连接93 课题总体设计103.1 课题模块设计103.1.1触摸屏模块103.1.2随机数模块113.1.3图片显示模块123.2 课题开发环境简介123.3 课题测试环境说明133.3.1 SecureCRT简介143.3.2 SecureCRT使用说明144 U-boot和系统移植154.1 Linux内核移植155 课题实现

10、105.1 触摸屏功能的实现105.2 随机数的显示106 运行与测试116.1 触摸屏响应测试116.2 图片显示测试116.3 随机数显示测试12结束语20参考文献21致谢22附录 主要源程序代码231 绪论1.1 课题的目的与意义刮刮乐”是一种全新的网点即开型福利彩票,它以“扶老、助残、救孤、济困”为发行目的,即买即开,返奖率由原来的50%提高到65%。新型彩票“刮刮乐”游戏采用了现今世界先进的二维条码防伪保安识别系统和与之相配套的先进的销售物流管理系统。而我们的刮刮乐游戏则是用纯c语言实现代码的编写,利用Linux平台进行交叉编译再移植到Linux内核单片机上进行运行显示。同时,做这个

11、刮刮乐游戏首先是为了提高我们对于实训课题的理解和动手能力,最后也是对于传统纸质刮刮乐游戏的一种抛弃。实现节约,更加能够实现娱乐性。1.2 课题的需求分析现在刮刮乐票种类丰富,从昆明刮刮乐刚上市的火爆销售到现在彩民朋友购买“刮刮乐”日趋理智。很多彩票店主认为“刮刮乐”已经是“日落西山”已经不好卖了,或则是根被就卖不出去了。所以有些彩票店干脆直接不卖“刮刮乐”了。或者进几种自己认为好卖一点的“刮刮乐”放在一个很不起眼的角落里。更有甚者直接放抽屉里,美其名曰“这样安全“。但是电子刮刮乐彩票的推广确实极少。所以我们希望能够做出一款基于嵌入式实验开发板的刮刮乐游戏,能够抛弃传统的纸质刮刮乐游戏,实现电子

12、刮刮乐游戏的推广。这样能够节省很大的人力以及物力。1.3 课题的设计环境交叉编译环境:Ubuntu运行环境:Linux 单片机2 开发环境的搭建2.1 Ubuntu环境的搭建平台:vmware workstation 12Linux系统:UbuntuUbuntu系统vmware安装和配置(1).文件下载和安装下载ubuntu安装镜像包,如ubuntu-12.10-desktop-i386.iso2)下载vmware中文破解版,安装vmware(2).Ubuntu系统安装1)启动vmware,选择“文件-新建虚拟机”;2)选择“标准”安装3)在“系统安装”界面选择“安装盘镜像文件”,并从iso文

13、件下载目录选择下载的iso文件4)输入主机名,用户名和密码5)选择“虚拟机名称”,默认即可6)指定磁盘容量,默认即可7)安装准备就绪界面,单击”完成”开始安装8)开始系统安装,安装过程按照实际设计2.2 交叉工具链的搭建查看交叉开发工具:which arm-linux-gcc 假如显示如下信息则安装成功:/usr/local/arm/arm-2009q3/bin/arm-linux-gcc否则下载arm-linux-gnueabi-4.5.1.tar.bz2压缩包。在用户工具目录中创建交叉工具的工作目录,如下命令:sudo mkdir /usr/local/arm/sudo cp arm-li

14、nux-gnueabi-4.5.1.tar.bz2 /usr/local/arm/cd /usr/local/arm/ sudo tar -xjvf arm-linux-gnueabi-4.5.1.tar.bz2cd /usr/local/arm/usr/local/arm/4.5.1/bin ls cd 进入家目录 vim .bashrc 在该文件末尾添加:export PATH=/usr/local/arm/usr/local/arm/4.5.1/bin:$PATH查看是否配置成功:which arm-linux-gcc/usr/local/arm/4.5.1/bin/arm-linux-

15、gcc注意:配置完毕后记得把终端关闭再打开,让用户环境变量生效。2.3 硬件连接工具:嵌入式开发板 1数据线、串口线、电源设置CRT串口工具:文件-快速连接协议:serial端口:com?波特率:115200数据位:8奇偶校验:无停止位:1/bin注意:记得把数据流控制中的勾全去掉交叉编译:arm-linux-gcc hello.c -o hello 下载,交叉编译后的可执行文件。rz -y 选择要下载的文件,比如xxxchmod 777 XXX ./xxx进行相应的编译。3 课题总体设计3.1 课题模块设计本课题主要是由触摸屏模块、随机数模块、显示模图片块三个模块。3.1.1触摸屏模块对单片

16、机触摸屏模块,本课题主要通过获取触摸屏的设备路径、触摸测试程序、触摸屏校准程序,来获取触摸屏的数据。3.1.2随机数模块随机数的实现,本课题是用时间做种,用到了time函数,每次产生随机数不一样。利用随机数的显示,进行相关的判断,来实现刮刮乐游戏后面图片的显示。3.1.3图片显示模块本课题采用的图片是bmp,计算机可识别图像格式,没有经过任何压缩算法,压缩的图片格式。首先open函数所返回的文件描述符,将图片读入缓冲区,读取的文件大小,成功读取数据。再从缓冲区中将图片读出显示在屏幕上。3.2 课题开发环境简介Ubuntu:是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu 是基

17、于DebianGNU/Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造的。ARM开发板,即以英国ARM(Advanced RISC Machines)公司的内核芯片作为CPU,同时附加其他外围功能的嵌入式开发板,用以评估内核芯片的功能和研发各科技类企业的产品。ARM开发板根据ARM内核可以分为ARM7、ARM9、ARM11、 Cortex-M系列、Cortex-R系列、Cortex-A系列。其中Cortex-M系列又可分为Cortex-M0、Cortex-M0+、Cortex-M3、Cortex-M4;Cortex-R系列分为

18、Cortex-R4、Cortex-R5、Cortex-R7;Cortex-A系列分为Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A50等2,同样也就有了对应内核的Cortex-M0开发板、Cortex-A5开发板、Cortex-A8开发板、Cortex-A9开发板、Cortex-R4开发板等等。由于ARM公司只对外提供ARM内核,各大厂商在授权付费使用ARM内核的基础上研发生产各自的芯片,形成了嵌入式ARM CPU的大家庭,提供这些内核芯片的厂商有Atmel、TI、飞思卡尔、NXP、ST、和三星等。3.3 课题测试环境说明

19、3.3.1 SecureCRT简介SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的理想工具。通过使用内含的VCP命令行程序可以进行加密文件的传输。有流行CRTTelnet客户机的所有特点,包括:自动注册、对不同主机保持不同的特性、打印功能、颜色设置、可变屏幕尺寸、用户定义的键位图和优良的VT100,VT102,VT220和ANSI竞争.能从命令行中运行或从浏览器

20、中运行.其它特点包括文本手稿、易于使用的工具条、用户的键位图编辑器、可定制的ANSI颜色等.SecureCRT的SSH协议支持DES,3DES和RC4密码和密码与RSA鉴别。3.3.2 SecureCRT使用说明协议:serial端口:com3波特率:115200数据位:8奇偶校验:无停止位:1/bin注意:记得把数据流控制中的勾全去掉实现连接Arm板。图 3.1 连接实验板图 3.2 连接实验板成功4 U-boot和系统移植4.1 Linux内核移植1.烧写启动文件要移植操作系统,需要启动代码了,也就是u-boot了。可以从网上找。2.下载linux源代码我们去linux官网上下载吧,这个是

21、连接:https:/www.kernel.org/ 在这里下载linux-3.3.5。3.修改Makefile文件下载到源代码后,首先是解压,解压的命令是 tar xvzf linux-3.3.5.tar.gz 这样就完成了解压。现在修改一些设置,为编译做准备。4.编译内核把smdk210v板子的config文件拷过来了,进行内核编译。5 课题实现5.1 触摸屏功能的实现主要代码:read(tsfd,&ts,sizeof(ts);/读取触摸屏if(ts.type = EV_ABS) if(ts.code = ABS_X) x_coo=ts.value;printf(x event! x=%dn

22、,ts.value); else if(ts.code = ABS_Y) y_coo=ts.value; printf(Y event! y=%dn,ts.value);5.2 随机数的显示srand (unsigned)time(NULL) ); /用时间做种,每次产生随机数不一样number = rand()%10; /产生0-100的随机数printf(%dn,number);6 运行与测试6.1 触摸屏响应测试每次运行时,首先都会对触摸屏进行一定的测试,编译软件会打印出相应触摸的坐标。判断触摸点是否在坐标点内。图 6.1 输出获取的坐标点6.2 图片显示测试图片显示为中奖或者谢谢惠顾。

23、图 6.2 显示中奖图 6.3 显示谢谢惠顾6.3 随机数显示测试在程序运行时,随机数也会相应地打印出来。随机主要用来实现,显示图片是否中奖。图 6.4 显示随机数结束语在本次实训课题中,我学习了关于交叉编译、mplayer的移植、单片机上的socket传输、qt编程等等。非常感谢来自粤嵌老师的辛勤指导,以及指导老师的谆谆教导。本次我的课题是实现刮刮乐游戏软件,在本次课题的实现中,我遇到了很多困难。但是经过同学之间的相互讨论,问题也就逐渐迎刃而解。这也让我感觉到了队员之间讨论的重要性,对于我,本次实训将会是一次非常宝贵的经历。参考文献1胡谋.计算机容错技术S.中国铁道出版社.1995 年,北京

24、2孙天泽 ,袁天菊 .嵌入式设计及Linux 驱动开发指南一基于ARM处理器 (第二版 ).电子工业出版社 ,2007:3403853张建正 . 嵌入式Linux下Qt/Embedded的应用A.计算机技术与发展.2006: 1791814王珍熙.可靠性和冗余及容错技术J.航空工业出版社.1991年5Xteam (中国)软件技术有限公司M.Qt程序设计.北京:清华大学出版社.2002:8586致谢感谢来自粤嵌老师的辛勤指导,感谢实训过程中学院所有老师的教诲。没有你们的辛勤努力,我们就不会学到这么多东西。感谢您们。也衷心感谢我的导师周书仁周老师对我的指导和教诲。您开阔的思维、敏锐的洞察力以及详细

25、的修改意见一直给我很大的启发。一路走来,从您们的身上我收获无数,却无以回报,谨此一并表达我的谢意。附录 主要源程序代码#include img.h#include #include #include #include #include #include #include #include #include #include #include #include /用到了time函数void show24bmp(char *picname,unsigned int *lcd,int x,int y) /打开图片 int bmpfd=open(picname,O_RDWR); if(bmpfd0)

26、printf(open failn); /获取图片的长和宽 int mes3=0; lseek(bmpfd,18,SEEK_SET); read(bmpfd,mes,8); /判断是否越界 if(mes0=800&mes1=480) lseek(bmpfd,54,SEEK_SET); char bufmes0*mes1*3; read(bmpfd,buf,mes0*mes1*3); char *p=buf; char red; char green; char blue; int color; int i,j; int buf32mes1mes0; for(i=0;imes1;i+) for(

27、j=0;jmes0;j+) blue = *p+; green = *p+; red = *p+; color = red 16 | green 8 | blue; buf32mes1-ij=color; /偏移lcd的位置 unsigned int *lcd1=lcd; lcd1=lcd1+x+y*800; for(i=0;imes1;i+) for(j=0;jmes0;j+) *(lcd1+j+i*800)= buf32ij;else printf(error!); close(bmpfd);int main(int argc, char *argv) int fd, result, i,

28、 j, oi, oj;/实现图片的显示 struct BMP_Info_Head cur; uint *lcd; fd = open(/dev/fb0, O_RDWR); lcd = mmap(NULL, 800 * 480 * 4, PROT_WRITE | PROT_READ, MAP_SHARED, fd, 0); init_bmp_lcd_config(800, 480);struct input_event ts;/实现触摸屏的初始化 int tsfd = open(/dev/event0,O_RDWR);int x_coo,y_coo;draw_all_bmp(lcd, bg.bm

29、p, 300, 30, -1, -1, 1, 1);draw_all_bmp(lcd, white.bmp, 300, 210, 257, 72, 1, 0);int number;while(1) srand (unsigned)time(NULL) ); /用时间做种,每次产生随机数不一样 number = rand()%10; /产生0-100的随机数 printf(%dn,number);int num = 0;while(num=300&x_coo=210&y_coo=282)if(number%2=0)/draw_all_bmp(lcd, award.bmp, 300, 210,

30、257, 72, 1, 2);draw_all_bmp(lcd, award1.bmp, 300, 210, 257, 72, 1, 1);sleep(1);draw_all_bmp(lcd, award2.bmp, 300, 210, 257, 72, 1, 1);sleep(1);draw_all_bmp(lcd, award3.bmp, 300, 210, 257, 72, 1, 1);/show24bmp(award.bmp,lcd,300, 210);elsedraw_all_bmp(lcd, sorry1.bmp, 300, 210, 257, 72, 1, 1);sleep(1);draw_all_bmp(lcd, sorry2.bmp, 300, 210, 257, 72, 1, 1);sleep(1);draw_all_bmp(lcd, sorry3.bmp, 300, 210, 257, 72, 1, 1);sleep(1);draw_all_bmp(lcd, sorry4.bmp, 300, 210, 257, 72, 1, 1);sleep(100); return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁