HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0420
補給タンクMCIで一度鳴った音楽をもう一度鳴らすには3解決


補給タンク

リンク

2017/4/20(Thu) 21:34:49|NO.79162

現在、ゲームの導入部分であるメニュー画面を構築中です。
そこで、この画面で音楽を二重、三重に鳴らしてみたいと思い、
mci を使ったプログラムを下記のように組んでみました。
問題はタイトルにもある通り、
mciで書き込んだ短い音楽ファイルが一度しか鳴らないことです。
どなたかいい解決策をご存じないでしょうか?


;/////////////////////////////////////////////////////////////////////////////// ;タイトル画面 ;/////////////////////////////////////////////////////////////////////////////// *タイトル画面 screen 0,640,480 ;画像の読み込み buffer 1 ; 背景画像の読み込み picload "img/タイトル.png" gsel 0 ; 画面「0」に描画先指定 pos 0,0 ; 背景画像の貼り付け位置指定 gcopy 1,0,0,640,480 ; 背景画像の貼り付け ;音楽ファイル読み込み mci "open \"se/カーソル移動.mp3\" alias f0" mci "open \"bgm/menu.wav\" alias f1" mci "play f1"   ;カーソル初期位置 cursor_x = 260 cursor_y = 340 *カーソル上下 redraw 0;チラツキ防止その1 gsel 0 ; 画面「0」に描画先指定 pos 0,0 ; 背景画像の貼り付け位置指定 gcopy 1,0,0,640,480 ; 背景画像の貼り付け ;メニュー一覧 pos 280,340 color 255,255,255 ;フォントの設定 font "MS ゴシック", 20 mes "スタート" mes"オプション" mes"リプレイ" mes"終了" ;カーソルを表示   pos cursor_x,cursor_y color 255,255,255 mes"▼" getkey key,38;上入力 if(key=1){ cursor_y = cursor_y - 20 wait 16 mci "play f0" } getkey key,40;下入力 if(key=1){ cursor_y = cursor_y + 20 wait 16 mci "play f0" } ;移動の行き止まりと場所入れ替え if(cursor_y>400){ cursor_y = 340 mci "play f0" } if(cursor_y<340){ cursor_y = 400 mci "play f0" } ;メニューに応じたところでZキーを押したときの反応 getkey key,90;zキー入力 if(key=1){ mci "play f0" if(cursor_y=340){ goto *未実装 } if(cursor_y=360){ goto *未実装 } if(cursor_y=380){ goto *未実装 } if(cursor_y=400){ end } } getkey key,13;enter入力 if(key=1){ mci "play f0" if(cursor_y=340){ goto *未実装 } if(cursor_y=360){ goto *未実装 } if(cursor_y=380){ goto *未実装 } if(cursor_y=400){ end } } getkey key,27;Esc入力 if(key=1){ end } redraw 1 ;チラツキ防止その2 await 16 goto *カーソル上下 ;/////////////////////////////////////////////////////////////////////////////// ;未実装 ;/////////////////////////////////////////////////////////////////////////////// *未実装 cls 4 pos 160,240 ;フォントの設定 font "MS ゴシック", 20 color 255,255,255 mes "ごめんなさーい、まだ未実装です。" mes " ESCキーで戻ります。" repeat getkey key,27;Esc入力 if(key=1){ goto *タイトル画面 } loop return



この記事に返信する


沢渡

リンク

2017/4/20(Thu) 22:20:33|NO.79164

こちら↓を参考に、mci命令の"play f0"の後に"from 0"と付ければどうでしょうか?
http://www.e-douguya.com/eq/tech/mci.shtml
http://sprocket.babyblue.jp/html/hsp_mci_seq.htm



補給タンク

リンク

2017/4/20(Thu) 22:34:04|NO.79165

>沢渡様
 お返事有難う御座います。
 ですが下記のように試してみたところ、エラーになってしまいました。
 難しいですね…。


mci "play f0" "from 0"



補給タンク

リンク

2017/4/20(Thu) 22:37:03|NO.79166

すみません解決しました!
下記のように書けばよかったんですね!
ありがとうございます!


mci "play f0 from 0"



ONION software Copyright 1997-2017(c) All rights reserved.