].setIcon(null);
dots[array].setEnabled(false);
try {
thread.sleep( 20l);
}
catch (InterruptedException ex) {
}
}
// 消除两点
dots[array[0]].setIcon(null);
dots[array[0]].setEnabled(false);
dots[array[count - 1]].setIcon(null);
dots[array[count - 1]].setEnabled(false);
animate = false;
}
stop(); // 停止动画
}
由于消除动画可以几个消除动画同时进行,因此,对于此效果,我们就要在每次使用该效果时实例化一个该对象了。
为程序添加声音
现在,我们来为我们的游戏添加声音。虽然 JAVA 自从出道之日起就能够处理声音,但是那只限于在 APPLET 中进行处理,即便是这样,声音的格式也只能是少见的 AU 格式。幸好, SUN 意识到了这个问题,在 JDK1.3 之后, JAVA 就提供了专门的声音处理包来满足声音处理的需求。 javax.sound.midi 和 javax.sound.sampled 就是分别是用来处理 MIDI 和波形文件的,虽然 JAVA 提供的这两个包还不支持如 MP3 、 RM 等这类格式的文件,但是对于我们的这个游戏来说,能处理
MIDI 和 WAV 文件也已经够用了。
MIDI 格式的文件其优点在于文件小,但缺点是只能保存乐曲而无法包含声音信息, WAV 格式虽然能包含声音信息,可惜文件太大。因此,我们选用 MIDI 来作为游戏的背景音乐,而 WAV 来作为音效。
我们先来看看如何处理 MIDI 格式的文件吧。
// 读取 midi 文件
public void loadMidi(String filename) throws IOException, InvalidMidiDataException {
URLClassLoader urlLoader = (Class().getClassLoader();
URL url = urlLoader.findResource(filename);
sequence = Sequence(url); //sequence 保存着 MIDI 的音序结构
}
// 播放 sequence
public void play() {
if (isPlaying) { // 如果已经在播放,返回
return;
}
try {
sequencer = Sequencer();
sequencer.open();
sequencer.setSequence(sequence); // 加载 sequence
sequencer.addMetaEventListener(this); // 添加事件处理
}
catch (InvalidMidiDataException ex) {
}
catch (MidiUnavailableException e) {
}
// Start playing
thread = new Thread(this);
thread.start();
}
public void run() {
Thread currentThread = Thread.currentThread();
while (currentThread == thread && !isPlaying) { // 当 MIDI 没有播放的时候,播放 MIDI 音乐
sequencer.start();
isPlaying = true;
try {
thread.sleep( 1000l);
}
catch (InterruptedException ex) {
}
}
}
代码很短,但是已经能很好的完成我们需要的功能了,当然,如果你还嫌不满的话, JAVA 也提供了多种方法让你对 MIDI 格式的文件进行音调、频率的改变,由于这方面要牵扯到比较专业的知道,而我也不太了解,因此我就不说了:)
对 WAV 格式文件的操作和 MIDI 的操作基本上很类似,只不过使用的 API 包不同罢了,具体的我就不多说了,大家看看源代码就知道了。
让用户了解游戏规则
并非所有的人都玩过这个游戏,也并非所有的人都了解游戏的规则,因此,做一个帮助系统对刚接触的用户来说,还是非常有必要的。制作帮助系统非常简单,无非就是用一个对话框来显示游戏规则,显示的方式有多种,可以使用 JLabel 控件来显示,也可以使用 JTextArea 控件来显示,当然,在这里,为了使帮助系统更完美,使用 HTML 来制作帮助系统将来是最佳选择,由于在上面已经提到过如何使用 JEditorPane 控件显示 HTML 页面,因此,这个就留给大家自己完成吧。
并且使用自己的偏好来进行游戏
虽然我们为游戏提供了许多功能,可是并非所有的用户都能完全接受这些功能的,因此,我们需要提供一些设置使用户能够使用自己的偏好来进行游戏。
在此,我们提供了用户选择打开 / 关闭背景音乐、打开 / 关闭游戏音效、设置游戏的难度、设置消除动画的速度这 4 项功能,为了使用户能够自己设置,我们不仅需要使用上面提到过的配置文件来保存信息,还需要在程序中提供设置界面,在此,我们再添加一个 SetupDialog 类,这个类并不难实现,大家看看源程序就可以了。
本文发布于:2024-02-01 10:24:45,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170675428735961.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |