repeat getkey a,1 if a==1 { title "マウスが押されています" } else { title "マウスは押されていません" } wait 1 loop 任意のキーの状態を調べるのにはgetkey命令を使用します。この命令は 任意のキー(またはマウスのボタン)が押されているか押されていないかを調べるもので、 押された瞬間の判定はonkey命令を使用すると良いでしょう。調べられる キーに関してはhelpを参照してください。 |
repeat stick a s="" if a&1 : s+="←" if a&2 : s+="↑" if a&4 : s+="→" if a&8 : s+="↓" if a!=0 : title s+"が押されました" : wait 10 if a==0 : title "" wait 1 loop getkey命令では一度にひとつのキーしか判定できません。stick命令では 複数(またはひとつ)のキーが押されたかを判定することができます。 getkey命令とは違い、押されている間は判定されません。 さらに、getkey命令と比べて調べられるキーの種類は限られます。 ifの判定についてはちょっと難しい話?を参照してください。 |
repeat stick a,5 ;1+4 s="" if a&1 : s+="←" if a&2 : s+="↑" if a&4 : s+="→" if a&8 : s+="↓" if a!=0 : title s+"が押されました" : wait 10 if a==0 : title "" wait 1 loop getkey命令と同様に押されつづけていてもその情報が欲しい場合には stick命令の第2パラメータにそのボタンの数値を指定します(複数の場合は 全て足し合わせた数値にします)。この場合、左と右は押されつづけていても 判定されます。 |
repeat stick a,5,1 ;1+4 s="" if a&1 : s+="←" if a&2 : s+="↑" if a&4 : s+="→" if a&8 : s+="↓" if a!=0 : title s+"が押されました" : wait 10 if a==0 : title "" wait 1 loop stick命令の第3パラメータを1にすると、HSPのウィンドウが選択されていない場合には キーのチェックをしなくなります。つまり、これを1にしなければ、HSPが実行されている 間は常にキーのチェックができることになります。 |
onclick *click stop *click check=wparam if check==1 : mes "左" if check==2 : mes "右" if check==16 : mes "中" stop ウィンドウ内のマウスでクリックの判定には onclick命令を使用します。強制的に指定したラベルにジャンプします。 システム変数wparamに押されたマウスのボタンの 情報が入ります。なお、同時押しの場合はこれらの値が加わったもの(左と右なら1+2=3) になります。また、一時的にonclick命令の機能をoffにしたければonclick 0、再びonにするには onclick 1とすれば良いです。 |
onkey *key stop *key code=wparam mes code stop
ウィンドウ内でキーボードが押された場合の判定には
onkey命令を使用します。強制的に指定のラベルにジャンプします。
システム変数wparamに押されたキーボードの
情報が入ります。この主な情報は |
dialog "HSP難しいですか?",2 if stat==6 : mes "僕のHPで勉強しましょう" if stat==7 : mes "次はプログラム技術ですね" stop はい、いいえの選択をさせるにはdialog命令を使用すると便利です。 第2パラメータを3にすると警告になります(0,1は確認用で、OKボタンしかありません)。 |
dialog "色を選んでください",33 if stat==0 : mes "キャンセルされました" : stop mes "赤:"+rval+" 緑:"+gval+" 青:"+bval stop 色を入力させるにはdialog命令を使用すると便利です。 第2パラメータを32または33にすると色の選択ができます。選ばれた色の RGB値はそれぞれrval,gval,bvalに代入されます。 |