this.fadeOval();
count+=1;
UI.text_field.setText(count+"分");
y1=5;
y=100;
java.util.Randomran=newjava.util.Random();
x=ran.nextInt(600)+10;
}
if(y>630){
if(isexist){
isAgain();
}
stopThread();
}
try{
Thread.sleep(speed);
}catch(Exceptionef){
ef.printStackTrace();
}
}
}
}
小球的绘制其实就是不断的绘制一个圆形,只不过圆形的y坐标在不停的变化。
难度的控制是通过主程序传入的speed参数来控制的,这个参数用于Thread.sleep(speed),很显然,当这个参数与小球下落的速度成反比。
通过调用UI.text_field.setText()来更新主窗口上的分数。
结果:
结论:
一个好的算法可以让你的程序更健壮,编写的代码量更少,处理异常一直是JAVA里的常事,通过试验,让我对基础的知识更加深入了解,也对更改代码错误有了一定的提升,能看的懂错误的代码错在哪里,并进行修改,使其正确。
这个游戏只是一个简单的接球游戏,如果可以做的更好,就会更好的训练人们的集中力和反应速度,敏捷的做出正确的判断。
附录:
源程序代码:
importjava.awt.Insets;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
/游戏界面类/
publicclassGameUIextendsjavax.swing.JFrame{
privatestaticGameUIUI;
privatejava.awt.Graphicsg;
privateMyListenerml;
publicjavax.swing.JLabeltext_field;
publicjavax.swing.JProgressBarpBar;
privateStringcommand;
publicjava.util.ArrayListlist=newjava.util.ArrayList();
privatejavax.swing.JToggleButtonbutton;
publicstaticvoidmain(Stringargs[])
{
UI=newGameUI();
UI.initUI();
}
/初始化窗体的方法/
publicvoidinitUI(){
//设置标题
this.setTitle("接球");
//设置大小
this.setSize(610,635);
//设置关闭是退出程序
this.setDefaultCloseOperation(3);
//设置打开窗体时在屏幕中间显示
this.setLocationRelativeTo(null);
//设置窗体的流式布局管理器
this.setLayout(newjava.awt.FlowLayout());
//设置窗体背景颜色
this.getContentPane().setBackground(java.awt.Color.black);
//创建文本标签对象
text_field=newjavax.swing.JLabel();
javax.swing.JLabellable=newjavax.swing.JLabel("时间:
");
//设置文本标签前景颜色
lable.setForeground(java.awt.Color.red);
text_field.setForeground(java.awt.Color.red);
//创建进度条对象
pBar=newjavax.swing.JProgressBar(0,330);
//创建按钮对象
button=newjavax.swing.JToggleButton();
button.setMargin(newInsets(0,0,0,0));
button.setIcon(newjavax.swing.ImageIcon("images/Pause.gif"));
button.setActionCommand("暂停");
//通过匿名内部类来创建动作监听器
java.awt.event.ActionListenerbutton_listener=newjava.awt.event.ActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringcom=e.getActionCommand();
if(com.equals("暂停")){
button.setMargin(newInsets(0,0,0,0));
button
.setIcon(newjavax.swing.ImageIcon(
"images/start.gif"));
button.setActionCommand("继续");
for(inti=0;ilist.get(i).PauseThread();
}
}
if(com.equals("继续"))
{
button.setMargin(newInsets(0,0,0,0));
button
.setIcon(newjavax.swing.ImageIcon(
"images/Pause.gif"));
button.setActionCommand("暂停");
for(inti=0;ilist.get(i).ContinueThread();
}
}
}
};
button.addActionListener(button_listener);
this.add(button);
this.add(lable);
this.add(pBar);
this.add(text_field);
//的到菜单条
javax.swing.JMenuBarbar=creatMenuBar();
//为窗体设置菜单条
this.setJMenuBar(bar);
//设置窗体的可见性
this.setVisible(true);
}
/创建菜单条的方法/
publicjavax.swing.JMenuBarcreatMenuBar(){
//创建菜单条对象
javax.swing.JMenuBarbar=newjavax.swing.JMenuBar();
//创建