练习96 抓不住的方块.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
练习96 抓不住的方块.doc

练习96 抓不住的方块 本例知识点 一句话讲解 新学知识 Graphics类 制作方块 使用java.awt.Event类 响应鼠标动作 已学知识 Color类 设置方块的颜色 使用int类 记录光标的位置 一、练习具体要求 本练习制作抓不住的方块的实例。如图96-1所示,程序执行后,创建一个含有方块的面板,用户可以通过鼠标抓取方块,但是,无论用户怎样努力,方块总是朝着与鼠标运动相反的方向运动,这就是抓不住的方块。 二、程序及注释 (1)编程思路:首先,本练习因为要制作抓不住的方块的实例,所以首先要制作界面中的方块,先通过Graphics类的对象函数g.setColor(Color.red)设置方块的颜色为红色,然后通过语句g.drawRect(0, 0, size().width - 1, size().height - 1)和g.drawRect(mx, my, (size().width/10) - 1, (size().height/10) - 1)绘制出两个矩形,这样就完成了方块的制作。然后,为了实现“抓不住方块”的效果,所以要响应鼠标事件,通过函数public boolean mouseDown(java.awt.Event evt, int x, int y响应按下鼠标的动作,通过光标位置的判断来避免鼠标抓到界面中的方块。 (2)程序实现及注释: //MouseTrack.java import java.awt.Graphics; import java.lang.Math; import java.awt.Color; public class MouseTrack extends java.applet.Applet { //变量声明 int mx, my; int onaroll; //初始化小程序 public void init() { onaroll = 0; resize(500, 500); setBackground(Color.black); } //画屏函数 public void paint(Graphics g) { g.setColor(Color.red); g.drawRect(0, 0, size().width - 1, size().height - 1); mx = (int)(Math.random()*1000) % (size().width - (size().width/10)); my = (int)(Math.random()*1000) % (size().height - (size().height/10)); g.drawRect(mx, my, (size().width/10) - 1, (size().height/10) - 1); } //响应按下鼠标 public boolean mouseDown(java.awt.Event evt, int x, int y) { requestFocus(); if((mx x x mx+size().width/10-1) (my y y my+size().height/10-1)) { if(onaroll 0) { switch(onaroll%4) { case 0: break; case 1: break; case 2: break; case 3: break; } onaroll++; if(onaroll 5) getAppletContext().showStatus(Youre on your way to THE HALL OF FAME: + onaroll + Hits!); else getAppletContext().showStatus(YOURE ON A ROLL: + onaroll + Hits!); } else { getAppletContext().showStatus(HIT IT AGAIN! AGAIN!); onaroll = 1; } } else { getAppletContext().showStatus(You hit nothing at ( + x + , + y + ), exactly); onaroll = 0; } repaint(); return true;

文档评论(0)

leiyb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档