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


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0410
Kain効果音を1回だけ再生したい5解決


Kain

リンク

2018/4/10(Tue) 12:35:16|NO.83976

HSPで効果音を1回だけ鳴らしたいです。
例えば、「ドン(太鼓の達人のアレ)」をFを押すと再生する。←これは出来たんです。
でも、それがキーボードをおしてる間は(ドドドドドドド...)と、ずっとずっとなってしまうんです。
1回だけ効果音を鳴らしたいのですが、解決方法はないですか?
ネットで調べても自分が探してるようなものはありませんでした。



この記事に返信する


ゆー

リンク

2018/4/10(Tue) 16:06:39|NO.83977

 

#uselib "user32.dll" #func MessageBeep "MessageBeep" int *main wait 1 getkey z,90//Zキーが押された if z=1 ^chkcode{// chkcode^=1 if chkcode:MessageBeep 0//とりあえず、システム音を鳴らしておく。 } goto *main



Kain

リンク

2018/4/11(Wed) 23:13:18|NO.84003

試しましたが、まだ(ドドドドドドド)のままです。



Kain

リンク

2018/4/11(Wed) 23:15:04|NO.84004

あ、ボタン操作ひとつのみ(Fを押すと再生する命令のみ)にしたら、出来ました。
しかし、DFJKで、ドンとカッの音を分けたいのですが...
説明下手ですみません



あらや(旧名あまら)

リンク

2018/4/12(Thu) 01:05:43|NO.84009

getkeyは押しっぱなしだと入力状態が常に1で固定されてしまうので
一回だけ判定したい場合はチェック用のフラグ変数を用意しておくのがよく使われる手法です。

ゆーさんのソースで言うとchkcodeがそれです。
論理演算を使用しているので、わかりにくいかもしれませんが
単純に書かせていただくと

// Zキーを押したとき if( z == 1) { // チェックフラグが0ならばZキーを押してから一回目のループという事 if( chkcode == 0 ) { chkcode = 1 // 初回にはチェックフラグを1にする //音を鳴らす命令をここに書く 2回目以降はchkcodeが0ではないので音が鳴らない } } else { // Zキーを押していないときにはチェックフラグを0にする chkcode = 0 }


>しかし、DFJKで、ドンとカッの音を分けたいのですが...
その場合はD、F、J、Kのキーそれぞれに対してチェックフラグを用意することになります。

kflag_d = 0; // Dキー用チェックフラグ kflag_f = 0; // Fキー用チェックフラグ kflag_j = 0; // Jキー用チェックフラグ kflag_k = 0; // Kキー用チェックフラグ *main getkey key_d, 68; getkey key_f, 70; getkey key_j, 74; getkey key_k, 75; // Dキー if( key_d == 1 ) { if( kflag_d == 0 ) { kflag_d = 1; // Dが押されたときの音 } } else { kflag_d = 0; } // Fキー if( key_f == 1 ) { if( kflag_f == 0 ) { kflag_f = 1; // Fが押されたときの音 } } else { kflag_f = 0; } // Jキー if( key_J == 1 ) { if( kflag_j == 0 ) { kflag_j = 1; // Jが押されたときの音 } } else { kflag_j = 0; } // Kキー if( key_k == 1 ) { if( kflag_k == 0 ) { kflag_k = 1; // Kが押されたときの音 } } else { kflag_k = 0; } await 100; goto *main;

【getkey 一回だけ判定】などのキーワードで検索すればたぶん似たようなソースが見つかります。
(きっと)

とりあえずそのままコピペするのではなく流れを理解してから
自分が分かりやすいように書き換えることをお勧めします。



Kain

リンク

2018/4/16(Mon) 19:21:17|NO.84036

返信遅くなりすいません!詳しく教えていただきありがとうございました!



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