JBuilder 2005开发Applet游戏全接触 - 编程入门网
象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
在第5行定义一个音效的对象,在Applet初始化时获取音效对象,如第9行所示。更改字母下落线程,当击中下落的字母时播放音效,如第21行所示。 JBuilder 2005开发Applet游戏全接触(9)时间:2010-04-27 天极3、字母下落线程的产生器线程 指法练习需要"子子孙孙,无穷匮也"地不断产生字母下落线程,以使游戏持续进行,这个工作由产生器线程GenerateDropThread负责。GenerateDropThread线程出于和DropCharT |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |