命令リファレンス
Ymplayer.resetPlayer
「DirectMusicのON/OFF」と「ファイルの読み込み頻度」をMusicPlayer起動中に変更します。
「DirectMusicのON/OFF」と「ファイルの読み込み頻度」を、ゲーム上から変更したい場合などで使えると思います。
この項目は本来MusicPlayerが起動時に、設定される項目ですが、
「DirectMusicのON/OFF」と「ファイルの読み込み頻度」は起動後でも変更可能です。
現在のMusicPlayerのDirectMusicのON/OFFと、dm(引数)の値とを見比べ、
ON/OFFを切り替える必要がある場合、MusicPlayerはMidiデバイスの初期化を行います。
Midiデバイスの初期化をすると、Midiの演奏が停止します。
また、初期化中はMusicPlayerは反応しません。
Oggを再生したまま初期化すると、Oggは鳴り続けますが、
初期化に時間がかかる場合、Oggのテンポが1の時は8秒以上経過するとOggの音が繰り返されてしまいます。
初期化が終わるとOggは本来の再生位置へ戻りますが、初期化する時はOggを停止した方がよいでしょう。
このメソッドを呼び出すと、「YMPPreparation.dat」が書き込まれます。
その結果、このメソッドを呼び出した後に、getPlayerReady()でMusicPlayerが準備できたかどうかを調べることができます。
また、このメソッドを呼び出すと、「YMPConfig.txt」の内容が書きかえられます。
つまり、ここの設定が次回起動時でも使用されることになります。
※ MusicPlayerは「YMPPreparation.dat」を1秒に2回の頻度で監視しているので、
このメソッドが呼び出されてからMusicPlayerが反応するのは少し遅れます。
この設定は頻繁に変えないと思うので、ファイルの監視頻度は低くてもいいかなと思っています。
書式
resetPlayer(dm, rs)
- dm(省略可能)
- DirectMusicのON/OFF
0 : 自動(NT系OS:ON 9x系OS:OFF)
1 : ON
2 : OFF
- rs(省略可能)
- ファイルの読み込み頻度(0~100)
※ 変更のない項目は、引数を省略するかnullを入れてください。
詳しくは、MusicPlayerの設定を参照してください。
例1
(予め test.mid をTonyuに登録しておいてください)
A, S, D, F キーで設定を変更、Enterキーで設定を反映します。
Z, X キーでMidiの再生・停止ができます。
extends SpriteChar;
$mplayer = new Ymplayer();
$mplayer.getPlayerConfig(); // ファイル読み込み(今までの設定内容がわかる)
dm = $mplayer.getPlayerDirectMusicSW(); // 読み込んだ情報を変数へ代入
rs = $mplayer.getPlayerReadSpeed(); //
while (1) {
// 設定を適応
if (getkey(13) == 1) $mplayer.resetPlayer(dm, rs); // Enter:設定を適応
if (getkey(90) == 1) $mplayer.play($se_test); // Z:再生
if (getkey(88) == 1) $mplayer.stop(); // X:停止
if (getkey(65) == 1) { dm --; if (dm < 0) dm = 0; } // A:DirectMusicのON/OFF -
if (getkey(83) == 1) { dm ++; if (dm > 2) dm = 2; } // S:DirectMusicのON/OFF +
if (getkey(68) > 0) { rs --; if (rs < 0) rs = 0; } // D:ファイル読み込み頻度 -
if (getkey(70) > 0) { rs ++; if (rs > 100) rs = 100; } // F:ファイル読み込み頻度 +
if (dm == 0) text1 = "デフォルト設定(NT系OS:ON 9x系OS:OFF)";
else if (dm == 1) text1 = "ON";
else if (dm == 2) text1 = "OFF";
text2 = ((rs + 1) * 15) + "ミリ秒毎";
drawText( 80, 100, "DirectMusic : " + text1 , $clWhite, 12);
drawText( 80, 130, "ファイル読み込み頻度 : " + text2 , $clWhite, 12);
if ($mplayer.getPlayerReady()) drawText( 80, 160, "MusicPlayer準備中…", $clYellow, 12);
update();
}
戻る