好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于WinCE50的赛车游戏RacingCar设计文档.doc

13页
  • 卖家[上传人]:枫**
  • 文档编号:461704444
  • 上传时间:2024-01-20
  • 文档格式:DOC
  • 文档大小:73KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于WinCE5.0的赛车游戏RacingCar设计文档小组编号: 01作 者: 04070216陈创城 04070219 张献争10071626 陈志新 / 文档可自由编辑打印目录目录 2摘要 3第1章 需求分析 41.1开发背景 41.2开发方法、产品效果 4第2章 系统方案 52.1 软件结构、硬件环境 52.2 开发平台 5第3章 系统设计 63.1 模块与架构 6软件架构及模块 6第4章 系统实现 74.1关键代码分析 7第5章 软件实施 10第6章 特 色 11结 论 12参考文献 13摘要本项目将在实验箱上实现一个基于WinCE 5.0的赛车游戏,亦即开发出一款赛车游戏机采用PlatForm Builder 5.0定制嵌入式操作系统,使用C# 2005语言开发系统定制参考了以前的实验,游戏程序的设计以及游戏的编程和调试都是自己完成关键词:赛车第1章 需求分析1.1开发背景在台式机/笔记本上虽然能玩很多游戏,但由于台式机/笔记本携带都很不方便,因此需要有一款便携式的游戏机,让人们随身携带,随时随地都可以玩游戏1.2开发方法、产品效果采用了软件工程化的方法进行软件开发,软件是通过概要设计文档来确定架构的,通过详细设计来确定相应的算法,最后编程运行效果:开发完成后,在实验箱上玩上游戏。

      游戏的界面友好,简单易玩按钮布局类似于俄罗斯方块,增加了游戏类型的选择主界面是一辆赛车以及随着积分增加而难度不断加大的赛道,全屏运行第2章 系统方案2.1 软件结构、硬件环境 软件中主要由两个部分组成:用户接口(即界面)的绘制,以及游戏的规则逻辑和程序数据的处理过程 硬件环境:S3C2410实验箱软件的结构以及硬件环境,选择什么开发环境和平台工具2.2 开发平台Platform Builder 5.0 + VS 2005 C#+博创UT2410实验箱第3章 系统设计3.1 模块与架构系统架构如下图所示游戏程序Compact FrameWorks 2.0触摸屏,显示器等硬件驱动系统架构嵌入式操作系统内核软件架构及模块赛车游戏初始化计时器函数界面初始化游戏参数初始化判断撞车计算游戏参数重绘游戏界面按钮使能界面绘制按钮消息处理第4章 系统实现4.1关键代码分析 //计时器 private void timer1_Tick(object sender, EventArgs e) { if (running == true && ispause == false) { label2.Text = Convert.ToString(time); label4.Text = Convert.ToString(level); loadCreate(); MyDraw(); } } //主功能:随机生成路,并计算积分和等级 //算法: //生成随机数+1或-1(以决定下一次是向左转,还是向右转) //调用hitCar()判断是否撞车。

      撞车则结束游戏) //将二维矩阵matrix的各行下移一格,空出最顶行 //用随机数确定路的转向 //计算分数及等级,确定游戏速度 //将新生成的路添加到matrix的最顶行 private void loadCreate() { do { newMove = move.Next(-1, 2); } while (newMove == 0); hitCar(); for (int i = 0; i < 15; i++) for (int j = 19; j > 0; j--) { matrix[i, j] = matrix[i, j - 1]; } //随机生成路 if (time % 3 == 0) { if (newMove == -1 && loadSign > -4) { for (int i = 0; i < 16; i++) { newLoad[i] = newLoad[i + 1]; } loadSign--; } if (newMove == 1 && loadSign < 4) { for (int i = 16; i > 0; i--) { newLoad[i] = newLoad[i - 1]; } loadSign++; } } time++; //路的行数累加器 if (time % 50 == 0) level++; //等级累加器 //随等级,计时器变化 if(level == 1) { timer1.Interval = 400; } if (level == 2) { timer1.Interval = 200; } if (level == 5) { timer1.Interval = 100; } if (level == 10) { timer1.Interval = 100; } if (time == 500) { time = 0; level = 1; } //添加新生成一行路 for (int i = 0; i < 15; i++) { matrix[i, 0] = newLoad[i + 1]; } } //主功能:刷新界面,界面画图 //算法: //先清空原绘图区 //再调用signCar()函数在二维矩阵matrix标记上赛车的位置 //然后根据matrix的记录绘图 //最后调用cleanCar()把赛车的位置还原为0,即清空 void MyDraw() { Graphics g = this.CreateGraphics(); Pen pen = new Pen(Color.Black, 1); Pen backpen = new Pen(Color.Empty, 1); SolidBrush blush = new SolidBrush(Color.Black); g.Clear(Color.Gray); signCar(); g.DrawRectangle(pen, 70, 0, 225, 300); for (int i = 0; i < 15; i++) for (int j = 0; j < 20; j++) { if (matrix[i, j] == 1) { g.DrawRectangle(pen, i * 15 + 70, j * 15, 15, 15); g.FillRectangle(blush, i * 15 + 72, j * 15+2, 12, 12); } } cleanCar(); }第5章 软件实施步骤:1.定制一个支持CF 2.0的操作系统2.修改其中的platform.bib 和 shell.reg ,也就是将赛车程序设置成系统的Shell3.重新打包系统,使用BootLoader烧写的实验箱中4.修改Eboot参数,使之能够在开机时自动转到操作系统5.重启,完成运行效果如下:第6章 特 色软件都属于自己设计和开发,虽然是小项目,但仍按软件工程过程实现,拥有纸质的设计文档。

      与老式游戏机上的同类游戏算法相比,本游戏更节省运行时的资源消耗,但又能同时做到不降低游戏的可玩性结 论嵌入式系统的两大重点是:定制一个符合使用要求的操作系统和开发该操作系统下能运行的程序最终目标是要按照产品的需要,将系统和程序捆绑为一体展现在人们眼前嵌入式操作系统的定制操作必须非常小心,否则很容易失败熟悉嵌入式的开发不仅要有扎实的理论,更需要很多的实验尝试以及思考再尝试参考文献[1]郑人杰等。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.