Java程序设计实例制作拼图游戏.docx

上传人:小飞机 文档编号:3159650 上传时间:2023-03-11 格式:DOCX 页数:17 大小:42.10KB
返回 下载 相关 举报
Java程序设计实例制作拼图游戏.docx_第1页
第1页 / 共17页
Java程序设计实例制作拼图游戏.docx_第2页
第2页 / 共17页
Java程序设计实例制作拼图游戏.docx_第3页
第3页 / 共17页
Java程序设计实例制作拼图游戏.docx_第4页
第4页 / 共17页
Java程序设计实例制作拼图游戏.docx_第5页
第5页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java程序设计实例制作拼图游戏.docx》由会员分享,可在线阅读,更多相关《Java程序设计实例制作拼图游戏.docx(17页珍藏版)》请在三一办公上搜索。

1、Java程序设计实例制作拼图游戏Java程序设计实例:制作拼图游戏 本例知识点 新学知识 已学知识 使用Image类 使用MouseEvent类 使用Point类 使用Graphics类 一句话讲解 导入图片 处理鼠标事件 转换坐标 管理屏幕显示 一、练习具体要求 本练习制作拼图游戏,运行效果如图99-1所示。执行本实例后,用鼠标拖动选中的小图片进行拼接,可以拼成一幅完整的图片。本实例的知识点有:鼠标事件的监听,Graphics类和Image类的应用。 二、程序及注释 编程思路:本练习因为要制作拼图游戏,所以首先要实现图片的导入。这是通过getImage函数来实现的,该函数有两个参数,第一个参

2、数指明图片的路径,第二个参数指明图片的名称。然后,因为要实现图片摆放的随意性,所以要通过initgame函数来实现。Initgame函数是自写函数,在函数体内,通过调用Math.random函数产生随机数,用来达到图片位置摆放的随意性和随机性。最后,因为要实现人机交互.,所以首先要通过一系列函数来实现对鼠标事件的监听和响应,这是通过函数addMouseListener(this) 和addMouseMotionListener(this)来完成的。这样程序会区分用户对鼠标不同的操作,正确执行相应的功能。 (2) 程序实现及注释: import java.awt.*; import java.a

3、pplet.*; import java.awt.event.* ; public class pintu extends Applet implements MouseListener,MouseMotionListener private Image picture; private Graphics buffer; private Image pic; private Image off_pic; private Graphics off_buf; private Image off_screen; private Graphics off_buffer; private Image o

4、ff_drag; private Graphics off_drag_buf; private int map; private int ran; private int width=0; private int height=0; private int lastx; private int lasty; private int last_downx; private int last_downy; private int stepx; private int stepy; private boolean choose; private boolean click; private bool

5、ean m_down; private boolean m_drag; private boolean not_redraw; private boolean able; Font font1,font2; /程序的初始化 public void init resize(640,480); pic = new Image 3; off_pic = new Image16; off_buf = new Graphics 16; map = new int 44; ran = new int 15; for(int a=0;a16;a+) mapa/4a%4 = a; for(int a=0;a1

6、5;a+) rana=a; click=new boolean 44; MediaTracker tracker= new MediaTracker (this); /要载入的图片 pic0=getImage(getCodeBase,PICTURE0.JPG); pic1=getImage(getCodeBase,PICTURE1.JPG); pic2=getImage(getCodeBase,PICTURE2.GIF); tracker.addImage (pic0,0); tracker.addImage (pic1,0); tracker.addImage (pic2,0); try t

7、racker.waitForID (0); catch(InterruptedException e) /设置字体 font1= new Font (TimesRoman, Font.BOLD, 48); font2= new Font (TimesRoman, Font.BOLD, 32); width=640; height=480; /初始化主界面 initForm; /添加鼠标监听事件 addMouseListener(this); addMouseMotionListener(this); /面板初始化 void initForm public void paint(Graphics

8、 g) if(off_screen=null) if(able) for(int a=0;a4;a+) for(int b=0;b4;b+) if(mapab!=15) off_buffer.setColor (Color.black ); off_screen = createImage(width,height); off_buffer=off_screen.getGraphics ; this.setBackground (Color.orange); if(off_drag=null) off_drag = createImage(width/4,height/4); off_drag

9、_buf = off_drag.getGraphics ; off_buffer.drawImage (off_picmapab,b*width/4,a*height/4,this); if(mapab=15) off_buffer.fillRect (b*width/4,a*height/4,width/4,height/4); for(int c=0;c2;c+) off_buffer.drawRect (b*width/4+c,a*height/4+c,width/4-c,height/4-c); if(clickab) off_buffer.setColor(Color.red); f

