基于JApplet的贪吃蛇游戏.ppt_第1页
基于JApplet的贪吃蛇游戏.ppt_第2页
基于JApplet的贪吃蛇游戏.ppt_第3页
基于JApplet的贪吃蛇游戏.ppt_第4页
基于JApplet的贪吃蛇游戏.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、第22章 基于JApplet的贪吃蛇游戏,本案例中的贪吃蛇游戏想必大家以前可能看到过,基于前面内容的学习,现在实现贪吃蛇游戏已经不是一件困难的事情。该游戏的实现涉及如下的知识点。 JApplet Swing 线程,22.1 贪吃蛇原理,贪吃蛇游戏是在屏幕上画出一连串的方格用于表示一条蛇,同时会在屏幕随机出现所谓的食物。游戏者可以通过键盘的方向键控制贪吃蛇的移动,每移动一下,蛇身所有的方格向前移动一格,并且判断是否在蛇尾添加一格。如果贪吃蛇在移动过程中能通过食物,表示贪吃蛇吃掉食物,贪吃蛇的流程图如图所示。,贪吃蛇流程图,22.2 基本元素SnakeNode,由于贪吃蛇可以被分割为多个方块,而且

2、食物也是一个方块,所以将这些方块抽象为一个贪吃蛇和食物的基本组成元素:SnakeNode类。,22.3 蛇身类SnakeBody,蛇身类是对蛇的控制类,它是由多个SnakeNode对象构成。该类提供了必要的蛇状态改变的方法。SnakeBody类实现了如下几个方法。 pauseMove() resumeMove() stopMove() changeDirection() moveOn(),22.3.1 run总事务方法,由于SnakeBody是一个线程类,所以它重载了run()方法来完成所有事务的处理。,22.3.2 moveOn控制方法,MoveOn方法是控制蛇身对象的主要方法,用于具体判断

3、下一步蛇的移动方位,然后根据具体的坐标判断蛇是否越界,是否需要循环移动、设置网格的背景色等。,22.4 界面,界面是通过ColorConfig类定义的。ColorConfig类是JPanel的派生类,该类主要用于设置不同部件的颜色,如游戏背景颜色、贪吃蛇颜色、食物被吃颜色、食物本来的颜色。,22.5 面板控制,面板控制类用于实现游戏背景选择、贪吃蛇颜色、食物颜色、被吃食物颜色的设定。还可以设置和显示游戏级别与得分。这里主要使用的相关知识主要在于Swing组件的JPanel、JButton、JLabel等,以及一些监听器的实现类。ControlPanel类也是JPanel的派生类,在该组件中添加

4、两个文本框用于显示游戏等级以及游戏得分,还包含滑动条用于改变游戏级别。,22.5.1 域和构造方法,ControlPanel类的方法主要包括构造方法、设置按钮的文本文字、可用状态,和重置游戏等。构造方法主要功能是初始化域,设置并显示相关组件,最后为组件添加事件监听器。,22.5.2 响应键盘操作,ControlKeyListener类是键盘适配器KeyAdapter的派生类,该类覆盖了父类的keyPressed方法,22.5.3 设置游戏中的颜色,ColorGroup类用于保存游戏背景色、蛇身颜色、食物颜色、吃掉食物的颜色,并且还提供了静态方法设置这些颜色值。,22.6 游戏画布类GameCa

5、nvas,GameCanvas类是JPanel的派生类,该类主要用于将画布划分一系列的方格,以及根据Applet的大小调节方格的大小。,22.7 游戏主类GreedSnake,GreedSnake类是一个Japplet的派生类,也是游戏的主程序类。该类用于显示游戏的全部内容,将ColorConfig面板和ControlPanel面板添加到JApplet中并显示游戏的进度。,22.8 运行结果,编写完程序后,使用javac命令编译该文件产生class文件,然后浏览器打开GreedSnake.html文件,即可得到运行结果。,22.9 小结,本章提供的贪吃蛇游戏是一个结合JApplet、线程、以及Swing界面设计完成的,该游戏的类比较多,主要包括基本元素、蛇身体类、面板控制

温馨提示

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

评论

0/150

提交评论