快速业务通道

JBuilder 2005开发Applet游戏全接触 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
象canvas进行同步,即用canvas进行通讯。线程间要进行通讯时,一定需要通讯线程都可以访问到的对象充当媒介将这些线程"串"起来,通过这个对象的notify()/notifyAll()/wait()在线程间通讯。这个对象好比一个"月下老人",在线程的情人间传递音讯。

4) 当线程被唤醒后,或原来就没有等待,则进入下一个循环的处理过程,在这个过程中,程序将原来位置的字母清除,下移纵坐标,并在新的位置画字母,以达到字母下落的动画效果,然后下落线程睡眠指定的毫秒数,毫秒数值为TypeTrainApplet成员变量stepInterval的值,而这个值可以在网页的<param name = "stepInterval" value = "50">标签中定义,达到控制下落速度的效果。

因为在画布上画字母后,这个字母并不会自动消失,如果直接移动纵坐标并在新位置画字母,原位置的字母依就存在。所以在新位置画字母之前,必须先将旧位置的字母清除。我们用了一个小技巧,即使用Graphics对象的setXORMode()方法,该方法两图像重叠部分的颜色。我们调用这个方法将图像重叠部分的颜色设置为画布的背景色,这样在原来的位置上再次画字母时,因为前后两次画个字母刚好重叠,就达到了清除原位置字母的效果。

画字母和清除字母的程序相似,我们把它抽出到一个方法中draw(int actionType),如第50~59行代码所示,通过入参决定是清除还是画新字母。为增强程序的可读性,我们在第8~9行中定义了两个用于表示清字母和画字母的动作常量。

5) 当程序出了循环体后,进行善后的处理:将用于保存用户按键字母的pressKeyChar变量置为空字符,在画布上清除移到底部的字母。如果游戏没有结束统计数据,并将数据写到界面的JLabel组件中。

2、添加击中音效

击中字母后播放一个短促的声音,将能大大提高游戏的听觉体验,这在节里,我们对字母下落线程稍作更改,以使其支持音效。

首先准备一个声音文件hit.wav,放在TypeTrainApplet.java相同的文件夹下。Applet类中定义了一个getAudioClip(URL url)方法,通过这个方法可以获取AudioClip的声音文件的对象。通过AudioClip的play()即可播放这个音效。

代码清单 5

1. … 2. import java.applet.AudioClip; 3. public class TypeTrainApplet extends JApplet { 4.  … 5.  AudioClip hitSound;//声明音效对象 6.  … 7.  public void init() { 8.   … 9.   hitSound = getAudioClip( (TypeTrainApplet.class).getResource( 10.             "hit.wav"));//初始化音效对象 11.  } 12.  … 13.  private class DropCharThread extends Thread { 14.   … 15.   public void run() { 16.    … 17.    draw(ACTION_CLEAR_FONT); 18.    if (statusCode != 0) { //游戏没有停止 19.     totalCount++; //统计总数 20.     if (y < canvas.getHeight()) { 21.      hitSound.play();//击中时播放音效 22.      rightCount++; //击中 23.     } else { 24.      errorCount++; //打不中 25.     } 26.     drawResult(); 27.    } 28.   } 29.  } 30.  … 31. }

在第5行定义一个音效的对象,在Applet初始化时获取音效对象,如第9行所示。更改字母下落线程,当击中下落的字母时播放音效,如第21行所示。

JBuilder 2005开发Applet游戏全接触(9)

时间:2010-04-27 天极

3、字母下落线程的产生器线程

指法练习需要"子子孙孙,无穷匮也"地不断产生字母下落线程,以使游戏持续进行,这个工作由产生器线程GenerateDropThread负责。GenerateDropThread线程出于和DropCharT

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号