基于虚拟环境的手机飞行游戏设计_第1页
基于虚拟环境的手机飞行游戏设计_第2页
基于虚拟环境的手机飞行游戏设计_第3页
基于虚拟环境的手机飞行游戏设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于虚拟环境的手机飞行游戏设计

0休闲类游戏是建设休闲化的平台根据2006年11月塞迪的联合调查和钓鱼网的联合报告,56%的用户从2005年开始接触r游戏,这表明手机游戏市场从2005年开始。现在他们还不成熟,所以手机游戏市场在增长。赛迪顾问2006年报告称,未来5年中国网络游戏市场将保持41%的年均复合增长率,预计2010年市场销售额将达到227亿元。艾瑞市场顾问2006年网络游戏报告显示:中国网络游戏市场趋于多元化、休闲化发展。休闲类游戏基本轻松活泼,从政策风险上看,更符合用户以及政府对游戏健康化的需求。本游戏是一款基于蓝牙联网的飞行类模拟游戏,采用时下业界标准的J2me平台开发,具有良好的通用性、跨平台性,能运行于大多数的Java手机的平台上,具有良好的移动性和可中断性,为人们悠闲娱乐提供了方便;既可以单人作战也可以双人协作完成任务,同时本游戏属于休闲类的游戏,不同于RPG等角色扮演游戏,花费时间短、娱乐性强、不容易沉迷,是现时政府所提倡发展的游戏类型。游戏设计采用了大量的几何、图像学、游戏设计、嵌入式编程等知识,如敌机追踪子弹的实现,旋转大炮用到的部分几何方法及实现原理,敌机和主角散弹的实现,单个敌机和一排敌机轨迹的实现,关末大机(也就是boss)轨迹的实现,敌机、子弹及主角的碰撞检测等功能用到了大量的几何知识和数学理论。数学理论的应用解决了游戏中实时性强,处理的逻辑比较复杂的问题。由于是基于手机平台开发的,所以具有移动性强、能为用户随时随地提供娱乐等特点。1配合手机游戏的实现过程中,采用了程序设计与几何知识的结合,包括敌机的追踪子弹、旋转大炮、敌机和主角散弹、单个敌机和一排敌机轨迹的实现、碰撞、轨迹变化等等。现介绍三个实例,以阐述数学理论在游戏中的合理使用。1.1求机动的距离实现原理:设子弹x方向的速度为speedx,y方向的速度为speedy;根据公式:speedx=speedy×tan(a)(1)tan(a)=|dx/dy|(2)我们可以得到主角的坐标(x1,y1)和敌机坐标(x2,y2),再根据公式:distance×distance=(x2-x1)×(x2-x1)+(y2-y1)×(y2-y1)(3)求出两点间的距离,从而可以求出追踪子弹的轨迹。注意:由于敌机与主角的坐标是实时变化的,每次敌机要发射下一颗子弹,都会根据主角实时坐标来发射的,所以我们可以将该任务放在线程里面动态获取;我们在求敌机与主角距离时用到公式(4):distance×distance=(x2-x1)×(x2-x1)+(y2-y1)×(y2-y1)(4)在求解的时候可以用一个多重循环来获得。如图1所示。1.2开发平台实现原理:由于cldc1.0不支持浮点数(float),所以程序采用了由小数点后2位开始模拟4舍5入的算法,以使游戏尽量精确,其实现封装到tan(int,int,int)的方法中。而且Math类里面的方法不能用于cldc1.0上,和float数一样要到cldc1.1才开始支持,而我们为了让游戏支持更多手机型号所以用了兼容性更好的cldc1.0上的midp2.0为开发平台,Math类里面的cos(),sin()函数都不能用,所以我们只能人工实现。如图2所示,其中散弹的运动轨迹可以分解为x、y方向的运动,如以下公式:x=R×sin(a)(5)y=R×cos(a)(6)R×R=dx×dx+dy×dy(7)(注:dy、dx分别为x轴和y轴的距离差值)由以上公式可以算出每次子弹的坐标x、y,同样可以放在线程里面来处理,由于我们是用了同一个子弹对象,所以我们的碰撞检测可以放在循环内执行。1.3敌人、子弹和主角之间的碰撞试验1.3.1高度重视弹道装置高的区域,假设利用财务特征识别内接公式进行碰撞实现原理:我们可以获得子弹的坐标(x1,y1)和主角坐标(x2,y2),通过这两个坐标的关系来判断他们的碰撞情况。满足碰撞的情况为(w1、w2分别是子弹和主角的宽度,h1、h2分别是子弹和主角的高度):(x1+w1)>x2&&(x2+w2)>x1&&(y1+h1)>y2&&(y2+h2)>y1(8)只要满足这个情况的子弹和主角就有碰撞了,也就是矩形碰撞。因为子弹是圆形的,所以我们在做矩形碰撞时可以做一个内接矩形,而飞机是类似三角形的,我们可以做一个如图3一样的矩形来进行碰撞检测。因为我们在玩游戏时是不会因子弹与飞机稍微接触就让飞机减速的,所以用像素级碰撞是不符合游戏需要的,且其效率也会很低。1.3.2按照公式计算实现原理:当圆形碰撞时,我们可以通过获得子弹和主角精确的坐标,求出两个圆形的圆心坐标(x1,y1),(x2,y2),然后通过公式。distance×distance=(x2-x1)×(x2-x1)+(y2-y1)×(y2-y1)(9)求出两个圆心的距离,再跟两个圆形的半径之和来对比,如果满足:distance<r1+r2的话就碰撞了。这些我们都可以通过程序来实现,只需要我们每次移动物体之前都进行一次碰撞检测的话就可以实现该功能。2系统运行效果本系统采用现时主流的彩屏手机---索尼爱立信的k750彩屏手机进行了测试,并参加了大学生计算机作品大赛,情况分类如下:(1)I---单机运行该游戏的效果;(2)II---双机联网协同运行该游戏的效果;(3)III---中断游戏,接听电话后继续开始游戏。使用效果数据如表1所示,在游戏成功安装在大多数的Java手机的平台后,单机运行成功率在96.8%以上,双机联网协同游戏成功率在86.8%以上,而中断游戏接听手机后继续游戏成功率在74.1%以上。而前两者的失误大多发生在不同型号手机的使用时,后者的失误多发生在匆忙接听电话而进行了误操作造成的。在正式比赛时,各项情况成功率为100%,表明该游戏系统运行是可靠的。3利用程序设计解决设计难题本系统严格按照了手机本身的特点,运用游戏的设计思想、编程方法和实现技巧来实现系统的所需功能。游戏中有较多的效果是运用到数学方面的知识,包括碰撞、轨迹变化等等,而且由于游戏的速度比较快,画面上的元素同时出现的数目又比较多,所以控制起来还是比较复杂的,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论