10、or(int d=0;d30 & point.x50 & point.y370 & point.x160 & point.y60 & point.x270 & point.y30 & point.x50 & point.y370 & point.x160 & point.y60 & point.x270 & point.y640 | point.y480) return point; else return point = new Point (point.x/160,point.y/120); /图片初始化 void initmap(int stage) for(int a=0;a15;a+

11、) off_pica = createImage(width/4,height/4); off_bufa = off_pica.getGraphics ; off_bufa.drawImage (picture,0,0,width/4,height/4, picture = createImage(width,height); buffer = picture.getGraphics ; buffer.drawImage (picstage,0,0,640,480,this); (a%4)*width/4,(a/4)*height/4,(a%4+1)*width/4,(a/4+1)*heigh

12、t/4,this); initgame; repaint; /程序是否结束 boolean wingame /游戏初始化 void initgame for(int a=0;a4;a+) for(int b=0;b4;b+) if(mapab=a*4+b) ; else return false; return true; for(int a=0;a4;a+) for(int b=0;b14) temp=0; else ranmapab=-1; else map33 = 15; 三、练习效果 本实例代码编写完毕,存盘为:C: j2sdk1.4.0javaprograms pintu.java。

13、 打开计算机的命令提示符窗口,然后在命令提示符窗口中,定位到javaprograms目录,输入javac pintu.java 来编译程序,最后将程序加载到网页上。在javaprograms文件夹下新建一个记事本文件,内容为 拼图 1.0 ,然后保存为pintu.html的网页文件。 本例制作完毕,用浏览器打开pintu.html文件便可以看到制作效果。图99-1练习效果 四、总结提高 本练习制作拼图游戏的实例,运用了Java2中的图形处理技术和消息响应技术。通过图形技术,实现图片的导入和分割。通过消息响应机制,使程序可以响应用户的鼠标操作,进行拼图游戏的操作。 疯狂java简介 疯狂Java

14、是广州为学教育科技有限公司旗下品牌,由李刚老师、肖文吉老师联合创建,作为一家专注于javaEE和3G/4G技术的专业培训服务机构,疯狂Java怀抱“软件强国”的理想,立志以务实的技术来改变中国的软件教育。以“十年磨一剑”的心态打造全中国最强的Java学习体系。 疯狂java培训讲义 疯狂Java相继出版疯狂Java讲义、疯狂Android讲义、轻量级JavaEE企业应用实战、疯狂Ajax讲义、疯狂XML讲义、经典JavaEE企业应用实战、Struts2.1 权威指南、RubyOnRails敏捷开发最佳实践、疯狂Java突破程序员基本功的16课、疯狂JAVA成为程设高手的16堂课等著作。其中疯狂

15、Java体系图书都是已经得到广泛的市场认同,并多次重印的畅销图书,并被多家高校选作教材,部分图书已被翻译成繁体中文版、输出到台湾地区。 疯狂java发展概况 疯狂Java紧扣IT前沿技术的脉搏,高瞻远瞩立于潮头,引领行业标杆,开创IT教育培训的新天地,被称为新式IT教育的“黄埔军校”。疯狂java教育中心主要面对大学生和准大学生的长期就业培训、企业员工定制内训、在职工程师的短期高端培训以及企业级应用的产品研发,其专业服务和质量承诺在客户中赢得广泛的声誉。为保服务的质量,学校与华南理工大学、中山大学、暨南大学、华南师范大学等高等学府建立了师资力量方面的合作关系,同时与中国电信、中国移动、中国邮政

16、、新华南方、汇丰银行等知名企业建立了广泛的战略合作伙伴关系。 疯狂java师资力量 疯狂Java创始人李刚,携疯狂Java精英讲师团队肖文吉、李韩飞、黄勇、陈辉等老师将带给广大学习者“非一般”的疯狂。 疯狂java培训特色 疯狂Java结合自身特色,打破固有思维模式,以突出实战性,系统性,学识转换相结合的理念体系指引下,注重如何将培训内容真正转化为实操经验,以此促进工作能力的达成。在疯狂软件学院,学员通过参与企业实际项目开发,学以致用,获得实际项目经验。凭借自身强悍的师资、一流的课程、真实的项目、超高的就业率已经让广大南方学子成功走上软件工程师职业道路。大量毕业即失业的学子已通过疯狂Java实现了就业。加入疯狂Java,加入改变世界的力量,让我们一起行动,用自己的代码改变世界! 地址:广州市天河区车陂大岗路4号沣宏大厦3011过马路左转前行200米) 联系电话: 020-28309358、28309378 java技术问题咨询QQ:951170790

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号