1、课程论文首页院、系(部) 电信系 专业 电子信息工程 班级 电信 102学号 010706222 姓名 唐进 课程教师 黄春先课程名称 嵌入式系统分析论文题目 基于 Windows Mobile 的 PlayGame 游戏设计 成绩评语签字:年 月 日唐进 基于 Windows Mobile 的 PlayGame 游戏设计 复核人意见签字:年 月 日0基于 Windows Mobile的 PlayGame游戏设计 唐进摘要:设计基于移动智能设备 Windows Mobile 下的 Pocket PC2003 开发平台,采用 C#语言进行编程,在 Visual Stuido 2005 环境下 实
2、现仿真,描述了一种在规定时间内,距离不超过两个拐点并且图形连线间无其他图形遮挡的情况下,相同图形通 过动画连线相消的 PlayGame 连连看小游戏设计方案。 关键词:开发环境 界面设计 模块功能简介1 设计目标及基本环境简介设计基于移动智能设备 Windows Mobile 下的 Pocket PC2003 开发平台,采用 C#语言进行编程,在 VS2005 环境下实现仿真。该设计方案描述了一个在规定时间(计数器最大值为 200)的情况下,距离不超过两个拐点并且中间无其他图形阻挡两个相同图形通过动态缩小、闪烁连线实现相消。在此期间可实现“暂停”游戏、 “继续”游戏、 “关闭”游戏等界面功能,
3、并出现相应的界面和“模拟按键”图形。在游戏将要结束(小于计数器的警戒值 30 的时候)界面的图像卡片出现“闪烁躁动”效果,以提醒用户游戏进程;若在规定时间内消去所有的图片则出现“获胜”界面,否则视为游戏失败,并退回到游戏未开始的初始界面,此时用户可以点击屏幕的“模拟按键”图形“Start”开始新一轮的游戏,或者点击“关闭”按钮结束游戏。2 基于 Windows CE的平台介绍WindowsCE 是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的 32 位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。WindowsEmbedded微 软 的 Windows产 品 在 嵌 入
4、式 领 域 应 用Window CEWindowsEmbedded品 牌 产 品 之 一Window XPEWindowsEmbedded品 牌 产 品 之 一PocketPC 基 于 CE的 PDA专 用 平 台Window Mobile 基 于 CE的 一个 移 动 智 能 设 备 品 牌 , 非 产 品 名 称 Smartphone基 于 CE的 智 能 手 机 专 用 平 台图 1 Windows CE 的平台简介2.1移动智能设备 Windows Mobile简介唐进 基于 Windows Mobile 的 PlayGame 游戏设计 1Windows Mobile,是 Micros
5、oft 用于 Pocket PC 和 Smartphone 的软件平台。Windows Mobile 将熟悉的 Windows 桌面扩展到了个人设备中。Windows Mobile 是微软为手持设备推出的“移动版 Windows”,使用 Windows Mobile 操作系统的设备主要有 PPC 手机、PDA、随身音乐播放器等。2.2 Pocket PC开发平台简介Pocket PC(简称 PPC)是基于微软的 Windows Mobile 操作系统的一种 PDA 掌上电脑。Pocket PC 是一种手持设备,可帮助存储并检索电子邮件、联系人和约会信息,播放多媒体文件,玩赏电子游戏,借助 MS
6、N Messenger 交换文本消息,浏览 Web 内容,能够与台式机实现信息交换和同步。 2.3 Visual Stuido2005简介Visual Studio 2005 是基于.NET2.0 框架的,同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等,包含代码测试功能。这个版本的 Visual Studio 包含有众多版本,分别面向不同的开发角色。同时还永久提供免费的 Visual Studio Express 版本。 3 游戏界面设计设计背景宽度和高度 public const int WIDTH = 216; / 集合的宽度(背景图)public const int
7、HEIGHT =240;/ 集合的高度 设计背景画面上所有的卡片的左上角的x、y 坐标初始值:public const int LEFT = 10;/ 设定卡片集合 public const int TOP = 38; / 集合的左上角的y 坐标 设计单张卡片的宽度和高度 public const int WIDTH =24; / 卡片宽度 public const int HEIGHT = 24; / 卡片高度设计时间条的放置位置、宽度及高度public const int LEFT = 11;/ 计时器左上角x 坐标 public const int TOP = 10; / 计时器左上角y
8、 坐标 public const int WIDTH = 190; / 计时器宽度 public const int HEIGHT =9;/ 计时器高度 游戏界面图片绘制、调用将用到的图片命名后放到 Resources 文件夹下(图片源)以便调用,利用离屏技术通过在虚拟平台(后台)上绘制图像,再将虚拟平台上的图像复制到物理平面(前台)实现界面显现,其中 4 张主界面图片的索取是用下面函数调用: this.gxPhys = this.CreateGraphics();/ 前台绘图面 this.imageOff = Resources.Background;/ 后台图像 this.gxOff =
9、Graphics.FromImage(this.imageOff);/ 后台绘图面 this.imageBack = Resources.Background;/ 背景源图像 唐进 基于 Windows Mobile 的 PlayGame 游戏设计 2this.images = new Bitmap3; / 游戏状态源图像this.images(int)Status.MainMenu = Resources.MainMenu;this.images(int)Status.Won = Resources.Won; this.images(int)Status.Paused=Resources.P
10、aused; 图 2 游戏初始界面设计 图 3 游戏运行界面设计图 4 游戏暂停界面设计 图 5 游戏获胜界面设计4 各模块程序设计框架总设计思路图片相关参数属性的设置设计图片源放置被调用图片卡片的随机获取动态连线卡片动态效果(选中标示、躁动)唐进 基于 Windows Mobile 的 PlayGame 游戏设计 3图 6 模块框架设计 4.1 参数属性设置模块由于游戏中图形的绘制选中图标的绘制等都需要计算目的位置的坐标、源图像的坐标等因此将这些属性抽象成一个基类 Object,文件命名为 Mainobject,将此类作为其他对象的基类,并可被继承。程序实现对图片源中图进行宽度、高度、绘制位
11、置坐标、大小、颜色等属性的设置后,使之显示在智能移动设备界面合适的上以适应界面大小和美观设计。4.2图片个体和集合类处理模块功能图片个体处理功能放在文件 Picture 中,主要是在继承基类的情况下处理单个图片参数属性设置、移动位置以及动画作用设置;图片集合类放在文件 Collection 中处理图像集合相关的事务如图片功能处理,选择,绘制,重置以及对鼠标单击设备的处理。4.2.1卡片的随机获取实现模块设置卡片类型为 20 种,每一种卡片都有 5 个图片,每个图片的大小为 24*24,游戏界面大小为 212*240,总共可容纳 90 张图片。利用 animCount 索引图片的整体数量,ani
12、mIndex 指采用哪一张图片,利用随机函数在 0(ANIM_MAX-1)随机选择一张图片:图 7 20 种卡片集合public Picture(Game game, Image image, ImageAttributes imageAttr, int left, int top): base(game, image, imageAttr) SetSrc(left, top);/ 设置对象源位置 Resize(WIDTH, HEIGHT);/ 设置对象大小 this.animCount = image.Height / HEIGHT; / 计算动画图像索引整体数量 this.animInde
13、x = game.Random.Next(0, ANIM_MAX-1); / 设置动画图像索引数 Reset(); / 初始化将所有的卡片图形都绘制到游戏界面上public void Reset()/ 重置集合4.2.2卡片的闪动功能实现模块卡片的抖动是用坐标的移动来实现的,利用 Radom.Next(int)返回一个小于 2 的随机数,设这移动步长,再加上频率控制实现功能;由于每张图片的背景阴影“花纹”不同,当玩家随机选唐进 基于 Windows Mobile 的 PlayGame 游戏设计 4取一张图片的时候,由于在屏幕上存在的时间相对较短,加上视觉延迟,就会出现闪动的效果,ANIM_MA
14、X 越大,this.animIndex 越小,this.animIndex this.rows) / 行在边界外 return false;/ 不能通过else if (row = -1) | (row = this.rows) / 行在边界上 return true;/ 能通过else / 行在边界内 int step = Math.Sign(destCol - srcCol);for (int col = srcCol + (skipSrc ? step : 0); col != destCol; col += step) if (col this.cols) | / 列在边界外(col
15、= 0) else / 窗体上部其它地方唐进 基于 Windows Mobile 的 PlayGame 游戏设计 7 / 设置游戏状态为暂停this.status = Status.Paused; else / 点击窗体中部 / 让卡片集合处理本次点击8this.cards.Hit(mouseEventArgs.X,mouseEventArgs.Y); break;case Status.Exiting:/ 不作任何处理break; 5 总结通过游戏设计,进一步了解了C# 语言的编程格式以及移动智能设备上PocketPC2003的仿真功能。在其中学会了是用离屏技术实现界面显现,利用坐标实现定点功能实现,利用视觉效果实现动态效果。该设计综合了图像处理功能,程序编写及设计,除了游戏的娱乐效果外还更好地将所学的东西与实践相结合。参考文献:1姜波,宁峰,Visual C# 2005 智能设备程序设计M. 北京:机械工业出版社,20062姜波,Windows CE.NET 程序设计M. 北京:机械工业出版社, 20072何宗健,Windiows CE 嵌入式系统M. 北京:航空航天大学出版社,2006.09