• ベストアンサー

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です。

質問者が選んだベストアンサー

  • ベストアンサー
  • dinowave
  • ベストアンサー率48% (20/41)
回答No.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で再生したほうがよいのでは? それなら自動的に最初に戻って再生してくれますし

noname#21101
質問者

お礼

ありがとうございました。 おかげさまでうまくいきました。

その他の回答 (1)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

HSPはよく知りませんが、キーを取り込んでうまくいかない一般例を2つほど。 (1)1文字入力の後にエンターが必要で計2文字入力となる。   対策は、1文字(エンター)読み捨て。 (2)2回目の入力の時にキーがまだ押されていないと、「ヌル」をたくさん読み込んでしまう。   対策はキーインのところで、ヌルを読み飛ばすループを作り、ヌル以外を拾う。 的外れだったらご免なさい。

noname#21101
質問者

お礼

御回答ありがとうございました。 今後の参考にさせていただきます。

関連するQ&A