Java Swing游戏开发学习7

内容来自RyiSnow视频讲解

这一节实现的是背景音乐和音效的播放。

在这里,背景音乐和音效所用的音频文件均为wav格式文件。Java SDK默认支持的格式有限,默认不支持mp3格式音乐。

背景音乐、拾取钥匙、拾取靴子、开门分别有对应的音频文件。

作者的实现

java 复制代码
public class Sound {
    Clip clip;
    URL soundURL[] = new URL[30];

    public Sound() {
        soundURL[0] = getClass().getResource("/sound/BlueBoyAdventure.wav");
        soundURL[1] = getClass().getResource("/sound/coin.wav");
        soundURL[2] = getClass().getResource("/sound/powerup.wav");
        soundURL[3] = getClass().getResource("/sound/unlock.wav");
        soundURL[4] = getClass().getResource("/sound/fanfare.wav");
    }

    public void setFile(int i) {
        try {
            AudioInputStream ais = AudioSystem.getAudioInputStream(soundURL[i]);
            clip = AudioSystem.getClip();
            clip.open(ais);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void play() {
        clip.start();
    }

    public void loop() {
        clip.loop(Clip.LOOP_CONTINUOUSLY);
    }

    public void stop() {
        clip.stop();
    }
}

上述代码在调用的时候,可以正常播放音乐和音效,但是会产生一个bug,不妨找一下是什么bug。下一节将解决这个bug。
下一节将实现first half(是第一半的意思吗,不是,前半局的意思)的最后一个功能,On-Screen UI,就是类似超级玛丽游戏中,左上角、右上角显示的倒计时,获得的分数,拥有的道具物品之类的功能。代码参考之前文章中的链接。

相关推荐
guslegend几秒前
SpringSecurity认证原理与实战
java
JIngJaneIL几秒前
基于java+ vue畅游游戏销售管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·游戏
while(1){yan}1 分钟前
HTTP的加密过程
java·开发语言·网络·网络协议·http·青少年编程
deng-c-f2 分钟前
Linux C/C++ 学习日记(50):连接池
数据库·学习·连接池
小坏讲微服务2 分钟前
Spring Boot4.0 集成 Redis 实现看门狗 Lua 脚本分布式锁完整使用
java·spring boot·redis·分布式·后端·lua
一念一花一世界3 分钟前
Arbess从基础到实践(20) - 集成GitHub+SonarQube实现Java项目自动化部署
java·github·cicd·arbess
艾莉丝努力练剑11 分钟前
【Python库和代码案例:第一课】Python 标准库与第三方库实战指南:从日期处理到 Excel 操作
java·服务器·开发语言·人工智能·python·pycharm·pip
YDS82915 分钟前
SpringCloud —— 配置管理
java·spring·spring cloud
乂爻yiyao16 分钟前
Java 的云原生困局与破局
java·开发语言·云原生
创作者mateo17 分钟前
python基础学习之Python 循环及函数
开发语言·python·学习