キー入力情報取得
stick p1,p2,p3
p1=変数 : 読み込むための変数 p2=0~(0) : 非トリガータイプキー指定 p3=0~1(0) : ウインドゥアクティブチェックON/OFF
よく使われるキーボード及びマウスボタンの状態をまとめて チェックして変数に代入します。 stick命令が実行されると以下のような複数のボタン情報が 1つの数値として、p1で指定した変数に代入されます。 1 カーソルキー左(←) 2 カーソルキー上(↑) 4 カーソルキー右(→) 8 カーソルキー下(↓) 16 スペースキー 32 Enterキー 64 Ctrlキー 128 ESCキー 256 マウスの左ボタン 512 マウスの右ボタン 1024 TABキー 何もボタンが押されていない場合には0が代入されます。 もし複数のボタンが同時に押されていた場合には、それらの 数値がすべて加算されます。たとえば、カーソルキーの右と スペースキーが同時に押されている場合には、4+16の20が変数 に読み込まれます。この数値をif命令などでチェックする場合 には、演算子「&」が役に立ちます。 例: stick a,0 ; 変数aにキー状態を読み出し if a&16 : goto *spc ; スペースが押されたか? if a&32 : goto *ent ; Enterが押されたか? このように「変数&キー情報」で複数のボタン情報が入った 数値から、1つだけのキー情報を取り出すことができます。 stick命令は、getkey命令によく似ていますが、最大の違いは ボタンが押された瞬間だけを検出する点です。つまり、ボタン が押された時に1度だけ押されている情報を返し、あとは押さ れているボタンをはなすまでは、押されていることになりま せん。 ただし、p2の非トリガータイプキー指定により、押しっぱなし であっても情報を検出することができるようになります。 p2に押しっぱなしでも検出されるキーのコード(上の表にある コードです。複数の場合はそれぞれの数値を加えます)を指定 すると、そのキーだけはボタンが押されている間ずっと検出 されるようになります。 この命令は、非常に複雑に見えますがキーを使ったスクリプト を作る際にとても便利な機能となるでしょう。たとえば、 シューティングゲームを思い浮かべてみてください。自分の 機体は上下左右の方向にボタンが押されている間ずっと移動 しなければなりません。しかし、ミサイルを発射するボタンは 1回押してはなすまでは次の弾は発射されません。このような 場合には、上下左右のキーだけは非トリガータイプのキーに 指定して、それ以外は1度だけ押された情報を返すようにすれ ばいいわけです。 また、p3でウインドゥがアクティブでない場合は入力を無効にする 機能をON/OFFすることができます。 p3が1の場合は、HSPウインドゥがアクティブでない場合にはキー入力が 無効になります。 p3が0か省略された場合は、すべての状況下でキー入力を行ないます。
getkey | キー入力チェック |
バージョン | 2.61 |
作成日 | 2004/03/01 |
著作者 | onitama |
URL | http://www.onionsoft.net/ |
備考 | ver2.61標準命令 |
タイプ | 内蔵命令 |
グループ | 基本入出力制御命令 |
hs ファイル | hsphelp\i_stdio.HS |