Java游戏编程原理与实践教程第18章 青蛙过河游戏

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
来自百度文库
18.3 青蛙过河游戏设计的步骤
18.3.3 设计主窗体类(frogFrame.java)
在项目中创建一个继承JFrame类的主窗体类frogFrame,在该类 中分别创建游戏面板frogPanel类的实例gamePanel和一个“开 始”按钮button。“开始”按钮button单击事件中调用 gamePanel.init(n)初始化游戏界面从而开始游戏。在游戏失败 后可以单击“开始”按钮将动物方块恢复到初始位置,重新开始游戏。
18.3 青蛙过河游戏设计的步骤
18.3.2 设计游戏面板类(frogPanel.java) 游戏面板类实现在面板上显示河流图片的背景,并在其上加载n+1动物方块, 默认为6个(n=6)青蛙方块对象及一个空白的方块对象。同时实现鼠标侦听接 口来响应鼠标事件。 init(int n) 加载n+1动物方块,默认为6个(n=6)青蛙方块对象及一个空 白的方块对象。并设置这n+1动物方块的图片、朝向、是否空白等属性。最后向 面板中添加所有动物方块(含空白方块),对所有方块添加鼠标监听。 青蛙过河游戏关键是单击事件处理。通过e.getSource()获取触发事件的对 象,找到相应的动物方块。如果被单击的是空块,则无需处理。 如果cells[i]是向左的青蛙方块,则需判断左侧相邻的方块cells[i - 1]是否 为空,为空则相邻的cells[i] 和cells[i - 1]这两个方块交换图案,并修改它们 方块的朝向等属性。假如判断左侧相邻的方块cells[i - 1]不为空则需判断左侧 的方块cells[i - 2]为空,说明是跳跃则cells[i] 和cells[i - 2] 这两个方块交 换图案,并修改它们方块的朝向等属性。 如果cells[i]是向右的青蛙方块,处理过程类似cells[i]是向左的青蛙方块。 每次移动成功均要判断游戏是否结束。
第18章 青蛙过河游戏
青蛙过河游戏是一个有趣的智力游戏。六只青蛙分成两队,左边 三只,右边三只,都要过河,但是互不相让。中间只有一块空白 石头。你需要用一种方法将左面的青蛙和右面的青蛙互换。 游戏说明: (1)用鼠标点青蛙头部,它会向前跳; (2)它最多只能跳过一个青蛙; (3)单击开始按钮,游戏复原。 青蛙过河游戏运行界面如图18-1所示
游戏运行界面
18.2 设计思想
使用一个带背景(background.jpg)的面板作为游戏区域,其上 显示青蛙方块对象。青蛙对象使用继承JButton类的frogCell按钮 类实现。并且能响应鼠标事件。 创建一个继承JFrame类的主窗体类MainFrame,显示带背景 (background.jpg)的面板。并加入“开始”按钮,可以将动物 方块恢复到初始位置,重新开始游戏。
18.3 青蛙过河游戏设计的步骤
18.3.1 设计青蛙方块类(frogCell.java) 在项目中创建一个继承JButton类的的frogCell按钮类,用于表示青 蛙。 导入包及相关类: import javax.swing.Icon; import javax.swing.JButton; frogCell按钮类构造方法设置青蛙方块的方向,其上图案,显示时的 大小。并提供是否是空块,以及朝向是否向左判断方法。
18.3 青蛙过河游戏设计的步骤
public class frogCell extends JButton { public static final int IMAGEWIDTH = 100;// 方块宽度 private boolean blank=false; //空块标记 private boolean left=true; //朝向,true向左,false向右 public frogCell(Icon icon, boolean left) { this.setSize(IMAGEWIDTH, IMAGEWIDTH);// 方块的大小 this.setIcon(icon);// 方块的图标(图案) this.left=left; // 方块中动物朝向 } public boolean isBlank() { if(blank) return true; else return false; } public boolean isLeft() {//此块动物是否向左 if(left) return true; else return false; } public void setLeft(boolean b) {//设置此块动物朝向(向左或向右) left= b; } public void setBlank(boolean b) {//设置此块有无动物图案 blank= b; } }
18.3 青蛙过河游戏设计的步骤
当然本游戏也可以是八只青蛙分成两队,左边四只,右边四只,仅仅 需要修改 private int n=8;//动物数量 即可以在调用gamePanel.init(n)初始化成八只青蛙游戏界面,如 图18-4所示
八只青蛙跳游戏界面
相关文档
最新文档