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

  • 48
  • 0
  • 约2.29千字
  • 约 8页
  • 2019-07-17 发布于辽宁
  • 举报

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

第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 青蛙过河游戏设计的步骤 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.3 青蛙过河游戏设计的步骤 18.3.3 设计主窗体类(frogFrame.java) 在项目中创建一个

文档评论(0)

1亿VIP精品文档

相关文档