多线程游戏--切水果

来源:互联网 发布:海外聊天软件 编辑:程序博客网 时间:2024/04/30 10:11

1.画水果

刚开始写的时候,不知道怎么将水果显示出来,但后来发现,每一个水果线程除了图片不一样之外,所做的事情都是一样的,所以,游戏一开始,当容器里面的水果线程小于三个的时候,就创建水果线程,然后在每个线程中随机选择图片,当有的图片被切之后或者掉下来之后,就把对应的水果线程销毁,然后再去判断容器里面的水果线程,这样就保证了每次界面上都会有水果。

2.切水果

根据所画的直线和当前水果的位置,如果有相交就说明切到了,那么就应该将当前的这个水果图片换成这个水果被切后的图片

//画水果方法public void draw(Graphics g){g.drawImage(img[m][0], x, y, null);}public void draw2(Graphics g){g.drawImage(img[m][1], x+50, y, null);g.drawImage(img[m][2], x, y, null);}
没切之前应该用draw()方法,切到之后就用draw2()方法。

3.用标签设置分数和时间

分数的话,就是在每切到一次,然后分数就增加,就是要把设置标签的内容写在paint()方法中;

时间的话,单独写在一个线程中,开始的时候,时间设为60s,在线程中让时间自减,当为0时,则游戏结束

new Thread(){public void run(){while(time>=0){Date date=new Date(time);SimpleDateFormat format=new SimpleDateFormat("mm:ss");//设置时间显示格式String st=format.format(date);timer.setText("时间:"+st);time -= 1000;try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}.start();
4.添加声音

首先要将找的声音资源放在该项目中的bin目录下,然后在用java.applet包下的方法

AudioClip shot=Applet.newAudioClip(Test.class.getClassLoader().getResource("music/music.wav"));shot.loop();//循环播放Shot.play();//播放一次Shot.stop();//停止播放
但是用这种方法,有时播放的声音会有杂音。

以下是游戏截图:

开始时候的界面










原创粉丝点击