(毕业论文)—基于安卓平台上的猴王争霸游戏设计与开发.docVIP

(毕业论文)—基于安卓平台上的猴王争霸游戏设计与开发.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
各专业完整优秀毕业论文设计图纸 基于安卓平台上的猴王争霸游戏设计与开发 班级 软件092 姓名 王伟涛 指导老师:薛桂香 摘 要: 在游戏中,每次进行绘制屏幕时,都会重新获得当前时刻玩家角色的坐标值(为游戏地图上的坐标值)。然后,绘制出一个等于显示屏幕大小的、以玩家角色为中心的屏幕,这样就能做到让画面视角始终跟随玩家角色。但是,由于地图是有边缘的,所以仅当玩家角色位于屏幕中的一定范围内(如下图所示的虚线框范围内)时才生效。当玩家角色落到游戏地图的边角时,那么屏幕就会使用最接近的一个中心点来完成屏幕跟随显示。 在开发游戏地图时分三个图层进行制作。第一个图层是背景层,第二个是前景层,第三个是碰撞层。 二维游戏中,利用背景层和前景层的相互关系来造成玩家视觉上的空间立体感,更有利于画面的逼真。游戏中,背景层始终显示在屏幕的最底层,简单言之可以理解为用来填充屏幕的空缺部分的一层。而前景层则是游戏地图上的画面。画面是根据玩家角色所在的地图坐标显示的一个等于当前屏幕尺寸的矩形。这样,当玩家的角色在跳跃或者降落时,前景图片就会动态变化,而背景图片始终不变,游戏角色的活动也动态显示。这样就会形成一种错落有致的画面感,产生距离的效果。 4.3 游戏绘图技术 在通常情况下,开发二维游戏甚至做界面相关都使用View作为其显示图片的容器。可是,当开发一些复杂的、对效率要求较高或者对画面质量要求较高的游戏时,View类就不能满足开发需求了。这是因为View类并不能直接访问Canvas,必须要通过handler才可以,这样就降低了效率。另一方面,当采用SurfaceView类来进行开发时,对于刷新频率要求较高的图片可以采用双缓冲来显示,游戏中的背景、人物、动画等都需要绘制在一个画布(Canvas)上,而SurfaceView可以直接访问一个画布,提供给直接画像素而不是使用窗体部件的应用。所以在开发游戏时,可以通过创建一个线程对SurfaceView进行访问以刷新图片。 在游戏绘图中,往往是设置一个单独的绘图线用于直接访问SurfaceView里面的Canvas并对其进行绘制。游戏每秒钟绘制的图片数量要合适,既不能少,也不能太多。首先,如果每秒钟绘制图片少于24张就会使人感觉到视觉上的卡顿;相反,虽然每秒绘制的图片非常多肯定会使图片的连贯性很好,但是由于游戏是运行在安卓机器上,考虑到机器的配置差异、性能差异以及当前手机的内存和CPU使用率等重要因素,一味的追求高品质画面只会让游戏无法在低配置的机器上正常运行,从而影响游戏的推广。所以,对于每秒刷新次数进行控制的最好的方式是结合当前机器的配置和CPU使用率进行动态配置,可以将刷新次数规定为35-45次每秒。 由于SurfaceView里面并不能直接插入按钮控件,而游戏又必须要用到状态的切换按钮、暂停按钮等等。对于这个问题本系统所采用的方式是在屏幕需要插入按钮的位置插入那些按钮图片,然后在屏幕触摸事件里面进行监听,当触摸到该按钮的位置大小时进行相应的按钮事件处理。屏幕刷新线程操作顺序如图4.2所示。 4.4 游戏中的交互技术 在本游戏中,主要的交互方式是触控和重力感应。通过观察发现,玩家对于点击触摸屏手机按钮并不是特别敏感。也就是说,点击一两个处于边角位置的按钮还可以,但如果点击一些距离很近的按钮时,就会遇到困难。所以触摸屏最好的交互方式不是用虚拟按键,而是通过滑动或者点击触摸屏的不同位置来实现交互并且辅助以重力感应,这样可以取得良好的用户体验。 关于重力感应,在本游戏中必须要先获得activity的重力感应对象,然后再在SurfaceView类里面实现SensorEventListener接口,再复写public void onSensorChanged(SensorEvent event)方法就可以获得当前的重力感应数值。安卓的重力感应分为X、Y、Z三个轴。将安卓手机正放,左上角为顶点,由左上角向右沿着手机窄边为X轴,左上角向下沿着手机长边为Y轴,垂直手机平面向上为Z轴。当任何一个轴为水平时,它的重力感应值为零,当轴向上时值为正值如果是向上90度则值最大,如果轴向下那么值为负,向下90度为最大值。因此,游戏要在复写的方法里面实时的获得当前的重力感应值,并由重力感应值来决定玩家角色在空中时左右晃动的速度。 由于重力感应值会随着手机的晃动实时的改变,在用手机感应值生成速度时,最好的方式是玩家角色在空中时的左右速度与重力感应值为一次线性关系。这样才能更好的符合玩家的控制感觉。至于这个线性关系的系数取值,需要根据游戏的地图和玩家角色的属性值决定。 游戏的另一个重要的交互方式就是触摸技术。安卓系统自带了很多手势识别的类和处理函数,不过在本游戏中并不太需要这些发杂的手势识别。因为,本游戏所需要的交互方式是点击屏幕和长按

文档评论(0)

六神无主 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档