RPG01

MAGI JAVA -Make a game in Java-
JAVA Game作成講座 034回
効果音を入れる


kouza034 rarファイル



[どうしてもJARファイルが作れないのでRARで丸ごとアップした]
そもそもjarファイルのままだとセーブ/ロードが反映されないことに今気づいた。
残り数回の講座もこの形でやっていく。
jarファイルだと効果音を入れたとたんにフリーズしてしまうのだ…。
かといって音が無いゲームはゲーム魅力の何割かを失っている。
苦肉の策ではあるが、ソースコードなどを丸上げする形にした。
完成品も結局こういう形で上げると思う。
修正方法をずっと考えていたがそれで数日失うのはバカらしいので出来る方法で妥協する。

[起動方法]
1. Java Runtime Environmentをインストールする。 http://java.com/ja/download/
2.ファイルを適当な場所で解凍する。
3.コマンドプロンプトのアイコンが入っているので起動。
4.j 一文字だけ入力して「Enter」。
これでゲームが始まるはずです。

[効果音を入れる]
二つクラスを追加した。
・KSoundWave
・SoundPlay
KSoundWaveクラスは解説書の丸パクリクラスなので省略する。
中身がさっぱり分からないので、そういうものだと思って使ってもらうしかない。
SoundPlayクラスはKSoundWaveクラスを簡単に利用するためのクラス。
各クラスでSEを使いたい場合はSoundPlayクラスだけ定義すれば使えるようになる。

[SoundPlayクラス]
public class SoundPlay {

private KSoundWave ksw[]=null;

public SoundPlay() {
init();
}

public void init() {
ksw=new KSoundWave[5]; //後で増やす
String[] fnList= {"seKettei.wav","seKettei.wav","seCancel.wav","seAttack1.wav","seAttack2.wav"};
for (int i=0; i<=4; i++) {
ksw[i]=new KSoundWave(fnList[i]);
}
}

public void sePlay(int num) {
ksw[num].start();
}

public void bgPlay(int num) {
//if (num==1) waveField.start();
}


}

将来的にBGMも鳴らす予定だが、WAVだと容量がデカくなるのでMP3で再生する方法を模索中。
このクラスでは事前に使う効果音を変数に登録しておく。
その都度読み込んでもいいのだが、使うパターンが少ないので最初に登録しておいた方が効率がいい。
一度登録が済めば番号の指定だけでサクッと使えるのが利点。
sePlayに使いたい番号を打ち込んで実際に使用することになる。

実際に使う時は各クラスで定義するのも手間なので、GameDataクラスを経由させる。

[GameDataクラス]
public SoundPlay sdPlay=null;

クラスを定義
sdPlay=new SoundPlay();

public void sePlay(int num) {
sdPlay.sePlay(num);
}


実際に使う時はこうする

if (gData.pPlatform.keyPush[4]) {
gData.pPlatform.keyPush[4]=false;
pushKey=1;
gData.sePlay(1);
}


コマンドを打ち込んだ時にピッピと鳴って分かりやすい。

戦闘パートでは攻撃命中したときに音を鳴らす。
敵とプレイヤーで音を変えると結果が音で分かる。
そこらへんもドラクエをパクった。

if (masType==6) {

//命中していたらダメージを反映させる
if (kekka[0]==1) {
if (tnum<=3) {
sdPlay.sePlay(3);
} else {
sdPlay.sePlay(4);
}
if (unitGuard[tnum]==1) kekka[1]/=2; //防御フラグがターゲットに立っていたら、ダメージを半減させる
tUnit.vst_total[0]-=kekka[1];
if (tUnit.vst_total[0]<=0) {
unitLive[tnum]=2; //0ではなく、2が死亡フラグ
unitDeleteWait[tnum]=10; //消滅までの猶予時間
bombSet(tnum,10);
}
}


}

決定、キャンセル、ダメージ、ダメージ受けるの4パターンだけしか作ってないが、
これだけでも大分ゲームらしくなる。
攻撃モーションの音は省略。
今回はここまで。

次は…敵を増やしたりデバッグ用のコマンドを削除したり、宝を増やしたりする。
いよいよゲームとしての完成を目指す。
予定では次が最終回になる。

次回は「サンプルゲーム完成?」で行きます。(完成しないのかよ)


・トップページへ戻る
inserted by FC2 system