[2018年必威体育精装版整理]11_课程设计3:动画和简单游戏.pptVIP

[2018年必威体育精装版整理]11_课程设计3:动画和简单游戏.ppt

  1. 1、本文档共32页,可阅读全部内容。
  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文档。上传文档
查看更多
[2018年必威体育精装版整理]11_课程设计3:动画和简单游戏

第11章 课程设计3:动画和简单游戏 本课教学内容 弹跳的小球 卡通时钟 拼图游戏 简介 前面的篇幅中,主要讲解了低级界面开发的若干问题。 在本章中,将针对这些内容开发一些项目。 首先将讲解动画开发。在这个项目中,将讲解动画开发过程中的一些技巧,特别是线程控制技巧。 本章的第二个项目是卡通时钟,在这个项目中将制作界面丰富的时钟,主要复习定时器和画图,以及叙述分块画图过程中的一些技巧。 最后,讲解一个完整的游戏:拼图游戏。在这个游戏中,复习到的内容是:分块画图和键盘控制,同时也让大家掌握一些游戏制作过程中的开发策略。 弹跳的小球 在本节中,将制作一个动画效果,系统运行,出现如下界面,如图所示: 界面上有个小红球,要求能够慢慢掉下来然后弹起来;为了逼真,当球在比较上方的时候,球比较大,球落下时,慢慢变小;在界面右下角有一个“暂停”按钮,可以让动画暂停;动画暂停之后又可以让动画继续运行。 弹跳的小球 显而易见,动画的运行是持续性的,图中的效果实现步骤如下: 1:在界面上画一个圆; 2:隔一段时间,清空界面,重新画另一个圆。 如果动画不停止,画圆的过程就是一个死循环。这个过程可以用定时器来做,也可以用多线程来实现。本节中我们先用多线程来完成这个程序。在多线程情况下,程序暂停时,就相当于让线程暂时停止运行。 弹跳的小球 但是,打开java.lang.Thread的文档,会发现,里面没有让线程暂停的函数! 实际上,在JavaSE中,线程的停止和继续的方法是被淘汰掉的,因为让线程暂时停止可能会给系统的可靠性带来损害,如线程独占了一些资源的情况下暂停,会导致其他线程的一直等待等等。 因此,强行让线程暂时停止,本来就不是一个好方法,这里没有提供,不值得奇怪。那怎样让线程停止呢?最好的方法是:程序暂停,就是让线程终止,下次继续运行时,再开一个线程,重新运行。这样虽然比较消耗资源,但是保证程序安全性。 弹跳的小球 当然,在开新的线程时,如果要用到原来线程所保存的一些状态,则原来线程终止运行时,其状态(如小球的当前位置等),必须不能丢失。否则暂停解除时,系统将无法接着暂停之前的状态运行。所以,基于画布的动画线程的结构一般采用以下方法: 弹跳的小球 在上面的代码中,画布中定义了一个变量:RUN,当这个变量变为false时,run函数中的循环将会终止,线程运行完毕。因此,可以通过控制RUN变量的状态,来控制线程的运行。在暂停之后,可以用如下代码重新开启一个线程: 弹跳的小球 小球掉到地上之后,需要弹起。弹起之后,到达一定高度,还需要能够掉下来。这个过程怎样实现呢?很明显,小球是向上移动还是向下移动,和小球的位置有关系。如果是向下移动到界面底部,则马上变为向上移动;反之,如果向上移动到一定高度,则马上变为向下移动。因此,可以用一个变量DIR来控制方向,具体代码如下: 弹跳的小球 打开Eclipse,新建一个项目:Prj11_1,建立一个包:prj11_1。 建立一个类:VideoCanvas,代码请参考课本11-1-3节VideoCanvas.java。 建立一个MIDlet:VideoMIDlet,代码请参考课本11-1-3节VideoMIDlet.java。 卡通时钟 在本章中,将制作一个卡通时钟,系统运行,出现如下界面: 界面上显示了当前时间,用“HOUR:MINUTE:SECOND”的格式表示。每隔1秒钟,系统能够获取当前时间,显示在界面上。 卡通时钟 显而易见,该程序也是一个动画,运行也是持续性的,图中的效果实现步骤如下: 1:在界面上画出当前时间; 2:隔1秒,重新获取当前时间,画到界面上。 该问题可以用多线程实现,也可以用定时器实现。本节中我们选用定时器来完成。 很明显,本问题的难度是:界面上的卡通数字是怎么组织起来的。 JavaME钟并没有提供卡通数字,因此,卡通数字是图片。仔细分析界面,会发现卡通时钟中的数字只有可能是0、1、2、3、4、5、6、7、8、9,以及一个分隔符:冒号。因此,我们可以选取10幅图片,系统根据当前时间,获取相应的图片画出来。 卡通时钟 以上方案并不是最好的方案,会造成文件数量过多。Graphics类有一个重要函数: 该函数可以在源图片上截取一小块,画到界面上。因此,我们系统中可以只用一幅图片,如number.jpg,如图所示: 该图片上一共有10个字符:0、1、2、3、4、5、6、7、8、9和冒号。 卡通时钟 得到图片中对应的块:以“5”为例。首先可以将number.jpg的宽度平均分为11份,每份宽度为widthOfNumber,高度为heightOfNumber,数字“5”图片小块的左上角横坐标实际上是:5×widthOfNumber,纵坐标

您可能关注的文档

文档评论(0)

liwenhua00 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档