欢迎来到天天文库
浏览记录
ID:7858081
大小:151.50 KB
页数:16页
时间:2018-02-28
《java程序设计实例制作拼图游戏》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Java程序设计实例:制作拼图游戏本例知识点一句话讲解新学知识使用Image类导入图片使用MouseEvent类处理鼠标事件已学知识使用Point类转换坐标使用Graphics类管理屏幕显示一、练习具体要求本练习制作拼图游戏,运行效果如图99-1所示。执行本实例后,用鼠标拖动选中的小图片进行拼接,可以拼成一幅完整的图片。本实例的知识点有:鼠标事件的监听,Graphics类和Image类的应用。二、程序及注释(1)编程思路:本练习因为要制作拼图游戏,所以首先要实现图片的导入。这是通过getImage()函数来实现的,该函数有两个参数,第一个参数指明图片
2、的路径,第二个参数指明图片的名称。然后,因为要实现图片摆放的随意性,所以要通过initgame()函数来实现。Initgame()函数是自写函数,在函数体内,通过调用Math.random()函数产生随机数,用来达到图片位置摆放的随意性和随机性。最后,因为要实现人机交互.,所以首先要通过一系列函数来实现对鼠标事件的监听和响应,这是通过函数addMouseListener(this)和addMouseMotionListener(this)来完成的。这样程序会区分用户对鼠标不同的操作,正确执行相应的功能。(2)程序实现及注释:importjava.aw
3、t.*;importjava.applet.*;importjava.awt.event.*;publicclasspintuextendsAppletimplementsMouseListener,MouseMotionListener{privateImagepicture;privateGraphicsbuffer;privateImagepic[];privateImageoff_pic[];privateGraphicsoff_buf[];privateImageoff_screen;privateGraphicsoff_buffer;pr
4、ivateImageoff_drag;privateGraphicsoff_drag_buf;privateintmap[][];privateintran[];privateintwidth=0;privateintheight=0;privateintlastx;privateintlasty;privateintlast_downx;privateintlast_downy;privateintstepx;privateintstepy;privatebooleanchoose;privatebooleanclick[][];privatebo
5、oleanm_down;privatebooleanm_drag;privatebooleannot_redraw;privatebooleanable;Fontfont1,font2;//程序的初始化publicvoidinit(){resize(640,480);pic=newImage[3];off_pic=newImage[16];off_buf=newGraphics[16];map=newint[4][4];ran=newint[15];for(inta=0;a<16;a++)map[a/4][a%4]=a;for(inta=0;a<15
6、;a++)ran[a]=a;click=newboolean[4][4];MediaTrackertracker=newMediaTracker(this);//要载入的图片pic[0]=getImage(getCodeBase(),"PICTURE0.JPG");pic[1]=getImage(getCodeBase(),"PICTURE1.JPG");pic[2]=getImage(getCodeBase(),"PICTURE2.GIF");tracker.addImage(pic[0],0);tracker.addImage(pic[1],0)
7、;tracker.addImage(pic[2],0);try{tracker.waitForID(0);}catch(InterruptedExceptione){}//设置字体font1=newFont("TimesRoman",Font.BOLD,48);font2=newFont("TimesRoman",Font.BOLD,32);width=640;height=480;//初始化主界面initForm();//添加鼠标监听事件addMouseListener(this);addMouseMotionListener(this);}//面
8、板初始化voidinitForm(){this.setBackground(Color.orange);if
此文档下载收益归作者所有