第12章 实例4:赛车游戏.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 实例4:赛车游戏

第12章 实例4:赛车游戏 本课教学内容 赛车游戏的实例需求 赛车游戏的系统分析 代码编写 简介 前面的篇幅中,讲解了GameAPI中的一些重要知识,主要阐述了基于游戏画布开发过程中的若干问题。本章将利用赛车游戏,来深入探讨Sprite以及游戏图层的应用。 赛车游戏的实例需求 在本章中,将制作一个赛车游戏系统,该系统由1个界面组成。系统运行,出现如下界面: 该界面右下角有一个按钮:开始游戏。选择这个命令按钮,游戏开始。 赛车游戏的实例需求 游戏开始界面: 赛车游戏的实例需求 该游戏具有的功能: 1:用户操作的车是屏幕中间的车 称为用户车 ,可以用“上下左右”键让其在屏幕中移动。开始时,用户车在屏幕正中央。初始分数是100分。 用户车对应的文件名为mycar.gif,效果如图所示: 对手车辆文件名为:enemy.gif如图21-4所示: 赛车游戏的实例需求 2:在赛车时,用户车可能会遇到对手的车辆,对手车辆随机出现。如果用户车辆和对手车辆相撞,则扣1分。分数在屏幕上方显示出来。但是,用户可以用“上下左右”键来避开对手车。 3:在屏幕右下方有一个命令按钮:暂停游戏。点击按钮,暂停游戏;命令按钮变为:开始游戏,如果再点击按钮,游戏继续进行。 赛车游戏的实例需求 4:如果分数减小到0,游戏结束,系统提示:“您输了”,并退出游戏。如图所示: 赛车游戏的系统分析 在这个项目中,只需要用到1个界面:赛车游戏界面。这个界面比较简单,可以用一个类来完成,将这类用一个MIDlet组织起来,是比较好的方法。 但是,该项目有些特殊,主要是界面上的汽车显示以及汽车的移动。在这里,利用问题来讲解。 赛车游戏的系统分析 问题1:每个汽车怎样在界面上画出来? 很简单,在前面学习了Sprite,Sprite内可以封装一幅图片,并能很方便地对图片的位置进行定位,还可以控制图片的移动。因此,使用Sprite来封装这些汽车。 赛车游戏的系统分析 赛车游戏的系统分析 注意,上面的代码中,将enemy.gif进行了重复使用,生成了一个Sprite数组,该数组5个元素,每个元素都封装了enemy.gif。 为什么这么做呢?这和汽车随机出现的策略有关,实际上,假定的对手车不是1辆,而是5辆 当然,你也可以增加游戏难度,将5辆变为10辆 ,这5辆车随机出现在界面上,互不干涉。 赛车游戏的系统分析 2:对手的汽车怎样随机出现? 对手汽车的出现是随机的,并且能够反复出现。仿佛从屏幕后方跑出来,这怎么实现呢? 以一个对手车为例,游戏开始时,可以让对手车隐藏在屏幕的后方,即让其左上角的纵坐标为随机的负值。然后,让其左上角纵坐标慢慢变大,最后变成正数,就画到了屏幕上。纵坐标继续增大,当对手车运行到屏幕底部,消失时,又可以重新让对手车的左上角的纵坐标变为随机的负值。如此,周而复始。 这个随机的负值到底多大呢?因为这个游戏中对手汽车一共有5辆,如果你让这5辆汽车的左上角纵坐标太接近,那汽车就会扎堆出现,游戏难度太大。因此,可以设定汽车的左上角纵坐标在随机落在一个比较大的负数范围内,如界面的高度的10倍。 赛车游戏的系统分析 因此,对手汽车的定位方法如下代码所示(注意:不能让两个对手汽车的位置重叠): 赛车游戏的系统分析 3:怎样控制界面上的道路滚动? 赛车之所以叫做赛车,就是因为车在动。而在游戏中,为了实现车在动的效果,一般采用的方案是让道路滚动。在本游戏中,其实,道路并没有滚动。之所以有滚动的效果,是因为让道路中间的白线一直在移动。让道路上的白线移动,相当于让一个变量慢慢增大,在增大的过程中,反复重新将界面上的画面画出来。当该变量增大到一定程度,又从一个比较小的数字开始增大。 赛车游戏的系统分析 赛车游戏的系统分析 4:怎样知道车辆碰撞,碰撞后车辆怎样避让? 很明显,对于车辆的碰撞,可以用Sprite的碰撞检测实现;碰撞后,车辆必须避让,否则就会出现一辆车从另一辆车的上方飞过去,游戏失真。因此,可以在碰撞时,让对手的车和用户的车各自左右移动一个位置。策略如下: 如果用户汽车左侧撞到对手汽车则让用户车右移,对手车左移; 如果用户汽车右侧撞到对手汽车,则让用户车左移,对手车右移。 赛车游戏的系统分析 4:怎样知道车辆碰撞,碰撞后车辆怎样避让? 很明显,对于车辆的碰撞,可以用Sprite的碰撞检测实现;碰撞后,车辆必须避让,否则就会出现一辆车从另一辆车的上方飞过去,游戏失真。因此,可以在碰撞时,让对手的车和用户的车各自左右移动一个位置。策略如下: 如果用户汽车左侧撞到对手汽车则让用户车右移,对手车左移; 如果用户汽车右侧撞到对手汽车,则让用户车左移,对手车右移。 赛车游戏的系统分析 小结 本章利用一个赛车游戏,对游戏开发过程中应该考虑到的一些问题进行了阐述,重点是对基

文档评论(0)

muoy0620 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档