▽効果音、BGMを鳴らそう▽
カーソル上キーで効果音を、
カーソル下キーでBGMを鳴らすFlashを作ります。
今回もGameEngineフォルダのプロジェクトを使って、一からプログラムします。
ActionScript簡易ゲームライブラリ(以下、ゲームライブラリ)を
ダウンロードしていない場合はActionScript簡易ゲームライブラリのダウンロードと実行をしようを参考に準備をしてください。
素材として効果音とBGM用にmp3ファイルを
GameEngineフォルダのbin/resourceフォルダにコピーしてください。
私はPANICPUMPKIN様の素材を利用させていただいています。
今回はBGM用mp3ファイルを「bgm.mp3」、
効果用mp3ファイルを「test.mp3」としています。

準備できましたか?
では、FlashDevelopを実行して
GameEngineフォルダの「GameEngine.as3proj」を開いてください。
srcフォルダの「GameMain.as」が実際に開発するファイルです。
1.mp3ファイルの相対パスを定数にします。
2.キー入力監視用プライベート変数を追加します。
3.initメソッドにコードを追加します。
ここでは、大きく2つのコードを追加します。
・mp3ファイルのロード処理
・キー入力クラスのキー登録
4.runメソッドにコードを追加します。
今回は以下の2つを追加します。
・キー入力クラスでキー入力状況を取得し、
カーソルキーが押されている場合は効果音やBGMを鳴らす。
・画面への描画
キーが押され続けているかどうか、監視するために監視用private変数を用意しています。
これを行わないとキーがずっと押されている場合、効果音が連続で再生され続けてしまいます。
キー入力管理は以下の処理を行っています。
・キーが入力されていれば以下を実行
・監視用変数がfalse(押していない)であれば、mp3を再生
監視用変数にtrue(押した)を格納
・キーが押されていなければ以下を実行
監視用変数にfalse(押していない)を格納
また、BGMが再生中かどうかは
BgmClassのisPlayプロパティ(ソース上の「this._bgm.isPlay」)
で確認することが出来ます。
ソース上ではこのプロパティを使って、BGMを再生している場合は停止、
停止している場合は再生と切り替えを行っています。
プログラムが終わりました。
実行ボタンを押してください。

カーソルキーで効果音やBGMが再生されましたか?
カーソル下キーでBGMを鳴らすFlashを作ります。
今回もGameEngineフォルダのプロジェクトを使って、一からプログラムします。
ActionScript簡易ゲームライブラリ(以下、ゲームライブラリ)を
ダウンロードしていない場合はActionScript簡易ゲームライブラリのダウンロードと実行をしようを参考に準備をしてください。
素材として効果音とBGM用にmp3ファイルを
GameEngineフォルダのbin/resourceフォルダにコピーしてください。
私はPANICPUMPKIN様の素材を利用させていただいています。
今回はBGM用mp3ファイルを「bgm.mp3」、
効果用mp3ファイルを「test.mp3」としています。

準備できましたか?
では、FlashDevelopを実行して
GameEngineフォルダの「GameEngine.as3proj」を開いてください。
srcフォルダの「GameMain.as」が実際に開発するファイルです。
1.mp3ファイルの相対パスを定数にします。
/** * ゲームのエントリクラス * こちらのクラスに修正を加えて、ゲームを作ってください。 */ public class GameMain extends GameLib { //ゲームライブラリ群 private var _sound:GameLib.SoundClass = null; private var _bgm:GameLib.BgmClass = null; private var _graphic:GameLib.GraphicClass = null; private var _key:GameLib.KeyClass = null; //mp3ファイル用定数 private static const SOUND_TEST:String = "resource/test.mp3"; private static const BGM_TEST:String = "resource/bgm.mp3";
2.キー入力監視用プライベート変数を追加します。
//mp3ファイル用定数
private static const SOUND_TEST:String = "resource/test.mp3";
private static const BGM_TEST:String = "resource/bgm.mp3";
//キー入力監視用変数
private var _pushUp:Boolean = false;
private var _pushDown:Boolean = false;
3.initメソッドにコードを追加します。
ここでは、大きく2つのコードを追加します。
・mp3ファイルのロード処理
・キー入力クラスのキー登録
/** * 初期化処理 * ゲームループ前に一度だけ実行されます。 * 必要な修正を入れてください。 */ protected override function init():void { //リソース生成 this._sound = new GameLib.SoundClass(); this._bgm = new GameLib.BgmClass(); this._graphic = new GameLib.GraphicClass(this._refStage); this._key = new GameLib.KeyClass(this._refStage); //ここから下に修正をいれてください。 //mp3ファイルの読み込み this._sound.load(SOUND_TEST); this._bgm.load(BGM_TEST); //キーボードのキーコード登録 this._key.addKeyCode(Keyboard.UP); this._key.addKeyCode(Keyboard.DOWN); }
4.runメソッドにコードを追加します。
今回は以下の2つを追加します。
・キー入力クラスでキー入力状況を取得し、
カーソルキーが押されている場合は効果音やBGMを鳴らす。
・画面への描画
/** * ループ処理 * 必要な修正を入れてください。 */ public override function run():void { this._graphic.clear(); //ここから下に修正をいれてください。 //カーソル上キーを押すと効果音を鳴らす if (this._key.getKeyState(Keyboard.UP)) { if (this._pushUp == false) { //押した瞬間のみ効果音を鳴らす this._sound.play(SOUND_TEST); } this._pushUp = true; }else { this._pushUp = false; } //カーソル下キーを押すとBGMを鳴らす if (this._key.getKeyState(Keyboard.DOWN)) { if (this._pushDown == false) { //押した瞬間のみBGMをON/OFFする if (this._bgm.isPlay) { this._bgm.stop(); }else { this._bgm.play(); } } this._pushDown = true; }else { this._pushDown = false; } //Text出力 this._graphic.drawText(0, 0, "↑ 効果音を鳴らす"); var bgmText:String = "↓ BGM "; if (this._bgm.isPlay) { bgmText += "再生中 \n[もう一回押すと停止します]"; }else { bgmText += "停止中 \n[もう一回押すと再生します]"; } this._graphic.drawText(0, 100, bgmText); //ここから上に修正をいれてください。 this._graphic.flip(); }
これを行わないとキーがずっと押されている場合、効果音が連続で再生され続けてしまいます。
キー入力管理は以下の処理を行っています。
・キーが入力されていれば以下を実行
・監視用変数がfalse(押していない)であれば、mp3を再生
監視用変数にtrue(押した)を格納
・キーが押されていなければ以下を実行
監視用変数にfalse(押していない)を格納
また、BGMが再生中かどうかは
BgmClassのisPlayプロパティ(ソース上の「this._bgm.isPlay」)
で確認することが出来ます。
ソース上ではこのプロパティを使って、BGMを再生している場合は停止、
停止している場合は再生と切り替えを行っています。
プログラムが終わりました。
実行ボタンを押してください。

カーソルキーで効果音やBGMが再生されましたか?
▽改変履歴▽
2011/08/08
・新規作成
・新規作成