网站大量收购独家精品文档,联系QQ:2885784924

新Java游戏编程原理与实践教程 教学课件 陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第9章 陈锐 夏敏捷主编.ppt

新Java游戏编程原理与实践教程 教学课件 陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第9章 陈锐 夏敏捷主编.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
游戏界面和相关图片素材 9.3 关键技术 9.3.1 按钮显示图片实现 Swing中的按钮可以显示图像(图片)。 JButton中显示图像的构造方法: JButton(Icon icon) :按钮上显示图标。 9.3 关键技术 9.3.2 图片按钮移动实现 当图片按钮移动后,按钮的坐标发生改变,此操作通过setLocation()方法实现。setLocation()方法是从Component类继承的,其定义如下: public void. setLocation (int x, int y) 参数x,当前组件左上角在父级坐标空间中新位置的x坐标。参数y,当前组件左上角在父级坐标空间中新位置的y坐标。 9.4 程序设计的步骤 项目组成如图9-2所示。 9.4.1 设计单元图片类(Cell.java) 创建名称为Cell的类,用于封装一个单元图片对象,此类继承JButton对象,并对JButton按钮组件进行重写。 9.4.2 枚举类型Direction.java 项目中创建一个名称为Direction的枚举类型,用于定义图片移动的4个方向。 // 枚举类型四个方向 public enum Direction { UP, // 上 DOWN, // 下 LEFT, // 左 RIGHT // 右 } 9.4.3 游戏面板类GamePanel.java 在项目中创建一个名称为GamePanel的类,此类继承JPanel类,实观MouseListener接口,用于创建游戏面板对象。GamePanel类中定义长度为9单元的图片数组对象cells,并通过init方法对所有单元图片对象迸行实例化。 构造方法GamePanel()调用init()初始化对所有单元图片对象迸行实例化。单元图片对象进行实例化是可以直接用现成分割好的图片1.jpg,2.jpg,…..9.jpg(见图9-3)实现。其中9.jpg为空白图片。 也可以不用现成分割好的图片,使用BufferedImage类的getSubimage方法可以对一个大的图片woman.jpg进行任意分割成子图像。 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: Java游戏编程原理与实践教程 主编 陈锐 夏敏捷 人民邮电出版社 在“游戏”中,拼块以随机顺序排列,网格上有一个位置是空的。完成拼图的方法是利用这个空位置移动拼块,玩家用鼠标点击空位置周围拼块来交换它们位置,直到所有拼块都回到原位置。拼图游戏运行结果如图9-1。 第9章 人物拼图游戏 9.2 程序设计的思路 游戏中动态生成一个大小3*3的图片按钮数组cells。将图片woman.jpg分割成行列数3*3的小图片,并按顺序编号;每个图片按钮显示一副小图片,其位置成员place存放用0,1,2到8的数,代表正确位置编号。注意最后一个图片按钮显示的是空白信息图片“9.jpg”而位置成员place存放8。 游戏开始时,随机打乱这个图片按钮数组cells,根据玩家用鼠标点击,来交换图片按钮数组cells对应按钮与空白图片按钮位置,判断按钮数组cells所有元素的位置成员place是否有序来判断是否已经完成游戏。 现成分割好的图片1.jpg,2.jpg,…..9.jpg 图片块上单击事件中,通过e.getSource()获取触发事件的对象cell,与空白图片块cellBlank进行位置比较,从而决定被单击对象cell和空白图片块cellBlank移动方向。 public void mouseClicked(MouseEvent e) { Cell cell = (Cell) e.getSource();// 获取触发事件的对象 int x = cellBlank.getX();// 获取空白图片块x坐标 int y = cellBlank.getY();// 获取空白图片块y坐标 if ((x - cell.getX()) == Cell.IMAGEWIDTH cell.getY() == y) { cell.move(Direction.RIGHT);// 向右移动 cellBlank.move(Direction.LEFT); } else if ((x - cell.getX()) == -Cell.IMAGEWIDTH cell.getY() == y) { cell.move(Direction.LEFT);// 向左移动

文档评论(0)

118压缩包课件库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档