Java 25ではSoundClipで手軽に音声ファイルの再生ができるようになっています。
SoundClip (Java SE 25 & JDK 25)
で、ゲームに効果音をつけてみると、なんかそれっぽくなりました。
Java 25のSoundClipで効果音をつけたら、なんかちゃんとしたゲームっぽくなった! pic.twitter.com/e6DTAXLSw5
— きしだൠ(K1S) (@kis) 2025年9月17日
効果音はここで見つけたものを使っています。
https://pixabay.com/sound-effects/
効果音をつけるときの注意点としてはこんな感じ。
- WAVファイルはsigned 16bit PCMに。24bitは非対応
- play()は再生中は無視されるので、効果音をならすときはstop()と play()をセットで
- BGMはloop()で。再生中に呼び出すと最初から再生になるので開始時だけに呼び出す
というのを踏まえてChatGPTに上記ゲームを作らせたプロンプトがこちら。
ちゃんと遊べる効果音付きのインベーダーゲームをJavaのSwingで作って。 効果音はJava 25で導入されたjavax.sound.SoundClipを使ってコンパイルできるように。次の4つのメソッドが使える。 static SoundClip createSoundClip(File) throws IOException void play() // 効果音をならす。すでにそのSoundClipが再生中だと無視されるので念のためstop()で止めておくこと。 void stop() // 再生を止める。 void loop() // BGMをならす。繰り返される。再生中に呼び出すと最初から再生が始まる。 自機ミサイル発射: beam.wav 自機爆発:dead.wav 敵爆発:explosion.wav BGM:ambient.wav 敵ミサイル発射では効果音なし。 BGMはゲーム中のみ。スタート前やゲームオーバー時には流れない。 背景に星を上から下に流して。#888888でゆっくり、#555555でもっとゆっくり。スタート前やゲームオーバー時にも流して。
SoundClip導入の背景事情などの解説はこちらに書いています。
Java 25新機能まとめ #OpenJDK - Qiita