UNO卡牌游戏—个人博客
一、团队课程设计博客链接
二、个人负责模块或任务说明
- 背景音乐设计
- 阿里巴巴代码规范纠正
- 团队博客编写
三、自己的代码提交记录
四、自己负责模块或任务详细说明
- 背景音乐设计代码分析
首先是实现音频的播放,用File和UIL和URI这个传输套路以及创建AudioClip对象实现音频播放,注意:Java播放背景音乐需要无损音质,后缀名 .wav这之类的。
代码如下所示:
public class MusicPlayer{
static AudioClip ac=null; //创建音频流
public static void musicplay() { //变量名赋值并播放音乐
URL url = null;
File f1 = new File("src/bgm1.wav"); //创建文件流
try {
url= f1.toURL();
} catch (MalformedURLException e) {
e.printStackTrace();
}
ac= Applet.newAudioClip(url);
ac.loop();//循环播放
}
public MusicPlayer(){
run();
}
}
之后想进一步通过GUI界面的按钮来控制音频的开始与停止。首先想到的是通过鼠标监听器监听点击次数,是奇数就开启音乐,是偶数就关闭音乐,但由于当时没有想到运用内部类来解决不同包间的变量调用问题就放弃了。又搞了一个弹窗出来选择是否开启背景音乐。
以下代码为再创建一个弹窗来控制背景音乐:
public static void run(){ //监听器运行
JFrame frame = new JFrame();
frame.setSize(300,300);
frame.setLocation(700,100);
Font t=new Font("楷体",Font.BOLD,30);
JButton bt1 = new JButton("开始播放");
bt1.setFont(t);
bt1.setForeground(Color.black);
bt1.setBackground(Color.white);
bt1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ac.loop(); //循环播放
}
});
JButton bt2 = new JButton("停止播放");
bt2.setFont(t);
bt2.setForeground(Color.black);
bt2.setBackground(Color.white);
bt2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ac.stop(); //停止播放
}
});
JPanel panel = new JPanel();
panel.add(bt1);
panel.add(bt2);
frame.add(panel, BorderLayout.CENTER);
frame.setSize(300, 300);
frame.setVisible(true);
}
以下代码为在按钮上添加行为监听器(使用内部类):
btn4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
MusicPlayer.run();
}
});
- 任务二:代码规范
通过阿里巴巴编码规范扫描插件扫描,一共在
五、课程设计感想
在本次课程设计中,由于基础比较薄弱,我负责的代码量不多,但收获还是很多的。
首先是码云的使用,从看着教程都一脸懵,到现在可以熟练提交并通过pull、push解决冲突;还有在生成公钥中遇到的各种问题,比如.ssh文件找不到,或cat~不是内部命令等,虽然花了很多时间在上面,不过也印象非常深刻,不算亏。
再就是用Swing进行GUI设计有了更熟悉的掌握和应用,也学到更多监听器的运用。在编写背景音乐代码时,刚开始对监听器的运用很茫然,后来通过上网查资料再结合之前老师上课的课件才回忆起来。还有内部类的使用,说实话,之前我并不重视内部类的使用,更多的印象是停留在比较器上,通过这次的课程设计,我对内部类是大大的崇拜,极大的简化了代码,提高了代码的可读性。
进行代码规范整理可以有效的提高我对整个项目的理解程度,因为阿里巴巴编码规范扫描插件规定你对每个类、类属性、类方法都要使用javadoc规范,间接使我认真阅读代码,理解代码。当然,最好还是要上手实践。
这次的课设说收获这么多,其实还是蛮不好意思的,毕竟自己的工作量少,希望自己以后多多努力啦。