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

Java程序设计与应用开发课件作者孙燮华第15章节游戏编程初步.pptVIP

Java程序设计与应用开发课件作者孙燮华第15章节游戏编程初步.ppt

  1. 1、本文档共12页,可阅读全部内容。
  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文档。上传文档
查看更多
15.1 数码Puzzle游戏 15.1.1 界面设计 1.随机数的发生 (1)用数学类发生随机数,不需要引入语句。 (2)用引入语句“import java.util.Random;” 2.实现界面设计 15.1.2 数码Puzzle游戏的实现 1.移动算法   为建立移动算法,需要建立坐标。为与编程一致采用纵坐标向下的计算机平面坐标表示,为与计算机数组下标从0开始一致,标签的编号,今后称为块编号从0开始,见图15-1。这种块编号表示与其在图15-2中的标签中文本数字,除了最后一个空白标签外均相差1。 2.设置移动限制 空白的当前块的移动是受到限制的。比如,向上移动时,当块坐标v=0时是不允许移动的。参见图15-3。 3.程序实现 15.2.1 用JLabel实现拼图游戏 1.移植数码Puzzle游戏的思想 将AWT的标签Label更改为Swing标签,从而可以将小图作为标签的图标替代数码Puzzle游戏中的数字实现图像的拼图。程序分为两部分PicPuzzle_1.java和PicPuzzle_2.java,前者还可被继承为鼠标健游戏程序所用。 2.程序实现 15.2.2 用鼠标实现移动图片 1.移动算法 设计用鼠标操作代替键盘操作。在某些情况下更方便。移动算法如下:   (1)当空白块有上方块时,若鼠标点击上方块,则上方块与空白块交换。   (2)当空白块有下方块时,若鼠标点击下方块,则下方块与空白块交换。   (3)当空白块有左方块时,若鼠标点击左方块,则左方块与空白块交换。   (4)当空白块有右方块时,若鼠标点击右方块,则右方块与空白块交换。   (5)对其余情况,无动作。 2.程序实现 15.2.3 用画布实现拼图游戏 1. 函数drawImage()直接作图的方法   (1)Java的作图函数drawImage()有多种重载    ● drawImage(Image image,int x, int y, ImageObserver observer);   将image在坐标(x, y)处,以原图的宽高画出image。(不具有缩放功能)。   ● drawImage(Image image, int x, int y, int width, int height, ImageObserver observer)   将image在坐标(x, y)处,宽为width高为height的大小画出。(因此,具有缩放功能)   ● drawImage(Image image, int x0, int y0, int x1, int y1,              int u0, int v0, int u1, int v1,ImageObserver observer)   取image从左上角(u0,v0)到右下角(u1,v1)矩形区内的图,放到左上角(x0,y0)到右下角(x1,y1)的矩形区画出。其中observer—报告透视过程进行的对象,一般用this。(因此,具有缩放功能) (2)框架Frame与画布的原点   参见图15-7。注意,经过实际测试,画布Canvas的原点在框架中的坐标是(0,30)。所以,在画布中作图,使用语句   g.drawImage(image,10,10,this);// 在画布中 相当于在框架中   g.drawImage(image,10,40,this);//在框架中 15.2.4 用框架实现拼图游戏   1.在Frame中函数drawImage()的三种重载    下面的程序给出在Frame中用方法drawImage()的三种重载载入图像的试验。试验发现,在Frame中作图与在画布类中作图的最大区别在于各自采用的坐标原点是不同的。参见图15-8。在应用开发中,通常会遇到这类问题,需要通过试验和测量获得数据来解决问题。 2.在Frame中实现拼图游戏   (1) 分块图像映射算法如下:   1)确定当前块的块编号curNo   2)计算当前块坐标(u,v), u = curNo%3, v = curNo/3;   3)鼠标按下, 取得鼠标点击的坐标,并使用下式计算鼠标点击处的块坐标(x,y)     x = (int)((e.getX()-5)/50), (15.2.5)     y = (int)((e.getY()-50)/50); (15.2.6)   4)if(鼠标点击当前块的上,下,左,右方块)

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档