- ベストアンサー
HSPについて
screen 0,320,240,1,dispx-320>>1,dispy-240>>1 mes "coin:a" mes "hit:s" mci "open Coin.wav alias abc" mci "open hit.wav alias def" *key onkey *push stop *push if iparam=65 : mci "play abc" if iparam=83 : mci "play def" wait 30 goto *key 文化祭用にプログラムを組んだのですが、実行してもらえれば分かると思いますが、特定のキーを押すと1回目は問題なく再生されるのですが、2回目に同じキーを押すと音がでません。 キーを押すと、特定の音が出るように組みました。 どのようにすればいいでしょうか? よろしくお願いします. 言語はHSPです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
screen 0,320,240,1,dispx-320>>1,dispy-240>>1 onexit *MciClose mes "coin:a" mes "hit:s" mci "open Coin.wav alias abc" mci "open hit.wav alias def" *key onkey *push stop *push if iparam=65 :mci "seek abc to 0" :mci "play abc" if iparam=83 :mci "seek def to 0" :mci "play def" wait 30 goto *key *MciClose mci "close def" mci "close abc" wait 2 これで直りますよ~♪ このやり方が正しいかは分からないけど 再生する前に、再生する位置を最初にもどしてみました mci "seek def to 0" ですね あと余計な命令、mci "close abc" とか別に気にしないで下さい(^^; だけど、再生するならsndloadで読みこんで、sndで再生したほうがよいのでは? それなら自動的に最初に戻って再生してくれますし
その他の回答 (1)
- ymmasayan
- ベストアンサー率30% (2593/8599)
HSPはよく知りませんが、キーを取り込んでうまくいかない一般例を2つほど。 (1)1文字入力の後にエンターが必要で計2文字入力となる。 対策は、1文字(エンター)読み捨て。 (2)2回目の入力の時にキーがまだ押されていないと、「ヌル」をたくさん読み込んでしまう。 対策はキーインのところで、ヌルを読み飛ばすループを作り、ヌル以外を拾う。 的外れだったらご免なさい。
お礼
御回答ありがとうございました。 今後の参考にさせていただきます。
お礼
ありがとうございました。 おかげさまでうまくいきました。